Fonction ADsGetLastError (adshlp.h)
La fonction ADsGetLastError récupère la valeur de code de dernière erreur du thread appelant.
Syntaxe
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
Paramètres
[out] lpError
Type : LPDWORD
Pointeur vers l’emplacement qui reçoit le code d’erreur.
[out] lpErrorBuf
Type : LPWSTR
Pointeur vers l’emplacement qui reçoit la chaîne Unicode terminée par null qui décrit l’erreur.
[in] dwErrorBufLen
Type : DWORD
Taille, en caractères, de la mémoire tampon lpErrorBuf . Si la mémoire tampon est trop petite pour recevoir la chaîne d’erreur, la chaîne est tronquée, mais toujours terminée par la valeur Null. Une mémoire tampon d’au moins 256 octets est recommandée.
[out] lpNameBuf
Type : LPWSTR
Pointeur vers l’emplacement qui reçoit la chaîne Unicode terminée par null qui décrit le nom du fournisseur qui a déclenché l’erreur.
[in] dwNameBufLen
Type : DWORD
Taille, en caractères, de la mémoire tampon lpNameBuf . Si la mémoire tampon est trop petite pour recevoir le nom du fournisseur, la chaîne est tronquée, mais toujours terminée par la valeur Null.
Valeur retournée
Type : HRESULT
Cette méthode prend en charge les valeurs de retour standard, ainsi que les éléments suivants.
Remarques
Les erreurs ADSI se divisent en deux types en fonction des valeurs de leur code d’installation. Les codes d’erreur ADSI standard ont une valeur de code d’installation de 0x5 et les codes d’erreur ADSI étendus supposent que de FACILITY_WIN32. Les valeurs d’erreur des codes d’erreur ADSI standard et étendu sont de la forme 0x80005xxx et 0x8007xxxx, respectivement. Utilisez la macro HRESULT_FACILITY(hr) pour déterminer le type d’erreur ADSI.
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);
}
}
}
Si hr est 80071392, l’exemple de code retourne ce qui suit.
An error occurred.
HRESULT: 80071392
Error Code: 8305
Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
Provider: LDAP Provider
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | adshlp.h |
Bibliothèque | Activeds.lib |
DLL | Activeds.dll ; AdsLdpc.dll |