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