2013-06-12 46 views
0

我想知道如何將COM指針定義爲私有成員。這是我想做的事:在C++中定義一個COM指針作爲私有成員?

在.h文件:

MCLControlPtr _mcSwitch; //MCLControPtr is "_COM_SMARTPTR_TYPEDEF(_MCLControlClass, __uuidof(_MCLControlClass));" 
在CPP構造文件

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

    _deviceDetected = FALSE; 
} 

但當然不允許我建立,因爲語法不正確。

我想知道如何才能做到我想用正確的語法做什麼?基本上在構造函數中初始化一個COM智能指針?我也不想使用啓動列表。謝謝。

更新: 任何人有什麼想法?這真是困擾了我好幾天。

+0

可能一個可能有什麼問題與初始化列表? – chris

+0

@chris我得到了「CoInitialize尚未被調用」的表示,所以我想在_mcSwitch(__ uuidof(MCLControlClass))前面調用CoInitialize(NULL); –

+0

任何人有任何想法? –

回答

0

你可以做這樣的事情:

在你的頭文件

COMInterface *_comInterface; 

在你的CPP文件

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