Funzione ADsGetLastError (adshlp.h)
La funzione ADsGetLastError recupera il valore del codice dell'ultimo errore del thread chiamante.
Sintassi
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
Parametri
[out] lpError
Tipo: LPDWORD
Puntatore al percorso che riceve il codice di errore.
[out] lpErrorBuf
Tipo: LPWSTR
Puntatore al percorso che riceve la stringa Unicode con terminazione null che descrive l'errore.
[in] dwErrorBufLen
Tipo: DWORD
Dimensioni, in caratteri, del buffer lpErrorBuf . Se il buffer è troppo piccolo per ricevere la stringa di errore, la stringa viene troncata, ma ancora terminata null. È consigliabile un buffer di almeno 256 byte.
[out] lpNameBuf
Tipo: LPWSTR
Puntatore al percorso che riceve la stringa Unicode con terminazione null che descrive il nome del provider che ha generato l'errore.
[in] dwNameBufLen
Tipo: DWORD
Dimensioni, in caratteri, del buffer lpNameBuf . Se il buffer è troppo piccolo per ricevere il nome del provider, la stringa viene troncata, ma ancora terminata null.
Valore restituito
Tipo: HRESULT
Questo metodo supporta valori restituiti standard, nonché i seguenti.
Commenti
Gli errori ADSI rientrano in due tipi in base ai valori del codice della struttura. I codici di errore ADSI standard hanno un valore di codice della struttura di 0x5 e i codici di errore ADSI estesi presuppongono che FACILITY_WIN32. I valori di errore dei codici di errore ADSI standard e estesi sono rispettivamente i formati 0x80005xxx e 0x8007xxxx. Usare la macro HRESULT_FACILITY(hr) per determinare il tipo di errore 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);
}
}
}
Se hr è 80071392, l'esempio di codice restituisce quanto segue.
An error occurred.
HRESULT: 80071392
Error Code: 8305
Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
Provider: LDAP Provider
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | adshlp.h |
Libreria | Activeds.lib |
DLL | Activeds.dll; AdsLdpc.dll |