Коды ошибок Win32 для ADSI
Стандартные коды ошибок Win32 также используются для возврата сообщений об ошибках ADSI. В частности, поставщик LDAP ADSI сопоставляет все коды ошибок LDAP с кодами ошибок Win32. Значения HRESULT этих кодов ошибок относятся к формату 0x8007XXXXXXX, где последние четыре шестнадцатеричные цифры XXXX соответствуют значениям DWORD соответствующего кода ошибки Win32. Например, значение ошибки ADSI 0x80072020 дает значение ошибки Win32 0x2020 в шестнадцатеричном или 8224 в десятичном разряде.
Чтобы преобразовать значение HRESULT кода ошибки ADSI, возвращаемого приложением, в соответствующее значение DWORD ошибки Win32, как определено в файлах заголовков выше, используйте следующую процедуру.
Большинство кодов ошибок Win32 для ADSI определены в Winerror.h или Lmerr.h. Значения ошибок перечислены в виде десятичных значений в этих файлах.
Преобразование значения HRESULT кода ошибки ADSI в соответствующее значение DWORD ошибки Win32
- Преобразуйте значение HRESULT в шестнадцатеричное число, если начинается с десятичного значения, как можно получить из приложения Visual Basic.
- Удалите оставшуюся часть 0x8007.
- Преобразуйте оставшуюся часть в десятичное число.
- Найдите десятичную оставшуюся часть в Winerror.h.
- Если не найдено в Winerror.h, вычитайте 2100 из десятичной оставшейся части и просмотрите результат в Lmerr.h.
ADSI 2.0 сопоставляет коды ошибок LDAP с набором кодов ошибок Win32, отличающихся от того, что используется в ADSI для клиента Windows 2000 и DS. Различия перечислены в следующих параметрах: