Sdílet prostřednictvím


Globální funkce bodů připojení

Tyto funkce poskytují podporu pro spojovací body a mapy jímky.

Důležité

Funkce uvedené v následující tabulce nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Function Popis
AtlAdvise Vytvoří propojení mezi připojovacím bodem objektu a jímkou klienta.
AtlUnadvise Ukončí připojení navázané prostřednictvím AtlAdvise.
AtlAdviseSinkMap Radí nebo nesousedí položky v mapě jímky událostí.

Požadavky

Hlavička: atlbase.h

AtlAdvise

Vytvoří propojení mezi připojovacím bodem objektu a jímkou klienta.

Důležité

Tuto funkci nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

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

Parametry

pUnkCP
[v] Ukazatel na IUnknown objekt, ke kterému se klient chce připojit.

punk
[v] Ukazatel na klienta IUnknown.

iid
[v] Identifikátor GUID spojovacího bodu. Obvykle je to stejné jako odchozí rozhraní spravované spojovacím bodem.

pdw
[ven] Ukazatel na soubor cookie, který jednoznačně identifikuje připojení.

Návratová hodnota

Standardní hodnota HRESULT.

Poznámky

Jímka implementuje odchozí rozhraní podporované spojovacím bodem. Klient pomocí souboru cookie pdw odebere připojení předáním do AtlUnadvise.

Příklad

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

Ukončí připojení vytvořené prostřednictvím AtlAdvise.

Důležité

Tuto funkci nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

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

Parametry

pUnkCP
[v] Ukazatel na IUnknown objekt, ke kterému je klient připojen.

iid
[v] Identifikátor GUID spojovacího bodu. Obvykle je to stejné jako odchozí rozhraní spravované spojovacím bodem.

Dw
[v] Soubor cookie, který jednoznačně identifikuje připojení.

Návratová hodnota

Standardní hodnota HRESULT.

Příklad

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

Voláním této funkce vytvoříte nebo zrušíte avízo o všech položkách v mapě událostí jímky objektu.

Důležité

Tuto funkci nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

HRESULT AtlAdviseSinkMap(T* pT, bool bAdvise);

Parametry

Pt
[v] Ukazatel na objekt obsahující mapu jímky.

bAdvise
[v] TRUE, pokud jsou všechny položky jímky doporučeno; NEPRAVDA, pokud mají být všechny položky jímky nesnadněny.

Návratová hodnota

Standardní hodnota HRESULT.

Příklad

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.

Viz také

Functions
Makra bodů připojení