Algemene functies van verbindingspunt

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze functies bieden ondersteuning voor verbindingspunten en sink-kaarten.

Belangrijk

De functies in de volgende tabel kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Functie Description
AtlAdvise Hiermee maakt u een verbinding tussen het verbindingspunt van een object en de sink van een client.
AtlUnadvise Hiermee wordt de verbinding beëindigd die tot stand is gebracht via AtlAdvise.
AtlAdviseSinkMap Adviseert of niet-aaneengeslagen vermeldingen in een gebeurtenissinkkaart.

Requirements

Header: atlbase.h

AtlAdvise

Hiermee maakt u een verbinding tussen het verbindingspunt van een object en de sink van een client.

Belangrijk

Deze functie kan niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

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

Parameterwaarden

pUnkCP
[in] Een aanwijzer naar het IUnknown object waarmee de client verbinding wil maken.

Punk
[in] Een aanwijzer naar de client IUnknown.

iid
[in] De GUID van het verbindingspunt. Dit is doorgaans hetzelfde als de uitgaande interface die wordt beheerd door het verbindingspunt.

Pdw
[uit] Een aanwijzer naar de cookie die de verbinding uniek identificeert.

Retourwaarde

Een standaard HRESULT-waarde.

Opmerkingen

De sink implementeert de uitgaande interface die wordt ondersteund door het verbindingspunt. De client gebruikt de pdw-cookie om de verbinding te verwijderen door deze door te geven aan 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);
ATLASSERT(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);
ATLASSERT(SUCCEEDED(hr));

hr = AtlAdvise (m_pSourceUnk, m_pSinkUnk, __uuidof(_IMyComponentEvents), &m_dwCustCookie);
ATLASSERT(SUCCEEDED(hr));    

AtlUnadvise

Hiermee wordt de verbinding beëindigd die tot stand is gebracht via AtlAdvise.

Belangrijk

Deze functie kan niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

HRESULT    AtlUnadvise(
    IUnknown* pUnkCP,
    const IID& iid,
    DWORD dw);

Parameterwaarden

pUnkCP
[in] Een aanwijzer naar het IUnknown object waarmee de client is verbonden.

iid
[in] De GUID van het verbindingspunt. Dit is doorgaans hetzelfde als de uitgaande interface die wordt beheerd door het verbindingspunt.

Dw
[in] De cookie waarmee de verbinding uniek wordt geïdentificeerd.

Retourwaarde

Een standaard HRESULT-waarde.

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);
ATLASSERT(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);
ATLASSERT(SUCCEEDED(hr));

hr = AtlAdvise (m_pSourceUnk, m_pSinkUnk, __uuidof(_IMyComponentEvents), &m_dwCustCookie);
ATLASSERT(SUCCEEDED(hr));    

// do something
CComBSTR bstrMsg(L"Hi there!");
((CMyComponent*)m_pSourceUnk)->Fire_ShowMyMsg(bstrMsg);

hr = AtlUnadvise (m_pSourceUnk, __uuidof(_IMyComponentEvents), m_dwCustCookie);
ATLASSERT(SUCCEEDED(hr));

AtlAdviseSinkMap

Roep deze functie aan om alle vermeldingen in de sink-gebeurtenistoewijzing van het object te adviseren of ongedaan te maken.

Belangrijk

Deze functie kan niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

HRESULT AtlAdviseSinkMap(T* pT, bool bAdvise);

Parameterwaarden

Pt
[in] Een aanwijzer naar het object met de sinktoewijzing.

bAdvise
[in] WAAR als alle sinkvermeldingen moeten worden geadviseerd; ONWAAR als alle sinkvermeldingen onaangetekend moeten zijn.

Retourwaarde

Een standaard HRESULT-waarde.

Example

class CMyDlg : 
   public CAxDialogImpl<CMyDlg>
{
public:
BEGIN_MSG_MAP(CMyDlg)
   MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
   COMMAND_HANDLER(IDOK, BN_CLICKED, OnClickedOK)
   COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnClickedCancel)
   CHAIN_MSG_MAP(CAxDialogImpl<CMyDlg>)
END_MSG_MAP()

   LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   {
      CAxDialogImpl<CMyDlg>::OnInitDialog(uMsg, wParam, lParam, bHandled);

      AtlAdviseSinkMap(this, TRUE);

      bHandled = TRUE;
      return 1;  // Let the system set the focus
   }

   // Remainder of class declaration omitted.

Zie ook

Functies
Verbindingspuntmacro's