Función ADsGetLastError (adshlp.h)
La función ADsGetLastError recupera el valor de código de último error del subproceso que llama.
Sintaxis
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
Parámetros
[out] lpError
Tipo: LPDWORD
Puntero a la ubicación que recibe el código de error.
[out] lpErrorBuf
Tipo: LPWSTR
Puntero a la ubicación que recibe la cadena Unicode terminada en null que describe el error.
[in] dwErrorBufLen
Tipo: DWORD
Tamaño, en caracteres, del búfer lpErrorBuf . Si el búfer es demasiado pequeño para recibir la cadena de error, la cadena se trunca, pero sigue terminada en null. Se recomienda un búfer, de al menos 256 bytes.
[out] lpNameBuf
Tipo: LPWSTR
Puntero a la ubicación que recibe la cadena Unicode terminada en null que describe el nombre del proveedor que generó el error.
[in] dwNameBufLen
Tipo: DWORD
Tamaño, en caracteres, del búfer lpNameBuf . Si el búfer es demasiado pequeño para recibir el nombre del proveedor, la cadena se trunca, pero sigue terminada en null.
Valor devuelto
Tipo: HRESULT
Este método admite valores devueltos estándar, así como los siguientes.
Comentarios
Los errores adsi se dividen en dos tipos según los valores de su código de instalación. Los códigos de error ADSI estándar tienen un valor de código de instalación de 0x5 y los códigos de error ADSI extendidos asumen que de FACILITY_WIN32. Los valores de error de los códigos de error ADSI estándar y extendidos son de las formas 0x80005xxx y 0x8007xxxx, respectivamente. Use la macro HRESULT_FACILITY(hr) para determinar el tipo de error 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 es 80071392, el ejemplo de código devuelve lo siguiente.
An error occurred.
HRESULT: 80071392
Error Code: 8305
Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
Provider: LDAP Provider
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | adshlp.h |
Library | Activeds.lib |
Archivo DLL | Activeds.dll; AdsLdpc.dll |