wsdapi: Store discovered namespaces and write xmlns attributes for them.
[wine.git] / dlls / wsdapi / wsdapi_internal.h
blob47dde6b2c982df7d60673426b9eb91c1279fdd69
1 /*
2 * Web Services on Devices
3 * Internal header
5 * Copyright 2017-2018 Owen Rudge for CodeWeavers
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef _WINE_WSDAPI_INTERNAL_H
23 #define _WINE_WSDAPI_INTERNAL_H
25 #include "winsock2.h"
26 #include "ws2tcpip.h"
27 #include "windef.h"
28 #include "winbase.h"
29 #include "objbase.h"
30 #include "wsdapi.h"
31 #include "wine/list.h"
33 #define WSD_MAX_TEXT_LENGTH 8192
35 /* discovery.c */
37 struct notificationSink
39 struct list entry;
40 IWSDiscoveryPublisherNotify *notificationSink;
43 typedef struct IWSDiscoveryPublisherImpl {
44 IWSDiscoveryPublisher IWSDiscoveryPublisher_iface;
45 LONG ref;
46 IWSDXMLContext *xmlContext;
47 DWORD addressFamily;
48 struct list notificationSinks;
49 BOOL publisherStarted;
50 } IWSDiscoveryPublisherImpl;
52 /* network.c */
54 BOOL init_networking(IWSDiscoveryPublisherImpl *impl);
55 void terminate_networking(IWSDiscoveryPublisherImpl *impl);
56 BOOL send_udp_multicast(IWSDiscoveryPublisherImpl *impl, char *data, int length, int max_initial_delay);
58 /* soap.c */
60 HRESULT send_hello_message(IWSDiscoveryPublisherImpl *impl, LPCWSTR id, ULONGLONG metadata_ver, ULONGLONG instance_id,
61 ULONGLONG msg_num, LPCWSTR session_id, const WSD_NAME_LIST *types_list, const WSD_URI_LIST *scopes_list,
62 const WSD_URI_LIST *xaddrs_list, const WSDXML_ELEMENT *hdr_any, const WSDXML_ELEMENT *ref_param_any,
63 const WSDXML_ELEMENT *endpoint_ref_any, const WSDXML_ELEMENT *any);
65 /* xml.c */
67 LPWSTR duplicate_string(void *parentMemoryBlock, LPCWSTR value);
69 #endif