Существует несколько способов доступа к COM-объектам из C ++ / CLI.
Самый простой способ - позволить среде выполнения .Net создать управляемую оболочку для COM-объекта, как описано в natorion вего ответ.Чтобы это работало, вам нужно сгенерировать сборку взаимодействия в Visual Studio или с помощью команды tlbimp.exe.Это то же самое, что и в других языках .Net, таких как C # и VB.Net.
Другой способ - использовать директиву #import для создания оболочки native .Это лучший способ, если в COM-объекте используется много собственных структур, которые трудно упаковать в .Net, или если вам необходимо контролировать время жизни объекта.
IYourComObject obj;
obj.CreateInstance("YourComObject");
(Существуют и другие перегрузки CreateInstance)
Третий способ - игнорировать все созданные вручную оболочки, создавая объект вручную.Это самый продвинутый и сложный способ полного контроля над вами.
CoCreateInstanceEx(__uuidof(yourcomobject), NULL, CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, NULL, 1, &instance)