Make this header widl-compatible, and add winapi-family featrue. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6514 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/wsdtypes.h b/mingw-w64-headers/include/wsdtypes.h index e2543ea..d5a2b18 100644 --- a/mingw-w64-headers/include/wsdtypes.h +++ b/mingw-w64-headers/include/wsdtypes.h
@@ -1,397 +1,481 @@ /** - * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. + * No warranty is given; refer to the file DISCLAIMER within this package. */ -#ifndef _INC_WSDTYPES -#define _INC_WSDTYPES -#ifndef _INC_WSDAPI -#error Please include wsdapi.h instead of this header. This header cannot be used directly. -#endif +#include <winapifamily.h> -#if (_WIN32_WINNT >= 0x0600) +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) -#ifdef __cplusplus -extern "C" { -#endif +#define WSDRegisterTypes(pContext) pContext->SetTypes (WSDTypes, 40, 0) + +#define TYPE_ENCODING_WSD_RELATIONSHIP_METADATA WSDXML_TYPE_ENCODING (0, 0) +#define TYPE_ENCODING_WSD_HOST_METADATA WSDXML_TYPE_ENCODING (1, 0) +#define TYPE_ENCODING_WSD_SERVICE_METADATA WSDXML_TYPE_ENCODING (2, 0) +#define TYPE_ENCODING_WSD_THIS_DEVICE_METADATA WSDXML_TYPE_ENCODING (3, 0) +#define TYPE_ENCODING_WSD_THIS_MODEL_METADATA WSDXML_TYPE_ENCODING (4, 0) +#define TYPE_ENCODING_WSD_SOAP_FAULT_REASON WSDXML_TYPE_ENCODING (5, 0) +#define TYPE_ENCODING_WSD_SOAP_FAULT_SUBCODE WSDXML_TYPE_ENCODING (6, 0) +#define TYPE_ENCODING_WSD_SOAP_FAULT_CODE WSDXML_TYPE_ENCODING (7, 0) +#define TYPE_ENCODING_WSD_SOAP_FAULT WSDXML_TYPE_ENCODING (8, 0) +#define TYPE_ENCODING_WSD_APP_SEQUENCE WSDXML_TYPE_ENCODING (9, 0) +#define TYPE_ENCODING_WSD_HEADER_RELATESTO WSDXML_TYPE_ENCODING (10, 0) +#define TYPE_ENCODING_WSD_SOAP_HEADER WSDXML_TYPE_ENCODING (11, 0) +#define TYPE_ENCODING_WSD_SOAP_MESSAGE WSDXML_TYPE_ENCODING (12, 0) +#define TYPE_ENCODING_WSD_RESOLVE_MATCHES WSDXML_TYPE_ENCODING (13, 0) +#define TYPE_ENCODING_WSD_RESOLVE_MATCH WSDXML_TYPE_ENCODING (14, 0) +#define TYPE_ENCODING_WSD_RESOLVE WSDXML_TYPE_ENCODING (15, 0) +#define TYPE_ENCODING_WSD_PROBE_MATCH WSDXML_TYPE_ENCODING (16, 0) +#define TYPE_ENCODING_WSD_PROBE_MATCHES WSDXML_TYPE_ENCODING (17, 0) +#define TYPE_ENCODING_WSD_PROBE WSDXML_TYPE_ENCODING (18, 0) +#define TYPE_ENCODING_WSD_BYE WSDXML_TYPE_ENCODING (19, 0) +#define TYPE_ENCODING_WSD_SCOPES WSDXML_TYPE_ENCODING (20, 0) +#define TYPE_ENCODING_WSD_HELLO WSDXML_TYPE_ENCODING (21, 0) +#define TYPE_ENCODING_WSD_REFERENCE_PARAMETERS WSDXML_TYPE_ENCODING (22, 0) +#define TYPE_ENCODING_WSD_REFERENCE_PROPERTIES WSDXML_TYPE_ENCODING (23, 0) +#define TYPE_ENCODING_WSD_ENDPOINT_REFERENCE WSDXML_TYPE_ENCODING (24, 0) +#define TYPE_ENCODING_WSD_METADATA_SECTION WSDXML_TYPE_ENCODING (25, 0) +#define TYPE_ENCODING_WSD_EVENTING_FILTER_ACTION WSDXML_TYPE_ENCODING (26, 0) +#define TYPE_ENCODING_WSD_EVENTING_FILTER WSDXML_TYPE_ENCODING (27, 0) +#define TYPE_ENCODING_WSD_EVENTING_EXPIRES WSDXML_TYPE_ENCODING (28, 0) +#define TYPE_ENCODING_WSD_EVENTING_DELIVERY_MODE_PUSH WSDXML_TYPE_ENCODING (29, 0) +#define TYPE_ENCODING_WSD_EVENTING_DELIVERY_MODE WSDXML_TYPE_ENCODING (30, 0) +#define TYPE_ENCODING_WSD_LOCALIZED_STRING WSDXML_TYPE_ENCODING (31, 0) +#define TYPE_ENCODING_WSD11_RESOLVE_MATCH WSDXML_TYPE_ENCODING (32, 0) +#define TYPE_ENCODING_WSD11_RESOLVE_MATCHES WSDXML_TYPE_ENCODING (33, 0) +#define TYPE_ENCODING_WSD11_RESOLVE WSDXML_TYPE_ENCODING (34, 0) +#define TYPE_ENCODING_WSD11_PROBE_MATCH WSDXML_TYPE_ENCODING (35, 0) +#define TYPE_ENCODING_WSD11_PROBE_MATCHES WSDXML_TYPE_ENCODING (36, 0) +#define TYPE_ENCODING_WSD11_PROBE WSDXML_TYPE_ENCODING (37, 0) +#define TYPE_ENCODING_WSD11_BYE WSDXML_TYPE_ENCODING (38, 0) +#define TYPE_ENCODING_WSD11_HELLO WSDXML_TYPE_ENCODING (39, 0) typedef enum _WSD_PROTOCOL_TYPE { - WSD_PT_NONE = 0x00, - WSD_PT_UDP = 0x01, - WSD_PT_HTTP = 0x02, - WSD_PT_HTTPS = 0x04, - WSD_PT_ALL = 0xff + WSD_PT_NONE = 0x00, + WSD_PT_UDP = 0x01, + WSD_PT_HTTP = 0x02, + WSD_PT_HTTPS = 0x04, + WSD_PT_ALL = 0xff, } WSD_PROTOCOL_TYPE; typedef enum _WSDEventType { - WSDET_NONE = 0, - WSDET_INCOMING_MESSAGE = 1, - WSDET_INCOMING_FAULT = 2, - WSDET_TRANSMISSION_FAILURE = 3, - WSDET_RESPONSE_TIMEOUT = 4 + WSDET_NONE = 0, + WSDET_INCOMING_MESSAGE = 1, + WSDET_INCOMING_FAULT = 2, + WSDET_TRANSMISSION_FAILURE = 3, + WSDET_RESPONSE_TIMEOUT = 4 } WSDEventType; -typedef HRESULT ( *PWSD_SOAP_MESSAGE_HANDLER )( - IUnknown *thisUnknown, - WSD_EVENT *event -); +typedef struct _WSD_DURATION WSD_DURATION; +typedef struct _WSD_DATETIME WSD_DATETIME; +typedef struct _WSD_EVENT WSD_EVENT; +typedef struct _WSD_RELATIONSHIP_METADATA WSD_RELATIONSHIP_METADATA; +typedef struct _WSD_SERVICE_METADATA_LIST WSD_SERVICE_METADATA_LIST; +typedef struct _WSD_HOST_METADATA WSD_HOST_METADATA; +typedef struct _WSD_ENDPOINT_REFERENCE_LIST WSD_ENDPOINT_REFERENCE_LIST; +typedef struct _WSD_SERVICE_METADATA WSD_SERVICE_METADATA; +typedef struct _WSD_THIS_DEVICE_METADATA WSD_THIS_DEVICE_METADATA; +typedef struct _WSD_THIS_MODEL_METADATA WSD_THIS_MODEL_METADATA; +typedef struct _WSD_LOCALIZED_STRING_LIST WSD_LOCALIZED_STRING_LIST; +typedef struct _WSD_SOAP_FAULT_REASON WSD_SOAP_FAULT_REASON; +typedef struct _WSD_SOAP_FAULT_SUBCODE WSD_SOAP_FAULT_SUBCODE; +typedef struct _WSD_SOAP_FAULT_CODE WSD_SOAP_FAULT_CODE; +typedef struct _WSD_SOAP_FAULT WSD_SOAP_FAULT; +typedef struct _WSD_HEADER_RELATESTO WSD_HEADER_RELATESTO; +typedef struct _WSD_SOAP_HEADER WSD_SOAP_HEADER; +typedef struct _WSD_SOAP_MESSAGE WSD_SOAP_MESSAGE; +typedef struct _WSD_RESOLVE_MATCHES WSD_RESOLVE_MATCHES; +typedef struct _WSD_RESOLVE_MATCH WSD_RESOLVE_MATCH; +typedef struct _WSD_RESOLVE WSD_RESOLVE; +typedef struct _WSD_PROBE_MATCH WSD_PROBE_MATCH; +typedef struct _WSD_PROBE_MATCH_LIST WSD_PROBE_MATCH_LIST; +typedef struct _WSD_PROBE_MATCHES WSD_PROBE_MATCHES; +typedef struct _WSD_PROBE WSD_PROBE; +typedef struct _WSD_BYE WSD_BYE; +typedef struct _WSD_SCOPES WSD_SCOPES; +typedef struct _WSD_NAME_LIST WSD_NAME_LIST; +typedef struct _WSD_HELLO WSD_HELLO; +typedef struct _WSD_REFERENCE_PARAMETERS WSD_REFERENCE_PARAMETERS; +typedef struct _WSD_REFERENCE_PROPERTIES WSD_REFERENCE_PROPERTIES; +typedef struct _WSD_ENDPOINT_REFERENCE WSD_ENDPOINT_REFERENCE; +typedef struct _WSD_METADATA_SECTION WSD_METADATA_SECTION; +typedef struct _WSD_METADATA_SECTION_LIST WSD_METADATA_SECTION_LIST; +typedef struct _WSD_URI_LIST WSD_URI_LIST; +typedef struct _WSD_EVENTING_FILTER_ACTION WSD_EVENTING_FILTER_ACTION; +typedef struct _WSD_EVENTING_FILTER WSD_EVENTING_FILTER; +typedef struct _WSD_EVENTING_EXPIRES WSD_EVENTING_EXPIRES; +typedef struct _WSD_EVENTING_DELIVERY_MODE_PUSH WSD_EVENTING_DELIVERY_MODE_PUSH; +typedef struct _WSD_EVENTING_DELIVERY_MODE WSD_EVENTING_DELIVERY_MODE; -typedef HRESULT ( *WSD_STUB_FUNCTION )( - IUnknown *server, - IWSDServiceMessaging *session, - WSD_EVENT *event -); +interface IWSDMessageParameters; +interface IWSDServiceMessaging; -typedef struct _WSD_HANDLER_CONTEXT { - PWSD_SOAP_MESSAGE_HANDLER Handler; - void *PVoid; - IUnknown *Unknown; -} WSD_HANDLER_CONTEXT; - -typedef struct _WSD_REFERENCE_PROPERTIES { - WSDXML_ELEMENT *Any; -} WSD_REFERENCE_PROPERTIES; - -typedef struct _WSD_REFERENCE_PARAMETERS { - WSDXML_ELEMENT *Any; -} WSD_REFERENCE_PARAMETERS; - -typedef struct _WSD_ENDPOINT_REFERENCE { - const WCHAR *Address; - WSD_REFERENCE_PROPERTIES ReferenceProperties; - WSD_REFERENCE_PARAMETERS ReferenceParameters; - WSDXML_NAME *PortType; - WSDXML_NAME *ServiceName; - WSDXML_ELEMENT *Any; -} WSD_ENDPOINT_REFERENCE; - -typedef struct _WSD_APP_SEQUENCE { - ULONGLONG InstanceId; - const WCHAR *SequenceId; - ULONGLONG MessageNumber; -} WSD_APP_SEQUENCE; - -typedef struct _WSD_HEADER_RELATESTO { - WSDXML_NAME *RelationshipType; - const WCHAR *MessageID; -} WSD_HEADER_RELATESTO; - -typedef struct _WSD_SOAP_HEADER { - const WCHAR *To; - const WCHAR *Action; - const WCHAR *MessageID; - WSD_HEADER_RELATESTO RelatesTo; - WSD_ENDPOINT_REFERENCE *ReplyTo; - WSD_ENDPOINT_REFERENCE *From; - WSD_ENDPOINT_REFERENCE *FaultTo; - WSD_APP_SEQUENCE *AppSequence; - WSDXML_ELEMENT *AnyHeaders; -} WSD_SOAP_HEADER; - -typedef struct _WSD_SOAP_MESSAGE { - WSD_SOAP_HEADER Header; - void *Body; - WSDXML_TYPE *BodyType; -} WSD_SOAP_MESSAGE; +typedef HRESULT (*WSD_STUB_FUNCTION) (IUnknown *server, IWSDServiceMessaging *session, WSD_EVENT *event); +typedef HRESULT (*PWSD_SOAP_MESSAGE_HANDLER) (IUnknown *thisUnknown, WSD_EVENT *event); typedef struct _WSD_OPERATION { - WSDXML_TYPE *RequestType; - WSDXML_TYPE *ResponseType; + WSDXML_TYPE *RequestType; + WSDXML_TYPE *ResponseType; WSD_STUB_FUNCTION RequestStubFunction; } WSD_OPERATION; -typedef struct _WSD_EVENT { - HRESULT Hr; - DWORD EventType; - WCHAR *DispatchTag; - WSD_HANDLER_CONTEXT HandlerContext; - WSD_SOAP_MESSAGE *Soap; - WSD_OPERATION *Operation; - IWSDMessageParameters *MessageParameters; -} WSD_EVENT; - -typedef struct _WSD_SOAP_FAULT_SUBCODE { - WSDXML_NAME *Value; - WSD_SOAP_FAULT_SUBCODE *Subcode; -} WSD_SOAP_FAULT_SUBCODE; - -typedef struct _WSD_SOAP_FAULT_CODE { - WSDXML_NAME *Value; - WSD_SOAP_FAULT_SUBCODE *Subcode; -} WSD_SOAP_FAULT_CODE; +typedef struct _WSD_SYNCHRONOUS_RESPONSE_CONTEXT { + HRESULT hr; + HANDLE eventHandle; + IWSDMessageParameters *messageParameters; + void *results; +} WSD_SYNCHRONOUS_RESPONSE_CONTEXT; typedef struct _WSD_LOCALIZED_STRING { const WCHAR *lang; const WCHAR *String; } WSD_LOCALIZED_STRING; -typedef struct _WSD_LOCALIZED_STRING_LIST { - WSD_LOCALIZED_STRING_LIST *Next; - WSD_LOCALIZED_STRING *Element; -} WSD_LOCALIZED_STRING_LIST; +typedef struct _WSD_APP_SEQUENCE { + ULONGLONG InstanceId; + const WCHAR *SequenceId; + ULONGLONG MessageNumber; +} WSD_APP_SEQUENCE; -typedef struct _WSD_SOAP_FAULT_REASON { - WSD_LOCALIZED_STRING_LIST *Text; -} WSD_SOAP_FAULT_REASON; - -typedef struct _WSD_SOAP_FAULT { - WSD_SOAP_FAULT_CODE *Code; - WSD_SOAP_FAULT_REASON *Reason; - const WCHAR *Node; - const WCHAR *Role; - WSDXML_ELEMENT *Detail; -} WSD_SOAP_FAULT; - -typedef struct _REQUESTBODY_GetStatus { - WSDXML_ELEMENT *Any; -} REQUESTBODY_GetStatus; - -typedef struct _WSD_DURATION { - WINBOOL isPositive; - ULONG year; - ULONG month; - ULONG day; - ULONG hour; - ULONG minute; - ULONG second; - ULONG millisecond; -} WSD_DURATION; - -typedef struct _WSD_DATETIME { - WINBOOL isPositive; - ULONG year; - UCHAR month; - UCHAR day; - UCHAR hour; - UCHAR minute; - UCHAR second; - UINT millisecond; - WINBOOL TZIsLocal; - WINBOOL TZIsPositive; - UCHAR TZHour; - UCHAR TZMinute; -} WSD_DATETIME; - -typedef struct _WSD_EVENTING_EXPIRES { - WSD_DURATION *Duration; - WSD_DATETIME *DateTime; -} WSD_EVENTING_EXPIRES; - -typedef struct _REQUESTBODY_Renew { - WSD_EVENTING_EXPIRES *Expires; - WSDXML_ELEMENT *Any; -} REQUESTBODY_Renew; - -typedef struct _WSD_EVENTING_DELIVERY_MODE { - const WCHAR *Mode; - void *Data; -} WSD_EVENTING_DELIVERY_MODE; - -typedef struct _WSD_EVENTING_FILTER { - const WCHAR *Dialect; - void *Data; -} WSD_EVENTING_FILTER; - -typedef struct _REQUESTBODY_Subscribe { - WSD_ENDPOINT_REFERENCE *EndTo; - WSD_EVENTING_DELIVERY_MODE *Delivery; - WSD_EVENTING_EXPIRES *Expires; - WSD_EVENTING_FILTER *Filter; - WSDXML_ELEMENT *Any; -} REQUESTBODY_Subscribe; - -typedef struct _REQUESTBODY_Unsubscribe { - WSDXML_ELEMENT *any; -} REQUESTBODY_Unsubscribe; - -typedef struct _WSD_METADATA_SECTION_LIST { - WSD_METADATA_SECTION_LIST *Next; - WSD_METADATA_SECTION *Element; -} WSD_METADATA_SECTION_LIST; - -typedef struct _RESPONSEBODY_GetMetadata { - WSD_METADATA_SECTION_LIST *Metadata; -} RESPONSEBODY_GetMetadata; - -typedef struct _RESPONSEBODY_GetStatus { - WSD_EVENTING_EXPIRES *expires; - WSDXML_ELEMENT *any; -} RESPONSEBODY_GetStatus; - -typedef struct _RESPONSEBODY_Renew { - WSD_EVENTING_EXPIRES *expires; - WSDXML_ELEMENT *Any; -} RESPONSEBODY_Renew; - -typedef struct _RESPONSEBODY_Subscribe { - WSD_ENDPOINT_REFERENCE *SubscriptionManager; - WSD_EVENTING_EXPIRES *expires; - WSDXML_ELEMENT *Any; -} RESPONSEBODY_Subscribe; - -typedef struct _RESPONSEBODY_SubscriptionEnd { - WSD_ENDPOINT_REFERENCE *SubscriptionManager; - const WCHAR *Status; - WSD_LOCALIZED_STRING *Reason; - WSDXML_ELEMENT *Any; -} RESPONSEBODY_SubscriptionEnd; - -typedef struct _WSD_BYE { - WSD_ENDPOINT_REFERENCE *EndpointReference; - WSDXML_ELEMENT *Any; -} WSD_BYE; - -typedef struct _WSD_ENDPOINT_REFERENCE_LIST { - WSD_ENDPOINT_REFERENCE_LIST *Next; - WSD_ENDPOINT_REFERENCE *Element; -} WSD_ENDPOINT_REFERENCE_LIST; - -typedef struct _WSD_EVENTING_DELIVERY_MODE_PUSH { - WSD_ENDPOINT_REFERENCE *NotifyTo; -} WSD_EVENTING_DELIVERY_MODE_PUSH; - -typedef struct _WSD_URI_LIST { - WSD_URI_LIST *Next; - const WCHAR *Element; -} WSD_URI_LIST; - -typedef struct _WSD_EVENTING_FILTER_ACTION { - WSD_URI_LIST *Actions; -} WSD_EVENTING_FILTER_ACTION; - -typedef struct _WSD_NAME_LIST { - WSD_NAME_LIST *Next; - WSDXML_NAME *Element; -} WSD_NAME_LIST; - -typedef struct _WSD_SCOPES { - const WCHAR *MatchBy; - WSD_URI_LIST *Scopes; -} WSD_SCOPES; - -typedef struct _WSD_HELLO { - WSD_ENDPOINT_REFERENCE *EndpointReference; - WSD_NAME_LIST *Types; - WSD_SCOPES *Scopes; - WSD_URI_LIST *XAddrs; - ULONGLONG MetadataVersion; - WSDXML_ELEMENT *Any; -} WSD_HELLO; - -typedef struct _WSD_SERVICE_METADATA { - WSD_ENDPOINT_REFERENCE_LIST *EndpointReference; - WSD_NAME_LIST *Types; - const WCHAR *ServiceId; - WSDXML_ELEMENT *Any; -} WSD_SERVICE_METADATA; - -typedef struct _WSD_SERVICE_METADATA_LIST { - WSD_SERVICE_METADATA_LIST *Next; - WSD_SERVICE_METADATA *Element; -} WSD_SERVICE_METADATA_LIST; - -typedef struct _WSD_HOST_METADATA { - WSD_SERVICE_METADATA *Host; - WSD_SERVICE_METADATA_LIST *Hosted; -} WSD_HOST_METADATA; - -typedef struct _WSD_METADATA_SECTION { - const WCHAR *Dialect; - const WCHAR *Identifier; - void *Data; - WSD_ENDPOINT_REFERENCE *MetadataReference; - const WCHAR *Location; - WSDXML_ELEMENT *Any; -} WSD_METADATA_SECTION; +typedef struct _WSD_HANDLER_CONTEXT { + PWSD_SOAP_MESSAGE_HANDLER Handler; + void *PVoid; + IUnknown *Unknown; +} WSD_HANDLER_CONTEXT; typedef struct _WSD_PORT_TYPE { - DWORD EncodedName; - DWORD OperationCount; - WSD_OPERATION *Operations; + DWORD EncodedName; + DWORD OperationCount; + WSD_OPERATION *Operations; WSD_PROTOCOL_TYPE ProtocolType; } WSD_PORT_TYPE; -typedef struct _WSD_PROBE { - WSD_NAME_LIST *Types; - WSD_SCOPES *Scopes; - WSDXML_ELEMENT *Any; -} WSD_PROBE; - -typedef struct _WSD_PROBE_MATCH { - WSD_ENDPOINT_REFERENCE *EndpointReference; - WSD_NAME_LIST *Types; - WSD_SCOPES *Scopes; - WSD_URI_LIST *XAddrs; - ULONGLONG MetadataVersion; - WSDXML_ELEMENT *Any; -} WSD_PROBE_MATCH; - -typedef struct _WSD_PROBE_MATCH_LIST { - WSD_PROBE_MATCH_LIST *Next; - WSD_PROBE_MATCH *Element; -} WSD_PROBE_MATCH_LIST; - -typedef struct _WSD_PROBE_MATCHES { - WSD_PROBE_MATCH_LIST *ProbeMatch; - WSDXML_ELEMENT *Any; -} WSD_PROBE_MATCHES; - -typedef struct _WSD_RELATIONSHIP_METADATA { - const WCHAR *Type; +struct _WSD_RELATIONSHIP_METADATA { + const WCHAR *Type; WSD_HOST_METADATA *Data; - WSDXML_ELEMENT *Any; -} WSD_RELATIONSHIP_METADATA; + WSDXML_ELEMENT *Any; +}; -typedef struct _WSD_RESOLVE { - WSD_ENDPOINT_REFERENCE *EndpointReference; - WSDXML_ELEMENT *Any; -} WSD_RESOLVE; +struct _WSD_SERVICE_METADATA_LIST { + WSD_SERVICE_METADATA_LIST *Next; + WSD_SERVICE_METADATA *Element; +}; -typedef struct _WSD_RESOLVE_MATCH { - WSD_ENDPOINT_REFERENCE *EndpointReference; - WSD_NAME_LIST *Types; - WSD_SCOPES *Scopes; - WSD_URI_LIST *XAddrs; - ULONGLONG MetadataVersion; - WSDXML_ELEMENT *Any; -} WSD_RESOLVE_MATCH; +struct _WSD_HOST_METADATA { + WSD_SERVICE_METADATA *Host; + WSD_SERVICE_METADATA_LIST *Hosted; +}; -typedef struct _WSD_RESOLVE_MATCHES { - WSD_RESOLVE_MATCH *ResolveMatch; - WSDXML_ELEMENT *Any; -} WSD_RESOLVE_MATCHES; +struct _WSD_ENDPOINT_REFERENCE_LIST { + WSD_ENDPOINT_REFERENCE_LIST *Next; + WSD_ENDPOINT_REFERENCE *Element; +}; -typedef struct _WSD_SYNCHRONOUS_RESPONSE_CONTEXT { - HRESULT hr; - HANDLE eventHandle; - IWSDMessageParameters *messageParameters; - void *results; -} WSD_SYNCHRONOUS_RESPONSE_CONTEXT; +struct _WSD_SERVICE_METADATA { + WSD_ENDPOINT_REFERENCE_LIST *EndpointReference; + WSD_NAME_LIST *Types; + const WCHAR *ServiceId; + WSDXML_ELEMENT *Any; +}; -typedef struct _WSD_THIS_DEVICE_METADATA { +struct _WSD_THIS_DEVICE_METADATA { WSD_LOCALIZED_STRING_LIST *FriendlyName; - const WCHAR *FirmwareVersion; - const WCHAR *SerialNumber; - WSDXML_ELEMENT *Any; -} WSD_THIS_DEVICE_METADATA; + const WCHAR *FirmwareVersion; + const WCHAR *SerialNumber; + WSDXML_ELEMENT *Any; +}; -typedef struct _WSD_THIS_MODEL_METADATA { +struct _WSD_THIS_MODEL_METADATA { WSD_LOCALIZED_STRING_LIST *Manufacturer; - const WCHAR *ManufacturerUrl; + const WCHAR *ManufacturerUrl; WSD_LOCALIZED_STRING_LIST *ModelName; - const WCHAR *ModelNumber; - const WCHAR *ModelUrl; - const WCHAR *PresentationUrl; - WSDXML_ELEMENT *Any; -} WSD_THIS_MODEL_METADATA; + const WCHAR *ModelNumber; + const WCHAR *ModelUrl; + const WCHAR *PresentationUrl; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_LOCALIZED_STRING_LIST { + WSD_LOCALIZED_STRING_LIST *Next; + WSD_LOCALIZED_STRING *Element; +}; + +struct _WSD_SOAP_FAULT_REASON { + WSD_LOCALIZED_STRING_LIST *Text; +}; + +struct _WSD_SOAP_FAULT_SUBCODE { + WSDXML_NAME *Value; + WSD_SOAP_FAULT_SUBCODE *Subcode; +}; + +struct _WSD_SOAP_FAULT_CODE { + WSDXML_NAME *Value; + WSD_SOAP_FAULT_SUBCODE *Subcode; +}; + +struct _WSD_SOAP_FAULT { + WSD_SOAP_FAULT_CODE *Code; + WSD_SOAP_FAULT_REASON *Reason; + const WCHAR *Node; + const WCHAR *Role; + WSDXML_ELEMENT *Detail; +}; + +struct _WSD_HEADER_RELATESTO { + WSDXML_NAME *RelationshipType; + const WCHAR *MessageID; +}; + +struct _WSD_SOAP_HEADER { + const WCHAR *To; + const WCHAR *Action; + const WCHAR *MessageID; + WSD_HEADER_RELATESTO RelatesTo; + WSD_ENDPOINT_REFERENCE *ReplyTo; + WSD_ENDPOINT_REFERENCE *From; + WSD_ENDPOINT_REFERENCE *FaultTo; + WSD_APP_SEQUENCE *AppSequence; + WSDXML_ELEMENT *AnyHeaders; +}; + +struct _WSD_SOAP_MESSAGE { + WSD_SOAP_HEADER Header; + void *Body; + WSDXML_TYPE *BodyType; +}; + +struct _WSD_RESOLVE_MATCHES { + WSD_RESOLVE_MATCH *ResolveMatch; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_RESOLVE_MATCH { + WSD_ENDPOINT_REFERENCE *EndpointReference; + WSD_NAME_LIST *Types; + WSD_SCOPES *Scopes; + WSD_URI_LIST *XAddrs; + ULONGLONG MetadataVersion; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_RESOLVE { + WSD_ENDPOINT_REFERENCE *EndpointReference; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_PROBE_MATCH { + WSD_ENDPOINT_REFERENCE *EndpointReference; + WSD_NAME_LIST *Types; + WSD_SCOPES *Scopes; + WSD_URI_LIST *XAddrs; + ULONGLONG MetadataVersion; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_PROBE_MATCH_LIST { + WSD_PROBE_MATCH_LIST *Next; + WSD_PROBE_MATCH *Element; +}; + +struct _WSD_PROBE_MATCHES { + WSD_PROBE_MATCH_LIST *ProbeMatch; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_PROBE { + WSD_NAME_LIST *Types; + WSD_SCOPES *Scopes; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_BYE { + WSD_ENDPOINT_REFERENCE *EndpointReference; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_SCOPES { + const WCHAR *MatchBy; + WSD_URI_LIST *Scopes; +}; + +struct _WSD_NAME_LIST { + WSD_NAME_LIST *Next; + WSDXML_NAME *Element; +}; + +struct _WSD_HELLO { + WSD_ENDPOINT_REFERENCE *EndpointReference; + WSD_NAME_LIST *Types; + WSD_SCOPES *Scopes; + WSD_URI_LIST *XAddrs; + ULONGLONG MetadataVersion; + WSDXML_ELEMENT *Any; +}; +struct _WSD_REFERENCE_PARAMETERS { + WSDXML_ELEMENT *Any; +}; + +struct _WSD_REFERENCE_PROPERTIES { + WSDXML_ELEMENT *Any; +}; + +struct _WSD_ENDPOINT_REFERENCE { + const WCHAR *Address; + WSD_REFERENCE_PROPERTIES ReferenceProperties; + WSD_REFERENCE_PARAMETERS ReferenceParameters; + WSDXML_NAME *PortType; + WSDXML_NAME *ServiceName; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_METADATA_SECTION { + const WCHAR *Dialect; + const WCHAR *Identifier; + void *Data; + WSD_ENDPOINT_REFERENCE *MetadataReference; + const WCHAR *Location; + WSDXML_ELEMENT *Any; +}; + +struct _WSD_METADATA_SECTION_LIST { + WSD_METADATA_SECTION_LIST *Next; + WSD_METADATA_SECTION *Element; +}; + +struct _WSD_URI_LIST { + WSD_URI_LIST *Next; + const WCHAR *Element; +}; + +struct _WSD_EVENTING_FILTER_ACTION { + WSD_URI_LIST *Actions; +}; + +struct _WSD_EVENTING_FILTER { + const WCHAR *Dialect; + WSD_EVENTING_FILTER_ACTION *FilterAction; + void *Data; +}; + +struct _WSD_EVENTING_EXPIRES { + WSD_DURATION *Duration; + WSD_DATETIME *DateTime; +}; + +struct _WSD_EVENTING_DELIVERY_MODE_PUSH { + WSD_ENDPOINT_REFERENCE *NotifyTo; +}; + +struct _WSD_EVENTING_DELIVERY_MODE { + const WCHAR *Mode; + WSD_EVENTING_DELIVERY_MODE_PUSH *Push; + void *Data; +}; + +typedef struct { + WSD_METADATA_SECTION_LIST *Metadata; +} RESPONSEBODY_GetMetadata; + +typedef struct { + WSD_ENDPOINT_REFERENCE *EndTo; + WSD_EVENTING_DELIVERY_MODE *Delivery; + WSD_EVENTING_EXPIRES *Expires; + WSD_EVENTING_FILTER *Filter; + WSDXML_ELEMENT *Any; +} REQUESTBODY_Subscribe; + +typedef struct { + WSD_ENDPOINT_REFERENCE *SubscriptionManager; + WSD_EVENTING_EXPIRES *expires; + WSDXML_ELEMENT *any; +} RESPONSEBODY_Subscribe; + +typedef struct { + WSD_EVENTING_EXPIRES *Expires; + WSDXML_ELEMENT *Any; +} REQUESTBODY_Renew; + +typedef struct { + WSD_EVENTING_EXPIRES *expires; + WSDXML_ELEMENT *any; +} RESPONSEBODY_Renew; + +typedef struct { + WSDXML_ELEMENT *Any; +} REQUESTBODY_GetStatus; + +typedef struct { + WSD_EVENTING_EXPIRES *expires; + WSDXML_ELEMENT *any; +} RESPONSEBODY_GetStatus; + +typedef struct { + WSDXML_ELEMENT *any; +} REQUESTBODY_Unsubscribe; + +typedef struct { + WSD_ENDPOINT_REFERENCE *SubscriptionManager; + const WCHAR *Status; + WSD_LOCALIZED_STRING *Reason; + WSDXML_ELEMENT *Any; +} RESPONSEBODY_SubscriptionEnd; typedef struct _WSD_UNKNOWN_LOOKUP { WSDXML_ELEMENT *Any; } WSD_UNKNOWN_LOOKUP; -#ifdef __cplusplus -} +struct _WSD_EVENT { + HRESULT Hr; + DWORD EventType; + WCHAR *DispatchTag; + WSD_HANDLER_CONTEXT HandlerContext; + WSD_SOAP_MESSAGE *Soap; + WSD_OPERATION *Operation; + IWSDMessageParameters *MessageParameters; +}; + +extern WSDXML_TYPE *WSDTypes[40]; + +extern WSDXML_TYPE Type_WSD_RELATIONSHIP_METADATA; +extern WSDXML_TYPE Type_WSD_HOST_METADATA; +extern WSDXML_TYPE Type_WSD_SERVICE_METADATA; +extern WSDXML_TYPE Type_WSD_THIS_DEVICE_METADATA; +extern WSDXML_TYPE Type_WSD_THIS_MODEL_METADATA; +extern WSDXML_TYPE Type_WSD_SOAP_FAULT_REASON; +extern WSDXML_TYPE Type_WSD_SOAP_FAULT_SUBCODE; +extern WSDXML_TYPE Type_WSD_SOAP_FAULT_CODE; +extern WSDXML_TYPE Type_WSD_SOAP_FAULT; +extern WSDXML_TYPE Type_WSD_APP_SEQUENCE; +extern WSDXML_TYPE Type_WSD_HEADER_RELATESTO; +extern WSDXML_TYPE Type_WSD_SOAP_HEADER; +extern WSDXML_TYPE Type_WSD_SOAP_MESSAGE; +extern WSDXML_TYPE Type_WSD_RESOLVE_MATCHES; +extern WSDXML_TYPE Type_WSD_RESOLVE_MATCH; +extern WSDXML_TYPE Type_WSD_RESOLVE; +extern WSDXML_TYPE Type_WSD_PROBE_MATCH; +extern WSDXML_TYPE Type_WSD_PROBE_MATCHES; +extern WSDXML_TYPE Type_WSD_PROBE; +extern WSDXML_TYPE Type_WSD_BYE; +extern WSDXML_TYPE Type_WSD_SCOPES; +extern WSDXML_TYPE Type_WSD_HELLO; +extern WSDXML_TYPE Type_WSD_REFERENCE_PARAMETERS; +extern WSDXML_TYPE Type_WSD_REFERENCE_PROPERTIES; +extern WSDXML_TYPE Type_WSD_ENDPOINT_REFERENCE; +extern WSDXML_TYPE Type_WSD_METADATA_SECTION; +extern WSDXML_TYPE Type_WSD_EVENTING_FILTER_ACTION; +extern WSDXML_TYPE Type_WSD_EVENTING_FILTER; +extern WSDXML_TYPE Type_WSD_EVENTING_EXPIRES; +extern WSDXML_TYPE Type_WSD_EVENTING_DELIVERY_MODE_PUSH; +extern WSDXML_TYPE Type_WSD_EVENTING_DELIVERY_MODE; +extern WSDXML_TYPE Type_WSD_LOCALIZED_STRING; +extern WSDXML_TYPE Type_WSD11_RESOLVE_MATCH; +extern WSDXML_TYPE Type_WSD11_RESOLVE_MATCHES; +extern WSDXML_TYPE Type_WSD11_RESOLVE; +extern WSDXML_TYPE Type_WSD11_PROBE_MATCH; +extern WSDXML_TYPE Type_WSD11_PROBE_MATCHES; +extern WSDXML_TYPE Type_WSD11_PROBE; +extern WSDXML_TYPE Type_WSD11_BYE; +extern WSDXML_TYPE Type_WSD11_HELLO; + #endif -#endif /*(_WIN32_WINNT >= 0x0600)*/ -#endif /*_INC_WSDTYPES*/