/** * 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. */ #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 #if (_WIN32_WINNT >= 0x0600) #ifdef __cplusplus extern "C" { #endif 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_PROTOCOL_TYPE; typedef enum _WSDEventType { 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 HRESULT ( *WSD_STUB_FUNCTION )( IUnknown *server, IWSDServiceMessaging *session, WSD_EVENT *event ); 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 struct _WSD_OPERATION { 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_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_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_PORT_TYPE { 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; WSD_HOST_METADATA *Data; WSDXML_ELEMENT *Any; } WSD_RELATIONSHIP_METADATA; typedef struct _WSD_RESOLVE { WSD_ENDPOINT_REFERENCE *EndpointReference; WSDXML_ELEMENT *Any; } WSD_RESOLVE; 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; typedef struct _WSD_RESOLVE_MATCHES { WSD_RESOLVE_MATCH *ResolveMatch; WSDXML_ELEMENT *Any; } WSD_RESOLVE_MATCHES; typedef struct _WSD_SYNCHRONOUS_RESPONSE_CONTEXT { HRESULT hr; HANDLE eventHandle; IWSDMessageParameters *messageParameters; void *results; } WSD_SYNCHRONOUS_RESPONSE_CONTEXT; typedef struct _WSD_THIS_DEVICE_METADATA { WSD_LOCALIZED_STRING_LIST *FriendlyName; const WCHAR *FirmwareVersion; const WCHAR *SerialNumber; WSDXML_ELEMENT *Any; } WSD_THIS_DEVICE_METADATA; typedef struct _WSD_THIS_MODEL_METADATA { WSD_LOCALIZED_STRING_LIST *Manufacturer; const WCHAR *ManufacturerUrl; WSD_LOCALIZED_STRING_LIST *ModelName; const WCHAR *ModelNumber; const WCHAR *ModelUrl; const WCHAR *PresentationUrl; WSDXML_ELEMENT *Any; } WSD_THIS_MODEL_METADATA; typedef struct _WSD_UNKNOWN_LOOKUP { WSDXML_ELEMENT *Any; } WSD_UNKNOWN_LOOKUP; #ifdef __cplusplus } #endif #endif /*(_WIN32_WINNT >= 0x0600)*/ #endif /*_INC_WSDTYPES*/