Globale Verbindungspunkt-Funktionen
Diese Funktionen bieten Unterstützung für Verbindungspunkte und Senkenkarten.
Wichtig
Die in der folgenden Tabelle aufgeführten Funktionen können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Funktion | Beschreibung |
---|---|
AtlAdvise | Erstellt eine Verbindung zwischen dem Verbindungspunkt eines Objekts und der Senke eines Clients. |
AtlUnadvise | Beendet die verbindung, die über AtlAdvise . |
AtlAdviseSinkMap | Empfiehlt oder entfernt Einträge in einer Ereignissenkenzuordnung. |
Anforderungen
Kopfzeile: atlbase.h
AtlAdvise
Erstellt eine Verbindung zwischen dem Verbindungspunkt eines Objekts und der Senke eines Clients.
Wichtig
Diese Funktion kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.
HRESULT AtlAdvise(
IUnknown* pUnkCP,
IUnknown* pUnk,
const IID& iid,
LPDWORD pdw);
Parameter
pUnkCP
[in] Ein Zeiger auf das IUnknown
Objekt, mit dem der Client eine Verbindung herstellen möchte.
Punk
[in] Ein Zeiger auf die Clients IUnknown
.
iid
[in] Die GUID des Verbindungspunkts. In der Regel entspricht dies der ausgehenden Schnittstelle, die vom Verbindungspunkt verwaltet wird.
pdw
[out] Ein Zeiger auf das Cookie, das die Verbindung eindeutig identifiziert.
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Die Spüle implementiert die ausgehende Schnittstelle, die vom Verbindungspunkt unterstützt wird. Der Client verwendet das pdw-Cookie , um die Verbindung zu entfernen, indem er sie an AtlUnadvise übergibt.
Beispiel
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
Beendet die über AtlAdvise hergestellte Verbindung.
Wichtig
Diese Funktion kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.
HRESULT AtlUnadvise(
IUnknown* pUnkCP,
const IID& iid,
DWORD dw);
Parameter
pUnkCP
[in] Ein Zeiger auf das IUnknown
Objekt, mit dem der Client verbunden ist.
iid
[in] Die GUID des Verbindungspunkts. In der Regel entspricht dies der ausgehenden Schnittstelle, die vom Verbindungspunkt verwaltet wird.
dw
[in] Das Cookie, das die Verbindung eindeutig identifiziert.
Rückgabewert
Ein HRESULT-Standardwert.
Beispiel
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
Mit dieser Funktion melden Sie alle Einträge in der Senkereigniszuordnung des Objekts an oder ab.
Wichtig
Diese Funktion kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.
HRESULT AtlAdviseSinkMap(T* pT, bool bAdvise);
Parameter
Pt
[in] Ein Zeiger auf das Objekt, das die Senkenzuordnung enthält.
bAdvise
[in] TRUE, wenn alle Senkeneinträge empfohlen werden sollen; FALSE, wenn alle Senkeneinträge nicht angezeigt werden sollen.
Rückgabewert
Ein HRESULT-Standardwert.
Beispiel
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.