Knowledge Base

PRB: Assertion While Switching Property Pages in OLE Control

Article ID: 140105

Article Last Modified on 11/21/2006


APPLIES TO


This article was previously published under Q140105

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:

127074 How to Use AFX_MANAGE_STATE in an OLE Control


Additional query words: kbvc200 kbvc210 kbvc220 kbvc400 kbmfc

Keywords: kbctrlcreate kbnoupdate kbprb kbpropsheet KB140105