Função ADsGetLastError (adshlp.h)
A função ADsGetLastError recupera o valor do código de último erro do thread de chamada.
Sintaxe
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
Parâmetros
[out] lpError
Tipo: LPDWORD
Ponteiro para o local que recebe o código de erro.
[out] lpErrorBuf
Tipo: LPWSTR
Ponteiro para o local que recebe a cadeia de caracteres Unicode terminada em nulo que descreve o erro.
[in] dwErrorBufLen
Tipo: DWORD
Tamanho, em caracteres, do buffer lpErrorBuf . Se o buffer for muito pequeno para receber a cadeia de caracteres de erro, a cadeia de caracteres será truncada, mas ainda terminada em nulo. Um buffer, de pelo menos 256 bytes, é recomendado.
[out] lpNameBuf
Tipo: LPWSTR
Ponteiro para o local que recebe a cadeia de caracteres Unicode terminada em nulo que descreve o nome do provedor que gerou o erro.
[in] dwNameBufLen
Tipo: DWORD
Tamanho, em caracteres, do buffer lpNameBuf . Se o buffer for muito pequeno para receber o nome do provedor, a cadeia de caracteres será truncada, mas ainda terminada em nulo.
Retornar valor
Tipo: HRESULT
Esse método dá suporte a valores retornados padrão, bem como aos seguintes.
Comentários
Os erros adsi se enquadram em dois tipos de acordo com os valores de seu código de instalação. Os códigos de erro ADSI padrão têm um valor de código de instalação de 0x5 e os códigos de erro ADSI estendidos pressupõem que de FACILITY_WIN32. Os valores de erro dos códigos de erro ADSI padrão e estendidos são das formas 0x80005xxx e 0x8007xxxx, respectivamente. Use a macro HRESULT_FACILITY(hr) para determinar o tipo de erro 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 for 80071392, o exemplo de código retornará o seguinte.
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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | adshlp.h |
Biblioteca | Activeds.lib |
DLL | Activeds.dll; AdsLdpc.dll |