This topic has not yet been rated Rate this topic

AtlAdvise

Creates a connection between an object's connection point and a client's sink.

HRESULT AtlAdvise(
   IUnknown* pUnkCP,
   IUnknown* pUnk,
   const IID& iid,
   LPDWORD pdw 
);

Parameters

pUnkCP
[in] A pointer to the IUnknown of the object the client wants to connect with.
pUnk
[in] A pointer to the client's IUnknown.
iid
[in] The GUID of the connection point. Typically, this is the same as the outgoing interface managed by the connection point.
pdw
[out] A pointer to the cookie that uniquely identifies the connection.

Return Value

A standard HRESULT value.

Remarks

The sink implements the outgoing interface supported by the connection point. The client uses the pdw cookie to remove the connection by passing it to AtlUnadvise.

Example

LPUNKNOWN m_pSourceUnk;
LPUNKNOWN m_pSinkUnk;
DWORD m_dwCustCookie;

// create source object
HRESULT hr = CoCreateInstance (CLSID_MyComponent, NULL, CLSCTX_ALL, 
         IID_IUnknown, (LPVOID*)&m_pSourceUnk);
_ASSERT (SUCCEEDED (hr));

// Create sink object.  CMySink is a CComObjectRootEx-derived class 
// that implements the event interface methods.
CComObject<CMySink> *pSinkClass;
CComObject<CMySink>::CreateInstance (&pSinkClass);
hr = pSinkClass->QueryInterface (IID_IUnknown, (LPVOID*)&m_pSinkUnk);
_ASSERT (SUCCEEDED (hr));

hr = AtlAdvise (m_pSourceUnk, m_pSinkUnk, IID__IMyEvent, &m_dwCustCookie);
_ASSERT (SUCCEEDED (hr)); 

See Also

Connection Point Global Functions

Did you find this helpful?
(1500 characters remaining)