2 * Web Services on Devices
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
31 #include "wine/list.h"
33 #define WSD_MAX_TEXT_LENGTH 8192
37 struct notificationSink
40 IWSDiscoveryPublisherNotify
*notificationSink
;
43 typedef struct IWSDiscoveryPublisherImpl
{
44 IWSDiscoveryPublisher IWSDiscoveryPublisher_iface
;
46 IWSDXMLContext
*xmlContext
;
48 struct list notificationSinks
;
49 BOOL publisherStarted
;
50 } IWSDiscoveryPublisherImpl
;
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
);
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
);
67 LPWSTR
duplicate_string(void *parentMemoryBlock
, LPCWSTR value
);