2009-06-17 3 views
0

Я пытаюсь разработать COM-объект с использованием C++ и ATL для использования как клиентами C++, так и C# Windows Mobile. COM-объект завершает всю логику для подключения к нашему серверу и отправки/получения данных с использованием нашего проприетарного протокола. У меня возникли трудности с событием OnReceive, которое корректно работает с C# и C++.COM-событие с двоичными данными в аргументах

Я определил функцию события, как это:

HRESULT OnReceive (BYTE * пиксельный буфер, LONG lSize);

Но когда я смотрю на функции в C# или обозревателе объектов, она выходит как:

OnReceive (исх байт пиксельный буфер, внутр lSize);

Как я могу обработать «ref byte» как указатель на C#? Как передать двоичные данные в OnReceive и позволить клиентам C++ и C# обращаться к двоичным данным?

ответ

0

У вас в основном есть два варианта: используйте SAFEARRAY of BYTE или введите данные в BSTR. Последним, хотя и уродливым, был взлом по умолчанию для передачи двоичных данных компонентам VB6. Хотя я никогда не пробовал это, я думаю, это должно работать и для .Net.

Смежные вопросы