1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_WSDDISCO 7 #define _INC_WSDDISCO 8 9 #ifndef _INC_WSDAPI 10 #error Please include wsdapi.h instead of this header. This header cannot be used directly. 11 #endif 12 13 #if (_WIN32_WINNT >= 0x0600) 14 15 #undef INTERFACE 16 #define INTERFACE IWSDScopeMatchingRule 17 #ifdef __GNUC__ 18 #warning COM interfaces layout in this header has not been verified. 19 #warning COM interfaces with incorrect layout may not work at all. 20 __MINGW_BROKEN_INTERFACE(INTERFACE) 21 #endif 22 DECLARE_INTERFACE_(IWSDScopeMatchingRule,IUnknown) 23 { 24 BEGIN_INTERFACE 25 26 /* IUnknown methods */ 27 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 28 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 29 STDMETHOD_(ULONG, Release)(THIS) PURE; 30 31 /* IWSDScopeMatchingRule methods */ 32 STDMETHOD_(HRESULT,GetScopeRule)(THIS_ LPCWSTR *ppszScopeMatchingRule) PURE; 33 STDMETHOD_(HRESULT,MatchScopes)(THIS_ LPCWSTR pszScope1,LPCWSTR pszScope2,BOOL *pfMatch) PURE; 34 35 END_INTERFACE 36 }; 37 #ifdef COBJMACROS 38 #define IWSDScopeMatchingRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 39 #define IWSDScopeMatchingRule_AddRef(This) (This)->lpVtbl->AddRef(This) 40 #define IWSDScopeMatchingRule_Release(This) (This)->lpVtbl->Release(This) 41 #define IWSDScopeMatchingRule_GetScopeRule(This,ppszScopeMatchingRule) (This)->lpVtbl->GetScopeRule(This,ppszScopeMatchingRule) 42 #define IWSDScopeMatchingRule_MatchScopes(This,pszScope1,pszScope2,pfMatch) (This)->lpVtbl->MatchScopes(This,pszScope1,pszScope2,pfMatch) 43 #endif /*COBJMACROS*/ 44 45 #undef INTERFACE 46 #define INTERFACE IWSDiscoveryPublisherNotify 47 #ifdef __GNUC__ 48 #warning COM interfaces layout in this header has not been verified. 49 #warning COM interfaces with incorrect layout may not work at all. 50 __MINGW_BROKEN_INTERFACE(INTERFACE) 51 #endif 52 DECLARE_INTERFACE_(IWSDiscoveryPublisherNotify,IUnknown) 53 { 54 BEGIN_INTERFACE 55 56 /* IUnknown methods */ 57 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 58 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 59 STDMETHOD_(ULONG, Release)(THIS) PURE; 60 61 /* IWSDiscoveryPublisherNotify methods */ 62 STDMETHOD_(HRESULT,ProbeHandler)(THIS_ const WSD_SOAP_MESSAGE *pSoap,IWSDMessageParameters *pMessageParameters) PURE; 63 STDMETHOD_(HRESULT,ResolveHandler)(THIS_ const WSD_SOAP_MESSAGE *pSoap,IWSDMessageParameters *pMessageParameters) PURE; 64 65 END_INTERFACE 66 }; 67 #ifdef COBJMACROS 68 #define IWSDiscoveryPublisherNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 69 #define IWSDiscoveryPublisherNotify_AddRef(This) (This)->lpVtbl->AddRef(This) 70 #define IWSDiscoveryPublisherNotify_Release(This) (This)->lpVtbl->Release(This) 71 #define IWSDiscoveryPublisherNotify_ProbeHandler(This,pSoap,pMessageParameters) (This)->lpVtbl->ProbeHandler(This,pSoap,pMessageParameters) 72 #define IWSDiscoveryPublisherNotify_ResolveHandler(This,pSoap,pMessageParameters) (This)->lpVtbl->ResolveHandler(This,pSoap,pMessageParameters) 73 #endif /*COBJMACROS*/ 74 75 #undef INTERFACE 76 #define INTERFACE IWSDiscoveredService 77 #ifdef __GNUC__ 78 #warning COM interfaces layout in this header has not been verified. 79 #warning COM interfaces with incorrect layout may not work at all. 80 __MINGW_BROKEN_INTERFACE(INTERFACE) 81 #endif 82 DECLARE_INTERFACE_(IWSDiscoveredService,IUnknown) 83 { 84 BEGIN_INTERFACE 85 86 /* IUnknown methods */ 87 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 88 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 89 STDMETHOD_(ULONG, Release)(THIS) PURE; 90 91 /* IWSDiscoveryProviderNotify methods */ 92 STDMETHOD_(HRESULT *,GetEndpointReference)(THIS_ WSD_ENDPOINT_REFERENCE **ppEndPointReference) PURE; 93 STDMETHOD_(HRESULT,GetTypes)(THIS_ WSD_NAME_LIST **ppTypesList) PURE; 94 STDMETHOD_(HRESULT,GetScopes)(THIS_ WSD_URI_LIST **ppScopesList) PURE; 95 STDMETHOD_(HRESULT,GetXAddrs)(THIS_ WSD_URI_LIST **ppXAddrsList) PURE; 96 STDMETHOD_(HRESULT,GetMetadataVersion)(THIS_ ULONGLONG *pullMetadataVersion) PURE; 97 STDMETHOD_(HRESULT,GetExtendedDiscoXML)(THIS_ WSDXML_ELEMENT **ppHeaderAny,WSDXML_ELEMENT **ppBodyAny) PURE; 98 STDMETHOD_(HRESULT,GetProbeResolveTag)(THIS_ LPCWSTR *ppszTag) PURE; 99 STDMETHOD_(HRESULT,GetRemoteTransportAddress)(THIS_ LPCWSTR *ppszRemoteTransportAddress) PURE; 100 STDMETHOD_(HRESULT,GetLocalTransportAddress)(THIS_ LPCWSTR *ppszLocalTransportAddress) PURE; 101 STDMETHOD_(HRESULT,GetLocalInterfaceGUID)(THIS_ GUID *pGuid) PURE; 102 STDMETHOD_(HRESULT *,GetInstanceId)(THIS_ ULONGLONG *pullInstanceId) PURE; 103 104 END_INTERFACE 105 }; 106 #ifdef COBJMACROS 107 #define IWSDiscoveredService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 108 #define IWSDiscoveredService_AddRef(This) (This)->lpVtbl->AddRef(This) 109 #define IWSDiscoveredService_Release(This) (This)->lpVtbl->Release(This) 110 #define IWSDiscoveredService_GetEndpointReference(This,ppEndPointReference) (This)->lpVtbl->GetEndpointReference(This,ppEndPointReference) 111 #define IWSDiscoveredService_GetTypes(This,ppTypesList) (This)->lpVtbl->GetTypes(This,ppTypesList) 112 #define IWSDiscoveredService_GetScopes(This,ppScopesList) (This)->lpVtbl->GetScopes(This,ppScopesList) 113 #define IWSDiscoveredService_GetXAddrs(This,ppXAddrsList) (This)->lpVtbl->GetXAddrs(This,ppXAddrsList) 114 #define IWSDiscoveredService_GetMetadataVersion(This,pullMetadataVersion) (This)->lpVtbl->GetMetadataVersion(This,pullMetadataVersion) 115 #define IWSDiscoveredService_GetExtendedDiscoXML(This,ppHeaderAny,ppBodyAny) (This)->lpVtbl->GetExtendedDiscoXML(This,ppHeaderAny,ppBodyAny) 116 #define IWSDiscoveredService_GetProbeResolveTag(This,ppszTag) (This)->lpVtbl->GetProbeResolveTag(This,ppszTag) 117 #define IWSDiscoveredService_GetRemoteTransportAddress(This,ppszRemoteTransportAddress) (This)->lpVtbl->GetRemoteTransportAddress(This,ppszRemoteTransportAddress) 118 #define IWSDiscoveredService_GetLocalTransportAddress(This,ppszLocalTransportAddress) (This)->lpVtbl->GetLocalTransportAddress(This,ppszLocalTransportAddress) 119 #define IWSDiscoveredService_GetLocalInterfaceGUID(This,pGuid) (This)->lpVtbl->GetLocalInterfaceGUID(This,pGuid) 120 #define IWSDiscoveredService_GetInstanceId(This,pullInstanceId) (This)->lpVtbl->GetInstanceId(This,pullInstanceId) 121 #endif /*COBJMACROS*/ 122 123 #undef INTERFACE 124 #define INTERFACE IWSDiscoveryProviderNotify 125 #ifdef __GNUC__ 126 #warning COM interfaces layout in this header has not been verified. 127 #warning COM interfaces with incorrect layout may not work at all. 128 __MINGW_BROKEN_INTERFACE(INTERFACE) 129 #endif 130 DECLARE_INTERFACE_(IWSDiscoveryProviderNotify,IUnknown) 131 { 132 BEGIN_INTERFACE 133 134 /* IUnknown methods */ 135 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 136 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 137 STDMETHOD_(ULONG, Release)(THIS) PURE; 138 139 /* IWSDiscoveryProviderNotify methods */ 140 STDMETHOD_(HRESULT,Add)(THIS_ IWSDiscoveredService *pService) PURE; 141 STDMETHOD_(HRESULT,Remove)(THIS_ IWSDiscoveredService *pService) PURE; 142 STDMETHOD_(HRESULT,SearchFailed)(THIS_ HRESULT hr,LPCWSTR pszTag) PURE; 143 STDMETHOD_(HRESULT,SearchComplete)(THIS_ LPCWSTR pszTag) PURE; 144 145 END_INTERFACE 146 }; 147 #ifdef COBJMACROS 148 #define IWSDiscoveryProviderNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 149 #define IWSDiscoveryProviderNotify_AddRef(This) (This)->lpVtbl->AddRef(This) 150 #define IWSDiscoveryProviderNotify_Release(This) (This)->lpVtbl->Release(This) 151 #define IWSDiscoveryProviderNotify_Add(This,pService) (This)->lpVtbl->Add(This,pService) 152 #define IWSDiscoveryProviderNotify_Remove(This,pService) (This)->lpVtbl->Remove(This,pService) 153 #define IWSDiscoveryProviderNotify_SearchFailed(This,hr,pszTag) (This)->lpVtbl->SearchFailed(This,hr,pszTag) 154 #define IWSDiscoveryProviderNotify_SearchComplete(This,pszTag) (This)->lpVtbl->SearchComplete(This,pszTag) 155 #endif /*COBJMACROS*/ 156 157 #undef INTERFACE 158 #define INTERFACE IWSDiscoveryProvider 159 #ifdef __GNUC__ 160 #warning COM interfaces layout in this header has not been verified. 161 #warning COM interfaces with incorrect layout may not work at all. 162 __MINGW_BROKEN_INTERFACE(INTERFACE) 163 #endif 164 DECLARE_INTERFACE_(IWSDiscoveryProvider,IUnknown) 165 { 166 BEGIN_INTERFACE 167 168 /* IUnknown methods */ 169 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 170 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 171 STDMETHOD_(ULONG, Release)(THIS) PURE; 172 173 /* IWSDiscoveryProvider methods */ 174 STDMETHOD_(HRESULT,SetAddressFamily)(THIS_ DWORD dwAddressFamily) PURE; 175 STDMETHOD_(HRESULT,Attach)(THIS_ IWSDiscoveryProviderNotify *pSink) PURE; 176 STDMETHOD_(HRESULT,Detach)(THIS) PURE; 177 STDMETHOD_(HRESULT,SearchById)(THIS_ LPCWSTR pszId,LPCWSTR pszTag) PURE; 178 STDMETHOD_(HRESULT,SearchByAddress)(THIS_ LPCWSTR pszAddress,LPCWSTR pszTag) PURE; 179 STDMETHOD_(HRESULT,SearchByType)(THIS_ LPCWSTR pszTag) PURE; 180 STDMETHOD_(HRESULT,GetXMLContext)(THIS_ IWSDXMLContext **ppContext) PURE; 181 182 END_INTERFACE 183 }; 184 #ifdef COBJMACROS 185 #define IWSDiscoveryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 186 #define IWSDiscoveryProvider_AddRef(This) (This)->lpVtbl->AddRef(This) 187 #define IWSDiscoveryProvider_Release(This) (This)->lpVtbl->Release(This) 188 #define IWSDiscoveryProvider_SetAddressFamily(This,dwAddressFamily) (This)->lpVtbl->SetAddressFamily(This,dwAddressFamily) 189 #define IWSDiscoveryProvider_Attach(This,pSink) (This)->lpVtbl->Attach(This,pSink) 190 #define IWSDiscoveryProvider_Detach() (This)->lpVtbl->Detach(This) 191 #define IWSDiscoveryProvider_SearchById(This,pszId,pszTag) (This)->lpVtbl->SearchById(This,pszId,pszTag) 192 #define IWSDiscoveryProvider_SearchByAddress(This,pszAddress,pszTag) (This)->lpVtbl->SearchByAddress(This,pszAddress,pszTag) 193 #define IWSDiscoveryProvider_SearchByType(This,pszTag) (This)->lpVtbl->SearchByType(This,pszTag) 194 #define IWSDiscoveryProvider_GetXMLContext(This,ppContext) (This)->lpVtbl->GetXMLContext(This,ppContext) 195 #endif /*COBJMACROS*/ 196 197 #undef INTERFACE 198 #define INTERFACE IWSDiscoveryPublisher 199 #ifdef __GNUC__ 200 #warning COM interfaces layout in this header has not been verified. 201 #warning COM interfaces with incorrect layout may not work at all. 202 __MINGW_BROKEN_INTERFACE(INTERFACE) 203 #endif 204 DECLARE_INTERFACE_(IWSDiscoveryPublisher,IUnknown) 205 { 206 BEGIN_INTERFACE 207 208 /* IUnknown methods */ 209 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 210 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 211 STDMETHOD_(ULONG, Release)(THIS) PURE; 212 213 /* IWSDiscoveryPublisher methods */ 214 STDMETHOD_(HRESULT,SetAddressFamily)(THIS_ DWORD dwAddressFamily) PURE; 215 STDMETHOD_(HRESULT,RegisterNotificationSink)(THIS_ IWSDiscoveryPublisherNotify *pSink) PURE; 216 STDMETHOD_(HRESULT,UnRegisterNotificationSink)(THIS_ IWSDiscoveryPublisherNotify *pSink) PURE; 217 STDMETHOD_(HRESULT,Publish)(THIS_ LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE; 218 STDMETHOD_(HRESULT,UnPublish)(THIS_ LPCWSTR pszDeviceId,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE; 219 STDMETHOD_(HRESULT,MatchProbe)(THIS_ const WSD_SOAP_MESSAGE *pProbeMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE; 220 STDMETHOD_(HRESULT,MatchResolve)(THIS_ const WSD_SOAP_MESSAGE *pResolveMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSD_URI_LIST *pXAddrsList) PURE; 221 STDMETHOD_(HRESULT,PublishEx)(THIS_ LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE; 222 STDMETHOD_(HRESULT,MatchProbeEx)(THIS_ const WSD_SOAP_MESSAGE *pProbeMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE; 223 STDMETHOD_(HRESULT,MatchResolveEx)(THIS_ const WSD_SOAP_MESSAGE *pResolveMessage,IWSDMessageParameters *pMessageParameters,LPCWSTR pszId,ULONGLONG ullMetadataVersion,ULONGLONG ullInstanceId,ULONGLONG ullMessageNumber,const WSDXML_ELEMENT *pAny) PURE; 224 STDMETHOD_(HRESULT,RegisterScopeMatchingRule)(THIS_ IWSDScopeMatchingRule *pScopeMatchingRule) PURE; 225 STDMETHOD_(HRESULT,UnRegisterScopeMatchingRule)(THIS_ IWSDScopeMatchingRule *pScopeMatchingRule) PURE; 226 STDMETHOD_(HRESULT,GetXMLContext)(THIS_ IWSDXMLContext **ppContext) PURE; 227 228 END_INTERFACE 229 }; 230 #ifdef COBJMACROS 231 #define IWSDiscoveryPublisher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 232 #define IWSDiscoveryPublisher_AddRef(This) (This)->lpVtbl->AddRef(This) 233 #define IWSDiscoveryPublisher_Release(This) (This)->lpVtbl->Release(This) 234 #define IWSDiscoveryPublisher_SetAddressFamily(This,dwAddressFamily) (This)->lpVtbl->SetAddressFamily(This,dwAddressFamily) 235 #define IWSDiscoveryPublisher_RegisterNotificationSink(This,pSink) (This)->lpVtbl->RegisterNotificationSink(This,pSink) 236 #define IWSDiscoveryPublisher_UnRegisterNotificationSink(This,pSink) (This)->lpVtbl->UnRegisterNotificationSink(This,pSink) 237 #define IWSDiscoveryPublisher_Publish(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->Publish(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) 238 #define IWSDiscoveryPublisher_UnPublish(This,pszDeviceId,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->UnPublish(This,pszDeviceId,ullInstanceId,ullMessageNumber,pAny) 239 #define IWSDiscoveryPublisher_MatchProbe(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->MatchProbe(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) 240 #define IWSDiscoveryPublisher_MatchResolve(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) (This)->lpVtbl->MatchResolve(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pXAddrsList) 241 #define IWSDiscoveryPublisher_PublishEx(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->PublishEx(This,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) 242 #define IWSDiscoveryPublisher_MatchProbeEx(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->MatchProbeEx(This,pProbeMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) 243 #define IWSDiscoveryPublisher_MatchResolveEx(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) (This)->lpVtbl->MatchResolveEx(This,pResolveMessage,pMessageParameters,pszId,ullMetadataVersion,ullInstanceId,ullMessageNumber,pAny) 244 #define IWSDiscoveryPublisher_RegisterScopeMatchingRule(This,pScopeMatchingRule) (This)->lpVtbl->RegisterScopeMatchingRule(This,pScopeMatchingRule) 245 #define IWSDiscoveryPublisher_UnRegisterScopeMatchingRule(This,pScopeMatchingRule) (This)->lpVtbl->UnRegisterScopeMatchingRule(This,pScopeMatchingRule) 246 #define IWSDiscoveryPublisher_GetXMLContext(This,ppContext) (This)->lpVtbl->GetXMLContext(This,ppContext) 247 #endif /*COBJMACROS*/ 248 249 #ifdef __cplusplus 250 extern "C" { 251 #endif 252 253 HRESULT WINAPI WSDCreateDiscoveryProvider( 254 IWSDXMLContext *pContext, 255 IWSDiscoveryProvider **ppProvider 256 ); 257 258 HRESULT WINAPI WSDCreateDiscoveryPublisher( 259 IWSDXMLContext *pContext, 260 IWSDiscoveryPublisher **ppPublisher 261 ); 262 263 #ifdef __cplusplus 264 } 265 #endif 266 #endif /*(_WIN32_WINNT >= 0x0600)*/ 267 #endif /*_INC_WSDDISCO*/ 268