Home | History | Annotate | Download | only in include
      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