#define OLEDS_LIBIID_ADs 97d25db0-0363-11cf-abc4-02608c9e7553 #define OLEDS_IID_IADs fd8256d0-fd15-11ce-abc4-02608c9e7553 #define OLEDS_IID_IADsContainer 001677d0-fd16-11ce-abc4-02608c9e7553 #define OLEDS_IID_IADsClass c8f93dd0-4ae0-11cf-9e73-00aa004a5691 #define OLEDS_IID_IADsProperty c8f93dd3-4ae0-11cf-9e73-00aa004a5691 #define OLEDS_IID_IADsSyntax c8f93dd2-4ae0-11cf-9e73-00aa004a5691 #define OLEDS_IID_IADsCollection 72b945e0-253b-11cf-a988-00aa006bc149 #define OLEDS_IID_IADsMembers 451a0030-72ec-11cf-b03b-00aa006e0975 #define OLEDS_IID_IADsNamespaces 28b96ba0-b330-11cf-a9ad-00aa006bc149 #define OLEDS_IID_IADsDomain 00e4c220-fd16-11ce-abc4-02608c9e7553 #define OLEDS_IID_IADsLocality a05e03a2-effe-11cf-8abc-00c04fd8d503 #define OLEDS_IID_IADsO a1cd2dc6-effe-11cf-8abc-00c04fd8d503 #define OLEDS_IID_IADsOU a2f733b8-effe-11cf-8abc-00c04fd8d503 #define OLEDS_IID_IADsComputer efe3cc70-1d9f-11cf-b1f3-02608c9e7553 #define OLEDS_IID_IADsComputerOperations ef497680-1d9f-11cf-b1f3-02608c9e7553 #define OLEDS_IID_IADsGroup 27636b00-410f-11cf-b1ff-02608c9e7553 #define OLEDS_IID_IADsGroupOperations 257760a0-410f-11cf-b1ff-02608c9e7553 #define OLEDS_IID_IADsUser 3e37e320-17e2-11cf-abc4-02608c9e7553 #define OLEDS_IID_IADsPrintQueue b15160d0-1226-11cf-a985-00aa006bc149 #define OLEDS_IID_IADsPrintQueueOperations 124be5c0-156e-11cf-a986-00aa006bc149 #define OLEDS_IID_IADsPrintJob 32fb6780-1ed0-11cf-a988-00aa006bc149 #define OLEDS_IID_IADsPrintJobOperations 9a52db30-1ecf-11cf-a988-00aa006bc149 #define OLEDS_IID_IADsService 68af66e0-31ca-11cf-a98a-00aa006bc149 #define OLEDS_IID_IADsServiceOperations 5d7b33f0-31ca-11cf-a98a-00aa006bc149 #define OLEDS_IID_IADsFileService a89d1900-31ca-11cf-a98a-00aa006bc149 #define OLEDS_IID_IADsFileServiceOperations a02ded10-31ca-11cf-a98a-00aa006bc149 #define OLEDS_IID_IADsFileShare eb6dcaf0-4b83-11cf-a995-00aa006bc149 #define OLEDS_IID_IADsSession 398b7da0-4aab-11cf-ae2c-00aa006ebfb9 #define OLEDS_IID_IADsResource 34a05b20-4aab-11cf-ae2c-00aa006ebfb9 #define OLEDS_IID_IADsOpenDSObject ddf2891e-0f9c-11d0-8ad4-00c04fd8d503 #define OLEDS_IID_IADsSearch C69F7780-4008-11D0-B94C-00C04FD8D5A8 #define OLEDS_IID_IDirectoryObject e798de2c-22e4-11d0-84fe-00c04fd8d503 #define OLEDS_IID_IDirectorySearch 109ba8ec-92f0-11d0-a790-00c04fd8d5a8 #define OLEDS_IID_IDirectoryAttrMgmt 75db3b9c-a4d8-11d0-a79c-00c04fd8d5a8 #define OLEDS_IID_IADsPropertyList c6f602b6-8f69-11d0-8528-00c04fd8d503 #define OLEDS_IID_IADsAggregatee 1346ce8c-9039-11d0-8528-00c04fd8d503 #define OLEDS_IID_IADsAggregator 52db5fb0-941f-11d0-8529-00c04fd8d503 #define OLEDS_IID_IADsPropertyEntry 05792c8e-941f-11d0-8529-00c04fd8d503 #define OLEDS_CLSID_PropertyEntry 72d3edc2-a4c4-11d0-8533-00c04fd8d503 #define OLEDS_IID_IADsAttrInfo af1206f6-aef7-11d0-8537-00c04fd8d503 #define OLEDS_IID_IADsPropertyValue 79fa9ad0-a97c-11d0-8534-00c04fd8d503 #define OLEDS_CLSID_PropertyValue 7b9e38b0-a97c-11d0-8534-00c04fd8d503 #define OLEDS_IID_IADsValue 1e3ef0aa-aef5-11d0-8537-00c04fd8d503 #define OLEDS_IID_IADsAccessControlEntry b4f3a14c-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_CLSID_AccessControlEntry b75ac000-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_IID_IADsAccessControlList b7ee91cc-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_CLSID_AccessControlList b85ea052-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_IID_IADsSecurityDescriptor b8c787ca-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_CLSID_SecurityDescriptor b958f73c-9bdd-11d0-852c-00c04fd8d503 #define OLEDS_IID_IADsPathname d592aed4-f420-11d0-a36e-00c04fb950dc #define OLEDS_CLSID_Pathname 080d0d78-f421-11d0-a36e-00c04fb950dc #define OLEDS_IID_IDSSearch 3b5e8d88-fa53-11d0-8bdb-00c04fd8d503 #define OLEDS_IID_IDSObject 3d213801-fa53-11d0-8bdb-00c04fd8d503 #define OLEDS_IID_IDSAttrMgmt ae164493-fa64-11d0-8bdb-00c04fd8d503 #define OLEDS_IID_IADsLargeInteger 9068270b-0939-11d1-8be1-00c04fd8d503 #define OLEDS_CLSID_LargeInteger 927971f5-0939-11d1-8be1-00c04fd8d503 #define OLEDS_IID_IADsObjectOptions 46f14fda-232b-11d1-a808-00c04fd8d5a8 #define PROPERTY_RW(name,type, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] type * retval); \ \ [propput, id(prid)] \ HRESULT name([in] type name); #define PROPERTY_RO(name,type, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] type * retval); #define PROPERTY_LONG_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] long * retval); \ \ [propput, id(prid)] \ HRESULT name([in] long ln##name); #define PROPERTY_LONG_RO(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] long * retval); #define PROPERTY_BSTR_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] BSTR * retval); \ \ [propput, id(prid)] \ HRESULT name([in] BSTR bstr##name); #define PROPERTY_BSTR_RO(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] BSTR * retval); #define PROPERTY_VARIANT_BOOL_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] VARIANT_BOOL * retval); \ \ [propput, id(prid)] \ HRESULT name([in] VARIANT_BOOL f##name); #define PROPERTY_VARIANT_BOOL_RO(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] VARIANT_BOOL * retval); #define PROPERTY_VARIANT_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] VARIANT * retval); \ \ [propput, id(prid)] \ HRESULT name([in] VARIANT v##name); #define PROPERTY_VARIANT_RO(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] VARIANT * retval); \ #define PROPERTY_DATE_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] DATE * retval); \ \ [propput, id(prid)] \ HRESULT name([in] DATE da##name); #define PROPERTY_DATE_RO(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] DATE * retval); #define PROPERTY_DISPATCH_RW(name, prid) \ [propget, id(prid)] \ HRESULT name([out, retval] IDispatch ** retval); \ \ [propput, id(prid)] \ HRESULT name([in] IDispatch * p##name); #define DISPID_IADs_UPPER_BOUND 14 #define DISPID_IADsService_UPPER_BOUND DISPID_IADs_UPPER_BOUND + 18