Конференция "Corba" » Открытые массивы и IDispatch
 
  • atruhin © (22.05.06 19:24) [0]
    Еще вопрос. Мало работал с COM :(.
    Нужно предать в процедуру открытый массив.
    Как лучше описывать procedure A(V: variant);
    и создавать вариантный массив, или можно по другому?
  • Polevi © (23.05.06 09:40) [1]
    нормально
    VarArrayCreate, VarArrayLock и тд
  • tesseract © (26.05.06 14:03) [2]
    используй SafeArray.

    Так примерчик :

    function TCustomAddIn.GetNParam(var pArray : PSafeArray; lIndex: Integer ): OleVariant;
    var varGet : OleVariant;
    begin
      SafeArrayGetElement(pArray,lIndex,varGet);
      result := varGet;
    end;
    // просто функция для работы с psafeARRAY
    // используйте для присвоению элементу массива значения
    procedure TCustomAddIn.PutNParam(var pArray: PSafeArray; lIndex: Integer; var varPut: OleVariant);
    begin
    // импортирована  из ActiveX
     SafeArrayPutElement(pArray,lIndex,varPut);
    end;
    // Функция для получения размера pSafeArray
    function TCustomAddIn.GetArrSize(var pArray: PSafeArray): integer;
    begin
     result:=pArray.rgsAbound[0].cElements;
    end;

 
Конференция "Corba" » Открытые массивы и IDispatch
Есть новые Нет новых   [119096   +83][b:0][p:0.001]