Показать сообщение отдельно
Старый 27.12.2006, 10:46   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Если кому интересно, прототип функции IDL выглядит примерно так
X++:
    HRESULT _stdcall LinkTest([out] VARIANT * vfCptModel, [out, retval] int * Ret );
Вся фишка здесь в типе параметра VARIANT *, т.е. необходимо передавать ссылку на вариантный тип
Если бы использовалась просто строка
X++:
    HRESULT _stdcall LinkTest([out] BSTR * vfCptModel, [out, retval] int * Ret );
, то можно было бы просто передавать в вызов функции переменную var1 из предыдущего примера
X++:
    ComVariant  var1 = new ComVariant(ComVariantInOut::out, ComVariantType::VT_BSTR);
    ;
...
    res = com.LinkTest(var1);
    data = var1.bStr();
    info(data);
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Dimonishe (1).