Article ID: 193265
Article Last Modified on 5/12/2003
APPLIES TO
- Microsoft Visual Basic 5.0 Learning Edition
- Microsoft Visual Basic 6.0 Learning Edition
- Microsoft Visual Basic 5.0 Professional Edition
- Microsoft Visual Basic 6.0 Professional Edition
- Microsoft Visual Basic 5.0 Enterprise Edition
- Microsoft Visual Basic 6.0 Enterprise Edition
- Microsoft Visual C++ 5.0 Enterprise Edition
- Microsoft Visual C++ 6.0 Enterprise Edition
- Microsoft Visual C++ 5.0 Professional Edition
- Microsoft Visual C++ 6.0 Professional Edition
- Microsoft Visual C++ 6.0 Standard Edition
This article was previously published under Q193265
SYMPTOMS
When using a COM component from Visual Basic, you may not receive a compile-
time error if you accidentally misspell a property or method name. Instead,
Visual Basic will generate the following error at run-time:
Run-time error '438':
Object does not support this property or method.
CAUSE
This situation occurs when the object being referenced supports a dual or
dispinterface, and therefore can be late-bound. If the component designer
did not mark the interface as being "nonextensible," then Visual Basic
cannot determine if the misspelled method/property name is misspelled, or
if it is a new method or property added to the interface at a later time.
Consequently, Visual Basic does not raise an error at compile-time, but
rather checks at run-time whether the component supports a method/property
by that name. The run-time error occurs if the object does not have the
named method/property.
The COM component creator can indicate whether or not an interface can be
extended at a later time. If the interface is marked as "nonextensible,"
then Visual Basic will know at compile-time whether the object supports the
named method/property.
STATUS
This behavior is by design.
Additional query words: exist nonexistent
Keywords: kbctrlcreate kbprb KB193265