COleDispatchDriver::AttachDispatch
Rufen Sie die AttachDispatch-Memberfunktion auf, um einen IDispatch Zeiger auf COleDispatchDriver-Objekt anzufügen. Weitere Informationen finden Sie unter Implementing the IDispatch Interface.
void AttachDispatch(
LPDISPATCH lpDispatch,
BOOL bAutoRelease = TRUE
);
Parameter
lpDispatch
Zeiger auf ein Objekt zum COleDispatchDriver angefügt werden Objekt OLE IDispatch.bAutoRelease
Gibt an, ob der Dispatch veröffentlicht werden soll, wenn dieses Objekt den Gültigkeitsbereich verlässt.
Hinweise
Diese Funktion gibt einen beliebigen IDispatch Zeiger frei, der bereits zum COleDispatchDriver-Objekt angefügt wird.
Beispiel
void COleContainerView::OnAttachDispatch()
{
CLSID clsidWMP;
LPDISPATCH pWMPDispatch = NULL;
COleDispatchDriver oddWMP;
try
{
AfxCheckError(::CLSIDFromProgID(_T("WMPlayer.OCX"), &clsidWMP));
AfxCheckError(::CoCreateInstance(clsidWMP, NULL, CLSCTX_INPROC_SERVER,
IID_IDispatch, (LPVOID*)&pWMPDispatch));
oddWMP.AttachDispatch(pWMPDispatch, TRUE);
pWMPDispatch = NULL; // our COleDispatchDriver now owns the interface
CString strUIMode;
oddWMP.GetProperty(23, VT_BSTR, (void*)&strUIMode);
TRACE(_T("WMP uiMode is %s.\n"), strUIMode);
}
catch (COleException* pe)
{
pe->ReportError();
pe->Delete();
}
catch (CMemoryException* pe)
{
pe->ReportError();
pe->Delete();
}
// cleanup
if (NULL != pWMPDispatch)
{
pWMPDispatch->Release();
}
// COleDispatchDriver automatically releases the dispatch interface when
// it goes out of scope if m_bAutoRelease is TRUE.
}
Anforderungen
Header: afxdisp.h
Siehe auch
Referenz
COleDispatchDriver::DetachDispatch
COleDispatchDriver::ReleaseDispatch
COleDispatchDriver::CreateDispatch