FIX: Multiple ActiveX Control Containers Under Win32s Problems (152792)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Editions 4.0
    • Microsoft Visual C++, 32-bit Editions 4.1

This article was previously published under Q152792

SYMPTOMS

It is possible to use MFC versions 4.0 and 4.1 to create ActiveX control containers that will run under Win32s version 1.3. However if, after the container has been started under Win32s, another MFC ActiveX control container is started or a second instance of the same application is started, the second ActiveX control container can't display ActiveX controls if the first application has already displayed one of its ActiveX controls.

If the first application doesn't create its ActiveX controls first, then the second application can create ActiveX controls, but then the first application can't create ActiveX controls at all. Also, if you are running a debug build of the application, you will see an assertion in Appinit.cpp at line 110 when the second application starts up.

CAUSE

This is caused by improper initialization of the MFC and C-Run-Time DLLs under Win32s.

RESOLUTION

The assertion in Appinit.cpp at line 110 can be safely ignored. Note that assertions are only included in debug builds of MFC applications. There currently is no work around to the problem of a second MFC app being able to use MFC control container support under Win32s.

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 the Visual C++ 4.1b patch.

For information of the availablity of the patch, see the following Microsoft Knowlegdebase article:

154428 PATCH: Visual C++ Version 4.1b


Modification Type:MajorLast Reviewed:10/24/2003
Keywords:kbBug kbContainer kbCtrl kbfix kbNoUpdate kbVC410fix KB152792