Example #1
0
void CDwnDoc::Disconnect()
{
    CDocument* pDoc = _pDoc;

    if(pDoc)
    {
        Assert(IsDocThread());

        super::Disconnect();

        g_csDwnDoc.Enter();

        _pDoc = NULL;
        _fCallbacks = FALSE;

        g_csDwnDoc.Leave();

        if(_aryDwnDocInfo.Size())
        {
            OnDocThreadCallback();
            _aryDwnDocInfo.DeleteAll();
        }

        pDoc->SubRelease();
    }
}