PRB: Assertion While Switching Property Pages in OLE Control

ID: Q140105


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 2.0, 2.1, 2.2, 4.0


SYMPTOMS

If you have implemented an OLE control that uses a basic MFC CPropertySheet as a user interface, you may receive the following error when trying to switch pages by clicking the tab:

Assertion Failed
OC30D.DLL: File DlgCore.CPP Line 194


CAUSE

This assertion occurs in _AfxCheckDialogTemplate, when MFC cannot find the dialog template resource for the property page.


RESOLUTION

The solution is to override CPropertyPage::OnSetActive and use AFX_MANAGE_STATE as in the following code:

Sample Code


   /* Compile options needed - none
      Add the following code to each of your CPropertyPage-derived classes.
   */ 
   BOOL CYourPropPage::OnSetActive()
   {
     AFX_MANAGE_STATE(_afxModuleAddrThis);
     return CPropertyPage::OnSetActive();
   } 
The prototype for OnSetActive must also be added to your CPropertyPage- derived class header file.


REFERENCES

For information on AFX_MANAGE_STATE, please see the following article in the Microsoft Knowledge Base:

Q127074 How to Use AFX_MANAGE_STATE in an OLE Control

Additional query words: kbvc200 kbvc210 kbvc220 kbvc400 kbmfc

Keywords : kbole kbMFC kbVC200 kbVC210 kbVC220 kbVC400
Version : 2.00 2.10 2.20 4.00
Platform : NT WINDOWS
Issue type : kbprb


Last Reviewed: July 22, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.