2017-03-29 23:53:53 +02:00
|
|
|
/*
|
|
|
|
* Copyright 2017 Owen Rudge for CodeWeavers
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
import "objidl.idl";
|
|
|
|
import "wsdxmldom.h";
|
|
|
|
import "wsdtypes.h";
|
|
|
|
|
|
|
|
interface IWSDScopeMatchingRule;
|
|
|
|
interface IWSDiscoveryPublisherNotify;
|
|
|
|
interface IWSDiscoveryPublisher;
|
|
|
|
interface IWSDXMLContext;
|
2021-12-07 19:22:03 +01:00
|
|
|
interface IWSDiscoveryProvider;
|
|
|
|
interface IWSDiscoveryProviderNotify;
|
|
|
|
interface IWSDiscoveredService;
|
2017-03-29 23:53:53 +02:00
|
|
|
|
|
|
|
[
|
|
|
|
uuid(fcafe424-fef5-481a-bd9f-33ce0574256f),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDScopeMatchingRule : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT GetScopeRule([out] LPCWSTR *ppszScopeMatchingRule);
|
|
|
|
HRESULT MatchScopes([in] LPCWSTR pszScope1, [in] LPCWSTR pszScope2, [out] BOOL *pfMatch);
|
|
|
|
}
|
|
|
|
|
2021-12-07 19:22:03 +01:00
|
|
|
[
|
|
|
|
uuid(73ee3ced-b6e6-4329-a546-3e8ad46563d2),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDiscoveryProviderNotify : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT Add([in] IWSDiscoveredService *service);
|
|
|
|
HRESULT Remove([in] IWSDiscoveredService *service);
|
|
|
|
HRESULT SearchFailed([in] HRESULT hr,[in, optional] LPCWSTR tag);
|
|
|
|
HRESULT SearchComplete([in, optional] LPCWSTR tag);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
uuid(4bad8a3b-b374-4420-9632-aac945b374aa),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDiscoveredService : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT GetEndpointReference([out] WSD_ENDPOINT_REFERENCE **endpoint_reference);
|
|
|
|
HRESULT GetTypes([out] WSD_NAME_LIST **types_list);
|
|
|
|
HRESULT GetScopes([out] WSD_URI_LIST **scopes_list);
|
|
|
|
HRESULT GetXAddrs([out] WSD_URI_LIST **x_addrs_list);
|
|
|
|
HRESULT GetMetadataVersion([out] ULONGLONG *metadata_version);
|
|
|
|
HRESULT GetExtendedDiscoXML([out] WSDXML_ELEMENT **header_any,[out] WSDXML_ELEMENT **body_any);
|
|
|
|
HRESULT GetProbeResolveTag([out] LPCWSTR *tag);
|
|
|
|
HRESULT GetRemoteTransportAddress([out] LPCWSTR *remote_transport_address);
|
|
|
|
HRESULT GetLocalTransportAddress([out] LPCWSTR *local_transport_address);
|
|
|
|
HRESULT GetLocalInterfaceGUID([out] GUID *guid);
|
|
|
|
HRESULT GetInstanceId([out] ULONGLONG *instance_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
uuid (8ffc8e55-f0eb-480f-88b7-b435dd281d45),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDiscoveryProvider : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT SetAddressFamily([in] DWORD address_family);
|
|
|
|
HRESULT Attach([in] IWSDiscoveryProviderNotify *sink);
|
|
|
|
HRESULT Detach(void);
|
|
|
|
HRESULT SearchById([in] LPCWSTR id,[in, optional] LPCWSTR tag);
|
|
|
|
HRESULT SearchByAddress([in] LPCWSTR address,[in, optional] LPCWSTR tag);
|
|
|
|
HRESULT SearchByType([in, optional] const WSD_NAME_LIST *types_list, \
|
|
|
|
[in, optional] const WSD_URI_LIST *scopes_list,[in, optional] LPCWSTR match_by,[in, optional] LPCWSTR tag);
|
|
|
|
HRESULT GetXMLContext([out] IWSDXMLContext **context);
|
|
|
|
}
|
|
|
|
|
2017-03-29 23:53:53 +02:00
|
|
|
[
|
|
|
|
uuid(e67651b0-337a-4b3c-9758-733388568251),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDiscoveryPublisherNotify : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT ProbeHandler([in] const WSD_SOAP_MESSAGE *pSoap, [in] IWSDMessageParameters *pMessageParameters);
|
|
|
|
HRESULT ResolveHandler([in] const WSD_SOAP_MESSAGE *pSoap, [in] IWSDMessageParameters *pMessageParameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
[
|
|
|
|
uuid(AE01E1A8-3ff9-4148-8116-057cc616fe13),
|
|
|
|
object,
|
|
|
|
local,
|
|
|
|
restricted,
|
|
|
|
pointer_default(unique)
|
|
|
|
]
|
|
|
|
interface IWSDiscoveryPublisher : IUnknown
|
|
|
|
{
|
|
|
|
HRESULT SetAddressFamily([in] DWORD dwAddressFamily);
|
|
|
|
HRESULT RegisterNotificationSink([in] IWSDiscoveryPublisherNotify *pSink);
|
|
|
|
HRESULT UnRegisterNotificationSink([in] IWSDiscoveryPublisherNotify *pSink);
|
|
|
|
|
|
|
|
HRESULT Publish([in] LPCWSTR pszId, [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber,
|
|
|
|
[in, optional] LPCWSTR pszSessionId, [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList,
|
|
|
|
[in, optional] const WSD_URI_LIST *pXAddrsList);
|
|
|
|
|
|
|
|
HRESULT UnPublish([in] LPCWSTR pszId, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pAny);
|
|
|
|
|
|
|
|
HRESULT MatchProbe([in] const WSD_SOAP_MESSAGE *pProbeMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
|
|
|
|
[in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
|
|
|
|
[in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList);
|
|
|
|
|
|
|
|
HRESULT MatchResolve([in] const WSD_SOAP_MESSAGE *pResolveMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
|
|
|
|
[in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
|
|
|
|
[in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList);
|
|
|
|
|
|
|
|
HRESULT PublishEx([in] LPCWSTR pszId, [in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber,
|
|
|
|
[in, optional] LPCWSTR pszSessionId, [in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList,
|
|
|
|
[in, optional] const WSD_URI_LIST *pXAddrsList, [in, optional] const WSDXML_ELEMENT *pHeaderAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pReferenceParameterAny, [in, optional] const WSDXML_ELEMENT *pPolicyAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny, [in, optional] const WSDXML_ELEMENT *pAny);
|
|
|
|
|
|
|
|
HRESULT MatchProbeEx([in] const WSD_SOAP_MESSAGE *pProbeMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
|
|
|
|
[in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
|
|
|
|
[in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pHeaderAny, [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pPolicyAny, [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pAny);
|
|
|
|
|
|
|
|
HRESULT MatchResolveEx([in] const WSD_SOAP_MESSAGE *pResolveMessage, [in] IWSDMessageParameters *pMessageParameters, [in] LPCWSTR pszId,
|
|
|
|
[in] ULONGLONG ullMetadataVersion, [in] ULONGLONG ullInstanceId, [in] ULONGLONG ullMessageNumber, [in, optional] LPCWSTR pszSessionId,
|
|
|
|
[in, optional] const WSD_NAME_LIST *pTypesList, [in, optional] const WSD_URI_LIST *pScopesList, [in, optional] const WSD_URI_LIST *pXAddrsList,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pHeaderAny, [in, optional] const WSDXML_ELEMENT *pReferenceParameterAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pPolicyAny, [in, optional] const WSDXML_ELEMENT *pEndpointReferenceAny,
|
|
|
|
[in, optional] const WSDXML_ELEMENT *pAny);
|
|
|
|
|
|
|
|
HRESULT RegisterScopeMatchingRule([in] IWSDScopeMatchingRule *pScopeMatchingRule);
|
|
|
|
HRESULT UnRegisterScopeMatchingRule([in] IWSDScopeMatchingRule *pScopeMatchingRule);
|
|
|
|
HRESULT GetXMLContext([out] IWSDXMLContext **ppContext);
|
|
|
|
}
|
|
|
|
|
2021-12-07 19:22:03 +01:00
|
|
|
cpp_quote("HRESULT WINAPI WSDCreateDiscoveryProvider(IWSDXMLContext *context, IWSDiscoveryProvider **provider);")
|
2017-03-29 23:53:53 +02:00
|
|
|
cpp_quote("HRESULT WINAPI WSDCreateDiscoveryPublisher(IWSDXMLContext* pContext, IWSDiscoveryPublisher **ppPublisher);")
|