Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1238574089
Игорь Шевченко
2009-04-01 12:21
2009.06.07
Как давно это было :)


2-1240241532
Sitnic
2009-04-20 19:32
2009.06.07
Как поюзать ClientSocket из консольного приложения?


15-1238836320
Немо
2009-04-04 13:12
2009.06.07
sql Server Enterprise Manager, как скопировать job?


2-1240313348
kostyl_kostyl
2009-04-21 15:29
2009.06.07
Как нарисовать на форме полупрозрачный полигон?


15-1238405776
Alex_2009
2009-03-30 13:36
2009.06.07
windows 2000 пропал доступ к редактору реестра