49template<
class T, const IID *pi
id,
class CDV = CComDynamicUnkArray>
55 IConnectionPointImpl<T, piid, CDV> *pThisCPImpl;
61 pThis =
static_cast<T *
>(
this);
62 pThisCPImpl =
static_cast<IConnectionPointImpl<T, piid, CDV> *
>(
this);
63 if (pdwCookie !=
NULL)
65 if (pUnkSink ==
NULL || pdwCookie ==
NULL)
75 newCookie = pThisCPImpl->m_vec.Add(adviseSink);
77 *pdwCookie = newCookie;
STDMETHODIMP RevokeService(DWORD dwCookie)
STDMETHODIMP ProfferService(REFGUID rguidService, IServiceProvider *psp, DWORD *pdwCookie)
HRESULT QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
STDMETHODIMP Advise(IUnknown *pUnkSink, DWORD *pdwCookie)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define CONNECT_E_CANNOTCONNECT
#define CONNECT_E_ADVISELIMIT
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject