setupapi: Use lowercase device paths.
[wine.git] / include / wsddisco.idl
blobbbeff522a85565ff9c211e9fb153e60499a551f4
1 /*
2 * Copyright 2017 Owen Rudge for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "objidl.idl";
20 import "wsdxmldom.h";
21 import "wsdtypes.h";
23 interface IWSDScopeMatchingRule;
24 interface IWSDiscoveryPublisherNotify;
25 interface IWSDiscoveryPublisher;
26 interface IWSDXMLContext;
27 interface IWSDiscoveryProvider;
28 interface IWSDiscoveryProviderNotify;
29 interface IWSDiscoveredService;
32 uuid(fcafe424-fef5-481a-bd9f-33ce0574256f),
33 object,
34 local,
35 restricted,
36 pointer_default(unique)
38 interface IWSDScopeMatchingRule : IUnknown
40 HRESULT GetScopeRule([out] LPCWSTR *ppszScopeMatchingRule);
41 HRESULT MatchScopes([in] LPCWSTR pszScope1, [in] LPCWSTR pszScope2, [out] BOOL *pfMatch);
45 uuid(73ee3ced-b6e6-4329-a546-3e8ad46563d2),
46 object,
47 local,
48 restricted,
49 pointer_default(unique)
51 interface IWSDiscoveryProviderNotify : IUnknown
53 HRESULT Add([in] IWSDiscoveredService *service);
54 HRESULT Remove([in] IWSDiscoveredService *service);
55 HRESULT SearchFailed([in] HRESULT hr,[in, optional] LPCWSTR tag);
56 HRESULT SearchComplete([in, optional] LPCWSTR tag);
60 uuid(4bad8a3b-b374-4420-9632-aac945b374aa),
61 object,
62 local,
63 restricted,
64 pointer_default(unique)
66 interface IWSDiscoveredService : IUnknown
68 HRESULT GetEndpointReference([out] WSD_ENDPOINT_REFERENCE **endpoint_reference);
69 HRESULT GetTypes([out] WSD_NAME_LIST **types_list);
70 HRESULT GetScopes([out] WSD_URI_LIST **scopes_list);
71 HRESULT GetXAddrs([out] WSD_URI_LIST **x_addrs_list);
72 HRESULT GetMetadataVersion([out] ULONGLONG *metadata_version);
73 HRESULT GetExtendedDiscoXML([out] WSDXML_ELEMENT **header_any,[out] WSDXML_ELEMENT **body_any);
74 HRESULT GetProbeResolveTag([out] LPCWSTR *tag);
75 HRESULT GetRemoteTransportAddress([out] LPCWSTR *remote_transport_address);
76 HRESULT GetLocalTransportAddress([out] LPCWSTR *local_transport_address);
77 HRESULT GetLocalInterfaceGUID([out] GUID *guid);
78 HRESULT GetInstanceId([out] ULONGLONG *instance_id);
82 uuid (8ffc8e55-f0eb-480f-88b7-b435dd281d45),
83 object,
84 local,
85 restricted,
86 pointer_default(unique)
88 interface IWSDiscoveryProvider : IUnknown
90 HRESULT SetAddressFamily([in] DWORD address_family);
91 HRESULT Attach([in] IWSDiscoveryProviderNotify *sink);
92 HRESULT Detach(void);
93 HRESULT SearchById([in] LPCWSTR id,[in, optional] LPCWSTR tag);
94 HRESULT SearchByAddress([in] LPCWSTR address,[in, optional] LPCWSTR tag);
95 HRESULT SearchByType([in, optional] const WSD_NAME_LIST *types_list, \
96 [in, optional] const WSD_URI_LIST *scopes_list,[in, optional] LPCWSTR match_by,[in, optional] LPCWSTR tag);
97 HRESULT GetXMLContext([out] IWSDXMLContext **context);
101 uuid(e67651b0-337a-4b3c-9758-733388568251),
102 object,
103 local,
104 restricted,
105 pointer_default(unique)
107 interface IWSDiscoveryPublisherNotify : IUnknown
109 HRESULT ProbeHandler([in] const WSD_SOAP_MESSAGE *pSoap, [in] IWSDMessageParameters *pMessageParameters);
110 HRESULT ResolveHandler([in] const WSD_SOAP_MESSAGE *pSoap, [in] IWSDMessageParameters *pMessageParameters);
114 uuid(AE01E1A8-3ff9-4148-8116-057cc616fe13),
115 object,
116 local,
117 restricted,
118 pointer_default(unique)
120 interface IWSDiscoveryPublisher : IUnknown
122 HRESULT SetAddressFamily([in] DWORD dwAddressFamily);
123 HRESULT RegisterNotificationSink([in] IWSDiscoveryPublisherNotify *pSink);
124 HRESULT UnRegisterNotificationSink([in] IWSDiscoveryPublisherNotify *pSink);
126 HRESULT Publish([in] LPCWSTR pszId, [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber,
127 [in, optional] LPCWSTR pszSessionId, [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList,
128 [in, optional] const WSD_URI_LIST *pXAddrsList);
130 HRESULT UnPublish([in] LPCWSTR pszId, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
131 [in, optional] const WSDXML_ELEMENT *pAny);
133 HRESULT MatchProbe([in] const WSD_SOAP_MESSAGE *pProbeMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
134 [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
135 [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList);
137 HRESULT MatchResolve([in] const WSD_SOAP_MESSAGE *pResolveMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
138 [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
139 [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList);
141 HRESULT PublishEx([in] LPCWSTR pszId, [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber,
142 [in, optional] LPCWSTR pszSessionId, [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList,
143 [in, optional] const WSD_URI_LIST *pXAddrsList, [in, optional] const WSDXML_ELEMENT *pHeaderAny,
144 [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny, [in, optional] const WSDXML_ELEMENT *pPolicyAny,
145 [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny, [in, optional] const WSDXML_ELEMENT *pAny);
147 HRESULT MatchProbeEx([in] const WSD_SOAP_MESSAGE *pProbeMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
148 [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
149 [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList,
150 [in, optional] const WSDXML_ELEMENT *pHeaderAny, [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny,
151 [in, optional] const WSDXML_ELEMENT *pPolicyAny, [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny,
152 [in, optional] const WSDXML_ELEMENT *pAny);
154 HRESULT MatchResolveEx([in] const WSD_SOAP_MESSAGE *pResolveMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
155 [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
156 [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList,
157 [in, optional] const WSDXML_ELEMENT *pHeaderAny, [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny,
158 [in, optional] const WSDXML_ELEMENT *pPolicyAny, [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny,
159 [in, optional] const WSDXML_ELEMENT *pAny);
161 HRESULT RegisterScopeMatchingRule([in] IWSDScopeMatchingRule *pScopeMatchingRule);
162 HRESULT UnRegisterScopeMatchingRule([in] IWSDScopeMatchingRule *pScopeMatchingRule);
163 HRESULT GetXMLContext([out] IWSDXMLContext **ppContext);
166 cpp_quote("HRESULT WINAPI WSDCreateDiscoveryProvider(IWSDXMLContext *context, IWSDiscoveryProvider **provider);")
167 cpp_quote("HRESULT WINAPI WSDCreateDiscoveryPublisher(IWSDXMLContext* pContext, IWSDiscoveryPublisher **ppPublisher);")