Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];

Вниз

ADSI в DLL   Найти похожие ветки 

 
re_qas ©   (2008-05-14 18:27) [0]

Такая проблема: нужно отладить программу(DLL) которая бы запрашивала при помощи LDAP пользовательский интерфейс... компилирует... но при выполнении программы обращающейся к ней выдает ошибки по адресам при помощи CPU manager а я них не понимаю как их найти...
library Project2;
uses
 ShareMem,
 SysUtils,
 Classes,
 ADODB,
 ActiveDs_TLB in "ActiveDS_TLB.pas";

function ADsOpenObject(lpszPathName, lpszUserName, lpszPassword: PWideChar;
                        dwReserved: DWORD; const riid: TGUID; out ppObject):HResult; external "activeds.dll";
function ADsGetObject(lpszPathName: PWideChar; const riid: TGUID; out ppObject): HRESULT; external "activeds.dll";

{$R *.res}
function Q_Base(
                 Server_Name,   // èìÿ áàçû äëÿ äîñòóïà ê íåé
                 User_Name,     // èìÿ ïîëüçîâàòåëÿ
                 User_Pass,     // ïàðîëü ïîëüçîâàòåëÿ
                 Dir            // êàòàëîã ãäå äîëæíà íàõîäèòñÿ
                                // çàïèñü ïîëüçîâàòåëÿ
                     :widestring;
                  var
                 ErrorCount:Integer;
                 var
                 ErrorType      // âîçâðàùåíèå ðåçóëüòàòà ðàáîòû ïðîãðàììû
                     :pwidechar):Hresult;
var
   usr:IADs;//IADsUser;
   s1,s2,s3:PWideChar;
   s5:widestring;
   //TransBase:TADOConnection;    // äëÿ ñâÿçè òàáëèöû è çàïðîñíèêà
   streem:HResult;
BEGIN
    // äëÿ íà÷àëà ïðîâåðèì âõîäíûå äàííûå è çàäàäèì îòñóòñòâèå îøèáîê
    ErrorType:="0000000";
    ErrorCount:=0;
    // ïðîâåðèì èìÿ íà íåïóñòîå, åñëè ïóñòîå çàäàäèì "anonimouse"
    if User_Name="" then
       begin
             User_Name:="anonimouse";
             ErrorType[2]:="1";
       end;
    // ïðîâåðèì íà ïóñòîòó èìÿ ñåðâåðà
    if Server_Name="" then
       begin
             Server_Name:="ldap://";
             ErrorType[1]:="1";
       end;
    // ïðîâåðèì ïàðîëü è âûâåäåì ÷òî îí íå ââåäåí
    if User_Pass="" then
             ErrorType[3]:="1";
    // ïðîâåðèì çàäàí ëè êàòàëîã
    if Dir="" then
             ErrorType[4]:="1";
               s5:=user_pass;
             s3:=pwidechar(s5);
             s5:=server_name;
           s1:=pwidechar(s5);
     Streem:=ADsGetObject(s1, IID_IADs,usr );
   if  Streem=HResult($00000001) then
             ErrorType[7]:="1" //Îøèáêà ñîåäåíåíèÿ ñ ñåðâåðîì
       else
           begin
           s5:=Server_Name+"/OU="+Dir;
           s1:=pwidechar(s5);
                 Streem:=ADsGetObject(s1, IID_IADs, usr );
                if Streem=hresult($00000001) then
                         ErrorType[7]:="2" //Îøèáêà äèðåêòîðèè
                     else
                         begin           s5:=Server_Name+"/OU="+Dir+",DC="+User_Name;
                         s1:=pwidechar(s5);
                               Streem:=ADsGetObject(s1, IID_IADs, usr );
                              if Streem=hresult($00000001) then
                                       ErrorType[7]:="3"
                                   else
                                       begin        s5:=Server_Name+"/OU="+Dir;
                                       s1:=pwidechar(s5);
                                                    s5:="DC="+User_Name+"OU="+Dir;
                                                    s2:=pwidechar(s5);
Streem:=ADsOpenObject(s1,s2,s3,ADS_SECURE_AUTHENTICATION , IID_IADs, usr );
                                             If streem=hresult($00000001) then
                                                     errorType[7]:="4"
                                                 else
                                                     begin
case streem of                                   hresult($80004002):errorType[6]:="2";         hresult($8000FFFF):errorType[6]:="3";        hresult($80004001):errorType[6]:="4";        hresult($80004005):errorType[6]:="5";         hresult($80030003):errorType[6]:="6";  hresult($80030005):errorType[6]:="7";
hresult($80030057):errorType[6]:="8";
hresult($800300FC):errorType[6]:="9";
                                                          end;
                                                     end;
                                     end;
                     end;
           end;
           Q_Base:=streem;
END;
exports
Q_Base;
begin
end.


 
Сергей М. ©   (2008-05-14 21:40) [1]

Удалено модератором



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
2-1240322521
FEV
2009-04-21 18:02
2009.06.07
Управление другой программой


3-1222218828
РФМ
2008-09-24 05:13
2009.06.07
Наличие картинки


2-1240403308
dis12345
2009-04-22 16:28
2009.06.07
длинные названия колонок в StringGrid


15-1238908559
charodey_mag
2009-04-05 09:15
2009.06.07
Ошибки Delphi при компиляции


15-1238588488
Кое кто
2009-04-01 16:21
2009.06.07
Интересная задача





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский