Для того, чтобы в коде C++ обращаться к методам некоторого COM-объекта, нужно следующее:
1) Импортировать tlb COM-объекта, с которым будем работать (импорт этот статический, выполняется на этапе компиляции):#import "someCom.tlb" raw_interfaces_only2) Перед началом работы с COM-объектом инициализировать COM, после окончания - деинициализировать:
HRESULT hr = CoInitialize(NULL);
if(SUCCEEDED(hres = CoInitialize(NULL)))
{
... // тут идет создание COM-объекта, вызов его методов
CoUninitialize();
}
3) Создать указатель на COM-объект для последующей работы. Пусть COM-объект, с которым мы хотим работать, имеет пространство имен COMObjectNamespace, имя интерфейса COMInterfaceName и имя класса, реализующего этот интерфейс - COMClassName. Тогда создается ссылка на объект так:
COMObjectNamespace::COMInterfaceNamePtr myComObj(COMObjectNamespace::COMClassName);Далее полученную ссылку myComObj можно использовать как указатель для вызова методов, VisualStudio даже будет подсказывать объявления методов.
Информация взята отсюда: http://support.microsoft.com/kb/828736, где рассмотрен пример взаимодействия по технологии COM между C++-программой и модулем на C#.
Комментариев нет:
Отправить комментарий