#ifndef _COM_ADVISESINK_HPP_ #define _COM_ADVISESINK_HPP_ #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0400 #endif #ifndef _ATL_APARTMENT_THREADED #define _ATL_APARTMENT_THREADED #endif #ifndef _COM_ATLBASE_HPP_ #include #endif #ifndef _COM_ATLMODULE_HPP_ #include #endif #ifndef _COM_ATLCOM_HPP_ #include #endif #ifndef _COM_COM_HPP_ #include #endif #ifndef _COM_VARIANT_HPP_ #include #endif #ifndef _COM_RESULT_HPP_ #include #endif // GENERIC CONNECTION POINT INTERFACE // INHERIT FROM THIS CLASS, PASSING IN... // 1) THE NAME OF THE CONNECTION POINT INTERFACE CLASS (FROM IDL FILE) // 2) POINTER TO THE IID FOR THE CONNECTION POINT INTERFACE // 3) POINTER TO THE LIBID FOR THE CONNECTION POINT INTERFACE // THEN PROVIDE THE VIRTUAL FUNCTION(S) DESCRIBED IN THE IDL THAT THE CONNECTION POINT WILL CALL // (IE) // IDL CODE // interface IImageNotify : IDispatch // { // [id(1), helpstring("method ImageNotify")] // HRESULT ImageNotify(VARIANT *pVariant); // }; // C++ CODE // class ImageAdviseHandler : public AdviseSink // { // ... // virtual HRESULT ImageNotify(VARIANT *pVariant); // ... // } template class AdviseSink : public CComObjectRootEx, public IDispatchImpl { public: AdviseSink(void); virtual ~AdviseSink(); BEGIN_COM_MAP(AdviseSink) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(U) END_COM_MAP() private: }; template inline AdviseSink::AdviseSink(void) { } template inline AdviseSink::~AdviseSink() { } #endif