Bonjour,

Je cherche à ajouter une classe auxiliaire à un objet de l'active directory mais il semble que ce ne soit pas possible en utilisant system.directoryservices, il faut passer par adsi.

J'essaye donc de me connecter mais je n'y arrive pas.

J'ai d'abord déclarer ma procedure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
procedure ADsOpenObject(lpszPathName:string; lpszUserName: string;
    lpszPassword: string; dwReserved: dword; riid: TGuid;out ppObject);
 
interface
 
[dllimport('activeds.dll',charset=charset.Unicode,preserveSig=false)]
  procedure ADsOpenObject(lpszPathName:string; lpszUserName: string;
    lpszPassword: string; dwReserved: dword; riid: TGuid;
    [MarshalAs(UnmanagedType.&Interface)] out ppObject);external;
 
const
  IID_IADs : TGuid = '{FD8256D0-FD15-11CE-ABC4-02608C9E7553}';
 
procedure TForm1.Button1Click(Sender: TObject);
var
  uObj:IADs;
 
begin
 
  ADsOpenObject('LDAP://192.168.1.2:389/DC=srv,DC=local',
   'srv\Administrateur','myPass',1,iid_iads,val);
 
end;
Je reçois un message tentative de lecture de mémoire protégée... D'où peut venr le problème ? merci d'avance