在C ++中将COM指针定义为私有成员?

时间:2013-06-12 21:38:44

标签: c++ com smart-pointers private-members

我想知道如何将COM指针定义为私有成员。这就是我想要做的事情:

在h文件中:

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

在cpp构造函数文件中

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

    _deviceDetected = FALSE;
}

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

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

更新 任何人有任何想法?这真是困扰我好几天了。

1 个答案:

答案 0 :(得分:0)

您可以这样做:

在你的头文件中

COMInterface *_comInterface;

在你的cpp文件中

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