BUG: ClassView does not show all methods for an interface in Visual C++ 6.0 (247713)
The information in this article applies to:
- 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
This article was previously published under Q247713 SYMPTOMS
In ClassView, an interface node inside a class that implements the interface does not contain all of the interface methods. Instead, one or more of the methods appears as regular class member functions.
CAUSE
The misplaced method contains at least one parameter that is mismatched with the data type specified in the interface description. This may occur when using logically equivalent types, or when "struct" or "class" is specified as part of a parameter's data type.
RESOLUTION
If the method contains logically equivalent types, edit the interface's .idl file or the class's .h file so the declarations match exactly. For example, if the .idl file contains the method
HRESULT MyMethod(BYTE * p);
and the .h file declares the implementation method as
HRESULT MyMethod(PBYTE p);
modify the PBYTE in the .h file to read BYTE *.
If the .idl file explicitly specifies a class or structure in a parameter type declaration, modify the declaration to use a typedef equivalent. For example, instead of
struct MyStruct
{
int i;
};
...
interface IMyIF
{
HRESULT MyMethod(struct MyStruct * pMyStruct);
}
use the following:
typedef struct MyStruct_tag
{
int i;
} MyStruct;
...
interface IMyIF
{
HRESULT MyMethod(MyStruct * pMyStruct);
}
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.REFERENCES
For more information about the ClassView display, click the following article numbers to view the articles in the Microsoft Knowledge Base:
201097
ClassView does not display COM interface nodes
138953 BUG: Static identifiers do not show up in ClassView
194840 FIX: The "*" key does not expand all ClassView branches properly
167905 How to exclude include file class definitions from ClassView
140439 FIX: Namespace scoped casses don't show up in ClassView
205402 FIX: ClassView doesn't show derived classes in embedded namespace
Modification Type: | Major | Last Reviewed: | 9/1/2005 |
---|
Keywords: | kbBug kbClassView kbide kbwizard KB247713 kbAudDeveloper |
---|
|