Das Beispiel aus #6 hatte ich probiert, hat aber nicht so richtig hingenauen.
Nun der Code zum Auslesen der Gruppeninformationen:
Delphi-Quellcode:
procedure TfrmInfo.ShowGroupInfo;
var
grp : IAdsGroup;
begin
if UseOpenObject
then
ADsOpenObject('
WinNT://' + Domain + '
/' + tvAD.Selected.Text, UserName, Password, 1, IADsGroup, grp)
else
ADsGetObject('
WinNT://' + Domain + '
/' + tvAD.Selected.Text, IADsGroup, grp);
Assert(grp <>
nil);
edtGroupname.Text := grp.
Name;
// Gruppen Name
edtDescription.Text := grp.Description;
// Gruppen Beschreibung
grp.GUID;
// GUID des Interface (immer gleich)
// GUID immer {27636B00-410F-11CF-B1FF-02608C9E7553}
end;
Die dazugehörige Typlibaryinfo (vielleicht hilft das ja):
Delphi-Quellcode:
// *********************************************************************//
// Interface: IADsGroup
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {27636B00-410F-11CF-B1FF-02608C9E7553}
// *********************************************************************//
IADsGroup =
interface(IADs)
['
{27636B00-410F-11CF-B1FF-02608C9E7553}']
function Get_Description: WideString;
safecall;
procedure Set_Description(
const retval: WideString);
safecall;
function Members: IADsMembers;
safecall;
function IsMember(
const bstrMember: WideString): WordBool;
safecall;
procedure Add(
const bstrNewItem: WideString);
safecall;
procedure Remove(
const bstrItemToBeRemoved: WideString);
safecall;
property Description: WideString
read Get_Description
write Set_Description;
end;