6 Appendix A: Full IDL
For ease of implementation, the full IDL is provided below, where "ms-oaut.idl" is the IDL found in [MS-OAUT] Appendix A.
-
import "ms-oaut.idl"; interface IEventObjectCollection; [ object, uuid(4E14FB9F-2E22-11D1-9964-00C04FBBB345), dual, helpstring("IEventSystem Interface"), pointer_default(unique) ] interface IEventSystem : IDispatch { [id(1), helpstring("method Query")] HRESULT Query([in] BSTR progID, [in] BSTR queryCriteria, [out] int* errorIndex, [out,retval] IUnknown** ppInterface); [id(2), helpstring("method Store")] HRESULT Store([in] BSTR ProgID, [in] IUnknown* pInterface); [id(3), helpstring("method Remove")] HRESULT Remove([in] BSTR progID, [in] BSTR queryCriteria, [out] int* errorIndex); [id(4), propget, helpstring("method get_EventObjectChangeEventClassID")] HRESULT EventObjectChangeEventClassID([out,retval] BSTR* pbstrEventClassID); [id(5), helpstring("method QueryS")] HRESULT QueryS([in] BSTR progID, [in] BSTR queryCriteria, [out,retval] IUnknown** ppInterface); [id(6), helpstring("method RemoveS")] HRESULT RemoveS([in] BSTR progID, [in] BSTR queryCriteria); }; [ object, uuid(fb2b72a0-7a68-11d1-88f9-0080c7d771bf), dual, helpstring("IEventClass Interface"), pointer_default(unique) ] interface IEventClass : IDispatch { [propget, id(1), helpstring("property EventClassID")] HRESULT EventClassID([out,retval] BSTR* pbstrEventClassID); [propput, id(1), helpstring("property EventClassID")] HRESULT EventClassID([in] BSTR bstrEventClassID); [propget, id(2), helpstring("property EventClassName")] HRESULT EventClassName([out,retval] BSTR* pbstrEventClassName); [propput, id(2), helpstring("property EventClassName")] HRESULT EventClassName([in] BSTR bstrEventClassName); [propget, id(3), helpstring("property OwnerSID")] HRESULT OwnerSID([out,retval] BSTR* pbstrOwnerSID); [propput, id(3), helpstring("property OwnerSID")] HRESULT OwnerSID([in] BSTR bstrOwnerSID); [propget, id(4), helpstring("property FiringInterfaceID")] HRESULT FiringInterfaceID([out,retval] BSTR* pbstrFiringInterfaceID); [propput, id(4), helpstring("property FiringInterfaceID")] HRESULT FiringInterfaceID([in] BSTR bstrFiringInterfaceID); [propget, id(5), helpstring("property Description")] HRESULT Description([out,retval] BSTR* pbstrDescription); [propput, id(5), helpstring("property Description")] HRESULT Description([in] BSTR bstrDescription); // Local only HRESULT Opnum17NotUsedOnWire(void); // Local only HRESULT Opnum18NotUsedOnWire(void); [propget, id(7), helpstring("property TypeLib")] HRESULT TypeLib([out,retval] BSTR* pbstrTypeLib); [propput, id(7), helpstring("property TypeLib")] HRESULT TypeLib([in] BSTR bstrTypeLib); }; [ object, uuid(fb2b72a1-7a68-11d1-88f9-0080c7d771bf), dual, helpstring("IEventClass2 Interface"), pointer_default(unique) ] interface IEventClass2 : IEventClass { [id(8), propget, helpstring("property PublisherID")] HRESULT PublisherID([out,retval] BSTR* pbstrPublisherID); [id(8), propput, helpstring("property PublisherID")] HRESULT PublisherID([in] BSTR bstrPublisherID); [id(9), propget, helpstring("property MultiInterfacePublisherFilterCLSID")] HRESULT MultiInterfacePublisherFilterCLSID([out,retval] BSTR* pbstrPubFilCLSID); [id(9), propput, helpstring("property MultiInterfacePublisherFilterCLSID")] HRESULT MultiInterfacePublisherFilterCLSID([in] BSTR bstrPubFilCLSID); [id(10), propget, helpstring("property AllowInprocActivation")] HRESULT AllowInprocActivation([out,retval]BOOL* pfAllowInprocActivation); [id(10), propput, helpstring("property AllowInprocActivation")] HRESULT AllowInprocActivation([in]BOOL fAllowInprocActivation); [id(11), propget, helpstring("property FireInParallel")] HRESULT FireInParallel([out,retval]BOOL* pfFireInParallel); [id(11), propput, helpstring("property FireInParallel")] HRESULT FireInParallel([in]BOOL fFireInParallel); } [ object, uuid(F4A07D63-2E25-11D1-9964-00C04FBBB345), helpstring("IEnumEventObject Interface"), pointer_default(unique) ] interface IEnumEventObject : IUnknown { [id(1), helpstring("method Clone")] HRESULT Clone([out] IEnumEventObject** ppInterface); [id(3), helpstring("method Next")] HRESULT Next([in] ULONG cReqElem, [out,size_is(cReqElem), length_is(*cRetElem)] IUnknown** ppInterface, [out] ULONG* cRetElem); [id(4), helpstring("method Reset")] HRESULT Reset(); [id(5), helpstring("method Skip")] HRESULT Skip([in] ULONG cSkipElem); }; [ object, uuid(f89ac270-d4eb-11d1-b682-00805fc79216), dual, helpstring("IEventObjectCollection Interface"), pointer_default(unique) ] interface IEventObjectCollection : IDispatch { [id(DISPID_NEWENUM), propget, restricted, helpstring("Create new IEnumVARIANT")] HRESULT _NewEnum([out,retval] IUnknown** ppUnkEnum); [id(DISPID_VALUE), propget] HRESULT Item([in] BSTR objectID, [out,retval] VARIANT* pItem); [id(1), propget, helpstring("Create new IEnumEventObject")] HRESULT NewEnum([out,retval] IEnumEventObject** ppEnum); [id(2), propget, helpstring("Number of items in the collection")] HRESULT Count([out,retval] long* pCount); [id(3), helpstring("Add an item to the collection")] HRESULT Add([in] VARIANT* item, [in] BSTR objectID); [id(4), helpstring("Remove an item from the collection")] HRESULT Remove([in] BSTR objectID); } [ object, uuid(4A6B0E15-2E38-11D1-9965-00C04FBBB345), dual, helpstring("IEventSubscription Interface"), pointer_default(unique) ] interface IEventSubscription : IDispatch { [propget, id(1), helpstring("property SubscriptionID")] HRESULT SubscriptionID([out,retval] BSTR* pbstrSubscriptionID); [propput, id(1), helpstring("property SubscriptionID")] HRESULT SubscriptionID([in] BSTR bstrSubscriptionID); [propget, id(2), helpstring("property SubscriptionName")] HRESULT SubscriptionName([out,retval] BSTR* pbstrSubscriptionName); [propput, id(2), helpstring("property SubscriptionName")] HRESULT SubscriptionName([in] BSTR bstrSubscriptionName); [propget, id(3), helpstring("property PublisherID")] HRESULT PublisherID([out,retval] BSTR* pbstrPublisherID); [propput, id(3), helpstring("property PublisherID")] HRESULT PublisherID([in] BSTR bstrPublisherID); [propget, id(4), helpstring("property EventClassID")] HRESULT EventClassID([out,retval] BSTR* pbstrEventClassID); [propput, id(4), helpstring("property EventClassID")] HRESULT EventClassID([in] BSTR bstrEventClassID); [propget, id(5), helpstring("property MethodName")] HRESULT MethodName([out,retval] BSTR* pbstrMethodName); [propput, id(5), helpstring("property MethodName")] HRESULT MethodName([in] BSTR bstrMethodName); [propget, id(6), helpstring("property SubscriberCLSID")] HRESULT SubscriberCLSID([out,retval] BSTR* pbstrSubscriberCLSID); [propput, id(6), helpstring("property SubscriberCLSID")] HRESULT SubscriberCLSID([in] BSTR bstrSubscriberCLSID); [propget, id(7), helpstring("property SubscriberInterface")] HRESULT SubscriberInterface([out,retval] IUnknown** ppSubscriberInterface); [propput, id(7), helpstring("property SubscriberInterface")] HRESULT SubscriberInterface([in] IUnknown* pSubscriberInterface); [propget, id(8), helpstring("property PerUser")] HRESULT PerUser([out,retval] BOOL* pfPerUser); [propput, id(8), helpstring("property PerUser")] HRESULT PerUser([in] BOOL fPerUser); [propget, id(9), helpstring("property OwnerSID")] HRESULT OwnerSID([out,retval] BSTR* pbstrOwnerSID); [propput, id(9), helpstring("property OwnerSID")] HRESULT OwnerSID([in] BSTR bstrOwnerSID); [propget, id(10), helpstring("property Enabled")] HRESULT Enabled([out,retval] BOOL* pfEnabled); [propput, id(10), helpstring("property Enabled")] HRESULT Enabled([in] BOOL fEnabled); [propget, id(11), helpstring("property Description")] HRESULT Description([out,retval] BSTR* pbstrDescription); [propput, id(11), helpstring("property Description")] HRESULT Description([in] BSTR bstrDescription); [propget, id(12), helpstring("property MachineName")] HRESULT MachineName([out,retval] BSTR* pbstrMachineName); [propput, id(12), helpstring("property MachineName")] HRESULT MachineName([in] BSTR bstrMachineName); [id(13), helpstring("method GetPublisherProperty")] HRESULT GetPublisherProperty([in] BSTR bstrPropertyName, [out,retval] VARIANT* propertyValue); [id(14), helpstring("method PutPublisherProperty")] HRESULT PutPublisherProperty([in] BSTR bstrPropertyName, [in] VARIANT* propertyValue); [id(15), helpstring("method RemovePublisherProperty")] HRESULT RemovePublisherProperty([in] BSTR bstrPropertyName); [id(16), helpstring("method GetPublisherPropertyCollection")] HRESULT GetPublisherPropertyCollection([out,retval] IEventObjectCollection** collection); [id(17), helpstring("method GetSubscriberProperty")] HRESULT GetSubscriberProperty([in] BSTR bstrPropertyName, [out,retval] VARIANT* propertyValue); [id(18), helpstring("method PutSubscriberProperty")] HRESULT PutSubscriberProperty([in] BSTR bstrPropertyName, [in] VARIANT* propertyValue); [id(19), helpstring("method RemoveSubscriberProperty")] HRESULT RemoveSubscriberProperty([in] BSTR bstrPropertyName); [id(20), helpstring("method GetSubscriberPropertyCollection")] HRESULT GetSubscriberPropertyCollection([out,retval] IEventObjectCollection** collection); [id(21), propget, helpstring("property InterfaceID")] HRESULT InterfaceID([out,retval] BSTR* pbstrInterfaceID); [id(21), propput, helpstring("property InterfaceID")] HRESULT InterfaceID([in] BSTR bstrInterfaceID); }; [ object, uuid(4A6B0E16-2E38-11D1-9965-00C04FBBB345), dual, helpstring("IEventSubscription2 Interface"), pointer_default(unique) ] interface IEventSubscription2 : IEventSubscription { [propget, id(22), helpstring("property FilterCriteria")] HRESULT FilterCriteria([out,retval] BSTR* pbstrFilterCriteria); [propput, id(22), helpstring("property FilterCriteria")] HRESULT FilterCriteria([in] BSTR bstrFilterCriteria); [propget, id(23), helpstring("property SubscriberMoniker")] HRESULT SubscriberMoniker([out,retval] BSTR* pbstrMoniker); [propput, id(23), helpstring("property SubscriberMoniker")] HRESULT SubscriberMoniker([in] BSTR bstrMoniker); } [ object, uuid(7FB7EA43-2D76-4ea8-8CD9-3DECC270295E), dual, helpstring("IEventClass3 Interface"), pointer_default(unique) ] interface IEventClass3 : IEventClass2 { [id(12), propget, helpstring("property EventClassPartitionID")] HRESULT EventClassPartitionID([out,retval] BSTR* pbstrEventClassPartitionID); [id(12), propput, helpstring("property EventClassPartitionID")] HRESULT EventClassPartitionID([in] BSTR bstrEventClassPartitionID); [id(13), propget, helpstring("property EventClassApplicationID")] HRESULT EventClassApplicationID([out,retval] BSTR* pbstrEventClassApplicationID); [id(13), propput, helpstring("property EventClassApplicationID")] HRESULT EventClassApplicationID([in] BSTR bstrEventClassApplicationID); } [ object, uuid(FBC1D17D-C498-43a0-81AF-423DDD530AF6), dual, helpstring("IEventSubscription3 Interface"), pointer_default(unique) ] interface IEventSubscription3 : IEventSubscription2 { [propget, id(24), helpstring("property EventClassPartitionID")] HRESULT EventClassPartitionID([out,retval] BSTR* pbstrEventClassPartitionID); [propput, id(24), helpstring("property EventClassPartitionID")] HRESULT EventClassPartitionID([in] BSTR bstrEventClassPartitionID); [propget, id(25), helpstring("property EventClassApplicationID")] HRESULT EventClassApplicationID([out,retval] BSTR* pbstrEventClassApplicationID); [propput, id(25), helpstring("property EventClassApplicationID")] HRESULT EventClassApplicationID([in] BSTR bstrEventClassApplicationID); [propget, id(26), helpstring("property SubscriberPartitionID")] HRESULT SubscriberPartitionID([out,retval] BSTR* pbstrSubscriberPartitionID); [propput, id(26), helpstring("property SubscriberPartitionID")] HRESULT SubscriberPartitionID([in] BSTR bstrSubscriberPartitionID); [propget, id(27), helpstring("property SubscriberApplicationID")] HRESULT SubscriberApplicationID([out,retval] BSTR* pbstrSubscriberApplicationID); [propput, id(27), helpstring("property SubscriberApplicationID")] HRESULT SubscriberApplicationID([in] BSTR bstrSubscriberApplicationID); }; [ object, uuid(99CC098F-A48A-4e9c-8E58-965C0AFC19D5), dual, helpstring("IEventSystem2 Interface"), pointer_default(unique) ] interface IEventSystem2 : IEventSystem { [id(7), helpstring("method GetVersion")] HRESULT GetVersion([out] int* pnVersion); [id(8), helpstring("method VerifyTransientSubscribers")] HRESULT VerifyTransientSubscribers(); } [ uuid(a0e8f27a-888c-11d1-b763-00c04fb926af), pointer_default(unique) ] interface IEventSystemInitialize : IUnknown { HRESULT SetCOMCatalogBehaviour(BOOL bRetainSubKeys); };