// Base class [abstract] class __COMTaxonomy { }; // Used by GetCLSIDArrayForIID class __COMInterfaceSet : __COMTaxonomy // what was __ComMethodSet (otherwise unchanged) { [key] string CLSID; string Name; string IID[]; string IIDNames[]; }; // Used by GetCLSIDArrayForNames class __COMDispatchElement : __COMTaxonomy // this models a DispatchId/Name mapping { [key] string CLSID; [key] string dispID; // the Dispatch ID of the Method [description("")] string sName; // Name (description is the localizable equivalent) string sNamedArguments []; // for named method args only string sArgumentDispIDs []; // Dispatch IDs of named args }; // Used by GetCLSIDArrayForIID // ASSOCIATORS OF Path WHERE RETURNCLASS="__COMInterfaceSet" [assocation] class __COMInterfaceSetToClassBinding { [key] __COMInterfaceSet ref interfaceSet; [key] object ref TargetClass; }; // Used by GetCLSIDArrayForNames // ASSOCIATORS OF Path WHERE RETURNCLASS="__COMDispatchElement" [association] class __COMDispatchElementToClassBinding // models binding of a late-bound property/method to a class { [key] __COMDispatchElement ref dispatchElement; [key] object ref TargetClass; }; // Used by GetCLSIDArrayForNames // SAFEARRAY will contain array of instances of this class class __COMDispatchInfo { [key] string CLSID; [key] string dispID; string sArgumentDispIDs[]; };