Microsoft Specific
template<typename _InterfacePtr> bool operator==( _InterfacePtr p ) throw( _com_error );
template<> bool operator==( Interface* p ) throw( _com_error );
template<> bool operator==( _com_ptr_t& p ) throw( );
template<> bool operator==( int NULL ) throw( _com_error );
template<typename _InterfacePtr> bool operator!=( _InterfacePtr p ) throw( _com_error );
template<> bool operator!=( Interface* p ) throw( _com_error );
template<> bool operator!=( _com_ptr_t& p ) throw( _com_error );
template<> bool operator!=( int NULL ) throw( _com_error );
template<typename _InterfacePtr> bool operator<( _InterfacePtr p ) throw( _com_error );
template<typename _InterfacePtr> bool operator>( _InterfacePtr p ) throw( _com_error );
template<typename _InterfacePtr> bool operator<=( _InterfacePtr p ) throw( _com_error );
template<typename _InterfacePtr> bool operator>=( _InterfacePtr p ) throw( _com_error );
Remarks
Compares a smart pointer object to another smart pointer, raw interface pointer, or NULL. Except for the NULL pointer tests, these operators first query both pointers for IUnknown, and compare the results.
END Microsoft Specific