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 で終わる Unicode 文字列を受け取る場所へのポインター。
[in] dwErrorBufLen
型: DWORD
lpErrorBuf バッファーのサイズ (文字単位)。 バッファーが小さすぎてエラー文字列を受け取れなければ、文字列は切り捨てられますが、null で終わります。 256 バイト以上のバッファーをお勧めします。
[out] lpNameBuf
種類: LPWSTR
エラーを発生させたプロバイダーの名前を記述する null で終わる Unicode 文字列を受け取る場所へのポインター。
[in] dwNameBufLen
型: DWORD
lpNameBuf バッファーのサイズ (文字単位)。 バッファーが小さすぎてプロバイダーの名前を受け取れなければ、文字列は切り捨てられますが、引き続き null で終了します。
戻り値
種類: HRESULT
このメソッドは、標準の戻り値と、次の値をサポートしています。
注釈
ADSI エラーは、機能コードの値に応じて 2 種類に分類されます。 標準の 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 |
Library | Activeds.lib |
[DLL] | Activeds.dll;AdsLdpc.dll |