Здравствуйте, ayap, Вы писали:
[...]
Я так понимаю вы должны передать в функцию массив структур DSOP_SCOPE_INIT_INFO, полученный ранее каким-то образом (где это у вас в коде?). Представим что они у вас все таки есть и что это просто локальный массив, инициализируемый перед вызовом IDsObjectPicker::Initialize. Тогда передаваться он будет следующим образом:
var
A> InitInfo: PDSOP_INIT_INFO;
A> aScopeInit: array[0..1] of DSOP_SCOPE_INIT_INFO;
A>...
A>begin
A> try
A>...
// Инициализируем массив aScopeInit
// ...
A> InitInfo := GetMemory(sizeof(DSOP_INIT_INFO));
A> InitInfo.cbSize := sizeof(DSOP_INIT_INFO);
A> InitInfo.pwzTargetComputer := LPWSTR(CompName);
A> InitInfo.cDsScopeInfos := Length(aScopeInit);
A> InitInfo.aDsScopeInfos := @aScopeInit[0];
A> InitInfo.flOptions := DSOP_FLAG_MULTISELECT or DSOP_FLAG_SKIP_TARGET_COMPUTER_DC_CHECK;
A> InitInfo.cAttributesToFetch := 0;
A> InitInfo.apwzAttributeNames := nil;
A> (obj as IDsObjectPicker).Initialize(InitInfo);
A> finally
A> FreeMemory(InitInfo);
A> end;
A>end;
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde