mirror of https://github.com/UMSKT/xpmgr.git
350 lines
13 KiB
Plaintext
350 lines
13 KiB
Plaintext
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// Component: WSDAPI - Microsoft Web Services for Devices API
|
|
//
|
|
// File: wsddisco.idl
|
|
//
|
|
// Abstract: Discovery interface definitions and typedefs for WSDAPI
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
import "objidl.idl";
|
|
import "wsdxmldom.h";
|
|
import "wsdtypes.h";
|
|
|
|
//
|
|
// Dependencies
|
|
//
|
|
interface IWSDXMLContext;
|
|
|
|
//
|
|
// Forward definitions
|
|
//
|
|
interface IWSDiscoveryProvider;
|
|
interface IWSDiscoveryProviderNotify;
|
|
interface IWSDiscoveredService;
|
|
interface IWSDiscoveryPublisher;
|
|
interface IWSDiscoveryPublisherNotify;
|
|
interface IWSDScopeMatchingRule;
|
|
|
|
cpp_quote("HRESULT WINAPI")
|
|
cpp_quote("WSDCreateDiscoveryProvider(")
|
|
cpp_quote(" IWSDXMLContext* pContext,")
|
|
cpp_quote(" __deref_out IWSDiscoveryProvider** ppProvider);")
|
|
|
|
cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
|
|
cpp_quote("HRESULT WINAPI")
|
|
cpp_quote("WSDCreateDiscoveryProvider2(")
|
|
cpp_quote(" IWSDXMLContext* pContext,")
|
|
cpp_quote(" __in_ecount_opt(dwConfigParamCount) WSD_CONFIG_PARAM* pConfigParams,")
|
|
cpp_quote(" DWORD dwConfigParamCount,")
|
|
cpp_quote(" __deref_out IWSDiscoveryProvider** ppProvider);")
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDiscoveryProvider Interface
|
|
// Description: Defines the behavior of the discovery provider
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(8FFC8E55-F0EB-480F-88B7-B435DD281D45),
|
|
helpstring("IWSDiscoveryProvider Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
interface IWSDiscoveryProvider : IUnknown
|
|
{
|
|
HRESULT SetAddressFamily(
|
|
[in] DWORD dwAddressFamily);
|
|
|
|
HRESULT Attach(
|
|
[in] IWSDiscoveryProviderNotify* pSink);
|
|
|
|
HRESULT Detach();
|
|
|
|
HRESULT SearchById(
|
|
[in, annotation("__in")] LPCWSTR pszId,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszTag);
|
|
|
|
HRESULT SearchByAddress(
|
|
[in, annotation("__in")] LPCWSTR pszAddress,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszTag);
|
|
|
|
HRESULT SearchByType(
|
|
[in, optional] const WSD_NAME_LIST* pTypesList,
|
|
[in, optional] const WSD_URI_LIST* pScopesList,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszMatchBy,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszTag);
|
|
|
|
HRESULT GetXMLContext(
|
|
[out, annotation("__deref_out")] IWSDXMLContext** ppContext);
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDiscoveryProviderNotify Interface
|
|
// Description: Defines the behavior of the sink attached to
|
|
// the discovery provider
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(73ee3ced-b6e6-4329-a546-3e8ad46563d2),
|
|
helpstring("IWSDiscoveryProviderNotify Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
interface IWSDiscoveryProviderNotify : IUnknown
|
|
{
|
|
HRESULT Add(
|
|
[in] IWSDiscoveredService* pService);
|
|
|
|
HRESULT Remove(
|
|
[in] IWSDiscoveredService* pService);
|
|
|
|
HRESULT SearchFailed(
|
|
[in] HRESULT hr,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszTag);
|
|
|
|
HRESULT SearchComplete(
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszTag);
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDiscoveredService Interface
|
|
// Description: Encapsulates information about a discovered service
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(4BAD8A3B-B374-4420-9632-AAC945B374AA),
|
|
helpstring("IWSDiscoveredService Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
interface IWSDiscoveredService : IUnknown
|
|
{
|
|
HRESULT GetEndpointReference(
|
|
[out, annotation("__deref_out")] WSD_ENDPOINT_REFERENCE** ppEndpointReference); // Note: Do not deallocate ppEndpointReference
|
|
|
|
HRESULT GetTypes(
|
|
[out, annotation("__deref_out")] WSD_NAME_LIST** ppTypesList); // Note: Do not deallocate ppTypesList
|
|
|
|
HRESULT GetScopes(
|
|
[out, annotation("__deref_out")] WSD_URI_LIST** ppScopesList); // Note: Do not deallocate ppScopesList
|
|
|
|
HRESULT GetXAddrs(
|
|
[out, annotation("__deref_out")] WSD_URI_LIST** ppXAddrsList); // Note: Do not deallocate ppXAddrsList
|
|
|
|
HRESULT GetMetadataVersion(
|
|
[out, annotation("__out")] ULONGLONG* pullMetadataVersion);
|
|
|
|
HRESULT GetExtendedDiscoXML(
|
|
[out, annotation("__deref_out")] WSDXML_ELEMENT** ppHeaderAny, // Note: Do not deallocate ppHeaderAny
|
|
[out, annotation("__deref_out")] WSDXML_ELEMENT** ppBodyAny); // Note: Do not deallocate ppBodyAny
|
|
|
|
HRESULT GetProbeResolveTag(
|
|
[out, annotation("__deref_out")] LPCWSTR* ppszTag); // Note: Do not deallocate ppszTag
|
|
|
|
HRESULT GetRemoteTransportAddress(
|
|
[out, annotation("__deref_out")] LPCWSTR* ppszRemoteTransportAddress); // Note: Do not deallocate ppszRemoteTransportAddress
|
|
|
|
HRESULT GetLocalTransportAddress(
|
|
[out, annotation("__deref_out")] LPCWSTR* ppszLocalTransportAddress); // Note: Do not deallocate ppszLocalTransportAddress
|
|
|
|
HRESULT GetLocalInterfaceGUID(
|
|
[out, annotation("__out")] GUID* pGuid);
|
|
|
|
HRESULT GetInstanceId(
|
|
[out, annotation("__out")] ULONGLONG* pullInstanceId);
|
|
}
|
|
|
|
cpp_quote("HRESULT WINAPI")
|
|
cpp_quote("WSDCreateDiscoveryPublisher(")
|
|
cpp_quote(" IWSDXMLContext* pContext,")
|
|
cpp_quote(" __deref_out IWSDiscoveryPublisher** ppPublisher);")
|
|
|
|
cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
|
|
cpp_quote("HRESULT WINAPI")
|
|
cpp_quote("WSDCreateDiscoveryPublisher2(")
|
|
cpp_quote(" IWSDXMLContext* pContext,")
|
|
cpp_quote(" __in_ecount_opt(dwConfigParamCount) WSD_CONFIG_PARAM* pConfigParams,")
|
|
cpp_quote(" DWORD dwConfigParamCount,")
|
|
cpp_quote(" __deref_out IWSDiscoveryPublisher** ppPublisher);")
|
|
cpp_quote("#endif")
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDiscoveryPublisher Interface
|
|
// Description: Defines the behavior of the discovery publisher
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(AE01E1A8-3FF9-4148-8116-057CC616FE13),
|
|
helpstring("IWSDiscoveryPublisher Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
interface IWSDiscoveryPublisher : IUnknown
|
|
{
|
|
HRESULT SetAddressFamily(
|
|
[in] DWORD dwAddressFamily);
|
|
|
|
HRESULT RegisterNotificationSink(
|
|
[in] IWSDiscoveryPublisherNotify* pSink);
|
|
|
|
HRESULT UnRegisterNotificationSink(
|
|
[in] IWSDiscoveryPublisherNotify* pSink);
|
|
|
|
HRESULT Publish(
|
|
[in, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] LPCWSTR pszSessionId,
|
|
[in, optional] const WSDXML_ELEMENT* pAny);
|
|
|
|
HRESULT MatchProbe(
|
|
[in] const WSD_SOAP_MESSAGE* pProbeMessage,
|
|
[in] IWSDMessageParameters* pMessageParameters,
|
|
[in, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__in")] LPCWSTR pszId,
|
|
[in] ULONGLONG ullMetadataVersion,
|
|
[in] ULONGLONG ullInstanceId,
|
|
[in] ULONGLONG ullMessageNumber,
|
|
[in, optional, annotation("__in_opt")] 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, annotation("__deref_out")] IWSDXMLContext** ppContext);
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDiscoveryPublisherNotify Interface
|
|
// Description: Defines the behavior of the sink attached to the
|
|
// discovery publisher
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(e67651b0-337a-4b3c-9758-733388568251),
|
|
helpstring("IWSDiscoveryPublisherNotify Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
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);
|
|
}
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// IWSDScopeMatchingRule Interface
|
|
// Description: Defines an interface for new scope matching rules
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
uuid(fcafe424-fef5-481a-bd9f-33ce0574256f),
|
|
helpstring("IWSDScopeMatchingRule Interface"),
|
|
pointer_default(unique),
|
|
restricted,
|
|
local
|
|
]
|
|
interface IWSDScopeMatchingRule : IUnknown
|
|
{
|
|
HRESULT GetScopeRule(
|
|
[out, annotation("__deref_out")] LPCWSTR* ppszScopeMatchingRule); // Note: Implementor must allocate with WSDAllocateLinkedMemory & caller must release with WSDFreeLinkedMemory
|
|
|
|
HRESULT MatchScopes(
|
|
[in, annotation("__in")] LPCWSTR pszScope1,
|
|
[in, annotation("__in")] LPCWSTR pszScope2,
|
|
[out, annotation("__out")] BOOL* pfMatch);
|
|
}
|
|
|