import "oaidl.idl"; import "ocidl.idl"; // generic interfaces that express a set of items [ helpstring("Unknown Object Array"), uuid(92CA9DCD-5622-4bba-A805-5E9F541BD8C9), object, pointer_default(unique) ] interface IObjectArray : IUnknown { HRESULT GetCount([out] UINT *pcObjects); HRESULT GetAt([in] UINT uiIndex, [in] REFIID riid, [out, iid_is(riid)] void **ppv); } [ uuid(5632b1a4-e38a-400a-928a-d4cd63230295), object, pointer_default(unique) ] interface IObjectCollection : IObjectArray { HRESULT AddObject([in] IUnknown *punk); HRESULT AddFromArray([in] IObjectArray *poaSource); HRESULT RemoveObjectAt([in] UINT uiIndex); HRESULT Clear(); }