Aracılığıyla paylaş


Bağlantı Noktası Genel İşlevleri

Bu işlevler bağlantı noktaları ve havuz haritaları için destek sağlar.

Önemli

Aşağıdaki tabloda listelenen işlevler, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

İşlev Tanım
AtlAdvise Bir nesnenin bağlantı noktası ve istemcinin havuzu arasında bir bağlantı oluşturur.
AtlUnadvise aracılığıyla AtlAdvisekurulan bağlantıyı sonlandırır.
AtlAdviseSinkMap Bir olay havuzu eşlemesindeki girişleri önerir veya unadvises.

Gereksinimler

Üst bilgi: atlbase.h

AtlAdvise

Bir nesnenin bağlantı noktası ve istemcinin havuzu arasında bir bağlantı oluşturur.

Önemli

Bu işlev, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

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

Parametreler

pUnkCP
[in] İstemcinin IUnknown bağlanmak istediği nesnenin işaretçisi.

Punk
[in] İstemcinin işaretçisi IUnknown.

ııd
[in] Bağlantı noktasının GUID'i. Bu genellikle bağlantı noktası tarafından yönetilen giden arabirimle aynıdır.

Pdw
[out] Bağlantıyı benzersiz olarak tanımlayan tanımlama bilgisinin işaretçisi.

İade Değeri

Standart bir HRESULT değeri.

Açıklamalar

Havuz, bağlantı noktası tarafından desteklenen giden arabirimi uygular. İstemci, bağlantıyı AtlUnadvise'ye geçirerek kaldırmak için pdw tanımlama bilgisini kullanır.

Örnek

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

AtlAdvise aracılığıyla kurulan bağlantıyı sonlandırır.

Önemli

Bu işlev, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

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

Parametreler

pUnkCP
[in] İstemcinin IUnknown bağlı olduğu nesnenin işaretçisi.

ııd
[in] Bağlantı noktasının GUID'i. Bu genellikle bağlantı noktası tarafından yönetilen giden arabirimle aynıdır.

Dw
[in] Bağlantıyı benzersiz olarak tanımlayan tanımlama bilgisi.

İade Değeri

Standart bir HRESULT değeri.

Örnek

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

Nesnenin havuz olayı eşlemesindeki tüm girişleri önermek veya öneriyi kaldırmak için bu işlevi çağırın.

Önemli

Bu işlev, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

HRESULT AtlAdviseSinkMap(T* pT, bool bAdvise);

Parametreler

Pt
[in] Havuz eşlemesini içeren nesnenin işaretçisi.

bVise ekle
[in] Tüm havuz girdilerinin önerilmesi gerekiyorsa TRUE; Tüm havuz girdileri unadvised olacaksa YANLIŞ.

İade Değeri

Standart bir HRESULT değeri.

Örnek

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.

Ayrıca bkz.

İşlevler
Bağlantı Noktası Makroları