_com_ptr_t::_com_ptr_t

Microsoft 固有の仕様 →

_com_ptr_t オブジェクトを構築します。

// Default constructor.
// Constructs a NULL smart pointer.
_com_ptr_t() throw();

// Constructs a NULL smart pointer. The NULL argument must be zero.
_com_ptr_t( 
   int null 
);

// Constructs a smart pointer as a copy of another instance of the 
// same smart pointer. AddRef is called to increment the reference 
// count for the encapsulated interface pointer.
_com_ptr_t( 
   const _com_ptr_t& cp 
) throw();

// Constructs a smart pointer from a raw interface pointer of this 
// smart pointer's type. If fAddRef is true, AddRef is called 
// to increment the reference count for the encapsulated 
// interface pointer. If fAddRef is false, this constructor 
// takes ownership of the raw interface pointer without calling AddRef.
_com_ptr_t( 
   Interface* pInterface, 
   bool fAddRef 
) throw();

// Construct pointer for a _variant_t object.
// Constructs a smart pointer from a _variant_t object. The 
// encapsulated VARIANT must be of type VT_DISPATCH or VT_UNKNOWN, or 
// it can be converted into one of these two types. If QueryInterface 
// fails with an E_NOINTERFACE error, a NULL smart pointer is 
// constructed.
_com_ptr_t( 
   const _variant_t& varSrc 
);

// Constructs a smart pointer given the CLSID of a coclass. This 
// function calls CoCreateInstance, by the member function
//  CreateInstance, to create a new COM object and then queries for 
// this smart pointer's interface type. If QueryInterface fails with 
// an E_NOINTERFACE error, a NULL smart pointer is constructed.
explicit _com_ptr_t( 
   const CLSID& clsid,  
   IUnknown* pOuter = NULL,  
   DWORD dwClsContext = CLSCTX_ALL 
);

// Calls CoCreateClass with provided CLSID retrieved from string.
explicit _com_ptr_t( 
   LPCWSTR str,  
   IUnknown* pOuter = NULL,  
   DWORD dwClsContext = CLSCTX_ALL 
);

// Constructs a smart pointer given a multibyte character string that 
// holds either a CLSID (starting with "{") or a ProgID. This function 
// calls CoCreateInstance, by the member function CreateInstance, to 
// create a new COM object and then queries for this smart pointer's 
// interface type. If QueryInterface fails with an E_NOINTERFACE error, 
// a NULL smart pointer is constructed.
explicit _com_ptr_t( 
   LPCSTR str, 
   IUnknown* pOuter = NULL, 
   DWORD dwClsContext = CLSCTX_ALL 
);

// Saves the interface.
template<>  
_com_ptr_t( 
   Interface* pInterface 
) throw();

// Make sure correct ctor is called
template<>  
_com_ptr_t( 
   LPSTR str 
);

// Make sure correct ctor is called
template<>  
_com_ptr_t( 
   LPWSTR str 
);

// Constructs a smart pointer from a different smart pointer type or 
// from a different raw interface pointer. QueryInterface is called to 
// find an interface pointer of this smart pointer's type. If 
// QueryInterface fails with an E_NOINTERFACE error, a NULL smart 
// pointer is constructed.
template<typename _OtherIID>  
_com_ptr_t( 
   const _com_ptr_t<_OtherIID>& p 
);

// Constructs a smart-pointer from any IUnknown-based interface pointer.
template<typename _InterfaceType> 
_com_ptr_t( 
   _InterfaceType* p 
);

// Disable conversion using _com_ptr_t* specialization of
// template<typename _InterfaceType> _com_ptr_t(_InterfaceType* p)
template<>  
explicit _com_ptr_t( 
   _com_ptr_t* p 
);

パラメーター

  • pInterface
    生のインターフェイス ポインター。

  • fAddRef
    カプセル化されたインターフェイス ポインターの参照カウントをインクリメントするに trueAddRef が呼び出されます。

  • CP
    _com_ptr_t オブジェクト。

  • p
    生のインターフェイス ポインター _com_ptr_t のこのオブジェクトのスマート ポインター型と異なる型。

  • varSrc
    _variant_t オブジェクト。

  • clsid
    コクラスの CLSID

  • dwClsContext
    実行中の実行可能コードのコンテキスト。

  • lpcStr
    CLSID ({ 「と」で始まる) または ProgID を保持するマルチバイト文字列。

  • pOuter
    集約 の外側の不明。

参照

関連項目

_com_ptr_t クラス