c ++ / boost useはすべて、スマートポインターを新しいインスタンスに簡単にリセットできることを知っています(古いインスタンスは同時に破棄します)。COMスマートポインタに対してどのようにそれを行うのか疑問に思っていますか?
_COM_SMARTPTR_TYPEDEF(IMyClass、__uuidof(IMyClass));
//normal class A
class A{
IMyClass m_spIMyClassObj; //this COM smart pointer is a member variable of a normal class
};
COMスマートポインタを次のように初期化します。
m_spIMyClassObj.CreateInstance(__uuidof(MyLib::IMyClass));
これは問題ありませんが、Aの存続期間中に、COMスマートポインターm_spIMyClassObjをIMyClassの新しいインスタンスにリセットする必要があります。これを行うにはどうすればよいですか(古いIDがクリーンアップされていることも確認してください)。
ありがとう