Microsoft KB Archive/157893

= FIX: Closing an ActiveX Control Project Crashes DevStudio =

Article ID: 157893

Article Last Modified on 11/21/2006

-

APPLIES TO

 Microsoft Foundation Class Library 4.2, when used with:  Microsoft Visual C++ 4.2 Enterprise Edition

 Microsoft Visual C++ 4.2 Professional Edition 

-



This article was previously published under Q157893



SYMPTOMS
When opening or closing a project in Developer Studio, you may see an access violation with the following error message:

  [ASCII 147]MSDEV CAUSED AN INVALID PAGE FAULT IN MODULE MSVCRES.DLL at  0137:503126ba.[ASCII 148]

This behavior occurs if the Properties window for a ControlWizard- generated ActiveX Control is invoked in the dialog editor.



CAUSE
This is due to a bug in the MFC 4.2 libraries.

<div class="resolution_section">

RESOLUTION
To obtain this patch, please refer to the following article in the Microsoft Knowledge Base:

156934 Visual C++ 4.2b Patch

The problem occurs because IOleObject::SetClientSite(NULL) does not release its existing pointer to ambient property interface. For example, COleControl::XOleObject::SetClientSite(NULL) doesn[ASCII 146]t call pThis->m_ambientDispDriver.ReleaseDispatch;.

The problem was fixed by adding the following line to COleControl::XOleObject::SetClientSite in the MFC source code: // Release existing pointer to ambient property dispinterface. pThis->m_ambientDispDriver.ReleaseDispatch; if (pClientSite != NULL)

<div class="status_section">

STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ 4.2B patch.

<div class="moreinformation_section">

Steps to Reproduce Problem

 * 1) Create a new ActiveX Control using Control Wizard, and then build the control to register it.
 * 2) Create a new MFC Control Container application, and insert this OLE control into the About box.
 * 3) Double-click on the control to bring up the Properties window. Click on any tab of the Properties window.
 * 4) Close the project workspace, open a new project workspace, or close Developer Studio. Note that Developer Studio crashes with a page fault message.

If you have an existing project that has a Control Wizard-generated control built with Visual C++ 4.2 in a dialog resource, click on the [ASCII 147]Control[ASCII 148] tab in the Properties window for the control, and then close the project, open a new project, or close Developer Studio.

Additional query words: 4.20 vcfixlist420 kbdsi

Keywords: kbbug kbctrl kbfix KB157893

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.