ADsSetLastError 関数 (adshlp.h)
ADsSetLastError は、呼び出し元スレッドの最後のエラー コード値を設定します。 ディレクトリ サービス プロバイダーは、この関数を使用して拡張エラーを設定できます。 関数は、エラー データをスレッドごとのデータ構造に保存します。 ADsSetLastError は SetLastError 関数と同様に動作します。
構文
void ADsSetLastError(
[in] DWORD dwErr,
[in] LPCWSTR pszError,
[in] LPCWSTR pszProvider
);
パラメーター
[in] dwErr
型: DWORD
発生したエラー コード。 これが Windows によって定義されたエラーの場合、 pszError は無視されます。 これがERROR_EXTENDED_ERROR場合は、プロバイダーに報告するネットワーク固有のエラーがあることを示します。
[in] pszError
種類: LPWSTR
ネットワーク固有のエラーを説明する null で終わる Unicode 文字列。
[in] pszProvider
種類: LPWSTR
エラーを発生させた ADSI プロバイダーの名前を示す null で終わる Unicode 文字列。
戻り値
なし
解説
ADSI プロバイダーのカスタム実装 (LDAP プロバイダーなど) では、次のように操作エラー メッセージを設定できます。
ADsSetLastError(HRESULT_FROM_WIN32(ERROR_DS_OPERATIONS_ERROR),
L"ERROR_DS_OPERATIONS_ERROR",
L"LDAP Provider");
ユーザーは、次のコード例を使用して、この操作コードを調べることができます。
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);
}
前のコード例では、上記で設定した操作エラー コードに対して次の出力が生成されます。
Error value: 80072020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider
エラーの設定時 にHRESULT_FROM_WIN32 マクロを呼び出さずにERROR_DS_OPERATIONS_ERRORを使用すると、次の出力が返されます。
Error value: 2020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | adshlp.h |
Library | Activeds.lib |
[DLL] | Activeds.dll |