ADsGetLastError-Funktion (adshlp.h)
Die ADsGetLastError-Funktion ruft den Wert des letzten Fehlercodes des aufrufenden Threads ab.
Syntax
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
Parameter
[out] lpError
Typ: LPDWORD
Zeiger auf den Speicherort, der den Fehlercode empfängt.
[out] lpErrorBuf
Typ: LPWSTR
Zeiger auf den Speicherort, der die unicode-Zeichenfolge mit NULL-Beendigung empfängt, die den Fehler beschreibt.
[in] dwErrorBufLen
Art: DWORD
Größe des lpErrorBuf-Puffers in Zeichen. Wenn der Puffer zu klein ist, um die Fehlerzeichenfolge zu empfangen, wird die Zeichenfolge abgeschnitten, aber immer noch null beendet. Ein Puffer von mindestens 256 Byte wird empfohlen.
[out] lpNameBuf
Typ: LPWSTR
Zeiger auf den Speicherort, der die mit NULL endende Unicode-Zeichenfolge empfängt, die den Namen des Anbieters beschreibt, der den Fehler ausgelöst hat.
[in] dwNameBufLen
Art: DWORD
Größe des lpNameBuf-Puffers in Zeichen. Wenn der Puffer zu klein ist, um den Namen des Anbieters zu empfangen, wird die Zeichenfolge abgeschnitten, aber immer noch null beendet.
Rückgabewert
Typ: HRESULT
Diese Methode unterstützt standardmäßige Rückgabewerte sowie folgendes.
Hinweise
ADSI-Fehler lassen sich entsprechend den Werten ihres Einrichtungscodes in zwei Typen einteilen. Die Standardmäßigen ADSI-Fehlercodes weisen den Facility-Codewert 0x5 auf, und die erweiterten ADSI-Fehlercodes gehen davon aus, dass FACILITY_WIN32. Die Fehlerwerte der Standard- und erweiterten ADSI-Fehlercodes entsprechen den Formen 0x80005xxx bzw. 0x8007xxxx. Verwenden Sie das Makro HRESULT_FACILITY(hr), um den ADSI-Fehlertyp zu bestimmen.
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);
}
}
}
Wenn hr 80071392 ist, gibt das Codebeispiel Folgendes zurück.
An error occurred.
HRESULT: 80071392
Error Code: 8305
Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
Provider: LDAP Provider
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | adshlp.h |
Bibliothek | Activeds.lib |
DLL | Activeds.dll; AdsLdpc.dll |