From 03f06598052e716178c41ef9203a8506122873f7 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Tue, 7 Dec 2021 19:22:03 +0100 Subject: [PATCH] wsdapi: Add stub for WSDCreateDiscoveryProvider. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52173 Signed-off-by: Louis Lenders Signed-off-by: Owen Rudge Signed-off-by: Alexandre Julliard --- dlls/wsdapi/discovery.c | 7 +++++ dlls/wsdapi/wsdapi.spec | 2 +- include/wsddisco.idl | 60 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/dlls/wsdapi/discovery.c b/dlls/wsdapi/discovery.c index fcbdfef2ab2..708cb803d03 100644 --- a/dlls/wsdapi/discovery.c +++ b/dlls/wsdapi/discovery.c @@ -470,3 +470,10 @@ HRESULT WINAPI WSDCreateDiscoveryPublisher(IWSDXMLContext *pContext, IWSDiscover return S_OK; } + +HRESULT WINAPI WSDCreateDiscoveryProvider(IWSDXMLContext *context, IWSDiscoveryProvider **provider) +{ + FIXME("(%p, %p) stub\n", context, provider); + + return E_NOTIMPL; +} diff --git a/dlls/wsdapi/wsdapi.spec b/dlls/wsdapi/wsdapi.spec index 95ee072a1cf..d7465458dd5 100644 --- a/dlls/wsdapi/wsdapi.spec +++ b/dlls/wsdapi/wsdapi.spec @@ -15,7 +15,7 @@ @ stub WSDCreateDeviceProxy @ stub WSDCreateDeviceProxyAdvanced @ stub WSDCreateDiscoveryProvider2 -@ stub WSDCreateDiscoveryProvider +@ stdcall WSDCreateDiscoveryProvider(ptr ptr) @ stub WSDCreateDiscoveryPublisher2 @ stdcall WSDCreateDiscoveryPublisher(ptr ptr) @ stub WSDCreateHttpAddress diff --git a/include/wsddisco.idl b/include/wsddisco.idl index 50d2198cea7..bbeff522a85 100644 --- a/include/wsddisco.idl +++ b/include/wsddisco.idl @@ -24,6 +24,9 @@ interface IWSDScopeMatchingRule; interface IWSDiscoveryPublisherNotify; interface IWSDiscoveryPublisher; interface IWSDXMLContext; +interface IWSDiscoveryProvider; +interface IWSDiscoveryProviderNotify; +interface IWSDiscoveredService; [ uuid(fcafe424-fef5-481a-bd9f-33ce0574256f), @@ -38,6 +41,62 @@ interface IWSDScopeMatchingRule : IUnknown HRESULT MatchScopes([in] LPCWSTR pszScope1, [in] LPCWSTR pszScope2, [out] BOOL *pfMatch); } +[ +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); +} + [ uuid(e67651b0-337a-4b3c-9758-733388568251), object, @@ -104,4 +163,5 @@ interface IWSDiscoveryPublisher : IUnknown HRESULT GetXMLContext([out] IWSDXMLContext **ppContext); } +cpp_quote("HRESULT WINAPI WSDCreateDiscoveryProvider(IWSDXMLContext *context, IWSDiscoveryProvider **provider);") cpp_quote("HRESULT WINAPI WSDCreateDiscoveryPublisher(IWSDXMLContext* pContext, IWSDiscoveryPublisher **ppPublisher);")