コード例 #1
0
ファイル: olesvr2.cpp プロジェクト: rickerliang/OpenNT
COleServerItem::~COleServerItem()
{
	m_bAutoDelete = FALSE;  // no delete during destructor

	// release any advise holders
	RELEASE(m_lpOleAdviseHolder);
	RELEASE(m_lpDataAdviseHolder);

	ExternalDisconnect();

	// disconnect from the document
	COleServerDoc* pDoc = GetDocument();
	if (pDoc != NULL)
	{
		// remove external lock from it
		if (m_bNeedUnlock)
		{
			pDoc->LockExternal(FALSE, TRUE);
			m_bNeedUnlock = FALSE;
		}

		// reset m_pEmbeddedItem if destroying embedded item
		if (pDoc->m_pEmbeddedItem == this)
			pDoc->m_pEmbeddedItem = NULL;

		// remove from list
		pDoc->RemoveItem(this);
	}

	// cleanup any references
	AfxOleUnlockApp();
}
コード例 #2
0
ファイル: olelink.cpp プロジェクト: jbeaurain/omaha_vs2010
COleLinkingDoc::~COleLinkingDoc()
{
	AFX_BEGIN_DESTRUCTOR

		ASSERT_VALID(this);

		ASSERT(!m_bVisibleLock);

		DisconnectViews();
		ASSERT(m_viewList.IsEmpty());

		Revoke();   // cleanup naming support

		ExternalDisconnect();

	AFX_END_DESTRUCTOR
}