Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.