Ошибка при использовании CComQIPtr...
От: cobold  
Дата: 04.03.03 08:31
Оценка:
Мне нужно использовать активх компонент в диалоге. Вот реализация(содранная по образу и подобию с WTLNavigator):






CComQIPtr<_DPdf> pdf;
IUnknown *m_pUnk;
...
LRESULT CMainDlg::OnOK(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{

    CWindow w= GetDlgItem(IDC_PDFCTRL2);
    AtlAxGetControl(w, &m_pUnk);
    pdf= m_pUnk;
    pdf->LoadFile(L"C:\\Program Files\\Adobe\\Acrobat 5.0\\Help\\ENU\\ACROBAT.PDF");

    return 0;
}

LRESULT CMainDlg::OnCancel(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
    m_pUnk->Release();
    EndDialog(wID);
    return 0;
}


это работает , до тех пор , пока не вызывается деструктор pdf, при выходе из программы.
Проблема, в том, что исчезает v_table.
Вопрос: чего не хватает в коде, для корректного завершения программы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.