_com_ptr_t 抽出

Microsoft 固有の仕様

カプセル化された COM インターフェイス ポインターを抽出します。

構文

operator Interface*( ) const throw( );
operator Interface&( ) const;
Interface& operator*( ) const;
Interface* operator->( ) const;
Interface** operator&( ) throw( );
operator bool( ) const throw( );

解説

  • operator Interface* カプセル化されたインターフェイス ポインターを返します。このポインターは NULL である可能性があります。

  • operator Interface& カプセル化されたインターフェイス ポインターへの参照を返し、ポインターが NULL の場合はエラーを発行します。

  • operator* 逆参照されたときに、実際にカプセル化されたインターフェイスのようにスマート ポインター オブジェクトが機能できるようにします。

  • operator-> 逆参照されたときに、実際にカプセル化されたインターフェイスのようにスマート ポインター オブジェクトが機能できるようにします。

  • operator& カプセル化されたインターフェイス ポインターを解放し、それを NULL に置き換え、カプセル化されたポインターのアドレスを返します。 この演算子を使用すると、インターフェイス ポインターを返すための out パラメーターを持つ関数に、アドレスを使用してスマート ポインターを渡すことができます。

  • operator bool スマート ポインター オブジェクトを条件式で使用できるようにします。 この演算子は、ポインターが NULL でない場合、true を返します。

    Note

    operator boolexplicit として宣言されていないので、_com_ptr_t は任意のスカラー型に変換できる bool に暗黙的に変換できます。 これにより、予期しない結果がコードに含まれる可能性があります。 この変換の意図していない使われ方を防ぐには、コンパイラ警告 (レベル 4) C4800 を有効にします。

関連項目

_com_ptr_t クラス