PRB: This Interface Has Been Forwarded Error in Visual Basic with MTS (222634)



The information in this article applies to:

  • Microsoft Transaction Server 2.0

This article was previously published under Q222634

SYMPTOMS

After adding a new method to a component in Visual Basic and selecting Refresh, the user receives the following error:
This interface has been forwarded.

STATUS

This behavior is by design.

MORE INFORMATION

When you create a new method a new interface ID is created. Visual Basic keeps the old and new interface IDs and forwards information to the old ID. This creates a chain of GUIDs. By design, Microsoft Transaction Server (MTS) does not like these chains of forwarding; therefore, it gives you the error message. The proper way to handle this is to delete the component through the interface and add it back, eliminating the chain and error message.

The steps below can be used to reproduce the problem:

  1. In Visual Basic 5.0, create an ActiveX project, and add the following code:
    Public Function Func1()<BR/>
    End Function<BR/>
    						
  2. Compile the project into a .dll file.
  3. Copy the .dll file to Myref.dll.
  4. In the Project Properties Component tab set the project to Binary Compatibility, referencing Myref.dll
  5. Using MMC, add a new package.
  6. Using MMC, add the new component created above. The interface for Func1 appears.
  7. Add a new function to the Visual Basic project as follows:
    Public Function Func1()
    End Function
    
    Public Function Func2()
    End Function
    						
  8. Recompile the ActiveX DLL.
  9. Close the Microsoft Transaction Server Explorer and reopen the Microsoft Transaction Server Explorer (MMC). Open the interface folder.
The following error appears:
Some object properties could not be read due to the following errors: This interface has been forwarded

Modification Type:MajorLast Reviewed:6/12/2001
Keywords:kbDSupport kbprb KB222634