Udostępnij za pośrednictwem


COleDispatchDriver::AttachDispatch

Wywołanie AttachDispatch Członkowskich funkcji dołączyć IDispatch wskaźnik do COleDispatchDriver obiektu.Aby uzyskać więcej informacji, zobacz Implementing the IDispatch Interface.

void AttachDispatch( 
   LPDISPATCH lpDispatch, 
   BOOL bAutoRelease = TRUE  
);

Parametry

  • lpDispatch
    Wskaźnik OLE IDispatch obiektu do COleDispatchDriver obiektu.

  • bAutoRelease
    Określa, czy wysyłkę zwolnione, gdy ten obiekt wykracza poza zakres.

Uwagi

Funkcja ta zwalnia żadnego IDispatch wskaźnik, który jest już dołączony do COleDispatchDriver obiektu.

Przykład

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.
}

Wymagania

Nagłówek: afxdisp.h

Zobacz też

Informacje

Klasa COleDispatchDriver

Diagram hierarchii

COleDispatchDriver::DetachDispatch

COleDispatchDriver::ReleaseDispatch

COleDispatchDriver::CreateDispatch

COleDispatchDriver::m_lpDispatch

COleDispatchDriver::m_bAutoRelease