COleDispatchDriver::CreateDispatch
Crea un objeto de interfaz de IDispatch y lo asocia al objeto de COleDispatchDriver .
BOOL CreateDispatch(
REFCLSID clsid,
COleException* pError = NULL
);
BOOL CreateDispatch(
LPCTSTR lpszProgID,
COleException* pError = NULL
);
Parámetros
clsid
Identificador de la clase del objeto de conexión de IDispatch que se creará.pError
Puntero a un objeto de excepción OLE, que contendrá el código de estado resultando de creación.lpszProgID
Puntero al identificador de programación, como “Excel.Document.5”, objetos de automatización para el que el objeto de envío se debe crear.
Valor devuelto
Distinto de cero en correctamente; si no 0.
Ejemplo
void COleContainerView::OnCreateDispatch()
{
COleDispatchDriver disp;
COleException* pe = new COleException;
try
{
// Create instance of Microsoft System Information Control
// by using ProgID.
if (disp.CreateDispatch(_T("WMPlayer.OCX"), pe))
{
//Get uiMode.
CString strUIMode;
disp.InvokeHelper(23, DISPATCH_PROPERTYGET, VT_BSTR,
(void*)&strUIMode, NULL);
CString strMsg;
strMsg.Format(_T("WMP uiMode is %s."), strUIMode);
AfxMessageBox(strMsg);
}
else
{
throw pe;
}
}
//Catch control-specific exceptions.
catch (COleDispatchException* pe)
{
CString cStr;
if (!pe->m_strSource.IsEmpty())
cStr = pe->m_strSource + _T(" - ");
if (!pe->m_strDescription.IsEmpty())
cStr += pe->m_strDescription;
else
cStr += _T("unknown error");
AfxMessageBox(cStr, MB_OK,
(pe->m_strHelpFile.IsEmpty()) ? 0 : pe->m_dwHelpContext);
pe->Delete();
}
//Catch all MFC exceptions, including COleExceptions.
// OS exceptions will not be caught.
catch (CException* pe)
{
TRACE(_T("%s(%d): OLE Execption caught: SCODE = %x"),
__FILE__, __LINE__, COleException::Process(pe));
pe->Delete();
}
pe->Delete();
}
Requisitos
encabezado: afxdisp.h
Vea también
Referencia
COleDispatchDriver::DetachDispatch
COleDispatchDriver::ReleaseDispatch