Directory Services |
The ADsGetLastError function retrieves the calling thread's last-error code value.
HRESULT ADsGetLastError( LPDWORD lpError, LPWSTR lpErrorBuf, DWORD dwErrorBufLen, LPWSTR lpNameBuf, DWORD dwNameBufLen );
This method supports standard return values, as well as the following.
Return Code | Description |
---|---|
S_OK | The last error was retrieved. |
E_POINTER | One or more parameters are invalid. |
ERROR_BAD_DEVICE | The thread identifier for the current thread cannot be found. |
ADSI errors fall into two types according to the values of their facility code. The standard ADSI error codes have a facility code value of 0x5 and the extended ADSI error codes assume that of FACILITY_WIN32. The error values of the standard and extended ADSI error codes are of the forms of 0x80005xxx and 0x8007xxxx, respectively. Use the HRESULT_FACILITY(hr) macro to determine the ADSI error type.
Note The WinNT ADSI provider does not support ADsGetLastError.
The following code example shows how to get Win32 error codes and their descriptions using ADsGetLastError.
if (FAILED(hr)) { wprintf(L"An error occurred.\n HRESULT: %x\n",hr); // If facility is Win32, get the Win32 error if (HRESULT_FACILITY(hr)==FACILITY_WIN32) { DWORD dwLastError; WCHAR szErrorBuf[MAX_PATH]; WCHAR szNameBuf[MAX_PATH]; // Get extended error value. HRESULT hr_return =S_OK; hr_return = ADsGetLastError( &dwLastError, szErrorBuf, MAX_PATH, szNameBuf, MAX_PATH); if (SUCCEEDED(hr_return)) { wprintf(L"Error Code: %d\n Error Text: %ws\n Provider: %ws\n", dwLastError, szErrorBuf, szNameBuf); } } }
If hr is 80071392, the code example returns the following.
An error occurred. HRESULT: 80071392 Error Code: 8305 Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0 Provider: LDAP Provider
Note The WinNT ADSI provider does not support ADsGetLastError.
Client: Included in Windows XP and
Windows 2000 Professional.
Server: Included in Windows Server 2003 and
Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension
on Windows NT 4.0 SP6a and Windows 95/98/Me.
Header: Declared in Adshlp.h.
Library: Use ActiveDS.lib.
ADSI Error Codes, ADSI Functions, ADsSetLastError, GetLastError