コード例 #1
0
void CWordManager::DisconnectWordEventHandler()
{
	try
	{
		if ((m_WordLoader != NULL) && 
			(m_pEventHandler != NULL) && 
			(AfxIsValidAddress(*(void**) m_pEventHandler, sizeof(void*), FALSE) &&
			(AfxIsValidAddress(m_pEventHandler, m_pEventHandler->GetRuntimeClass()->m_nObjectSize, FALSE))))
		{
		
			LPUNKNOWN p_unk = m_pEventHandler->GetIDispatch(FALSE);
			AfxConnectionUnadvise(m_WordLoader.GetInterfacePtr(), 
				DIID___LMRA_XML_WordLoader, p_unk, FALSE, m_dwEventHandlerCookie);
		}
		else
		{
			m_pEventHandler = NULL;
		}
	}
	catch (...)
	{
		m_pEventHandler = NULL;
	}


	
	if(m_pEventHandler != NULL)
	{
		delete m_pEventHandler;
		m_pEventHandler = NULL;
	}
}
コード例 #2
0
CDiscFormatDataEvent::~CDiscFormatDataEvent()
{
	if (m_dwCookie && (m_pUnkSrc != NULL) && (m_pUnkSink != NULL))
	{
		AfxConnectionUnadvise(m_pUnkSrc, IID_DDiscFormat2DataEvents, m_pUnkSink,
			TRUE, m_dwCookie);
	}
}
コード例 #3
0
/**
 * Function name	CImplMsgSink::UnregisterMsgSource
 * Description			
 * @param			LPUNKNOWN lpUnkMsgSource
 * @param			DWORD dwCookie
 * @return			HRESULT 
 * @exception			
 * @see			    CMsgWnd
*/
HRESULT CImplMsgSink::UnregisterMsgSource(LPUNKNOWN lpUnkMsgSource, DWORD dwCookie) 
{
    ASSERT(lpUnkMsgSource != NULL);

    LPUNKNOWN           pUnkSink;
    BOOL                bResult;

    HRESULT hr = InternalQueryInterface((IID*)&IID_IUnknown, (void**)&pUnkSink);
    if(FAILED(hr)) 
    {
        return(hr);
    }

    bResult = AfxConnectionUnadvise(lpUnkMsgSource, IID__ICEMessageEvent, pUnkSink, TRUE, dwCookie);
    pUnkSink->Release();
    return(bResult ? S_OK : E_FAIL);
}
コード例 #4
0
void CGraphRightView::OnDestroy()
{
    if ( m_pGraphSink )
    {
        //Get a pointer to sinks IUnknown, no AddRef.
        LPUNKNOWN pUnkSink = m_pGraphSink->GetIDispatch(FALSE);

        CWnd* pWnd = nullptr;
        pWnd = GetDlgItem(IDC_DMGRAPH_CTRL);
        LPUNKNOWN pUnk = pWnd->GetControlUnknown();

        //Terminate a connection between source and sink.
        //m_pUnkSrc is IUnknown of server obtained by CoCreateInstance().
        //m_dwCookie is a value obtained through AfxConnectionAdvise().
        AfxConnectionUnadvise(pUnk, DIID__IDMGraphCtrlEvents, pUnkSink, FALSE, m_dwCookie);

        //Release the sink object
        delete m_pGraphSink;
        m_pGraphSink = nullptr;
    }
    CFormView::OnDestroy();
}
コード例 #5
0
ファイル: GnucleusDoc.cpp プロジェクト: swax/Gnucleus
void CGnucleusDoc::DisconnectCore()
{
	AfxConnectionUnadvise(m_autChat->m_lpDispatch, IID_IChatEvent, m_autChatSink->GetIDispatch(false), false, m_ChatEventCookie);
	delete m_autChatSink;
	m_autChatSink = NULL;

	AfxConnectionUnadvise(m_autUpdate->m_lpDispatch, IID_IUpdateEvent, m_autUpdateSink->GetIDispatch(false), false, m_UpdateEventCookie);
	delete m_autUpdateSink;
	m_autUpdateSink = NULL;

	AfxConnectionUnadvise(m_autUpload->m_lpDispatch, IID_IUploadEvent, m_autUploadSink->GetIDispatch(false), false, m_UploadEventCookie);
	delete m_autUploadSink;
	m_autUploadSink = NULL;

	AfxConnectionUnadvise(m_autDownload->m_lpDispatch, IID_IDownloadEvent, m_autDownloadSink->GetIDispatch(false), false, m_DownloadEventCookie);
	delete m_autDownloadSink;
	m_autDownloadSink = NULL;

	AfxConnectionUnadvise(m_autSearch->m_lpDispatch, IID_ISearchEvent, m_autSearchSink->GetIDispatch(false), false, m_SearchEventCookie);
	delete m_autSearchSink;
	m_autSearchSink = NULL;

	AfxConnectionUnadvise(m_autShare->m_lpDispatch, IID_IShareEvent, m_autShareSink->GetIDispatch(false), false, m_ShareEventCookie);
	delete m_autShareSink;
	m_autShareSink = NULL;

	AfxConnectionUnadvise(m_autNetwork->m_lpDispatch, IID_INetworkEvent, m_autNetworkSink->GetIDispatch(false), false, m_NetEventCookie);
	delete m_autNetworkSink;
	m_autNetworkSink = NULL;


	delete m_autChat;
	m_autChat = NULL;

	delete m_autUpdate;
	m_autUpdate = NULL;

	delete m_autUpload;
	m_autUpload = NULL;

	delete m_autDownload;
	m_autDownload = NULL;

	delete m_autSearch;
	m_autSearch = NULL;

	delete m_autShare;
	m_autShare = NULL;

	delete m_autMeta;
	m_autMeta = NULL;	

	delete m_autCache;
	m_autCache = NULL;

	delete m_autNetwork;
	m_autNetwork = NULL;

	delete m_autPrefs;
	m_autPrefs = NULL;

	delete m_autCore;
	m_autCore = NULL;
}