Hi,

I would be grateful if someone would help me with a vTable question?

If an object exposes 2 duel interfaces would the vTables be laid out like this?

IUnknown
QueryInterface
AddRef
Release

IDispatch
QueryInterface
AddRef
Release
GetTypeInfoCount
GetTypeInfo
GetIDsOfNames
Invoke

_cClass1
QueryInterface
AddRef
Release
GetTypeInfoCount
GetTypeInfo
GetIDsOfNames
Invoke
Class1_Method1
Class1_Method2

_cClass2
QueryInterface
AddRef
Release
GetTypeInfoCount
GetTypeInfo
GetIDsOfNames
Invoke
Class2_Method1
Class2_Method2


Dan Appleman has an illustration of an object exposing 2 interfaces.
He has each one with a representation of its own IDispatch, but only one
implementation of IUnknown.

Example

IUnknown
IDispatch for _cClass1
_cClass1
IDispatch for _cClass2
_cClass2


Why 2 IDispatches? Would the vTables for this look like the ones above with an extra Idispatch?

Thanks for any help you can give!