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_WSDCLIENT 7 #define _INC_WSDCLIENT 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 IWSDEventingStatus 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_(IWSDEventingStatus,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 /* IWSDEventingStatus methods */ 32 STDMETHOD(SubscriptionRenewed)(THIS_ LPCWSTR pszSubscriptionAction) PURE; 33 STDMETHOD(SubscriptionRenewalFailed)(THIS_ LPCWSTR pszSubscriptionAction,HRESULT hr) PURE; 34 STDMETHOD(SubscriptionEnded)(THIS_ LPCWSTR pszSubscriptionAction) PURE; 35 36 END_INTERFACE 37 }; 38 #ifdef COBJMACROS 39 #define IWSDEventingStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 40 #define IWSDEventingStatus_AddRef(This) (This)->lpVtbl->AddRef(This) 41 #define IWSDEventingStatus_Release(This) (This)->lpVtbl->Release(This) 42 #define IWSDEventingStatus_SubscriptionRenewed(This,pszSubscriptionAction) (This)->lpVtbl->SubscriptionRenewed(This,pszSubscriptionAction) 43 #define IWSDEventingStatus_SubscriptionRenewalFailed(This,pszSubscriptionAction,hr) (This)->lpVtbl->SubscriptionRenewalFailed(This,pszSubscriptionAction,hr) 44 #define IWSDEventingStatus_SubscriptionEnded(This,pszSubscriptionAction) (This)->lpVtbl->SubscriptionEnded(This,pszSubscriptionAction) 45 #endif /*COBJMACROS*/ 46 47 #undef INTERFACE 48 #define INTERFACE IWSDAsyncCallback 49 #ifdef __GNUC__ 50 #warning COM interfaces layout in this header has not been verified. 51 #warning COM interfaces with incorrect layout may not work at all. 52 __MINGW_BROKEN_INTERFACE(INTERFACE) 53 #endif 54 DECLARE_INTERFACE_(IWSDAsyncCallback,IUnknown) 55 { 56 BEGIN_INTERFACE 57 58 /* IUnknown methods */ 59 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 60 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 61 STDMETHOD_(ULONG, Release)(THIS) PURE; 62 63 /* IWSDAsyncCallback methods */ 64 STDMETHOD_(HRESULT,AsyncOperationComplete)(THIS_ IWSDAsyncResult *pAsyncResult,IUnknown *pAsyncState) PURE; 65 66 END_INTERFACE 67 }; 68 #ifdef COBJMACROS 69 #define IWSDAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 70 #define IWSDAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This) 71 #define IWSDAsyncCallback_Release(This) (This)->lpVtbl->Release(This) 72 #define IWSDAsyncCallback_AsyncOperationComplete(This,pAsyncResult,pAsyncState) (This)->lpVtbl->AsyncOperationComplete(This,pAsyncResult,pAsyncState) 73 #endif /*COBJMACROS*/ 74 75 #undef INTERFACE 76 #define INTERFACE IWSDAsyncResult 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_(IWSDAsyncResult,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 /* IWSDAsyncResult methods */ 92 STDMETHOD_(HRESULT,SetCallback)(THIS_ IWSDAsyncCallback *pCallback,IUnknown *pAsyncState) PURE; 93 STDMETHOD_(HRESULT,SetWaitHandle)(THIS_ HANDLE hWaitHandle) PURE; 94 STDMETHOD_(HRESULT,HasCompleted)(THIS) PURE; 95 STDMETHOD_(HRESULT,GetAsyncState)(THIS_ IUnknown **ppAsyncState) PURE; 96 STDMETHOD_(HRESULT,Abort)(THIS) PURE; 97 STDMETHOD_(HRESULT,GetEvent)(THIS_ WSD_EVENT *pEvent) PURE; 98 STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppEndpoint) PURE; 99 100 END_INTERFACE 101 }; 102 #ifdef COBJMACROS 103 #define IWSDAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 104 #define IWSDAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) 105 #define IWSDAsyncResult_Release(This) (This)->lpVtbl->Release(This) 106 #define IWSDAsyncResult_SetCallback(This,pCallback,pAsyncState) (This)->lpVtbl->SetCallback(This,pCallback,pAsyncState) 107 #define IWSDAsyncResult_SetWaitHandle(This,hWaitHandle) (This)->lpVtbl->SetWaitHandle(This,hWaitHandle) 108 #define IWSDAsyncResult_HasCompleted() (This)->lpVtbl->HasCompleted(This) 109 #define IWSDAsyncResult_GetAsyncState(This,ppAsyncState) (This)->lpVtbl->GetAsyncState(This,ppAsyncState) 110 #define IWSDAsyncResult_Abort() (This)->lpVtbl->Abort(This) 111 #define IWSDAsyncResult_GetEvent(This,pEvent) (This)->lpVtbl->GetEvent(This,pEvent) 112 #define IWSDAsyncResult_GetEndpointProxy(This,ppEndpoint) (This)->lpVtbl->GetEndpointProxy(This,ppEndpoint) 113 #endif /*COBJMACROS*/ 114 115 #undef INTERFACE 116 #define INTERFACE IWSDDeviceProxy 117 #ifdef __GNUC__ 118 #warning COM interfaces layout in this header has not been verified. 119 #warning COM interfaces with incorrect layout may not work at all. 120 __MINGW_BROKEN_INTERFACE(INTERFACE) 121 #endif 122 DECLARE_INTERFACE_(IWSDDeviceProxy,IUnknown) 123 { 124 BEGIN_INTERFACE 125 126 /* IUnknown methods */ 127 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 128 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 129 STDMETHOD_(ULONG, Release)(THIS) PURE; 130 131 /* IWSDDeviceProxy methods */ 132 STDMETHOD_(HRESULT,Init)(THIS_ LPCWSTR pszDeviceId,IWSDAddress *pDeviceAddress,LPCWSTR pszLocalId,IWSDDeviceProxy *pSponsor) PURE; 133 STDMETHOD_(HRESULT,BeginGetMetadata)(THIS_ IWSDAsyncResult **ppResult) PURE; 134 STDMETHOD_(HRESULT,EndGetMetadata)(THIS_ IWSDAsyncResult *pResult) PURE; 135 STDMETHOD_(HRESULT,GetHostMetadata)(THIS_ WSD_HOST_METADATA **ppHostMetadata) PURE; 136 STDMETHOD_(HRESULT,GetThisModelMetadata)(THIS_ WSD_THIS_MODEL_METADATA **ppManufacturerMetadata) PURE; 137 STDMETHOD_(HRESULT,GetThisDeviceMetadata)(THIS_ WSD_THIS_DEVICE_METADATA **ppThisDeviceMetadata) PURE; 138 STDMETHOD_(HRESULT,GetAllMetadata)(THIS_ WSD_METADATA_SECTION_LIST **ppMetadata) PURE; 139 STDMETHOD_(HRESULT,GetServiceProxyById)(THIS_ LPCWSTR pszServiceId,IWSDServiceProxy **ppServiceProxy) PURE; 140 STDMETHOD_(HRESULT,GetServiceProxyByType)(THIS_ const WSDXML_NAME *pType,IWSDServiceProxy **ppServiceProxy) PURE; 141 STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppProxy) PURE; 142 143 END_INTERFACE 144 }; 145 #ifdef COBJMACROS 146 #define IWSDDeviceProxy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 147 #define IWSDDeviceProxy_AddRef(This) (This)->lpVtbl->AddRef(This) 148 #define IWSDDeviceProxy_Release(This) (This)->lpVtbl->Release(This) 149 #define IWSDDeviceProxy_Init(This,pszDeviceId,pDeviceAddress,pszLocalId,pSponsor) (This)->lpVtbl->Init(This,pszDeviceId,pDeviceAddress,pszLocalId,pSponsor) 150 #define IWSDDeviceProxy_BeginGetMetadata(This,ppResult) (This)->lpVtbl->BeginGetMetadata(This,ppResult) 151 #define IWSDDeviceProxy_EndGetMetadata(This,pResult) (This)->lpVtbl->EndGetMetadata(This,pResult) 152 #define IWSDDeviceProxy_GetHostMetadata(This,ppHostMetadata) (This)->lpVtbl->GetHostMetadata(This,ppHostMetadata) 153 #define IWSDDeviceProxy_GetThisModelMetadata(This,ppManufacturerMetadata) (This)->lpVtbl->GetThisModelMetadata(This,ppManufacturerMetadata) 154 #define IWSDDeviceProxy_GetThisDeviceMetadata(This,ppThisDeviceMetadata) (This)->lpVtbl->GetThisDeviceMetadata(This,ppThisDeviceMetadata) 155 #define IWSDDeviceProxy_GetAllMetadata(This,ppMetadata) (This)->lpVtbl->GetAllMetadata(This,ppMetadata) 156 #define IWSDDeviceProxy_GetServiceProxyById(This,pszServiceId,ppServiceProxy) (This)->lpVtbl->GetServiceProxyById(This,pszServiceId,ppServiceProxy) 157 #define IWSDDeviceProxy_GetServiceProxyByType(This,pType,ppServiceProxy) (This)->lpVtbl->GetServiceProxyByType(This,pType,ppServiceProxy) 158 #define IWSDDeviceProxy_GetEndpointProxy(This,ppProxy) (This)->lpVtbl->GetEndpointProxy(This,ppProxy) 159 #endif /*COBJMACROS*/ 160 161 #undef INTERFACE 162 #define INTERFACE IWSDMetadataExchange 163 #ifdef __GNUC__ 164 #warning COM interfaces layout in this header has not been verified. 165 #warning COM interfaces with incorrect layout may not work at all. 166 __MINGW_BROKEN_INTERFACE(INTERFACE) 167 #endif 168 DECLARE_INTERFACE_(IWSDMetadataExchange,IUnknown) 169 { 170 BEGIN_INTERFACE 171 172 /* IUnknown methods */ 173 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 174 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 175 STDMETHOD_(ULONG, Release)(THIS) PURE; 176 177 /* IWSDMetadataExchange methods */ 178 STDMETHOD_(HRESULT,GetMetadata)(THIS_ WSD_METADATA_SECTION_LIST **MetadataOut) PURE; 179 180 END_INTERFACE 181 }; 182 #ifdef COBJMACROS 183 #define IWSDMetadataExchange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 184 #define IWSDMetadataExchange_AddRef(This) (This)->lpVtbl->AddRef(This) 185 #define IWSDMetadataExchange_Release(This) (This)->lpVtbl->Release(This) 186 #define IWSDMetadataExchange_GetMetadata(This,MetadataOut) (This)->lpVtbl->GetMetadata(This,MetadataOut) 187 #endif /*COBJMACROS*/ 188 189 #undef INTERFACE 190 #define INTERFACE IWSDServiceProxy 191 #ifdef __GNUC__ 192 #warning COM interfaces layout in this header has not been verified. 193 #warning COM interfaces with incorrect layout may not work at all. 194 __MINGW_BROKEN_INTERFACE(INTERFACE) 195 #endif 196 DECLARE_INTERFACE_(IWSDServiceProxy,IWSDMetadataExchange) 197 { 198 BEGIN_INTERFACE 199 200 /* IUnknown methods */ 201 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 202 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 203 STDMETHOD_(ULONG, Release)(THIS) PURE; 204 205 /* IWSDMetadataExchange methods */ 206 STDMETHOD_(HRESULT,GetMetadata)(THIS_ WSD_METADATA_SECTION_LIST **MetadataOut) PURE; 207 208 /* IWSDServiceProxy methods */ 209 STDMETHOD_(HRESULT,BeginGetMetadata)(THIS_ IWSDAsyncResult **ppResult) PURE; 210 STDMETHOD_(HRESULT,EndGetMetadata)(THIS_ IWSDAsyncResult *pResult,WSD_METADATA_SECTION_LIST **ppMetadata) PURE; 211 STDMETHOD_(HRESULT,GetServiceMetadata)(THIS_ WSD_SERVICE_METADATA **ppServiceMetadata) PURE; 212 STDMETHOD_(HRESULT,SubscribeToOperation)(THIS_ const WSD_OPERATION *pOperation,IUnknown *pUnknown,const WSDXML_ELEMENT *pAny,WSDXML_ELEMENT **ppAny) PURE; 213 STDMETHOD_(HRESULT,UnsubscribeToOperation)(THIS_ const WSD_OPERATION *pOperation) PURE; 214 STDMETHOD_(HRESULT,SetEventingStatusCallback)(THIS_ IWSDEventingStatus *pStatus) PURE; 215 STDMETHOD_(HRESULT,GetEndpointProxy)(THIS_ IWSDEndpointProxy **ppProxy) PURE; 216 217 END_INTERFACE 218 }; 219 #ifdef COBJMACROS 220 #define IWSDServiceProxy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 221 #define IWSDServiceProxy_AddRef(This) (This)->lpVtbl->AddRef(This) 222 #define IWSDServiceProxy_Release(This) (This)->lpVtbl->Release(This) 223 #define IWSDServiceProxy_BeginGetMetadata(This,ppResult) (This)->lpVtbl->BeginGetMetadata(This,ppResult) 224 #define IWSDServiceProxy_EndGetMetadata(This,pResult,ppMetadata) (This)->lpVtbl->EndGetMetadata(This,pResult,ppMetadata) 225 #define IWSDServiceProxy_GetServiceMetadata(This,ppServiceMetadata) (This)->lpVtbl->GetServiceMetadata(This,ppServiceMetadata) 226 #define IWSDServiceProxy_SubscribeToOperation(This,pOperation,pUnknown,pAny,ppAny) (This)->lpVtbl->SubscribeToOperation(This,pOperation,pUnknown,pAny,ppAny) 227 #define IWSDServiceProxy_UnsubscribeToOperation(This,pOperation) (This)->lpVtbl->UnsubscribeToOperation(This,pOperation) 228 #define IWSDServiceProxy_SetEventingStatusCallback(This,pStatus) (This)->lpVtbl->SetEventingStatusCallback(This,pStatus) 229 #define IWSDServiceProxy_GetEndpointProxy(This,ppProxy) (This)->lpVtbl->GetEndpointProxy(This,ppProxy) 230 #endif /*COBJMACROS*/ 231 232 #undef INTERFACE 233 #define INTERFACE IWSDEndpointProxy 234 #ifdef __GNUC__ 235 #warning COM interfaces layout in this header has not been verified. 236 #warning COM interfaces with incorrect layout may not work at all. 237 __MINGW_BROKEN_INTERFACE(INTERFACE) 238 #endif 239 DECLARE_INTERFACE_(IWSDEndpointProxy,IUnknown) 240 { 241 BEGIN_INTERFACE 242 243 /* IUnknown methods */ 244 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; 245 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 246 STDMETHOD_(ULONG, Release)(THIS) PURE; 247 248 /* IWSDEndpointProxy methods */ 249 STDMETHOD_(HRESULT,SendOneWayRequest)(THIS_ const void *pBody,const WSD_OPERATION *pOperation) PURE; 250 STDMETHOD_(HRESULT,SendTwoWayRequest)(THIS_ const void *pBody,const WSD_OPERATION *pOperation,WSD_SYNCHRONOUS_RESPONSE_CONTEXT *pResponseContext) PURE; 251 STDMETHOD_(HRESULT,SendTwoWayRequestAsync)(THIS_ const void *pBody,const WSD_OPERATION *pOperation,IUnknown *pAsyncState,IWSDAsyncCallback *pCallback,IWSDAsyncResult **pResult) PURE; 252 STDMETHOD_(HRESULT,AbortAsyncOperation)(THIS_ IWSDAsyncResult *pAsyncResult) PURE; 253 STDMETHOD_(HRESULT,ProcessFault)(THIS_ const WSD_SOAP_FAULT *pFault) PURE; 254 STDMETHOD_(HRESULT,GetErrorInfo)(THIS_ const LPCWSTR *ppszErrorInfo) PURE; 255 STDMETHOD_(HRESULT,GetFaultInfo)(THIS_ WSD_SOAP_FAULT **ppFault) PURE; 256 257 END_INTERFACE 258 }; 259 #ifdef COBJMACROS 260 #define IWSDEndpointProxy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 261 #define IWSDEndpointProxy_AddRef(This) (This)->lpVtbl->AddRef(This) 262 #define IWSDEndpointProxy_Release(This) (This)->lpVtbl->Release(This) 263 #define IWSDEndpointProxy_SendOneWayRequest(This,pBody,pOperation) (This)->lpVtbl->SendOneWayRequest(This,pBody,pOperation) 264 #define IWSDEndpointProxy_SendTwoWayRequest(This,pBody,pOperation,pResponseContext) (This)->lpVtbl->SendTwoWayRequest(This,pBody,pOperation,pResponseContext) 265 #define IWSDEndpointProxy_SendTwoWayRequestAsync(This,pBody,pOperation,pAsyncState,pCallback,pResult) (This)->lpVtbl->SendTwoWayRequestAsync(This,pBody,pOperation,pAsyncState,pCallback,pResult) 266 #define IWSDEndpointProxy_AbortAsyncOperation(This,pAsyncResult) (This)->lpVtbl->AbortAsyncOperation(This,pAsyncResult) 267 #define IWSDEndpointProxy_ProcessFault(This,pFault) (This)->lpVtbl->ProcessFault(This,pFault) 268 #define IWSDEndpointProxy_GetErrorInfo(This,ppszErrorInfo) (This)->lpVtbl->GetErrorInfo(This,ppszErrorInfo) 269 #define IWSDEndpointProxy_GetFaultInfo(This,ppFault) (This)->lpVtbl->GetFaultInfo(This,ppFault) 270 #endif /*COBJMACROS*/ 271 272 #ifdef __cplusplus 273 extern "C" { 274 #endif 275 276 HRESULT WINAPI WSDCreateDeviceProxy( 277 const WCHAR *pszDeviceId, 278 const WCHAR *pszLocalId, 279 IWSDXMLContext *pContext, 280 IWSDDeviceProxy **ppDeviceProxy 281 ); 282 283 HRESULT WINAPI WSDCreateDeviceProxyAdvanced( 284 const WCHAR *pszDeviceId, 285 IWSDAddress *pDeviceAddress, 286 const WCHAR *pszLocalId, 287 IWSDXMLContext *pContext, 288 IWSDDeviceProxy **ppDeviceProxy 289 ); 290 291 #ifdef __cplusplus 292 } 293 #endif 294 #endif /*(_WIN32_WINNT >= 0x0600)*/ 295 #endif /*_INC_WSDCLIENT*/ 296