在c++中定义COM指针作为私有成员

Define a COM pointer as a private member in C++?

本文关键字:成员 指针 c++ 定义 COM      更新时间:2023-10-16

我想知道如何将COM指针定义为私有成员。下面是我想做的:

:

MCLControlPtr _mcSwitch;  //MCLControPtr is "_COM_SMARTPTR_TYPEDEF(_MCLControlClass, __uuidof(_MCLControlClass));"

在CPP构造文件

ThorDetectorSwitch::ThorDetectorSwitch() 
{
     _mcSwitch = new MCLControlPtr _mcSwitch(__uuidof(MCLControlClass));
    _deviceDetected = FALSE;
}

,但它当然不允许我构建,因为语法不对。

我想知道如何用正确的语法做我想做的事情?基本上初始化一个COM智能指针在构造函数?我也不想使用初始化列表。谢谢。

更新:有人知道吗?这事已经困扰我好几天了。

你可以这样做:

在你的头文件

COMInterface *_comInterface;

在cpp文件

COMInterfacePtr comSmartPtr;
hr = ::CoCreateInstance(see reference for stuff inside here);
_comInterface = comSmartPtr;