Microsoft KB Archive/169303

From BetaArchive Wiki
Knowledge Base

FIX: Get_Item() Doesn't Find Property Defined on Ancestor Iface

Article ID: 169303

Article Last Modified on 1/13/2001


  • Microsoft Visual Studio 97 Service Pack 3
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition

This article was previously published under Q169303


IReposProperties::get_item does not always find property defined on an ancestor interface.


Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This has been fixed with Visual Studio Service Pack 1.

For additional information about the Visual Studio 97 Service Pack 1, please see the following article in the Microsoft Knowledge Base:

170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why


Steps To Reproduce:

  1. Create an interface hierarchy. For example, I1 -> I2 -> I3.
  2. Create a propertydef with name "prop1" on I1.
  3. Create a class that implements only I3.
  4. Create an Instance of Class C.
  5. QI, "QueryInterface," for "C's" I3 Interface.
  6. I->get_Properties(&pIPropCol).
  7. plPropCol->get_Item("Prop1", ....).

Expected result:

  • Should return a property object which contains the dispid of this property and the value of Prop1.

Actual result:

  • Returns a Bogus property object containing invalid dispid.

Keywords: kbbug kbfix kbvbp500sp2fix kbvs97sp1fix kbvs97sp2fix kbvbp500sp1fix KB169303