PRB: CAsyncMonikerFile::Open() Fails in Visual C++ 5.0 Applications After Installing New Mfc42.dll

ID: Q217772


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, version 6.0


SYMPTOMS

After installing a Visual C++ 6.0 application that uses MFC, the Mfc42.dll that was shipped with Visual C++ 6.0 may be installed. This may cause problems for existing applications that were developed using MFC from Visual C++ 5.0 and that used the CAsyncMonikerFile class. In particular, a call to CAsyncMonikerFile::Open() will return an the following error:

An unknown error occurred while accessing an unknown file
This error occurs on machines that have Internet Explorer 3.02 or earlier installed.


CAUSE

This problem occurs because of a bug in Visual C++ 6.0's implementation of the CAsyncMonikerFile MFC class.


RESOLUTION

Use the following steps to work around this problem:

  1. Install Internet Explorer 4.0 or higher.


  2. Place the Mfc42.dll from the Visual C++ 5.0 version in the same directory as the EXE or DLL. This may not be an option if you depend Mfc42.dll being in the system directory. For example, an OCX that downloads over the Internet would use the version of MFC in the windows system directory.


  3. Link to MFC statically for any application developed with Visual C++ 5.0 and using CAsyncMonikerFile.

    NOTE: This method does not work for an OCX developed with Visual C++ 5.0 because you cannot link statically to MFC when developing an OCX in Visual C++ 5.0.


Additional query words: kbBug kbMFC Backward compatible bug MFC42.DLL port

Keywords : kbMFC kbVC500 kbVC600bug kbIE302 kbDSupport kbGrpMFCATL
Version : winnt:6.0
Platform : winnt
Issue type : kbprb


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