BUG: Tstcon32.exe Cannot Invoke Method with BSTR* Parameter Type (199942)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
    • Microsoft Visual C++, 32-bit Professional Edition 6.0
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft Visual C++ .NET (2002)

This article was previously published under Q199942

SYMPTOMS

The ActiveX Control Test Container (version 6.0.8063) that ships with Visual C++ 6.0 and Visual C++.NET fail to invoke a method of an MFC ActiveX control that has BSTR* parameter type.

CAUSE

Microsoft has confirmed that this is a bug in Visual C++ 6.0 and Visual C++.NET ActiveX Control Test Container.

RESOLUTION

To work around this issue:
  • Use containers such as Visual Basic.
  • Use LPCTSTR as the parameter type.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Use the MFC ActiveX ControlWizard to create an ActiveX control project.
  2. Add a method to the ActiveX control as follows:
    void CMyControl::Test(BSTR FAR* Par1)
          {
             // TODO: Add your dispatch handler code here
             AfxMessageBox("In Test");
             return 0;
          }
    					
  3. Build the control project.
  4. Insert the control to the ActiveX Control Test Container of Visual C++ 6.0 or Visual C++.NET.
  5. Invoke the Test() method in the ActiveX Control Test Container and the message box does not appear. The following error is displayed in the output window of Visual C++:
First-chance exception in TSTCON32.EXE (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception. Warning: automation argument coercion failed. First-chance exception in TSTCON32.EXE (KERNEL32.DLL): 0xE06D7363: Microsoft C++

Modification Type:MajorLast Reviewed:12/11/2003
Keywords:kbBug kbContainer kbCtrl kbMiscTools kbNoUpdate KB199942