Возврат SAFEARRAY пользовательских типов интерфейса к VB6 через COM

Можно ли вернуть массив определенных объектов интерфейса из функции C ++ COM (VC6) клиенту VB6? Я рыскал по сети и убежал Я не мог найти ничего, что описывает то, что мне нужно делать. Я видел много переданных типов BSTR и VARIANT, но мне нужен какой-то способ, чтобы клиентская сторона действительно использовала тип интерфейса, который я возвращаю внутри массива.

Что, как я предполагаю, мне нужно сделать
- Используйте БЕЗОПАСНЫЙ СРЕДСТВО
- Используйте SAFEARRAY с типом VT_UNKNOWN, что, в свою очередь, означает, что мне нужно поместить объекты в массив как объекты IUnknown.

С этого момента я в тупике. Можно ли интерпретировать тип IUnknown в VB6 и каким-то образом превратить его в нужный мне тип? Или я делаю это совершенно неправильно ...

Пояснение:
Помещаемые в коллекцию интерфейсы используются для имитации структуры. По сути, мне нужно передать обратно массив структур.

5
задан Jack Smith 12 April 2011 в 06:35
поделиться