ADsGetLastError 함수(adshlp.h)
ADsGetLastError 함수는 호출 스레드의 마지막 오류 코드 값을 검색합니다.
구문
HRESULT ADsGetLastError(
[out] LPDWORD lpError,
[out] LPWSTR lpErrorBuf,
[in] DWORD dwErrorBufLen,
[out] LPWSTR lpNameBuf,
[in] DWORD dwNameBufLen
);
매개 변수
[out] lpError
형식: LPDWORD
오류 코드를 수신하는 위치에 대한 포인터입니다.
[out] lpErrorBuf
형식: LPWSTR
오류를 설명하는 null로 끝나는 유니코드 문자열을 수신하는 위치에 대한 포인터입니다.
[in] dwErrorBufLen
형식:DWORD
lpErrorBuf 버퍼의 크기(문자 단위)입니다. 버퍼가 너무 작아서 오류 문자열을 수신할 수 없는 경우 문자열이 잘리지만 여전히 null로 종료됩니다. 256바이트 이상의 버퍼를 사용하는 것이 좋습니다.
[out] lpNameBuf
형식: LPWSTR
오류를 발생시킨 공급자의 이름을 설명하는 null로 끝나는 유니코드 문자열을 수신하는 위치에 대한 포인터입니다.
[in] dwNameBufLen
형식:DWORD
lpNameBuf 버퍼의 크기(문자 단위)입니다. 버퍼가 너무 작아서 공급자의 이름을 받을 수 없는 경우 문자열이 잘리지만 여전히 null로 종료됩니다.
반환 값
형식: HRESULT
이 메서드는 표준 반환 값과 다음을 지원합니다.
설명
ADSI 오류는 시설 코드의 값에 따라 두 가지 유형으로 구분됩니다. 표준 ADSI 오류 코드의 기능 코드 값은 0x5 확장 ADSI 오류 코드는 FACILITY_WIN32 가정합니다. 표준 및 확장 ADSI 오류 코드의 오류 값은 각각 0x80005xxx 및 0x8007xxxx 형식입니다. HRESULT_FACILITY(hr) 매크로를 사용하여 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);
}
}
}
hr이 80071392 코드 예제는 다음을 반환합니다.
An error occurred.
HRESULT: 80071392
Error Code: 8305
Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
Provider: LDAP Provider
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | adshlp.h |
라이브러리 | Activeds.lib |
DLL | Activeds.dll; AdsLdpc.dll |