Функция 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, которая описывает ошибку, относяющуюся к сети.
[in] pszProvider
Тип: LPWSTR
Строка Юникода, завершающаяся null, которая называет поставщика ADSI, который вызвал ошибку.
Возвращаемое значение
None
Remarks
В пользовательской реализации поставщика 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
При использовании ERROR_DS_OPERATIONS_ERROR без вызова макроса HRESULT_FROM_WIN32 при установке ошибки возвращаются следующие выходные данные.
Error value: 2020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | adshlp.h |
Библиотека | Activeds.lib |
DLL | Activeds.dll |