diff --git a/mingw32/bin/gendef.exe b/mingw32/bin/gendef.exe index d673c5a20ef..6e9c6a04977 100644 Binary files a/mingw32/bin/gendef.exe and b/mingw32/bin/gendef.exe differ diff --git a/mingw32/bin/genidl.exe b/mingw32/bin/genidl.exe index 7df05445d35..e3cc4993e2d 100644 Binary files a/mingw32/bin/genidl.exe and b/mingw32/bin/genidl.exe differ diff --git a/mingw32/bin/genpeimg.exe b/mingw32/bin/genpeimg.exe index 69f2cc9f324..778ba3e0319 100644 Binary files a/mingw32/bin/genpeimg.exe and b/mingw32/bin/genpeimg.exe differ diff --git a/mingw32/bin/libwinpthread-1.dll b/mingw32/bin/libwinpthread-1.dll index 9b24f99f462..c695422893c 100644 Binary files a/mingw32/bin/libwinpthread-1.dll and b/mingw32/bin/libwinpthread-1.dll differ diff --git a/mingw32/bin/widl.exe b/mingw32/bin/widl.exe index f2597d7195a..e7e98131efe 100644 Binary files a/mingw32/bin/widl.exe and b/mingw32/bin/widl.exe differ diff --git a/mingw32/include/corecrt_stdio_config.h b/mingw32/include/corecrt_stdio_config.h index 02a83684f86..3028d92e160 100644 --- a/mingw32/include/corecrt_stdio_config.h +++ b/mingw32/include/corecrt_stdio_config.h @@ -14,13 +14,14 @@ #define _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS 0x0004ULL #define _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY 0x0008ULL #define _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS 0x0010ULL +#define _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING 0x0020ULL #define _CRT_INTERNAL_SCANF_SECURECRT 0x0001ULL #define _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS 0x0002ULL #define _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY 0x0004ULL #ifndef _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS -#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS +#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS (_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS | _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING) #endif #ifndef _CRT_INTERNAL_LOCAL_SCANF_OPTIONS diff --git a/mingw32/include/d2d1.h b/mingw32/include/d2d1.h index 66f3ee4dce9..f89b1efcdc2 100644 --- a/mingw32/include/d2d1.h +++ b/mingw32/include/d2d1.h @@ -120,6 +120,8 @@ typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS { D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS); + typedef enum D2D1_DASH_STYLE { D2D1_DASH_STYLE_SOLID = 0, D2D1_DASH_STYLE_DASH = 1, @@ -153,6 +155,8 @@ typedef enum D2D1_DRAW_TEXT_OPTIONS { D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_DRAW_TEXT_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS); + typedef enum D2D1_EXTEND_MODE { D2D1_EXTEND_MODE_CLAMP = 0, D2D1_EXTEND_MODE_WRAP = 1, @@ -218,6 +222,8 @@ typedef enum D2D1_LAYER_OPTIONS { D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_LAYER_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS); + typedef enum D2D1_LINE_JOIN { D2D1_LINE_JOIN_MITER = 0, D2D1_LINE_JOIN_BEVEL = 1, @@ -240,6 +246,8 @@ typedef enum D2D1_PATH_SEGMENT { D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff } D2D1_PATH_SEGMENT; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_PATH_SEGMENT); + typedef enum D2D1_PRESENT_OPTIONS { D2D1_PRESENT_OPTIONS_NONE = 0x00000000, D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001, @@ -247,6 +255,8 @@ typedef enum D2D1_PRESENT_OPTIONS { D2D1_PRESENT_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_PRESENT_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_PRESENT_OPTIONS); + typedef enum D2D1_RENDER_TARGET_TYPE { D2D1_RENDER_TARGET_TYPE_DEFAULT = 0, D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1, @@ -261,6 +271,8 @@ typedef enum D2D1_RENDER_TARGET_USAGE { D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff } D2D1_RENDER_TARGET_USAGE; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE); + typedef enum D2D1_SWEEP_DIRECTION { D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0, D2D1_SWEEP_DIRECTION_CLOCKWISE = 1, @@ -281,6 +293,8 @@ typedef enum D2D1_WINDOW_STATE { D2D1_WINDOW_STATE_FORCE_DWORD = 0xffffffff } D2D1_WINDOW_STATE; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_WINDOW_STATE); + /* this is a hack so we can use forward declares in C (easier than reordering interfaces) */ #if !defined(__cplusplus) #undef DECLARE_INTERFACE diff --git a/mingw32/include/d3d11.h b/mingw32/include/d3d11.h index 59f79769103..bad49096496 100644 --- a/mingw32/include/d3d11.h +++ b/mingw32/include/d3d11.h @@ -625,8 +625,30 @@ interface ID3D11VideoProcessorInputView; #define D3D11_DEFAULT_VIEWPORT_WIDTH (0) #define D3D11_FLOAT32_MAX (3.402823466e+38f) +#define D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0) + +#define D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0) + +#define D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0) + +#define D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1) + +#define D3D11_IA_INSTANCE_ID_BIT_COUNT (32) + +#define D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT (32) + +#define D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT (32) + +#define D3D11_IA_PRIMITIVE_ID_BIT_COUNT (32) + +#define D3D11_IA_VERTEX_ID_BIT_COUNT (32) + #define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32) +#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128) + +#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32) + #define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT (8) #define D3D11_MAX_MAXANISOTROPY (16) diff --git a/mingw32/include/d3d11.idl b/mingw32/include/d3d11.idl index 82696095b23..670ec327f7d 100644 --- a/mingw32/include/d3d11.idl +++ b/mingw32/include/d3d11.idl @@ -156,7 +156,18 @@ const UINT D3D11_DEFAULT_VIEWPORT_WIDTH = 0; cpp_quote("#define D3D11_FLOAT32_MAX (3.402823466e+38f)") +const UINT D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; +const UINT D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; +const UINT D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; +const UINT D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; +const UINT D3D11_IA_INSTANCE_ID_BIT_COUNT = 32; +const UINT D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; +const UINT D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32; +const UINT D3D11_IA_PRIMITIVE_ID_BIT_COUNT = 32; +const UINT D3D11_IA_VERTEX_ID_BIT_COUNT = 32; const UINT D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; +const UINT D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; +const UINT D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; diff --git a/mingw32/include/sec_api/stdio_s.h b/mingw32/include/sec_api/stdio_s.h index 320defe2508..008c0b944e0 100644 --- a/mingw32/include/sec_api/stdio_s.h +++ b/mingw32/include/sec_api/stdio_s.h @@ -201,7 +201,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf_s(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vfprintf_s(FILE *_File, const char *_Format, va_list _ArgList) { @@ -254,7 +254,7 @@ extern "C" { __mingw_ovr int __cdecl _vsnprintf_c_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vsnprintf_c(char *_DstBuf, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -281,7 +281,7 @@ extern "C" { __mingw_ovr int __cdecl _vsnprintf_s_l(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsnprintf_s(0, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsnprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vsnprintf_s(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -312,7 +312,7 @@ extern "C" { __mingw_ovr int __cdecl _vsprintf_s_l(char *_DstBuf, size_t _DstSize, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf_s(0, _DstBuf, _DstSize, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vsprintf_s(char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) { @@ -339,7 +339,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_p_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vfprintf_p(FILE *_File, const char *_Format, va_list _ArgList) { @@ -358,7 +358,7 @@ extern "C" { __builtin_va_list _ArgList; int _Ret; __builtin_va_start(_ArgList, _Locale); - _Ret = __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList); + _Ret = __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); __builtin_va_end(_ArgList); return _Ret; } @@ -392,7 +392,7 @@ extern "C" { __mingw_ovr int __cdecl _vsprintf_p_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf_p(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vsprintf_p(char *_Dst, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -446,7 +446,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vprintf_l(const char *_Format, _locale_t _Locale, va_list _ArgList) { diff --git a/mingw32/include/stdio.h b/mingw32/include/stdio.h index 39125a000d1..332d4a4b558 100644 --- a/mingw32/include/stdio.h +++ b/mingw32/include/stdio.h @@ -1365,7 +1365,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti __mingw_ovr int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format, va_list _ArgList) { - int _Result = __stdio_common_vswprintf(_CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, NULL, _ArgList); + int _Result = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, NULL, _ArgList); return _Result < 0 ? -1 : _Result; } #else diff --git a/mingw32/include/uiautomationcore.h b/mingw32/include/uiautomationcore.h index fbe84912c26..c7f9d5344ef 100644 --- a/mingw32/include/uiautomationcore.h +++ b/mingw32/include/uiautomationcore.h @@ -210,6 +210,14 @@ interface ISelectionProvider; #endif /* __cplusplus */ #endif +#ifndef __ISelectionProvider2_FWD_DEFINED__ +#define __ISelectionProvider2_FWD_DEFINED__ +typedef interface ISelectionProvider2 ISelectionProvider2; +#ifdef __cplusplus +interface ISelectionProvider2; +#endif /* __cplusplus */ +#endif + #ifndef __IScrollProvider_FWD_DEFINED__ #define __IScrollProvider_FWD_DEFINED__ typedef interface IScrollProvider IScrollProvider; @@ -3082,6 +3090,143 @@ static __WIDL_INLINE HRESULT ISelectionProvider_get_IsSelectionRequired(ISelecti #endif /* __ISelectionProvider_INTERFACE_DEFINED__ */ +/***************************************************************************** + * ISelectionProvider2 interface + */ +#ifndef __ISelectionProvider2_INTERFACE_DEFINED__ +#define __ISelectionProvider2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("14f68475-ee1c-44f6-a869-d239381f0fe7") +ISelectionProvider2 : public ISelectionProvider +{ + virtual HRESULT STDMETHODCALLTYPE get_FirstSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_LastSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_CurrentSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_ItemCount( + int *val) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7) +#endif +#else +typedef struct ISelectionProvider2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ISelectionProvider2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ISelectionProvider2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ISelectionProvider2 *This); + + /*** ISelectionProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSelection)( + ISelectionProvider2 *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_CanSelectMultiple)( + ISelectionProvider2 *This, + WINBOOL *pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_IsSelectionRequired)( + ISelectionProvider2 *This, + WINBOOL *pRetVal); + + /*** ISelectionProvider2 methods ***/ + HRESULT (STDMETHODCALLTYPE *get_FirstSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_LastSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_CurrentSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_ItemCount)( + ISelectionProvider2 *This, + int *val); + + END_INTERFACE +} ISelectionProvider2Vtbl; + +interface ISelectionProvider2 { + CONST_VTBL ISelectionProvider2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ISelectionProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ISelectionProvider2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ISelectionProvider2_Release(This) (This)->lpVtbl->Release(This) +/*** ISelectionProvider methods ***/ +#define ISelectionProvider2_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal) +#define ISelectionProvider2_get_CanSelectMultiple(This,pRetVal) (This)->lpVtbl->get_CanSelectMultiple(This,pRetVal) +#define ISelectionProvider2_get_IsSelectionRequired(This,pRetVal) (This)->lpVtbl->get_IsSelectionRequired(This,pRetVal) +/*** ISelectionProvider2 methods ***/ +#define ISelectionProvider2_get_FirstSelectedItem(This,val) (This)->lpVtbl->get_FirstSelectedItem(This,val) +#define ISelectionProvider2_get_LastSelectedItem(This,val) (This)->lpVtbl->get_LastSelectedItem(This,val) +#define ISelectionProvider2_get_CurrentSelectedItem(This,val) (This)->lpVtbl->get_CurrentSelectedItem(This,val) +#define ISelectionProvider2_get_ItemCount(This,val) (This)->lpVtbl->get_ItemCount(This,val) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_QueryInterface(ISelectionProvider2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG ISelectionProvider2_AddRef(ISelectionProvider2* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG ISelectionProvider2_Release(ISelectionProvider2* This) { + return This->lpVtbl->Release(This); +} +/*** ISelectionProvider methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_GetSelection(ISelectionProvider2* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetSelection(This,pRetVal); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_CanSelectMultiple(ISelectionProvider2* This,WINBOOL *pRetVal) { + return This->lpVtbl->get_CanSelectMultiple(This,pRetVal); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_IsSelectionRequired(ISelectionProvider2* This,WINBOOL *pRetVal) { + return This->lpVtbl->get_IsSelectionRequired(This,pRetVal); +} +/*** ISelectionProvider2 methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_get_FirstSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_FirstSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_LastSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_LastSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_CurrentSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_CurrentSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_ItemCount(ISelectionProvider2* This,int *val) { + return This->lpVtbl->get_ItemCount(This,val); +} +#endif +#endif + +#endif + + +#endif /* __ISelectionProvider2_INTERFACE_DEFINED__ */ + /***************************************************************************** * IScrollProvider interface */ diff --git a/mingw32/include/uiautomationcore.idl b/mingw32/include/uiautomationcore.idl index 4f8bc7d526d..9aa5e09944e 100644 --- a/mingw32/include/uiautomationcore.idl +++ b/mingw32/include/uiautomationcore.idl @@ -611,6 +611,20 @@ library UIA [propget] HRESULT IsSelectionRequired([out, retval] BOOL *pRetVal); }; + [ + object, + uuid(14f68475-ee1c-44f6-a869-d239381f0fe7), + pointer_default(unique), + oleautomation + ] + interface ISelectionProvider2 : ISelectionProvider + { + [propget] HRESULT FirstSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT LastSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT CurrentSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT ItemCount([out, retval] int *val); + } + [ object, uuid(b38b8077-1fc3-42a5-8cae-d40c2215055a), diff --git a/mingw32/include/weakreference.h b/mingw32/include/weakreference.h new file mode 100644 index 00000000000..78ebfc19ec4 --- /dev/null +++ b/mingw32/include/weakreference.h @@ -0,0 +1,218 @@ +/*** Autogenerated by WIDL 9.11 from include/weakreference.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __weakreference_h__ +#define __weakreference_h__ + +#ifndef __WIDL_INLINE +#if defined(__cplusplus) || defined(_MSC_VER) +#define __WIDL_INLINE inline +#elif defined(__GNUC__) +#define __WIDL_INLINE __inline__ +#endif +#endif + +/* Forward declarations */ + +#ifndef __IWeakReference_FWD_DEFINED__ +#define __IWeakReference_FWD_DEFINED__ +typedef interface IWeakReference IWeakReference; +#ifdef __cplusplus +interface IWeakReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IWeakReferenceSource_FWD_DEFINED__ +#define __IWeakReferenceSource_FWD_DEFINED__ +typedef interface IWeakReferenceSource IWeakReferenceSource; +#ifdef __cplusplus +interface IWeakReferenceSource; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************** + * IWeakReference interface + */ +#ifndef __IWeakReference_INTERFACE_DEFINED__ +#define __IWeakReference_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWeakReference, 0x00000037, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000037-0000-0000-c000-000000000046") +IWeakReference : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Resolve( + REFIID iid, + IInspectable **ref) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWeakReference, 0x00000037, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) +#endif +#else +typedef struct IWeakReferenceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWeakReference *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWeakReference *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWeakReference *This); + + /*** IWeakReference methods ***/ + HRESULT (STDMETHODCALLTYPE *Resolve)( + IWeakReference *This, + REFIID iid, + IInspectable **ref); + + END_INTERFACE +} IWeakReferenceVtbl; + +interface IWeakReference { + CONST_VTBL IWeakReferenceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWeakReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWeakReference_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWeakReference_Release(This) (This)->lpVtbl->Release(This) +/*** IWeakReference methods ***/ +#define IWeakReference_Resolve(This,iid,ref) (This)->lpVtbl->Resolve(This,iid,ref) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWeakReference_QueryInterface(IWeakReference* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWeakReference_AddRef(IWeakReference* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWeakReference_Release(IWeakReference* This) { + return This->lpVtbl->Release(This); +} +/*** IWeakReference methods ***/ +static __WIDL_INLINE HRESULT IWeakReference_Resolve(IWeakReference* This,REFIID iid,IInspectable **ref) { + return This->lpVtbl->Resolve(This,iid,ref); +} +#endif +#endif + +#endif + + +#endif /* __IWeakReference_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWeakReferenceSource interface + */ +#ifndef __IWeakReferenceSource_INTERFACE_DEFINED__ +#define __IWeakReferenceSource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWeakReferenceSource, 0x00000038, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000038-0000-0000-c000-000000000046") +IWeakReferenceSource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetWeakReference( + IWeakReference **ref) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWeakReferenceSource, 0x00000038, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) +#endif +#else +typedef struct IWeakReferenceSourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWeakReferenceSource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWeakReferenceSource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWeakReferenceSource *This); + + /*** IWeakReferenceSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWeakReference)( + IWeakReferenceSource *This, + IWeakReference **ref); + + END_INTERFACE +} IWeakReferenceSourceVtbl; + +interface IWeakReferenceSource { + CONST_VTBL IWeakReferenceSourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWeakReferenceSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWeakReferenceSource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWeakReferenceSource_Release(This) (This)->lpVtbl->Release(This) +/*** IWeakReferenceSource methods ***/ +#define IWeakReferenceSource_GetWeakReference(This,ref) (This)->lpVtbl->GetWeakReference(This,ref) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWeakReferenceSource_QueryInterface(IWeakReferenceSource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWeakReferenceSource_AddRef(IWeakReferenceSource* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWeakReferenceSource_Release(IWeakReferenceSource* This) { + return This->lpVtbl->Release(This); +} +/*** IWeakReferenceSource methods ***/ +static __WIDL_INLINE HRESULT IWeakReferenceSource_GetWeakReference(IWeakReferenceSource* This,IWeakReference **ref) { + return This->lpVtbl->GetWeakReference(This,ref); +} +#endif +#endif + +#endif + + +#endif /* __IWeakReferenceSource_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __weakreference_h__ */ diff --git a/mingw32/include/weakreference.idl b/mingw32/include/weakreference.idl new file mode 100644 index 00000000000..fb5b95bf2ce --- /dev/null +++ b/mingw32/include/weakreference.idl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 RĂ©mi Bernon for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "inspectable.idl"; + +[ + object, + uuid(00000037-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IWeakReference : IUnknown +{ + HRESULT Resolve([in] REFIID iid, [out, retval, iid_is(iid)] IInspectable **ref); +} + +[ + object, + uuid(00000038-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IWeakReferenceSource : IUnknown +{ + HRESULT GetWeakReference([out, retval] IWeakReference **ref); +} diff --git a/mingw32/include/webservices.h b/mingw32/include/webservices.h new file mode 100644 index 00000000000..efd8e8a89f4 --- /dev/null +++ b/mingw32/include/webservices.h @@ -0,0 +1,1892 @@ +/* + * Copyright 2015 Nikolay Sivov for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_WEBSERVICES_H +#define __WINE_WEBSERVICES_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef struct _WS_ERROR WS_ERROR; +typedef struct _WS_HEAP WS_HEAP; +typedef struct _WS_XML_BUFFER WS_XML_BUFFER; +typedef struct _WS_XML_READER WS_XML_READER; +typedef struct _WS_XML_WRITER WS_XML_WRITER; +typedef struct _WS_PROXY_PROPERTY WS_PROXY_PROPERTY; +typedef struct _WS_SECURITY_DESCRIPTION WS_SECURITY_DESCRIPTION; +typedef struct _WS_CHANNEL_PROPERTY WS_CHANNEL_PROPERTY; +typedef struct _WS_SERVICE_PROXY WS_SERVICE_PROXY; +typedef struct _WS_SECURITY_BINDING_PROPERTY WS_SECURITY_BINDING_PROPERTY; +typedef struct _WS_SECURITY_PROPERTY WS_SECURITY_PROPERTY; +typedef struct _WS_SECURITY_PROPERTIES WS_SECURITY_PROPERTIES; +typedef struct _WS_SECURITY_BINDING WS_SECURITY_BINDING; +typedef struct _WS_CHANNEL WS_CHANNEL; +typedef struct _WS_MESSAGE_PROPERTY WS_MESSAGE_PROPERTY; +typedef struct _WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTIES; +typedef struct _WS_HTTP_BINDING_TEMPLATE WS_HTTP_BINDING_TEMPLATE; +typedef struct _WS_HTTP_SSL_BINDING_TEMPLATE WS_HTTP_SSL_BINDING_TEMPLATE; +typedef struct _WS_CHANNEL_PROPERTIES WS_CHANNEL_PROPERTIES; +typedef struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE; +typedef struct _WS_SECURITY_BINDING_PROPERTIES WS_SECURITY_BINDING_PROPERTIES; +typedef struct _WS_CERT_CREDENTIAL WS_CERT_CREDENTIAL; +typedef struct _WS_ENDPOINT_ADDRESS WS_ENDPOINT_ADDRESS; +typedef struct _WS_ENDPOINT_IDENTITY WS_ENDPOINT_IDENTITY; +typedef struct _WS_ENUM_DESCRIPTION WS_ENUM_DESCRIPTION; +typedef struct _WS_ENUM_VALUE WS_ENUM_VALUE; +typedef struct _WS_HTTP_POLICY_DESCRIPTION WS_HTTP_POLICY_DESCRIPTION; +typedef struct _WS_MESSAGE WS_MESSAGE; +typedef struct _WS_MESSAGE_DESCRIPTION WS_MESSAGE_DESCRIPTION; +typedef struct _WS_OPERATION_DESCRIPTION WS_OPERATION_DESCRIPTION; +typedef struct _WS_PARAMETER_DESCRIPTION WS_PARAMETER_DESCRIPTION; +typedef struct _WS_OPERATION_CONTEXT WS_OPERATION_CONTEXT; +typedef struct _WS_CALL_PROPERTY WS_CALL_PROPERTY; +typedef struct _WS_FLOAT_DESCRIPTION WS_FLOAT_DESCRIPTION; +typedef struct _WS_DOUBLE_DESCRIPTION WS_DOUBLE_DESCRIPTION; +typedef struct _WS_DATETIME WS_DATETIME; +typedef struct _WS_XML_DATETIME_TEXT WS_XML_DATETIME_TEXT; +typedef struct _WS_XML_BASE64_TEXT WS_XML_BASE64_TEXT; +typedef struct _WS_DATETIME_DESCRIPTION WS_DATETIME_DESCRIPTION; +typedef struct _WS_GUID_DESCRIPTION WS_GUID_DESCRIPTION; +typedef struct _WS_UNIQUE_ID_DESCRIPTION WS_UNIQUE_ID_DESCRIPTION; +typedef struct _WS_BYTES_DESCRIPTION WS_BYTES_DESCRIPTION; +typedef struct _WS_URL WS_URL; +typedef struct _WS_HTTP_URL WS_HTTP_URL; +typedef struct _WS_HTTPS_URL WS_HTTPS_URL; +typedef struct _WS_NETTCP_URL WS_NETTCP_URL; +typedef struct _WS_SOAPUDP_URL WS_SOAPUDP_URL; +typedef struct _WS_NETPIPE_URL WS_NETPIPE_URL; +typedef struct _WS_CUSTOM_CHANNEL_CALLBACKS WS_CUSTOM_CHANNEL_CALLBACKS; +typedef struct _WS_CHANNEL_ENCODER WS_CHANNEL_ENCODER; +typedef struct _WS_CHANNEL_DECODER WS_CHANNEL_DECODER; +typedef struct _WS_CUSTOM_HTTP_PROXY WS_CUSTOM_HTTP_PROXY; +typedef struct _WS_HTTP_MESSAGE_MAPPING WS_HTTP_MESSAGE_MAPPING; +typedef struct _WS_HTTP_HEADER_MAPPING WS_HTTP_HEADER_MAPPING; +typedef struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT WS_HTTP_REDIRECT_CALLBACK_CONTEXT; +typedef struct _WS_PROXY_MESSAGE_CALLBACK_CONTEXT WS_PROXY_MESSAGE_CALLBACK_CONTEXT; +typedef struct _WS_LISTENER WS_LISTENER; +typedef struct _WS_LISTENER_PROPERTY WS_LISTENER_PROPERTY; +typedef struct _WS_DISALLOWED_USER_AGENT_SUBSTRINGS WS_DISALLOWED_USER_AGENT_SUBSTRINGS; +typedef struct _WS_LISTENER_PROPERTIES WS_LISTENER_PROPERTIES; +typedef struct _WS_CUSTOM_LISTENER_CALLBACKS WS_CUSTOM_LISTENER_CALLBACKS; + +struct _WS_STRUCT_DESCRIPTION; +struct _WS_XML_STRING; + +typedef enum { + WS_ERROR_PROPERTY_STRING_COUNT, + WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE, + WS_ERROR_PROPERTY_LANGID +} WS_ERROR_PROPERTY_ID; + +typedef struct _WS_ERROR_PROPERTY { + WS_ERROR_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_ERROR_PROPERTY; + +typedef enum { + WS_HEAP_PROPERTY_MAX_SIZE, + WS_HEAP_PROPERTY_TRIM_SIZE, + WS_HEAP_PROPERTY_REQUESTED_SIZE, + WS_HEAP_PROPERTY_ACTUAL_SIZE +} WS_HEAP_PROPERTY_ID; + +typedef struct _WS_HEAP_PROPERTY { + WS_HEAP_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_HEAP_PROPERTY; + +typedef struct _WS_HEAP_PROPERTIES { + WS_HEAP_PROPERTY *properties; + ULONG propertyCount; +} WS_HEAP_PROPERTIES; + +typedef ULONG WS_XML_BUFFER_PROPERTY_ID; + +typedef struct _WS_XML_BUFFER_PROPERTY { + WS_XML_BUFFER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_BUFFER_PROPERTY; + +typedef enum { + WS_XML_READER_PROPERTY_MAX_DEPTH, + WS_XML_READER_PROPERTY_ALLOW_FRAGMENT, + WS_XML_READER_PROPERTY_MAX_ATTRIBUTES, + WS_XML_READER_PROPERTY_READ_DECLARATION, + WS_XML_READER_PROPERTY_CHARSET, + WS_XML_READER_PROPERTY_ROW, + WS_XML_READER_PROPERTY_COLUMN, + WS_XML_READER_PROPERTY_UTF8_TRIM_SIZE, + WS_XML_READER_PROPERTY_STREAM_BUFFER_SIZE, + WS_XML_READER_PROPERTY_IN_ATTRIBUTE, + WS_XML_READER_PROPERTY_STREAM_MAX_ROOT_MIME_PART_SIZE, + WS_XML_READER_PROPERTY_STREAM_MAX_MIME_HEADERS_SIZE, + WS_XML_READER_PROPERTY_MAX_MIME_PARTS, + WS_XML_READER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES, + WS_XML_READER_PROPERTY_MAX_NAMESPACES +} WS_XML_READER_PROPERTY_ID; + +typedef struct _WS_XML_READER_PROPERTY { + WS_XML_READER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_READER_PROPERTY; + +typedef struct _WS_XML_READER_PROPERTIES { + WS_XML_READER_PROPERTY *properties; + ULONG propertyCount; +} WS_XML_READER_PROPERTIES; + +typedef enum { + WS_XML_WRITER_PROPERTY_MAX_DEPTH, + WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT, + WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES, + WS_XML_WRITER_PROPERTY_WRITE_DECLARATION, + WS_XML_WRITER_PROPERTY_INDENT, + WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE, + WS_XML_WRITER_PROPERTY_CHARSET, + WS_XML_WRITER_PROPERTY_BUFFERS, + WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, + WS_XML_WRITER_PROPERTY_BYTES, + WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE, + WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE, + WS_XML_WRITER_PROPERTY_INITIAL_BUFFER, + WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES, + WS_XML_WRITER_PROPERTY_MAX_NAMESPACES, + WS_XML_WRITER_PROPERTY_BYTES_WRITTEN, + WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE, + WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS, + WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS +} WS_XML_WRITER_PROPERTY_ID; + +typedef struct _WS_XML_WRITER_PROPERTY { + WS_XML_WRITER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_WRITER_PROPERTY; + +typedef struct _WS_XML_WRITER_PROPERTIES { + WS_XML_WRITER_PROPERTY *properties; + ULONG propertyCount; +} WS_XML_WRITER_PROPERTIES; + +typedef struct _WS_BYTES { + ULONG length; + BYTE *bytes; +} WS_BYTES; + +typedef struct _WS_BUFFERS { + ULONG bufferCount; + WS_BYTES *buffers; +} WS_BUFFERS; + +typedef enum { + WS_XML_READER_ENCODING_TYPE_TEXT = 1, + WS_XML_READER_ENCODING_TYPE_BINARY = 2, + WS_XML_READER_ENCODING_TYPE_MTOM = 3, + WS_XML_READER_ENCODING_TYPE_RAW = 4 +} WS_XML_READER_ENCODING_TYPE; + +typedef struct _WS_XML_READER_ENCODING { + WS_XML_READER_ENCODING_TYPE encodingType; +} WS_XML_READER_ENCODING; + +typedef enum { + WS_XML_WRITER_ENCODING_TYPE_TEXT = 1, + WS_XML_WRITER_ENCODING_TYPE_BINARY = 2, + WS_XML_WRITER_ENCODING_TYPE_MTOM = 3, + WS_XML_WRITER_ENCODING_TYPE_RAW = 4 +} WS_XML_WRITER_ENCODING_TYPE; + +typedef struct _WS_XML_WRITER_ENCODING { + WS_XML_WRITER_ENCODING_TYPE encodingType; +} WS_XML_WRITER_ENCODING; + +typedef enum { + WS_CHARSET_AUTO, + WS_CHARSET_UTF8, + WS_CHARSET_UTF16LE, + WS_CHARSET_UTF16BE +} WS_CHARSET; + +typedef struct _WS_XML_DICTIONARY { + GUID guid; + struct _WS_XML_STRING *strings; + ULONG stringCount; + WINBOOL isConst; +} WS_XML_DICTIONARY; + +typedef struct _WS_XML_STRING { + ULONG length; + BYTE *bytes; + WS_XML_DICTIONARY *dictionary; + ULONG id; +} WS_XML_STRING; + +typedef struct _WS_XML_READER_TEXT_ENCODING { + WS_XML_READER_ENCODING encoding; + WS_CHARSET charSet; +} WS_XML_READER_TEXT_ENCODING; + +typedef struct _WS_XML_READER_BINARY_ENCODING { + WS_XML_READER_ENCODING encoding; + WS_XML_DICTIONARY *staticDictionary; + WS_XML_DICTIONARY *dynamicDictionary; +} WS_XML_READER_BINARY_ENCODING; + +typedef struct _WS_XML_WRITER_TEXT_ENCODING { + WS_XML_WRITER_ENCODING encoding; + WS_CHARSET charSet; +} WS_XML_WRITER_TEXT_ENCODING; + +typedef HRESULT (CALLBACK *WS_DYNAMIC_STRING_CALLBACK) + (void*, const WS_XML_STRING*, WINBOOL*, ULONG*, WS_ERROR*); + +typedef struct _WS_XML_WRITER_BINARY_ENCODING { + WS_XML_WRITER_ENCODING encoding; + WS_XML_DICTIONARY *staticDictionary; + WS_DYNAMIC_STRING_CALLBACK dynamicStringCallback; + void *dynamicStringCallbackState; +} WS_XML_WRITER_BINARY_ENCODING; + +typedef enum { + WS_XML_READER_INPUT_TYPE_BUFFER = 1, + WS_XML_READER_INPUT_TYPE_STREAM = 2 +} WS_XML_READER_INPUT_TYPE; + +typedef enum { + WS_XML_WRITER_OUTPUT_TYPE_BUFFER = 1, + WS_XML_WRITER_OUTPUT_TYPE_STREAM = 2 +} WS_XML_WRITER_OUTPUT_TYPE; + +typedef struct _WS_XML_READER_INPUT { + WS_XML_READER_INPUT_TYPE inputType; +} WS_XML_READER_INPUT; + +typedef struct _WS_XML_WRITER_OUTPUT { + WS_XML_WRITER_OUTPUT_TYPE outputType; +} WS_XML_WRITER_OUTPUT; + +typedef struct _WS_XML_READER_BUFFER_INPUT { + WS_XML_READER_INPUT input; + void *encodedData; + ULONG encodedDataSize; +} WS_XML_READER_BUFFER_INPUT; + +typedef struct _WS_XML_WRITER_BUFFER_OUTPUT { + WS_XML_WRITER_OUTPUT output; +} WS_XML_WRITER_BUFFER_OUTPUT; + +typedef enum { + WS_SHORT_CALLBACK, + WS_LONG_CALLBACK +} WS_CALLBACK_MODEL; + +typedef void (CALLBACK *WS_ASYNC_CALLBACK) + (HRESULT, WS_CALLBACK_MODEL, void *); + +typedef struct _WS_ASYNC_CONTEXT { + WS_ASYNC_CALLBACK callback; + void *callbackState; +} WS_ASYNC_CONTEXT; + +typedef HRESULT (CALLBACK *WS_READ_CALLBACK) + (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef struct _WS_XML_READER_STREAM_INPUT { + WS_XML_READER_INPUT input; + WS_READ_CALLBACK readCallback; + void *readCallbackState; +} WS_XML_READER_STREAM_INPUT; + +typedef HRESULT (CALLBACK *WS_WRITE_CALLBACK) + (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef struct _WS_XML_WRITER_STREAM_OUTPUT { + WS_XML_WRITER_OUTPUT output; + WS_WRITE_CALLBACK writeCallback; + void *writeCallbackState; +} WS_XML_WRITER_STREAM_OUTPUT; + +typedef enum { + WS_ELEMENT_TYPE_MAPPING = 1, + WS_ATTRIBUTE_TYPE_MAPPING = 2, + WS_ELEMENT_CONTENT_TYPE_MAPPING = 3, + WS_ANY_ELEMENT_TYPE_MAPPING = 4 +} WS_TYPE_MAPPING; + +typedef enum { + WS_BOOL_TYPE, + WS_INT8_TYPE, + WS_INT16_TYPE, + WS_INT32_TYPE, + WS_INT64_TYPE, + WS_UINT8_TYPE, + WS_UINT16_TYPE, + WS_UINT32_TYPE, + WS_UINT64_TYPE, + WS_FLOAT_TYPE, + WS_DOUBLE_TYPE, + WS_DECIMAL_TYPE, + WS_DATETIME_TYPE, + WS_TIMESPAN_TYPE, + WS_GUID_TYPE, + WS_UNIQUE_ID_TYPE, + WS_STRING_TYPE, + WS_WSZ_TYPE, + WS_BYTES_TYPE, + WS_XML_STRING_TYPE, + WS_XML_QNAME_TYPE, + WS_XML_BUFFER_TYPE, + WS_CHAR_ARRAY_TYPE, + WS_UTF8_ARRAY_TYPE, + WS_BYTE_ARRAY_TYPE, + WS_DESCRIPTION_TYPE, + WS_STRUCT_TYPE, + WS_CUSTOM_TYPE, + WS_ENDPOINT_ADDRESS_TYPE, + WS_FAULT_TYPE, + WS_VOID_TYPE, + WS_ENUM_TYPE, + WS_DURATION_TYPE, + WS_UNION_TYPE, + WS_ANY_ATTRIBUTES_TYPE +} WS_TYPE; + +typedef enum { + WS_READ_REQUIRED_VALUE = 1, + WS_READ_REQUIRED_POINTER = 2, + WS_READ_OPTIONAL_POINTER = 3, + WS_READ_NILLABLE_POINTER = 4, + WS_READ_NILLABLE_VALUE = 5 +} WS_READ_OPTION; + +typedef enum { + WS_WRITE_REQUIRED_VALUE = 1, + WS_WRITE_REQUIRED_POINTER = 2, + WS_WRITE_NILLABLE_VALUE = 3, + WS_WRITE_NILLABLE_POINTER = 4 +} WS_WRITE_OPTION; + +typedef struct _WS_BOOL_DESCRIPTION { + WINBOOL value; +} WS_BOOL_DESCRIPTION; + +typedef struct _WS_INT8_DESCRIPTION { + char minValue; + char maxValue; +} WS_INT8_DESCRIPTION; + +typedef struct _WS_INT16_DESCRIPTION { + short minValue; + short maxValue; +} WS_INT16_DESCRIPTION; + +typedef struct _WS_INT32_DESCRIPTION { + int minValue; + int maxValue; +} WS_INT32_DESCRIPTION; + +typedef struct _WS_INT64_DESCRIPTION { + __int64 DECLSPEC_ALIGN(8) minValue; + __int64 DECLSPEC_ALIGN(8) maxValue; +} WS_INT64_DESCRIPTION; + +typedef struct _WS_UINT8_DESCRIPTION { + BYTE minValue; + BYTE maxValue; +} WS_UINT8_DESCRIPTION; + +typedef struct _WS_UINT16_DESCRIPTION { + USHORT minValue; + USHORT maxValue; +} WS_UINT16_DESCRIPTION; + +typedef struct _WS_UINT32_DESCRIPTION { + ULONG minValue; + ULONG maxValue; +} WS_UINT32_DESCRIPTION; + +typedef struct _WS_UINT64_DESCRIPTION { + unsigned __int64 DECLSPEC_ALIGN(8) minValue; + unsigned __int64 DECLSPEC_ALIGN(8) maxValue; +} WS_UINT64_DESCRIPTION; + +typedef struct _WS_WSZ_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +} WS_WSZ_DESCRIPTION; + +typedef struct _WS_STRING_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +} WS_STRING_DESCRIPTION; + +typedef struct _WS_XML_STRING_DESCRIPTION { + ULONG minByteCount; + ULONG maxByteCount; +} WS_XML_STRING_DESCRIPTION; + +typedef struct _WS_XML_QNAME_DESCRIPTION { + ULONG minLocalNameByteCount; + ULONG maxLocalNameByteCount; + ULONG minNsByteCount; + ULONG maxNsByteCount; +} WS_XML_QNAME_DESCRIPTION; + +struct _WS_ENUM_VALUE { + int value; + WS_XML_STRING *name; +}; + +struct _WS_ENUM_DESCRIPTION { + WS_ENUM_VALUE *values; + ULONG valueCount; + ULONG maxByteCount; + ULONG *nameIndices; +}; + +struct _WS_FLOAT_DESCRIPTION { + float minValue; + float maxValue; +}; + +struct _WS_DOUBLE_DESCRIPTION { + double DECLSPEC_ALIGN(8) minValue; + double DECLSPEC_ALIGN(8) maxValue; +}; + +struct _WS_GUID_DESCRIPTION { + GUID value; +}; + +struct _WS_UNIQUE_ID_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +}; + +struct _WS_BYTES_DESCRIPTION { + ULONG minByteCount; + ULONG maxByteCount; +}; + +typedef enum { + WS_TYPE_ATTRIBUTE_FIELD_MAPPING, + WS_ATTRIBUTE_FIELD_MAPPING, + WS_ELEMENT_FIELD_MAPPING, + WS_REPEATING_ELEMENT_FIELD_MAPPING, + WS_TEXT_FIELD_MAPPING, + WS_NO_FIELD_MAPPING, + WS_XML_ATTRIBUTE_FIELD_MAPPING, + WS_ELEMENT_CHOICE_FIELD_MAPPING, + WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING, + WS_ANY_ELEMENT_FIELD_MAPPING, + WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING, + WS_ANY_CONTENT_FIELD_MAPPING, + WS_ANY_ATTRIBUTES_FIELD_MAPPING +} WS_FIELD_MAPPING; + +typedef struct _WS_DEFAULT_VALUE { + void *value; + ULONG valueSize; +} WS_DEFAULT_VALUE; + +typedef struct _WS_ITEM_RANGE { + ULONG minItemCount; + ULONG maxItemCount; +} WS_ITEM_RANGE; + +enum +{ + WS_FIELD_POINTER = 0x1, + WS_FIELD_OPTIONAL = 0x2, + WS_FIELD_NILLABLE = 0x4, + WS_FIELD_NILLABLE_ITEM = 0x8, + WS_FIELD_OTHER_NAMESPACE = 0x10 +}; + +typedef struct _WS_FIELD_DESCRIPTION { + WS_FIELD_MAPPING mapping; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + WS_TYPE type; + void *typeDescription; + ULONG offset; + ULONG options; + WS_DEFAULT_VALUE *defaultValue; + ULONG countOffset; + WS_XML_STRING *itemLocalName; + WS_XML_STRING *itemNs; + WS_ITEM_RANGE *itemRange; +} WS_FIELD_DESCRIPTION; + +enum +{ + WS_STRUCT_ABSTRACT = 0x1, + WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT = 0x2, + WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES = 0x4 +}; + +typedef struct _WS_STRUCT_DESCRIPTION { + ULONG size; + ULONG alignment; + WS_FIELD_DESCRIPTION **fields; + ULONG fieldCount; + WS_XML_STRING *typeLocalName; + WS_XML_STRING *typeNs; + struct _WS_STRUCT_DESCRIPTION *parentType; + struct _WS_STRUCT_DESCRIPTION **subTypes; + ULONG subTypeCount; + ULONG structOptions; +} WS_STRUCT_DESCRIPTION; + +typedef struct _WS_UNION_FIELD_DESCRIPTION { + int value; + WS_FIELD_DESCRIPTION field; +} WS_UNION_FIELD_DESCRIPTION; + +typedef struct _WS_UNION_DESCRIPTION { + ULONG size; + ULONG alignment; + WS_UNION_FIELD_DESCRIPTION **fields; + ULONG fieldCount; + ULONG enumOffset; + int noneEnumValue; + ULONG *valueIndices; +} WS_UNION_DESCRIPTION; + +typedef struct _WS_ATTRIBUTE_DESCRIPTION { + WS_XML_STRING *attributeLocalName; + WS_XML_STRING *attributeNs; + WS_TYPE type; + void *typeDescription; +} WS_ATTRIBUTE_DESCRIPTION; + +typedef struct _WS_ELEMENT_DESCRIPTION { + WS_XML_STRING *elementLocalName; + WS_XML_STRING *elementNs; + WS_TYPE type; + void *typeDescription; +} WS_ELEMENT_DESCRIPTION; + +typedef struct _WS_STRING { + ULONG length; + WCHAR *chars; +} WS_STRING; + +typedef struct _WS_UNIQUE_ID { + WS_STRING uri; + GUID guid; +} WS_UNIQUE_ID; + +typedef enum { + WS_XML_NODE_TYPE_ELEMENT = 1, + WS_XML_NODE_TYPE_TEXT = 2, + WS_XML_NODE_TYPE_END_ELEMENT = 3, + WS_XML_NODE_TYPE_COMMENT = 4, + WS_XML_NODE_TYPE_CDATA = 6, + WS_XML_NODE_TYPE_END_CDATA = 7, + WS_XML_NODE_TYPE_EOF = 8, + WS_XML_NODE_TYPE_BOF = 9 +} WS_XML_NODE_TYPE; + +typedef struct _WS_XML_NODE { + WS_XML_NODE_TYPE nodeType; +} WS_XML_NODE; + +typedef enum { + WS_MOVE_TO_ROOT_ELEMENT, + WS_MOVE_TO_NEXT_ELEMENT, + WS_MOVE_TO_PREVIOUS_ELEMENT, + WS_MOVE_TO_CHILD_ELEMENT, + WS_MOVE_TO_END_ELEMENT, + WS_MOVE_TO_PARENT_ELEMENT, + WS_MOVE_TO_NEXT_NODE, + WS_MOVE_TO_PREVIOUS_NODE, + WS_MOVE_TO_FIRST_NODE, + WS_MOVE_TO_BOF, + WS_MOVE_TO_EOF, + WS_MOVE_TO_CHILD_NODE +} WS_MOVE_TO; + +typedef enum { + WS_XML_TEXT_TYPE_UTF8 = 1, + WS_XML_TEXT_TYPE_UTF16 = 2, + WS_XML_TEXT_TYPE_BASE64 = 3, + WS_XML_TEXT_TYPE_BOOL = 4, + WS_XML_TEXT_TYPE_INT32 = 5, + WS_XML_TEXT_TYPE_INT64 = 6, + WS_XML_TEXT_TYPE_UINT64 = 7, + WS_XML_TEXT_TYPE_FLOAT = 8, + WS_XML_TEXT_TYPE_DOUBLE = 9, + WS_XML_TEXT_TYPE_DECIMAL = 10, + WS_XML_TEXT_TYPE_GUID = 11, + WS_XML_TEXT_TYPE_UNIQUE_ID = 12, + WS_XML_TEXT_TYPE_DATETIME = 13, + WS_XML_TEXT_TYPE_TIMESPAN = 14, + WS_XML_TEXT_TYPE_QNAME = 15, + WS_XML_TEXT_TYPE_LIST = 16 +} WS_XML_TEXT_TYPE; + +typedef struct _WS_XML_TEXT { + WS_XML_TEXT_TYPE textType; +} WS_XML_TEXT; + +typedef struct _WS_XML_UTF8_TEXT { + WS_XML_TEXT text; + WS_XML_STRING value; +} WS_XML_UTF8_TEXT; + +typedef struct _WS_XML_UTF16_TEXT { + WS_XML_TEXT text; + BYTE *bytes; + ULONG byteCount; +} WS_XML_UTF16_TEXT; + +typedef struct _WS_XML_BOOL_TEXT { + WS_XML_TEXT text; + WINBOOL value; +} WS_XML_BOOL_TEXT; + +typedef struct _WS_XML_INT32_TEXT { + WS_XML_TEXT text; + __int32 value; +} WS_XML_INT32_TEXT; + +typedef struct _WS_XML_INT64_TEXT { + WS_XML_TEXT text; + __int64 DECLSPEC_ALIGN(8) value; +} WS_XML_INT64_TEXT; + +typedef struct _WS_XML_UINT64_TEXT { + WS_XML_TEXT text; + unsigned __int64 DECLSPEC_ALIGN(8) value; +} WS_XML_UINT64_TEXT; + +typedef struct _WS_XML_FLOAT_TEXT { + WS_XML_TEXT text; + float value; +} WS_XML_FLOAT_TEXT; + +typedef struct _WS_XML_DOUBLE_TEXT { + WS_XML_TEXT text; + double DECLSPEC_ALIGN(8) value; +} WS_XML_DOUBLE_TEXT; + +typedef struct _WS_XML_GUID_TEXT { + WS_XML_TEXT text; + GUID value; +} WS_XML_GUID_TEXT; + +typedef struct _WS_XML_UNIQUE_ID_TEXT { + WS_XML_TEXT text; + GUID value; +} WS_XML_UNIQUE_ID_TEXT; + +typedef struct _WS_XML_QNAME_TEXT { + WS_XML_TEXT text; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; +} WS_XML_QNAME_TEXT; + +typedef enum { + WS_BOOL_VALUE_TYPE, + WS_INT8_VALUE_TYPE, + WS_INT16_VALUE_TYPE, + WS_INT32_VALUE_TYPE, + WS_INT64_VALUE_TYPE, + WS_UINT8_VALUE_TYPE, + WS_UINT16_VALUE_TYPE, + WS_UINT32_VALUE_TYPE, + WS_UINT64_VALUE_TYPE, + WS_FLOAT_VALUE_TYPE, + WS_DOUBLE_VALUE_TYPE, + WS_DECIMAL_VALUE_TYPE, + WS_DATETIME_VALUE_TYPE, + WS_TIMESPAN_VALUE_TYPE, + WS_GUID_VALUE_TYPE, + WS_DURATION_VALUE_TYPE +} WS_VALUE_TYPE; + +typedef struct _WS_XML_ATTRIBUTE { + BYTE singleQuote; + BYTE isXmlNs; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + WS_XML_TEXT *value; +} WS_XML_ATTRIBUTE; + +typedef struct _WS_XML_ELEMENT_NODE { + WS_XML_NODE node; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + ULONG attributeCount; + WS_XML_ATTRIBUTE **attributes; + WINBOOL isEmpty; +} WS_XML_ELEMENT_NODE; + +typedef struct _WS_XML_TEXT_NODE { + WS_XML_NODE node; + WS_XML_TEXT *text; +} WS_XML_TEXT_NODE; + +typedef struct _WS_XML_COMMENT_NODE { + WS_XML_NODE node; + WS_XML_STRING value; +} WS_XML_COMMENT_NODE; + +typedef struct _WS_XML_NODE_POSITION { + WS_XML_BUFFER *buffer; + void *node; +} WS_XML_NODE_POSITION; + +typedef struct _WS_XML_QNAME { + WS_XML_STRING localName; + WS_XML_STRING ns; +} WS_XML_QNAME; + +typedef enum { + WS_SERVICE_PROXY_STATE_CREATED, + WS_SERVICE_PROXY_STATE_OPENING, + WS_SERVICE_PROXY_STATE_OPEN, + WS_SERVICE_PROXY_STATE_CLOSING, + WS_SERVICE_PROXY_STATE_CLOSED, + WS_SERVICE_PROXY_STATE_FAULTED +} WS_SERVICE_PROXY_STATE; + +typedef enum { + WS_PROXY_PROPERTY_CALL_TIMEOUT, + WS_PROXY_PROPERTY_MESSAGE_PROPERTIES, + WS_PROXY_PROPERTY_MAX_CALL_POOL_SIZE, + WS_PROXY_PROPERTY_STATE, + WS_PROXY_PROPERTY_MAX_PENDING_CALLS, + WS_PROXY_PROPERTY_MAX_CLOSE_TIMEOUT, + WS_PROXY_FAULT_LANG_ID +} WS_PROXY_PROPERTY_ID; + +struct _WS_PROXY_PROPERTY { + WS_PROXY_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +typedef enum { + WS_CHANNEL_TYPE_INPUT = 0x1, + WS_CHANNEL_TYPE_OUTPUT = 0x2, + WS_CHANNEL_TYPE_SESSION = 0x4, + WS_CHANNEL_TYPE_INPUT_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_OUTPUT_SESSION = (WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_DUPLEX = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT), + WS_CHANNEL_TYPE_DUPLEX_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_REQUEST = 0x8, + WS_CHANNEL_TYPE_REPLY = 0x10 +} WS_CHANNEL_TYPE; + +typedef enum { + WS_ENCODING_XML_BINARY_1, + WS_ENCODING_XML_BINARY_SESSION_1, + WS_ENCODING_XML_MTOM_UTF8, + WS_ENCODING_XML_MTOM_UTF16BE, + WS_ENCODING_XML_MTOM_UTF16LE, + WS_ENCODING_XML_UTF8, + WS_ENCODING_XML_UTF16BE, + WS_ENCODING_XML_UTF16LE, + WS_ENCODING_RAW +} WS_ENCODING; + +typedef enum { + WS_CHANNEL_STATE_CREATED, + WS_CHANNEL_STATE_OPENING, + WS_CHANNEL_STATE_ACCEPTING, + WS_CHANNEL_STATE_OPEN, + WS_CHANNEL_STATE_FAULTED, + WS_CHANNEL_STATE_CLOSING, + WS_CHANNEL_STATE_CLOSED +} WS_CHANNEL_STATE; + +typedef enum { + WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE = 0, + WS_CHANNEL_PROPERTY_MAX_STREAMED_MESSAGE_SIZE = 1, + WS_CHANNEL_PROPERTY_MAX_STREAMED_START_SIZE = 2, + WS_CHANNEL_PROPERTY_MAX_STREAMED_FLUSH_SIZE = 3, + WS_CHANNEL_PROPERTY_ENCODING = 4, + WS_CHANNEL_PROPERTY_ENVELOPE_VERSION = 5, + WS_CHANNEL_PROPERTY_ADDRESSING_VERSION = 6, + WS_CHANNEL_PROPERTY_MAX_SESSION_DICTIONARY_SIZE = 7, + WS_CHANNEL_PROPERTY_STATE = 8, + WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL = 9, + WS_CHANNEL_PROPERTY_IP_VERSION = 10, + WS_CHANNEL_PROPERTY_RESOLVE_TIMEOUT = 11, + WS_CHANNEL_PROPERTY_CONNECT_TIMEOUT = 12, + WS_CHANNEL_PROPERTY_SEND_TIMEOUT = 13, + WS_CHANNEL_PROPERTY_RECEIVE_RESPONSE_TIMEOUT = 14, + WS_CHANNEL_PROPERTY_RECEIVE_TIMEOUT = 15, + WS_CHANNEL_PROPERTY_CLOSE_TIMEOUT = 16, + WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS = 17, + WS_CHANNEL_PROPERTY_TRANSFER_MODE = 18, + WS_CHANNEL_PROPERTY_MULTICAST_INTERFACE = 19, + WS_CHANNEL_PROPERTY_MULTICAST_HOPS = 20, + WS_CHANNEL_PROPERTY_REMOTE_ADDRESS = 21, + WS_CHANNEL_PROPERTY_REMOTE_IP_ADDRESS = 22, + WS_CHANNEL_PROPERTY_HTTP_CONNECTION_ID = 23, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_CALLBACKS = 24, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_PARAMETERS = 25, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_INSTANCE = 26, + WS_CHANNEL_PROPERTY_TRANSPORT_URL = 27, + WS_CHANNEL_PROPERTY_NO_DELAY = 28, + WS_CHANNEL_PROPERTY_SEND_KEEP_ALIVES = 29, + WS_CHANNEL_PROPERTY_KEEP_ALIVE_TIME = 30, + WS_CHANNEL_PROPERTY_KEEP_ALIVE_INTERVAL = 31, + WS_CHANNEL_PROPERTY_MAX_HTTP_SERVER_CONNECTIONS = 32, + WS_CHANNEL_PROPERTY_IS_SESSION_SHUT_DOWN = 33, + WS_CHANNEL_PROPERTY_CHANNEL_TYPE = 34, + WS_CHANNEL_PROPERTY_TRIM_BUFFERED_MESSAGE_SIZE = 35, + WS_CHANNEL_PROPERTY_ENCODER = 36, + WS_CHANNEL_PROPERTY_DECODER = 37, + WS_CHANNEL_PROPERTY_PROTECTION_LEVEL = 38, + WS_CHANNEL_PROPERTY_COOKIE_MODE = 39, + WS_CHANNEL_PROPERTY_HTTP_PROXY_SETTING_MODE = 40, + WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY = 41, + WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING = 42, + WS_CHANNEL_PROPERTY_ENABLE_HTTP_REDIRECT = 43, + WS_CHANNEL_PROPERTY_HTTP_REDIRECT_CALLBACK_CONTEXT = 44, + WS_CHANNEL_PROPERTY_FAULTS_AS_ERRORS = 45, + WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS = 46, + WS_CHANNEL_PROPERTY_HTTP_SERVER_SPN = 47, + WS_CHANNEL_PROPERTY_HTTP_PROXY_SPN = 48, + WS_CHANNEL_PROPERTY_MAX_HTTP_REQUEST_HEADERS_BUFFER_SIZE = 49 +} WS_CHANNEL_PROPERTY_ID; + +struct _WS_CHANNEL_PROPERTY { + WS_CHANNEL_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_CHANNEL_PROPERTIES { + WS_CHANNEL_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_HTTP_CHANNEL_BINDING, + WS_TCP_CHANNEL_BINDING, + WS_UDP_CHANNEL_BINDING, + WS_CUSTOM_CHANNEL_BINDING, + WS_NAMEDPIPE_CHANNEL_BINDING +} WS_CHANNEL_BINDING; + +typedef enum { + WS_SSL_TRANSPORT_SECURITY_BINDING_TYPE, + WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TYPE, + WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TYPE, + WS_USERNAME_MESSAGE_SECURITY_BINDING_TYPE, + WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TYPE, + WS_XML_TOKEN_MESSAGE_SECURITY_BINDING_TYPE, + WS_SAML_MESSAGE_SECURITY_BINDING_TYPE, + WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TYPE, + WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING_TYPE +} WS_SECURITY_BINDING_TYPE; + +typedef enum { + WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT = 1, + WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE = 2, + WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH = 3, + WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS = 4, + WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL = 5, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME = 6, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET = 7, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM = 8, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM = 9, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN = 10, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE = 11, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE = 12, + WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES = 13, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS = 14, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS = 15, + WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION = 16, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW = 17, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL = 18, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL = 19, + WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE = 20, + WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK = 21, + WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS = 22, + WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT = 23 +} WS_SECURITY_BINDING_PROPERTY_ID; + +struct _WS_SECURITY_BINDING_PROPERTY { + WS_SECURITY_BINDING_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_SECURITY_BINDING_PROPERTIES { + WS_SECURITY_BINDING_PROPERTY *properties; + ULONG propertyCount; +}; + +struct _WS_SECURITY_BINDING { + WS_SECURITY_BINDING_TYPE bindingType; + WS_SECURITY_BINDING_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL = 1, + WS_SECURITY_PROPERTY_ALGORITHM_SUITE = 2, + WS_SECURITY_PROPERTY_ALGORITHM_SUITE_NAME = 3, + WS_SECURITY_PROPERTY_MAX_ALLOWED_LATENCY = 4, + WS_SECURITY_PROPERTY_TIMESTAMP_VALIDITY_DURATION = 5, + WS_SECURITY_PROPERTY_MAX_ALLOWED_CLOCK_SKEW = 6, + WS_SECURITY_PROPERTY_TIMESTAMP_USAGE = 7, + WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT = 8, + WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION = 9, + WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_POLICY = 10, + WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_SCENARIO = 11, + WS_SECURITY_PROPERTY_SERVICE_IDENTITIES = 12 +} WS_SECURITY_PROPERTY_ID; + +struct _WS_SECURITY_PROPERTY { + WS_SECURITY_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_SECURITY_PROPERTIES { + WS_SECURITY_PROPERTY *properties; + ULONG propertyCount; +}; + +struct _WS_SECURITY_DESCRIPTION { + WS_SECURITY_BINDING **securityBindings; + ULONG securityBindingCount; + WS_SECURITY_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_HTTP_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_BINDING_TEMPLATE_TYPE, + WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE, + WS_TCP_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE +} WS_BINDING_TEMPLATE_TYPE; + +typedef enum { + WS_SUBJECT_NAME_CERT_CREDENTIAL_TYPE = 1, + WS_THUMBPRINT_CERT_CREDENTIAL_TYPE = 2, + WS_CUSTOM_CERT_CREDENTIAL_TYPE = 3 +} WS_CERT_CREDENTIAL_TYPE; + +struct _WS_CERT_CREDENTIAL { + WS_CERT_CREDENTIAL_TYPE credentialType; +}; + +struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE { + WS_SECURITY_BINDING_PROPERTIES securityBindingProperties; + WS_CERT_CREDENTIAL *localCertCredential; +}; + +struct _WS_HTTP_BINDING_TEMPLATE { + WS_CHANNEL_PROPERTIES channelProperties; +}; + +struct _WS_HTTP_SSL_BINDING_TEMPLATE { + WS_CHANNEL_PROPERTIES channelProperties; + WS_SECURITY_PROPERTIES securityProperties; + WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE sslTransportSecurityBinding; +}; + +enum { + WS_MUST_UNDERSTAND_HEADER_ATTRIBUTE = 0x1, + WS_RELAY_HEADER_ATTRIBUTE = 0x2 +}; + +typedef enum { + WS_ADDRESSING_VERSION_0_9 = 1, + WS_ADDRESSING_VERSION_1_0 = 2, + WS_ADDRESSING_VERSION_TRANSPORT = 3 +} WS_ADDRESSING_VERSION; + +typedef enum { + WS_ENVELOPE_VERSION_SOAP_1_1 = 1, + WS_ENVELOPE_VERSION_SOAP_1_2 = 2, + WS_ENVELOPE_VERSION_NONE = 3 +} WS_ENVELOPE_VERSION; + +typedef enum { + WS_MESSAGE_PROPERTY_STATE, + WS_MESSAGE_PROPERTY_HEAP, + WS_MESSAGE_PROPERTY_ENVELOPE_VERSION, + WS_MESSAGE_PROPERTY_ADDRESSING_VERSION, + WS_MESSAGE_PROPERTY_HEADER_BUFFER, + WS_MESSAGE_PROPERTY_HEADER_POSITION, + WS_MESSAGE_PROPERTY_BODY_READER, + WS_MESSAGE_PROPERTY_BODY_WRITER, + WS_MESSAGE_PROPERTY_IS_ADDRESSED, + WS_MESSAGE_PROPERTY_HEAP_PROPERTIES, + WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES, + WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES, + WS_MESSAGE_PROPERTY_IS_FAULT, + WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS, + WS_MESSAGE_PROPERTY_USERNAME, + WS_MESSAGE_PROPERTY_ENCODED_CERT, + WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_SAML_ASSERTION, + WS_MESSAGE_PROPERTY_SECURITY_CONTEXT, + WS_MESSAGE_PROPERTY_PROTECTION_LEVEL +} WS_MESSAGE_PROPERTY_ID; + +struct _WS_MESSAGE_PROPERTY { + WS_MESSAGE_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_MESSAGE_PROPERTIES { + WS_MESSAGE_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_MESSAGE_STATE_EMPTY = 1, + WS_MESSAGE_STATE_INITIALIZED = 2, + WS_MESSAGE_STATE_READING = 3, + WS_MESSAGE_STATE_WRITING = 4, + WS_MESSAGE_STATE_DONE = 5 +} WS_MESSAGE_STATE; + +typedef enum { + WS_BLANK_MESSAGE, + WS_DUPLICATE_MESSAGE, + WS_REQUEST_MESSAGE, + WS_REPLY_MESSAGE, + WS_FAULT_MESSAGE +} WS_MESSAGE_INITIALIZATION; + +typedef enum { + WS_ACTION_HEADER = 1, + WS_TO_HEADER = 2, + WS_MESSAGE_ID_HEADER = 3, + WS_RELATES_TO_HEADER = 4, + WS_FROM_HEADER = 5, + WS_REPLY_TO_HEADER = 6, + WS_FAULT_TO_HEADER = 7 +} WS_HEADER_TYPE; + +typedef enum { + WS_REPEATING_HEADER = 1, + WS_SINGLETON_HEADER = 2 +} WS_REPEATING_HEADER_OPTION; + +typedef enum { + WS_DNS_ENDPOINT_IDENTITY_TYPE = 1, + WS_UPN_ENDPOINT_IDENTITY_TYPE = 2, + WS_SPN_ENDPOINT_IDENTITY_TYPE = 3, + WS_RSA_ENDPOINT_IDENTITY_TYPE = 4, + WS_CERT_ENDPOINT_IDENTITY_TYPE = 5, + WS_UNKNOWN_ENDPOINT_IDENTITY_TYPE = 6 +} WS_ENDPOINT_IDENTITY_TYPE; + +struct _WS_ENDPOINT_IDENTITY { + WS_ENDPOINT_IDENTITY_TYPE identityType; +}; + +struct _WS_ENDPOINT_ADDRESS { + WS_STRING url; + WS_XML_BUFFER *headers; + WS_XML_BUFFER *extensions; + WS_ENDPOINT_IDENTITY *identity; +}; + +typedef struct _WS_FAULT_CODE { + WS_XML_QNAME value; + struct _WS_FAULT_CODE *subCode; +} WS_FAULT_CODE; + +typedef struct _WS_FAULT_REASON { + WS_STRING text; + WS_STRING lang; +} WS_FAULT_REASON; + +typedef struct _WS_FAULT { + WS_FAULT_CODE *code; + WS_FAULT_REASON *reasons; + ULONG reasonCount; + WS_STRING actor; + WS_STRING node; + WS_XML_BUFFER *detail; +} WS_FAULT; + +typedef struct _WS_FAULT_DESCRIPTION { + WS_ENVELOPE_VERSION envelopeVersion; +} WS_FAULT_DESCRIPTION; + +typedef struct _WS_FAULT_DETAIL_DESCRIPTION { + WS_XML_STRING *action; + WS_ELEMENT_DESCRIPTION *detailElementDescription; +} WS_FAULT_DETAIL_DESCRIPTION; + +typedef enum { + WS_FAULT_ERROR_PROPERTY_FAULT = 0, + WS_FAULT_ERROR_PROPERTY_ACTION = 1, + WS_FAULT_ERROR_PROPERTY_HEADER = 2 +} WS_FAULT_ERROR_PROPERTY_ID; + + +struct _WS_HTTP_POLICY_DESCRIPTION { + WS_CHANNEL_PROPERTIES channelProperties; +}; + +struct _WS_MESSAGE_DESCRIPTION { + WS_XML_STRING *action; + WS_ELEMENT_DESCRIPTION *bodyElementDescription; +}; + +typedef enum { + WS_PARAMETER_TYPE_NORMAL, + WS_PARAMETER_TYPE_ARRAY, + WS_PARAMETER_TYPE_ARRAY_COUNT, + WS_PARAMETER_TYPE_MESSAGES +} WS_PARAMETER_TYPE; + +struct _WS_PARAMETER_DESCRIPTION { + WS_PARAMETER_TYPE parameterType; + USHORT inputMessageIndex; + USHORT outputMessageIndex; +}; + +typedef HRESULT (CALLBACK *WS_SERVICE_STUB_CALLBACK)( + const WS_OPERATION_CONTEXT *context, + void *frame, + const void *callback, + const WS_ASYNC_CONTEXT *asyncContext, + WS_ERROR *error ); + +typedef enum { + WS_NON_RPC_LITERAL_OPERATION, + WS_RPC_LITERAL_OPERATION +} WS_OPERATION_STYLE; + +struct _WS_OPERATION_DESCRIPTION { + ULONG versionInfo; + WS_MESSAGE_DESCRIPTION *inputMessageDescription; + WS_MESSAGE_DESCRIPTION *outputMessageDescription; + ULONG inputMessageOptions; + ULONG outputMessageOptions; + USHORT parameterCount; + WS_PARAMETER_DESCRIPTION *parameterDescription; + WS_SERVICE_STUB_CALLBACK stubCallback; + WS_OPERATION_STYLE style; +}; + +typedef enum { + WS_CALL_PROPERTY_CHECK_MUST_UNDERSTAND, + WS_CALL_PROPERTY_SEND_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_RECEIVE_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_CALL_ID +} WS_CALL_PROPERTY_ID; + +struct _WS_CALL_PROPERTY { + WS_CALL_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +typedef enum { + WS_DATETIME_FORMAT_UTC, + WS_DATETIME_FORMAT_LOCAL, + WS_DATETIME_FORMAT_NONE +} WS_DATETIME_FORMAT; + +struct _WS_DATETIME { + unsigned __int64 DECLSPEC_ALIGN(8) ticks; + WS_DATETIME_FORMAT format; +}; + +struct _WS_DATETIME_DESCRIPTION { + WS_DATETIME minValue; + WS_DATETIME maxValue; +}; + +struct _WS_XML_DATETIME_TEXT { + WS_XML_TEXT text; + WS_DATETIME value; +}; + +struct _WS_XML_BASE64_TEXT { + WS_XML_TEXT text; + BYTE *bytes; + ULONG length; +}; + +typedef enum { + WS_URL_HTTP_SCHEME_TYPE, + WS_URL_HTTPS_SCHEME_TYPE, + WS_URL_NETTCP_SCHEME_TYPE, + WS_URL_SOAPUDP_SCHEME_TYPE, + WS_URL_NETPIPE_SCHEME_TYPE +} WS_URL_SCHEME_TYPE; + +enum { + WS_URL_FLAGS_ALLOW_HOST_WILDCARDS = 0x1, + WS_URL_FLAGS_NO_PATH_COLLAPSE = 0x2, + WS_URL_FLAGS_ZERO_TERMINATE = 0x4 +}; + +struct _WS_URL { + WS_URL_SCHEME_TYPE scheme; +}; + +struct _WS_HTTP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_HTTPS_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_NETTCP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_SOAPUDP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_NETPIPE_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +typedef enum +{ + WS_IP_VERSION_4 = 1, + WS_IP_VERSION_6 = 2, + WS_IP_VERSION_AUTO = 3 +} WS_IP_VERSION; + +typedef enum +{ + WS_BUFFERED_TRANSFER_MODE = 0x0, + WS_STREAMED_INPUT_TRANSFER_MODE = 0x1, + WS_STREAMED_OUTPUT_TRANSFER_MODE = 0x2, + WS_STREAMED_TRANSFER_MODE = (WS_STREAMED_INPUT_TRANSFER_MODE|WS_STREAMED_OUTPUT_TRANSFER_MODE) +} WS_TRANSFER_MODE; + +typedef HRESULT (CALLBACK *WS_CREATE_CHANNEL_CALLBACK) + (WS_CHANNEL_TYPE, const void*, ULONG, void**, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_CHANNEL_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_RESET_CHANNEL_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_OPEN_CHANNEL_CALLBACK) + (void*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CLOSE_CHANNEL_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABORT_CHANNEL_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_GET_CHANNEL_PROPERTY_CALLBACK) + (void*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SET_CHANNEL_PROPERTY_CALLBACK) + (void*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_START_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_END_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_READ_MESSAGE_START_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_READ_MESSAGE_END_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABANDON_MESSAGE_CALLBACK) + (void*, WS_MESSAGE*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +struct _WS_CUSTOM_CHANNEL_CALLBACKS +{ + WS_CREATE_CHANNEL_CALLBACK createChannelCallback; + WS_FREE_CHANNEL_CALLBACK freeChannelCallback; + WS_RESET_CHANNEL_CALLBACK resetChannelCallback; + WS_OPEN_CHANNEL_CALLBACK openChannelCallback; + WS_CLOSE_CHANNEL_CALLBACK closeChannelCallback; + WS_ABORT_CHANNEL_CALLBACK abortChannelCallback; + WS_GET_CHANNEL_PROPERTY_CALLBACK getChannelPropertyCallback; + WS_SET_CHANNEL_PROPERTY_CALLBACK setChannelPropertyCallback; + WS_WRITE_MESSAGE_START_CALLBACK writeMessageStartCallback; + WS_WRITE_MESSAGE_END_CALLBACK writeMessageEndCallback; + WS_READ_MESSAGE_START_CALLBACK readMessageStartCallback; + WS_READ_MESSAGE_END_CALLBACK readMessageEndCallback; + WS_ABANDON_MESSAGE_CALLBACK abandonMessageCallback; + WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK shutdownSessionChannelCallback; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_ENCODER_CALLBACK) + (void*, WS_WRITE_CALLBACK, void*, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_GET_CONTENT_TYPE_CALLBACK) + (void*, const WS_STRING*, WS_STRING*, WS_STRING*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_START_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_ENCODE_CALLBACK) + (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_END_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_ENCODER_CALLBACK) + (void*); + +struct _WS_CHANNEL_ENCODER +{ + void *createContext; + WS_CREATE_ENCODER_CALLBACK createEncoderCallback; + WS_ENCODER_GET_CONTENT_TYPE_CALLBACK encoderGetContentTypeCallback; + WS_ENCODER_START_CALLBACK encoderStartCallback; + WS_ENCODER_ENCODE_CALLBACK encoderEncodeCallback; + WS_ENCODER_END_CALLBACK encoderEndCallback; + WS_FREE_ENCODER_CALLBACK freeEncoderCallback; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_DECODER_CALLBACK) + (void*, WS_READ_CALLBACK, void*, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_GET_CONTENT_TYPE_CALLBACK) + (void*, const WS_STRING*, const WS_STRING*, WS_STRING*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_START_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_DECODE_CALLBACK) + (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_END_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_DECODER_CALLBACK) + (void*); + +struct _WS_CHANNEL_DECODER +{ + void *createContext; + WS_CREATE_DECODER_CALLBACK createDecoderCallback; + WS_DECODER_GET_CONTENT_TYPE_CALLBACK decoderGetContentTypeCallback; + WS_DECODER_START_CALLBACK decoderStartCallback; + WS_DECODER_DECODE_CALLBACK decoderDecodeCallback; + WS_DECODER_END_CALLBACK decoderEndCallback; + WS_FREE_DECODER_CALLBACK freeDecoderCallback; +}; + +typedef enum +{ + WS_PROTECTION_LEVEL_NONE = 1, + WS_PROTECTION_LEVEL_SIGN = 2, + WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT = 3 +} WS_PROTECTION_LEVEL; + +typedef enum +{ + WS_MANUAL_COOKIE_MODE = 1, + WS_AUTO_COOKIE_MODE = 2 +} WS_COOKIE_MODE; + +typedef enum +{ + WS_HTTP_PROXY_SETTING_MODE_AUTO = 0x1, + WS_HTTP_PROXY_SETTING_MODE_NONE = 0x2, + WS_HTTP_PROXY_SETTING_MODE_CUSTOM = 0x3 +} WS_HTTP_PROXY_SETTING_MODE; + +struct _WS_CUSTOM_HTTP_PROXY +{ + WS_STRING servers; + WS_STRING bypass; +}; + +struct _WS_HTTP_HEADER_MAPPING +{ + WS_XML_STRING headerName; + ULONG headerMappingOptions; +}; + +struct _WS_HTTP_MESSAGE_MAPPING +{ + ULONG requestMappingOptions; + ULONG responseMappingOptions; + WS_HTTP_HEADER_MAPPING **requestHeaderMappings; + ULONG requestHeaderMappingCount; + WS_HTTP_HEADER_MAPPING **responseHeaderMappings; + ULONG responseHeaderMappingCount; +}; + +typedef HRESULT (CALLBACK *WS_HTTP_REDIRECT_CALLBACK) + (void*, const WS_STRING*, const WS_STRING*); + +struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT +{ + WS_HTTP_REDIRECT_CALLBACK callback; + void *state; +}; + +typedef enum +{ + WS_RECEIVE_REQUIRED_MESSAGE = 1, + WS_RECEIVE_OPTIONAL_MESSAGE = 2 +} WS_RECEIVE_OPTION; + +typedef void (CALLBACK *WS_MESSAGE_DONE_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_PROXY_MESSAGE_CALLBACK) + (WS_MESSAGE*, WS_HEAP*, void*, WS_ERROR*); + +struct _WS_PROXY_MESSAGE_CALLBACK_CONTEXT +{ + WS_PROXY_MESSAGE_CALLBACK callback; + void *state; +}; + +typedef enum +{ + WS_LISTENER_STATE_CREATED, + WS_LISTENER_STATE_OPENING, + WS_LISTENER_STATE_OPEN, + WS_LISTENER_STATE_FAULTED, + WS_LISTENER_STATE_CLOSING, + WS_LISTENER_STATE_CLOSED +} WS_LISTENER_STATE; + +typedef enum +{ + WS_LISTENER_PROPERTY_LISTEN_BACKLOG, + WS_LISTENER_PROPERTY_IP_VERSION, + WS_LISTENER_PROPERTY_STATE, + WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL, + WS_LISTENER_PROPERTY_CHANNEL_TYPE, + WS_LISTENER_PROPERTY_CHANNEL_BINDING, + WS_LISTENER_PROPERTY_CONNECT_TIMEOUT, + WS_LISTENER_PROPERTY_IS_MULTICAST, + WS_LISTENER_PROPERTY_MULTICAST_INTERFACES, + WS_LISTENER_PROPERTY_MULTICAST_LOOPBACK, + WS_LISTENER_PROPERTY_CLOSE_TIMEOUT, + WS_LISTENER_PROPERTY_TO_HEADER_MATCHING_OPTIONS, + WS_LISTENER_PROPERTY_TRANSPORT_URL_MATCHING_OPTIONS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_CALLBACKS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_PARAMETERS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_INSTANCE, + WS_LISTENER_PROPERTY_DISALLOWED_USER_AGENT +} WS_LISTENER_PROPERTY_ID; + +struct _WS_LISTENER_PROPERTY +{ + WS_LISTENER_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_DISALLOWED_USER_AGENT_SUBSTRINGS +{ + ULONG subStringCount; + WS_STRING **subStrings; +}; + +struct _WS_LISTENER_PROPERTIES +{ + WS_LISTENER_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_LISTENER_CALLBACK) + (WS_CHANNEL_TYPE, const void*, ULONG, void**, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_LISTENER_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_RESET_LISTENER_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_OPEN_LISTENER_CALLBACK) + (void*, const WS_STRING*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CLOSE_LISTENER_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABORT_LISTENER_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_GET_LISTENER_PROPERTY_CALLBACK) + (void*, WS_LISTENER_PROPERTY_ID, void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SET_LISTENER_PROPERTY_CALLBACK) + (void*, WS_LISTENER_PROPERTY_ID, const void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK) + (void*, const void*, ULONG, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ACCEPT_CHANNEL_CALLBACK) + (void*, void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +struct _WS_CUSTOM_LISTENER_CALLBACKS +{ + WS_CREATE_LISTENER_CALLBACK createListenerCallback; + WS_FREE_LISTENER_CALLBACK freeListenerCallback; + WS_RESET_LISTENER_CALLBACK resetListenerCallback; + WS_OPEN_LISTENER_CALLBACK openListenerCallback; + WS_CLOSE_LISTENER_CALLBACK closeListenerCallback; + WS_ABORT_LISTENER_CALLBACK abortListenerCallback; + WS_GET_LISTENER_PROPERTY_CALLBACK getListenerPropertyCallback; + WS_SET_LISTENER_PROPERTY_CALLBACK setListenerPropertyCallback; + WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK createChannelForListenerCallback; + WS_ACCEPT_CHANNEL_CALLBACK acceptChannelCallback; +}; + +enum +{ + WS_MATCH_URL_DNS_HOST = 0x1, + WS_MATCH_URL_DNS_FULLY_QUALIFIED_HOST = 0x2, + WS_MATCH_URL_NETBIOS_HOST = 0x4, + WS_MATCH_URL_LOCAL_HOST = 0x8, + WS_MATCH_URL_HOST_ADDRESSES = 0x10, + WS_MATCH_URL_THIS_HOST = (WS_MATCH_URL_DNS_HOST | + WS_MATCH_URL_DNS_FULLY_QUALIFIED_HOST | + WS_MATCH_URL_NETBIOS_HOST | + WS_MATCH_URL_LOCAL_HOST | + WS_MATCH_URL_HOST_ADDRESSES), + WS_MATCH_URL_PORT = 0x20, + WS_MATCH_URL_EXACT_PATH = 0x40, + WS_MATCH_URL_PREFIX_PATH = 0x80, + WS_MATCH_URL_NO_QUERY = 0x100 +}; + +HRESULT WINAPI WsAbortServiceProxy(WS_SERVICE_PROXY*, WS_ERROR*); +HRESULT WINAPI WsAcceptChannel(WS_LISTENER*, WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsAddCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, ULONG, WS_ERROR*); +HRESULT WINAPI WsAddErrorString(WS_ERROR*, const WS_STRING*); +HRESULT WINAPI WsAddMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_TYPE, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsAddressMessage(WS_MESSAGE*, const WS_ENDPOINT_ADDRESS*, WS_ERROR*); +HRESULT WINAPI WsAlloc(WS_HEAP*, SIZE_T, void**, WS_ERROR*); +HRESULT WINAPI WsCall(WS_SERVICE_PROXY*, const WS_OPERATION_DESCRIPTION*, const void**, + WS_HEAP*, const WS_CALL_PROPERTY*, const ULONG, const WS_ASYNC_CONTEXT*, + WS_ERROR*); +HRESULT WINAPI WsCloseChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCloseListener(WS_LISTENER*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCloseServiceProxy(WS_SERVICE_PROXY*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCombineUrl(const WS_STRING*, const WS_STRING*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*); +HRESULT WINAPI WsCopyNode(WS_XML_WRITER*, WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsCreateChannel(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_CHANNEL_PROPERTY*, + ULONG, const WS_SECURITY_DESCRIPTION*, WS_CHANNEL**, WS_ERROR*); +HRESULT WINAPI WsCreateChannelForListener(WS_LISTENER*, const WS_CHANNEL_PROPERTY*, ULONG, WS_CHANNEL**, + WS_ERROR*); +HRESULT WINAPI WsCreateError(const WS_ERROR_PROPERTY*, ULONG, WS_ERROR**); +HRESULT WINAPI WsCreateHeap(SIZE_T, SIZE_T, const WS_HEAP_PROPERTY*, ULONG, WS_HEAP**, WS_ERROR*); +HRESULT WINAPI WsCreateListener(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_LISTENER_PROPERTY*, + ULONG, const WS_SECURITY_DESCRIPTION*, WS_LISTENER**, WS_ERROR*); +HRESULT WINAPI WsCreateMessage(WS_ENVELOPE_VERSION, WS_ADDRESSING_VERSION, const WS_MESSAGE_PROPERTY*, + ULONG, WS_MESSAGE**, WS_ERROR*); +HRESULT WINAPI WsCreateMessageForChannel(WS_CHANNEL*, const WS_MESSAGE_PROPERTY*, ULONG, WS_MESSAGE**, + WS_ERROR*); +HRESULT WINAPI WsCreateReader(const WS_XML_READER_PROPERTY*, ULONG, WS_XML_READER**, WS_ERROR*); +HRESULT WINAPI WsCreateServiceProxy(const WS_CHANNEL_TYPE, const WS_CHANNEL_BINDING, + const WS_SECURITY_DESCRIPTION*, const WS_PROXY_PROPERTY*, + const ULONG, const WS_CHANNEL_PROPERTY*, const ULONG, + WS_SERVICE_PROXY**, WS_ERROR*); +HRESULT WINAPI WsCreateServiceProxyFromTemplate(WS_CHANNEL_TYPE, const WS_PROXY_PROPERTY*, + const ULONG, WS_BINDING_TEMPLATE_TYPE, + void*, ULONG, const void*, ULONG, + WS_SERVICE_PROXY**, WS_ERROR*); +HRESULT WINAPI WsCreateWriter(const WS_XML_WRITER_PROPERTY*, ULONG, WS_XML_WRITER**, WS_ERROR*); +HRESULT WINAPI WsCreateXmlBuffer(WS_HEAP*, const WS_XML_BUFFER_PROPERTY*, ULONG, WS_XML_BUFFER**, + WS_ERROR*); +HRESULT WINAPI WsDateTimeToFileTime(const WS_DATETIME*, FILETIME*, WS_ERROR*); +HRESULT WINAPI WsDecodeUrl(const WS_STRING*, ULONG, WS_HEAP*, WS_URL**, WS_ERROR*); +HRESULT WINAPI WsEncodeUrl(const WS_URL*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*); +HRESULT WINAPI WsFileTimeToDateTime(const FILETIME*, WS_DATETIME*, WS_ERROR*); +HRESULT WINAPI WsFillBody(WS_MESSAGE*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFillReader(WS_XML_READER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFindAttribute(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, WINBOOL, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsFlushBody(WS_MESSAGE*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFlushWriter(WS_XML_WRITER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +void WINAPI WsFreeChannel(WS_CHANNEL*); +void WINAPI WsFreeError(WS_ERROR*); +void WINAPI WsFreeHeap(WS_HEAP*); +void WINAPI WsFreeListener(WS_LISTENER*); +void WINAPI WsFreeMessage(WS_MESSAGE*); +void WINAPI WsFreeReader(WS_XML_READER*); +void WINAPI WsFreeServiceProxy(WS_SERVICE_PROXY*); +void WINAPI WsFreeWriter(WS_XML_WRITER*); +HRESULT WINAPI WsGetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_REPEATING_HEADER_OPTION, + ULONG, WS_READ_OPTION, WS_HEAP*, void*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsGetDictionary(WS_ENCODING, WS_XML_DICTIONARY**, WS_ERROR*); +HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG); +HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING*); +HRESULT WINAPI WsGetFaultErrorDetail(WS_ERROR*, const WS_FAULT_DETAIL_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG); +HRESULT WINAPI WsGetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, void*, ULONG); +HRESULT WINAPI WsGetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetListenerProperty(WS_LISTENER*, WS_LISTENER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_REPEATING_HEADER_OPTION, + ULONG, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetNamespaceFromPrefix(WS_XML_READER*, const WS_XML_STRING*, WINBOOL, + const WS_XML_STRING**, WS_ERROR*); +HRESULT WINAPI WsGetPrefixFromNamespace(WS_XML_WRITER*, const WS_XML_STRING*, WINBOOL, + const WS_XML_STRING**, WS_ERROR*); +HRESULT WINAPI WsGetReaderNode(WS_XML_READER*, const WS_XML_NODE**, WS_ERROR*); +HRESULT WINAPI WsGetReaderPosition(WS_XML_READER*, WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsGetReaderProperty(WS_XML_READER*, WS_XML_READER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetServiceProxyProperty(WS_SERVICE_PROXY*, const WS_PROXY_PROPERTY_ID, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsGetWriterPosition(WS_XML_WRITER*, WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsGetWriterProperty(WS_XML_WRITER*, WS_XML_WRITER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetXmlAttribute(WS_XML_READER*, const WS_XML_STRING*, WS_HEAP*, WCHAR**, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsInitializeMessage(WS_MESSAGE*, WS_MESSAGE_INITIALIZATION, WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsMoveReader(WS_XML_READER*, WS_MOVE_TO, WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsMoveWriter(WS_XML_WRITER*, WS_MOVE_TO, WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsOpenChannel(WS_CHANNEL*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsOpenListener(WS_LISTENER*, const WS_STRING*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsOpenServiceProxy(WS_SERVICE_PROXY*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, + WS_ERROR*); +HRESULT WINAPI WsReadAttribute(WS_XML_READER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadBody(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_READ_OPTION, WS_HEAP*, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsReadBytes(WS_XML_READER*, void*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadChars(WS_XML_READER*, WCHAR*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadCharsUtf8(WS_XML_READER*, BYTE*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadElement(WS_XML_READER*, const WS_ELEMENT_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadEndAttribute(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadEndElement(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadEnvelopeEnd(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsReadEnvelopeStart(WS_MESSAGE*, WS_XML_READER*, WS_MESSAGE_DONE_CALLBACK, void*, + WS_ERROR*); +HRESULT WINAPI WsReadMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsReadMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsReadNode(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadQualifiedName(WS_XML_READER*, WS_HEAP*, WS_XML_STRING*, WS_XML_STRING*, + WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsReadStartAttribute(WS_XML_READER*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadStartElement(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadToStartElement(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, + WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsReadType(WS_XML_READER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadValue(WS_XML_READER*, WS_VALUE_TYPE, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadXmlBuffer(WS_XML_READER*, WS_HEAP*, WS_XML_BUFFER**, WS_ERROR*); +HRESULT WINAPI WsReceiveMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION**, ULONG, + WS_RECEIVE_OPTION, WS_READ_OPTION, WS_HEAP*, void*, ULONG, ULONG*, + const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsRemoveCustomHeader(WS_MESSAGE*, const WS_XML_STRING*, const WS_XML_STRING*, + WS_ERROR*); +HRESULT WINAPI WsRemoveHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_ERROR*); +HRESULT WINAPI WsRemoveMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsRemoveNode(const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsRequestReply(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsResetChannel(WS_CHANNEL*, WS_ERROR*); +HRESULT WINAPI WsResetMessage(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsResetError(WS_ERROR*); +HRESULT WINAPI WsResetHeap(WS_HEAP*, WS_ERROR*); +HRESULT WINAPI WsResetListener(WS_LISTENER*, WS_ERROR*); +HRESULT WINAPI WsResetMessage(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsResetServiceProxy(WS_SERVICE_PROXY*, WS_ERROR*); +HRESULT WINAPI WsRequestReply(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, + WS_READ_OPTION, WS_HEAP*, void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSendMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSendReplyMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, + WS_WRITE_OPTION, const void*, ULONG, WS_MESSAGE*, + const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, const void*, ULONG); +HRESULT WINAPI WsSetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, const void*, ULONG); +HRESULT WINAPI WsSetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_WRITE_OPTION, const void*, ULONG, + WS_ERROR*); +HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*, + const WS_XML_READER_PROPERTY*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetInputToBuffer(WS_XML_READER*, WS_XML_BUFFER*, const WS_XML_READER_PROPERTY*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsSetListenerProperty(WS_LISTENER*, WS_LISTENER_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetOutput(WS_XML_WRITER*, const WS_XML_WRITER_ENCODING*, const WS_XML_WRITER_OUTPUT*, + const WS_XML_WRITER_PROPERTY*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetOutputToBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_PROPERTY*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsSetReaderPosition(WS_XML_READER*, const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsSetWriterPosition(WS_XML_WRITER*, const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsShutdownSessionChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSkipNode(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsWriteArray(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, WS_VALUE_TYPE, + const void*, ULONG, ULONG, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteAttribute(WS_XML_WRITER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteBody(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, const void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteBytes(WS_XML_WRITER*, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteChars(WS_XML_WRITER*, const WCHAR*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteCharsUtf8(WS_XML_WRITER*, const BYTE*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteElement(WS_XML_WRITER*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteEndAttribute(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndCData(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndElement(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndStartElement(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEnvelopeEnd(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsWriteEnvelopeStart(WS_MESSAGE*, WS_XML_WRITER*, WS_MESSAGE_DONE_CALLBACK, void*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteNode(WS_XML_WRITER*, const WS_XML_NODE*, WS_ERROR*); +HRESULT WINAPI WsWriteQualifiedName(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsWriteStartAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WINBOOL, WS_ERROR*); +HRESULT WINAPI WsWriteStartCData(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteStartElement(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsWriteText(WS_XML_WRITER*, const WS_XML_TEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteType(WS_XML_WRITER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteValue(WS_XML_WRITER*, WS_VALUE_TYPE, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteXmlBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, WS_ERROR*); +HRESULT WINAPI WsWriteXmlBufferToBytes(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_ENCODING*, + const WS_XML_WRITER_PROPERTY*, ULONG, WS_HEAP*, void**, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsWriteXmlnsAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + WINBOOL, WS_ERROR*); +HRESULT WINAPI WsXmlStringEquals(const WS_XML_STRING*, const WS_XML_STRING*, WS_ERROR*); + +#ifndef FACILITY_WEBSERVICES +#define FACILITY_WEBSERVICES 61 +#define WS_S_ASYNC 0x003d0000 +#define WS_S_END 0x003d0001 +#define WS_E_INVALID_FORMAT 0x803d0000 +#define WS_E_OBJECT_FAULTED 0x803d0001 +#define WS_E_NUMERIC_OVERFLOW 0x803d0002 +#define WS_E_INVALID_OPERATION 0x803d0003 +#define WS_E_OPERATION_ABORTED 0x803d0004 +#define WS_E_ENDPOINT_ACCESS_DENIED 0x803d0005 +#define WS_E_OPERATION_TIMED_OUT 0x803d0006 +#define WS_E_OPERATION_ABANDONED 0x803d0007 +#define WS_E_QUOTA_EXCEEDED 0x803d0008 +#define WS_E_NO_TRANSLATION_AVAILABLE 0x803d0009 +#define WS_E_SECURITY_VERIFICATION_FAILURE 0x803d000a +#define WS_E_ADDRESS_IN_USE 0x803d000b +#define WS_E_ADDRESS_NOT_AVAILABLE 0x803d000c +#define WS_E_ENDPOINT_NOT_FOUND 0x803d000d +#define WS_E_ENDPOINT_NOT_AVAILABLE 0x803d000e +#define WS_E_ENDPOINT_FAILURE 0x803d000f +#define WS_E_ENDPOINT_UNREACHABLE 0x803d0010 +#define WS_E_ENDPOINT_ACTION_NOT_SUPPORTED 0x803d0011 +#define WS_E_ENDPOINT_TOO_BUSY 0x803d0012 +#define WS_E_ENDPOINT_FAULT_RECEIVED 0x803d0013 +#define WS_E_ENDPOINT_DISCONNECTED 0x803d0014 +#define WS_E_PROXY_FAILURE 0x803d0015 +#define WS_E_PROXY_ACCESS_DENIED 0x803d0016 +#define WS_E_NOT_SUPPORTED 0x803d0017 +#define WS_E_PROXY_REQUIRES_BASIC_AUTH 0x803d0018 +#define WS_E_PROXY_REQUIRES_DIGEST_AUTH 0x803d0019 +#define WS_E_PROXY_REQUIRES_NTLM_AUTH 0x803d001a +#define WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH 0x803d001b +#define WS_E_SERVER_REQUIRES_BASIC_AUTH 0x803d001c +#define WS_E_SERVER_REQUIRES_DIGEST_AUTH 0x803d001d +#define WS_E_SERVER_REQUIRES_NTLM_AUTH 0x803d001e +#define WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH 0x803d001f +#define WS_E_INVALID_ENDPOINT_URL 0x803d0020 +#define WS_E_OTHER 0x803d0021 +#define WS_E_SECURITY_TOKEN_EXPIRED 0x803d0022 +#define WS_E_SECURITY_SYSTEM_FAILURE 0x803d0023 +#endif + +#define WS_STRING_VALUE(s) { sizeof(s) / sizeof((s)[0]) - 1, (WCHAR *)(s) } +#define WS_XML_STRING_VALUE(s) { sizeof(s) - 1, (BYTE *)(s) } + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __WINE_WEBSERVICES_H */ diff --git a/mingw32/include/wincodecsdk.h b/mingw32/include/wincodecsdk.h index dcd087f4a61..88e88c9b576 100644 --- a/mingw32/include/wincodecsdk.h +++ b/mingw32/include/wincodecsdk.h @@ -90,6 +90,14 @@ interface IWICPersistStream; #endif /* __cplusplus */ #endif +#ifndef __IWICStreamProvider_FWD_DEFINED__ +#define __IWICStreamProvider_FWD_DEFINED__ +typedef interface IWICStreamProvider IWICStreamProvider; +#ifdef __cplusplus +interface IWICStreamProvider; +#endif /* __cplusplus */ +#endif + #ifndef __IWICComponentFactory_FWD_DEFINED__ #define __IWICComponentFactory_FWD_DEFINED__ typedef interface IWICComponentFactory IWICComponentFactory; @@ -1708,6 +1716,115 @@ static __WIDL_INLINE HRESULT IWICPersistStream_SaveEx(IWICPersistStream* This,IS #endif /* __IWICPersistStream_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IWICStreamProvider interface + */ +#ifndef __IWICStreamProvider_INTERFACE_DEFINED__ +#define __IWICStreamProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWICStreamProvider, 0x449494bc, 0xb468, 0x4927, 0x96,0xd7, 0xba,0x90,0xd3,0x1a,0xb5,0x05); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("449494bc-b468-4927-96d7-ba90d31ab505") +IWICStreamProvider : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetStream( + IStream **stream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPersistOptions( + DWORD *options) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreferredVendorGUID( + GUID *guid) = 0; + + virtual HRESULT STDMETHODCALLTYPE RefreshStream( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWICStreamProvider, 0x449494bc, 0xb468, 0x4927, 0x96,0xd7, 0xba,0x90,0xd3,0x1a,0xb5,0x05) +#endif +#else +typedef struct IWICStreamProviderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWICStreamProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWICStreamProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWICStreamProvider *This); + + /*** IWICStreamProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStream)( + IWICStreamProvider *This, + IStream **stream); + + HRESULT (STDMETHODCALLTYPE *GetPersistOptions)( + IWICStreamProvider *This, + DWORD *options); + + HRESULT (STDMETHODCALLTYPE *GetPreferredVendorGUID)( + IWICStreamProvider *This, + GUID *guid); + + HRESULT (STDMETHODCALLTYPE *RefreshStream)( + IWICStreamProvider *This); + + END_INTERFACE +} IWICStreamProviderVtbl; + +interface IWICStreamProvider { + CONST_VTBL IWICStreamProviderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWICStreamProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWICStreamProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWICStreamProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IWICStreamProvider methods ***/ +#define IWICStreamProvider_GetStream(This,stream) (This)->lpVtbl->GetStream(This,stream) +#define IWICStreamProvider_GetPersistOptions(This,options) (This)->lpVtbl->GetPersistOptions(This,options) +#define IWICStreamProvider_GetPreferredVendorGUID(This,guid) (This)->lpVtbl->GetPreferredVendorGUID(This,guid) +#define IWICStreamProvider_RefreshStream(This) (This)->lpVtbl->RefreshStream(This) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWICStreamProvider_QueryInterface(IWICStreamProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWICStreamProvider_AddRef(IWICStreamProvider* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWICStreamProvider_Release(IWICStreamProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IWICStreamProvider methods ***/ +static __WIDL_INLINE HRESULT IWICStreamProvider_GetStream(IWICStreamProvider* This,IStream **stream) { + return This->lpVtbl->GetStream(This,stream); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_GetPersistOptions(IWICStreamProvider* This,DWORD *options) { + return This->lpVtbl->GetPersistOptions(This,options); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_GetPreferredVendorGUID(IWICStreamProvider* This,GUID *guid) { + return This->lpVtbl->GetPreferredVendorGUID(This,guid); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_RefreshStream(IWICStreamProvider* This) { + return This->lpVtbl->RefreshStream(This); +} +#endif +#endif + +#endif + + +#endif /* __IWICStreamProvider_INTERFACE_DEFINED__ */ + /***************************************************************************** * IWICComponentFactory interface */ diff --git a/mingw32/include/wincodecsdk.idl b/mingw32/include/wincodecsdk.idl index 8692eea3067..a12ca9226d1 100644 --- a/mingw32/include/wincodecsdk.idl +++ b/mingw32/include/wincodecsdk.idl @@ -366,6 +366,24 @@ interface IWICPersistStream : IPersistStream [in] BOOL fClearDirty); } +[ + object, + uuid(449494bc-b468-4927-96d7-ba90d31ab505) +] +interface IWICStreamProvider : IUnknown +{ + HRESULT GetStream( + [out] IStream **stream); + + HRESULT GetPersistOptions( + [out] DWORD *options); + + HRESULT GetPreferredVendorGUID( + [out] GUID *guid); + + HRESULT RefreshStream(); +} + [ object, uuid(412d0c3a-9650-44fa-af5b-dd2a06c8e8fb) diff --git a/mingw32/include/winhttp.h b/mingw32/include/winhttp.h index e9c443daa36..d0ba52d611f 100644 --- a/mingw32/include/winhttp.h +++ b/mingw32/include/winhttp.h @@ -192,7 +192,8 @@ typedef int INTERNET_SCHEME, *LPINTERNET_SCHEME; #define WINHTTP_DECOMPRESSION_FLAG_ALL ( WINHTTP_DECOMPRESSION_FLAG_GZIP | WINHTTP_DECOMPRESSION_FLAG_DEFLATE ) #define WINHTTP_PROTOCOL_FLAG_HTTP2 0x1 -#define WINHTTP_PROTOCOL_MASK WINHTTP_PROTOCOL_FLAG_HTTP2 +#define WINHTTP_PROTOCOL_FLAG_HTTP3 0x2 +#define WINHTTP_PROTOCOL_MASK (WINHTTP_PROTOCOL_FLAG_HTTP2 | WINHTTP_PROTOCOL_FLAG_HTTP3) #define WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 0 #define WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW 1 diff --git a/mingw32/include/winnt.h b/mingw32/include/winnt.h index c4805f91712..683552518e9 100644 --- a/mingw32/include/winnt.h +++ b/mingw32/include/winnt.h @@ -8950,8 +8950,10 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); #define HEAP_PSEUDO_TAG_FLAG 0x8000 #define HEAP_TAG_SHIFT 18 -#if (!defined (__CRT__NO_INLINE) || defined(_UCRT)) && !defined (__WIDL__) - __forceinline PVOID RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) { + PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt); + +#if !defined (__CRT__NO_INLINE) && !defined (__WIDL__) + __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) { volatile char *vptr =(volatile char *)ptr; #ifdef __x86_64 __stosb((PBYTE)((DWORD64)vptr),0,cnt); @@ -8963,8 +8965,6 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); #endif /* __x86_64 */ return ptr; } -#else /* intrinsic in kernel32 */ - PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt); #endif /* !__CRT__NO_INLINE // !__WIDL__ */ /* Let this macro fail for non-desktop mode. AFAIU this should be better an inline-function ... */ diff --git a/mingw32/lib/libdxguid.a b/mingw32/lib/libdxguid.a index ca0ec705501..236dc087cbe 100644 Binary files a/mingw32/lib/libdxguid.a and b/mingw32/lib/libdxguid.a differ diff --git a/mingw32/lib/libkernel32.a b/mingw32/lib/libkernel32.a index 5ed430efecf..fb9a22a9b27 100644 Binary files a/mingw32/lib/libkernel32.a and b/mingw32/lib/libkernel32.a differ diff --git a/mingw32/lib/libmingw32.a b/mingw32/lib/libmingw32.a index fdc148c8bfd..de43345e329 100644 Binary files a/mingw32/lib/libmingw32.a and b/mingw32/lib/libmingw32.a differ diff --git a/mingw32/lib/libucrt.a b/mingw32/lib/libucrt.a index 3c5190cd94a..7c74659005e 100644 Binary files a/mingw32/lib/libucrt.a and b/mingw32/lib/libucrt.a differ diff --git a/mingw32/lib/libucrtapp.a b/mingw32/lib/libucrtapp.a index 92636f80818..8cf3b2445ad 100644 Binary files a/mingw32/lib/libucrtapp.a and b/mingw32/lib/libucrtapp.a differ diff --git a/mingw32/lib/libucrtbase.a b/mingw32/lib/libucrtbase.a index 91e4379eefb..ee1d816a868 100644 Binary files a/mingw32/lib/libucrtbase.a and b/mingw32/lib/libucrtbase.a differ diff --git a/mingw32/lib/libucrtbased.a b/mingw32/lib/libucrtbased.a index 97e7660547f..3fe18fb4d2a 100644 Binary files a/mingw32/lib/libucrtbased.a and b/mingw32/lib/libucrtbased.a differ diff --git a/mingw32/lib/libuuid.a b/mingw32/lib/libuuid.a index ad9fb6761e5..68ce6aa6010 100644 Binary files a/mingw32/lib/libuuid.a and b/mingw32/lib/libuuid.a differ diff --git a/mingw32/lib/libwintrust.a b/mingw32/lib/libwintrust.a index 0f8f7a86827..9d2582461cb 100644 Binary files a/mingw32/lib/libwintrust.a and b/mingw32/lib/libwintrust.a differ diff --git a/mingw64/bin/gendef.exe b/mingw64/bin/gendef.exe index af105bd6f90..3901210efc7 100755 Binary files a/mingw64/bin/gendef.exe and b/mingw64/bin/gendef.exe differ diff --git a/mingw64/bin/genidl.exe b/mingw64/bin/genidl.exe index d019dfae4ad..79fb54d904f 100755 Binary files a/mingw64/bin/genidl.exe and b/mingw64/bin/genidl.exe differ diff --git a/mingw64/bin/genpeimg.exe b/mingw64/bin/genpeimg.exe index da927cd0a14..bd17d17a6a0 100755 Binary files a/mingw64/bin/genpeimg.exe and b/mingw64/bin/genpeimg.exe differ diff --git a/mingw64/bin/libwinpthread-1.dll b/mingw64/bin/libwinpthread-1.dll index 1600511bda2..dee7ff89c16 100755 Binary files a/mingw64/bin/libwinpthread-1.dll and b/mingw64/bin/libwinpthread-1.dll differ diff --git a/mingw64/bin/widl.exe b/mingw64/bin/widl.exe index 2e18eefd3c1..4b04c4bf6b4 100755 Binary files a/mingw64/bin/widl.exe and b/mingw64/bin/widl.exe differ diff --git a/mingw64/include/corecrt_stdio_config.h b/mingw64/include/corecrt_stdio_config.h index 02a83684f86..3028d92e160 100644 --- a/mingw64/include/corecrt_stdio_config.h +++ b/mingw64/include/corecrt_stdio_config.h @@ -14,13 +14,14 @@ #define _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS 0x0004ULL #define _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY 0x0008ULL #define _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS 0x0010ULL +#define _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING 0x0020ULL #define _CRT_INTERNAL_SCANF_SECURECRT 0x0001ULL #define _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS 0x0002ULL #define _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY 0x0004ULL #ifndef _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS -#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS +#define _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS (_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS | _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING) #endif #ifndef _CRT_INTERNAL_LOCAL_SCANF_OPTIONS diff --git a/mingw64/include/d2d1.h b/mingw64/include/d2d1.h index 66f3ee4dce9..f89b1efcdc2 100644 --- a/mingw64/include/d2d1.h +++ b/mingw64/include/d2d1.h @@ -120,6 +120,8 @@ typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS { D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS); + typedef enum D2D1_DASH_STYLE { D2D1_DASH_STYLE_SOLID = 0, D2D1_DASH_STYLE_DASH = 1, @@ -153,6 +155,8 @@ typedef enum D2D1_DRAW_TEXT_OPTIONS { D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_DRAW_TEXT_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS); + typedef enum D2D1_EXTEND_MODE { D2D1_EXTEND_MODE_CLAMP = 0, D2D1_EXTEND_MODE_WRAP = 1, @@ -218,6 +222,8 @@ typedef enum D2D1_LAYER_OPTIONS { D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_LAYER_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS); + typedef enum D2D1_LINE_JOIN { D2D1_LINE_JOIN_MITER = 0, D2D1_LINE_JOIN_BEVEL = 1, @@ -240,6 +246,8 @@ typedef enum D2D1_PATH_SEGMENT { D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff } D2D1_PATH_SEGMENT; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_PATH_SEGMENT); + typedef enum D2D1_PRESENT_OPTIONS { D2D1_PRESENT_OPTIONS_NONE = 0x00000000, D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001, @@ -247,6 +255,8 @@ typedef enum D2D1_PRESENT_OPTIONS { D2D1_PRESENT_OPTIONS_FORCE_DWORD = 0xffffffff } D2D1_PRESENT_OPTIONS; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_PRESENT_OPTIONS); + typedef enum D2D1_RENDER_TARGET_TYPE { D2D1_RENDER_TARGET_TYPE_DEFAULT = 0, D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1, @@ -261,6 +271,8 @@ typedef enum D2D1_RENDER_TARGET_USAGE { D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff } D2D1_RENDER_TARGET_USAGE; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE); + typedef enum D2D1_SWEEP_DIRECTION { D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0, D2D1_SWEEP_DIRECTION_CLOCKWISE = 1, @@ -281,6 +293,8 @@ typedef enum D2D1_WINDOW_STATE { D2D1_WINDOW_STATE_FORCE_DWORD = 0xffffffff } D2D1_WINDOW_STATE; +DEFINE_ENUM_FLAG_OPERATORS(D2D1_WINDOW_STATE); + /* this is a hack so we can use forward declares in C (easier than reordering interfaces) */ #if !defined(__cplusplus) #undef DECLARE_INTERFACE diff --git a/mingw64/include/d3d11.h b/mingw64/include/d3d11.h index 59f79769103..bad49096496 100644 --- a/mingw64/include/d3d11.h +++ b/mingw64/include/d3d11.h @@ -625,8 +625,30 @@ interface ID3D11VideoProcessorInputView; #define D3D11_DEFAULT_VIEWPORT_WIDTH (0) #define D3D11_FLOAT32_MAX (3.402823466e+38f) +#define D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES (0) + +#define D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY (0) + +#define D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES (0) + +#define D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT (1) + +#define D3D11_IA_INSTANCE_ID_BIT_COUNT (32) + +#define D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT (32) + +#define D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT (32) + +#define D3D11_IA_PRIMITIVE_ID_BIT_COUNT (32) + +#define D3D11_IA_VERTEX_ID_BIT_COUNT (32) + #define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32) +#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128) + +#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32) + #define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT (8) #define D3D11_MAX_MAXANISOTROPY (16) diff --git a/mingw64/include/d3d11.idl b/mingw64/include/d3d11.idl index 82696095b23..670ec327f7d 100644 --- a/mingw64/include/d3d11.idl +++ b/mingw64/include/d3d11.idl @@ -156,7 +156,18 @@ const UINT D3D11_DEFAULT_VIEWPORT_WIDTH = 0; cpp_quote("#define D3D11_FLOAT32_MAX (3.402823466e+38f)") +const UINT D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; +const UINT D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; +const UINT D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; +const UINT D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; +const UINT D3D11_IA_INSTANCE_ID_BIT_COUNT = 32; +const UINT D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; +const UINT D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32; +const UINT D3D11_IA_PRIMITIVE_ID_BIT_COUNT = 32; +const UINT D3D11_IA_VERTEX_ID_BIT_COUNT = 32; const UINT D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; +const UINT D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; +const UINT D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; diff --git a/mingw64/include/sec_api/stdio_s.h b/mingw64/include/sec_api/stdio_s.h index 320defe2508..008c0b944e0 100644 --- a/mingw64/include/sec_api/stdio_s.h +++ b/mingw64/include/sec_api/stdio_s.h @@ -201,7 +201,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_s_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf_s(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vfprintf_s(FILE *_File, const char *_Format, va_list _ArgList) { @@ -254,7 +254,7 @@ extern "C" { __mingw_ovr int __cdecl _vsnprintf_c_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vsnprintf_c(char *_DstBuf, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -281,7 +281,7 @@ extern "C" { __mingw_ovr int __cdecl _vsnprintf_s_l(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsnprintf_s(0, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsnprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vsnprintf_s(char *_DstBuf, size_t _DstSize, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -312,7 +312,7 @@ extern "C" { __mingw_ovr int __cdecl _vsprintf_s_l(char *_DstBuf, size_t _DstSize, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf_s(0, _DstBuf, _DstSize, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf_s(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _DstSize, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl vsprintf_s(char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) { @@ -339,7 +339,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_p_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vfprintf_p(FILE *_File, const char *_Format, va_list _ArgList) { @@ -358,7 +358,7 @@ extern "C" { __builtin_va_list _ArgList; int _Ret; __builtin_va_start(_ArgList, _Locale); - _Ret = __stdio_common_vfprintf_p(0, _File, _Format, _Locale, _ArgList); + _Ret = __stdio_common_vfprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); __builtin_va_end(_ArgList); return _Ret; } @@ -392,7 +392,7 @@ extern "C" { __mingw_ovr int __cdecl _vsprintf_p_l(char *_DstBuf, size_t _MaxCount, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vsprintf_p(0, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); + return __stdio_common_vsprintf_p(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _DstBuf, _MaxCount, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vsprintf_p(char *_Dst, size_t _MaxCount, const char *_Format, va_list _ArgList) { @@ -446,7 +446,7 @@ extern "C" { __mingw_ovr int __cdecl _vfprintf_l(FILE *_File, const char *_Format, _locale_t _Locale, va_list _ArgList) { - return __stdio_common_vfprintf(0, _File, _Format, _Locale, _ArgList); + return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _File, _Format, _Locale, _ArgList); } __mingw_ovr int __cdecl _vprintf_l(const char *_Format, _locale_t _Locale, va_list _ArgList) { diff --git a/mingw64/include/stdio.h b/mingw64/include/stdio.h index 39125a000d1..332d4a4b558 100644 --- a/mingw64/include/stdio.h +++ b/mingw64/include/stdio.h @@ -1365,7 +1365,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti __mingw_ovr int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format, va_list _ArgList) { - int _Result = __stdio_common_vswprintf(_CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, NULL, _ArgList); + int _Result = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, NULL, 0, _Format, NULL, _ArgList); return _Result < 0 ? -1 : _Result; } #else diff --git a/mingw64/include/uiautomationcore.h b/mingw64/include/uiautomationcore.h index fbe84912c26..c7f9d5344ef 100644 --- a/mingw64/include/uiautomationcore.h +++ b/mingw64/include/uiautomationcore.h @@ -210,6 +210,14 @@ interface ISelectionProvider; #endif /* __cplusplus */ #endif +#ifndef __ISelectionProvider2_FWD_DEFINED__ +#define __ISelectionProvider2_FWD_DEFINED__ +typedef interface ISelectionProvider2 ISelectionProvider2; +#ifdef __cplusplus +interface ISelectionProvider2; +#endif /* __cplusplus */ +#endif + #ifndef __IScrollProvider_FWD_DEFINED__ #define __IScrollProvider_FWD_DEFINED__ typedef interface IScrollProvider IScrollProvider; @@ -3082,6 +3090,143 @@ static __WIDL_INLINE HRESULT ISelectionProvider_get_IsSelectionRequired(ISelecti #endif /* __ISelectionProvider_INTERFACE_DEFINED__ */ +/***************************************************************************** + * ISelectionProvider2 interface + */ +#ifndef __ISelectionProvider2_INTERFACE_DEFINED__ +#define __ISelectionProvider2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("14f68475-ee1c-44f6-a869-d239381f0fe7") +ISelectionProvider2 : public ISelectionProvider +{ + virtual HRESULT STDMETHODCALLTYPE get_FirstSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_LastSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_CurrentSelectedItem( + IRawElementProviderSimple **val) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_ItemCount( + int *val) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7) +#endif +#else +typedef struct ISelectionProvider2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + ISelectionProvider2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + ISelectionProvider2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + ISelectionProvider2 *This); + + /*** ISelectionProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSelection)( + ISelectionProvider2 *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_CanSelectMultiple)( + ISelectionProvider2 *This, + WINBOOL *pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_IsSelectionRequired)( + ISelectionProvider2 *This, + WINBOOL *pRetVal); + + /*** ISelectionProvider2 methods ***/ + HRESULT (STDMETHODCALLTYPE *get_FirstSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_LastSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_CurrentSelectedItem)( + ISelectionProvider2 *This, + IRawElementProviderSimple **val); + + HRESULT (STDMETHODCALLTYPE *get_ItemCount)( + ISelectionProvider2 *This, + int *val); + + END_INTERFACE +} ISelectionProvider2Vtbl; + +interface ISelectionProvider2 { + CONST_VTBL ISelectionProvider2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define ISelectionProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define ISelectionProvider2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define ISelectionProvider2_Release(This) (This)->lpVtbl->Release(This) +/*** ISelectionProvider methods ***/ +#define ISelectionProvider2_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal) +#define ISelectionProvider2_get_CanSelectMultiple(This,pRetVal) (This)->lpVtbl->get_CanSelectMultiple(This,pRetVal) +#define ISelectionProvider2_get_IsSelectionRequired(This,pRetVal) (This)->lpVtbl->get_IsSelectionRequired(This,pRetVal) +/*** ISelectionProvider2 methods ***/ +#define ISelectionProvider2_get_FirstSelectedItem(This,val) (This)->lpVtbl->get_FirstSelectedItem(This,val) +#define ISelectionProvider2_get_LastSelectedItem(This,val) (This)->lpVtbl->get_LastSelectedItem(This,val) +#define ISelectionProvider2_get_CurrentSelectedItem(This,val) (This)->lpVtbl->get_CurrentSelectedItem(This,val) +#define ISelectionProvider2_get_ItemCount(This,val) (This)->lpVtbl->get_ItemCount(This,val) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_QueryInterface(ISelectionProvider2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG ISelectionProvider2_AddRef(ISelectionProvider2* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG ISelectionProvider2_Release(ISelectionProvider2* This) { + return This->lpVtbl->Release(This); +} +/*** ISelectionProvider methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_GetSelection(ISelectionProvider2* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetSelection(This,pRetVal); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_CanSelectMultiple(ISelectionProvider2* This,WINBOOL *pRetVal) { + return This->lpVtbl->get_CanSelectMultiple(This,pRetVal); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_IsSelectionRequired(ISelectionProvider2* This,WINBOOL *pRetVal) { + return This->lpVtbl->get_IsSelectionRequired(This,pRetVal); +} +/*** ISelectionProvider2 methods ***/ +static __WIDL_INLINE HRESULT ISelectionProvider2_get_FirstSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_FirstSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_LastSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_LastSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_CurrentSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) { + return This->lpVtbl->get_CurrentSelectedItem(This,val); +} +static __WIDL_INLINE HRESULT ISelectionProvider2_get_ItemCount(ISelectionProvider2* This,int *val) { + return This->lpVtbl->get_ItemCount(This,val); +} +#endif +#endif + +#endif + + +#endif /* __ISelectionProvider2_INTERFACE_DEFINED__ */ + /***************************************************************************** * IScrollProvider interface */ diff --git a/mingw64/include/uiautomationcore.idl b/mingw64/include/uiautomationcore.idl index 4f8bc7d526d..9aa5e09944e 100644 --- a/mingw64/include/uiautomationcore.idl +++ b/mingw64/include/uiautomationcore.idl @@ -611,6 +611,20 @@ library UIA [propget] HRESULT IsSelectionRequired([out, retval] BOOL *pRetVal); }; + [ + object, + uuid(14f68475-ee1c-44f6-a869-d239381f0fe7), + pointer_default(unique), + oleautomation + ] + interface ISelectionProvider2 : ISelectionProvider + { + [propget] HRESULT FirstSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT LastSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT CurrentSelectedItem([out, retval] IRawElementProviderSimple **val); + [propget] HRESULT ItemCount([out, retval] int *val); + } + [ object, uuid(b38b8077-1fc3-42a5-8cae-d40c2215055a), diff --git a/mingw64/include/weakreference.h b/mingw64/include/weakreference.h new file mode 100644 index 00000000000..78ebfc19ec4 --- /dev/null +++ b/mingw64/include/weakreference.h @@ -0,0 +1,218 @@ +/*** Autogenerated by WIDL 9.11 from include/weakreference.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __weakreference_h__ +#define __weakreference_h__ + +#ifndef __WIDL_INLINE +#if defined(__cplusplus) || defined(_MSC_VER) +#define __WIDL_INLINE inline +#elif defined(__GNUC__) +#define __WIDL_INLINE __inline__ +#endif +#endif + +/* Forward declarations */ + +#ifndef __IWeakReference_FWD_DEFINED__ +#define __IWeakReference_FWD_DEFINED__ +typedef interface IWeakReference IWeakReference; +#ifdef __cplusplus +interface IWeakReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IWeakReferenceSource_FWD_DEFINED__ +#define __IWeakReferenceSource_FWD_DEFINED__ +typedef interface IWeakReferenceSource IWeakReferenceSource; +#ifdef __cplusplus +interface IWeakReferenceSource; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************** + * IWeakReference interface + */ +#ifndef __IWeakReference_INTERFACE_DEFINED__ +#define __IWeakReference_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWeakReference, 0x00000037, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000037-0000-0000-c000-000000000046") +IWeakReference : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Resolve( + REFIID iid, + IInspectable **ref) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWeakReference, 0x00000037, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) +#endif +#else +typedef struct IWeakReferenceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWeakReference *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWeakReference *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWeakReference *This); + + /*** IWeakReference methods ***/ + HRESULT (STDMETHODCALLTYPE *Resolve)( + IWeakReference *This, + REFIID iid, + IInspectable **ref); + + END_INTERFACE +} IWeakReferenceVtbl; + +interface IWeakReference { + CONST_VTBL IWeakReferenceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWeakReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWeakReference_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWeakReference_Release(This) (This)->lpVtbl->Release(This) +/*** IWeakReference methods ***/ +#define IWeakReference_Resolve(This,iid,ref) (This)->lpVtbl->Resolve(This,iid,ref) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWeakReference_QueryInterface(IWeakReference* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWeakReference_AddRef(IWeakReference* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWeakReference_Release(IWeakReference* This) { + return This->lpVtbl->Release(This); +} +/*** IWeakReference methods ***/ +static __WIDL_INLINE HRESULT IWeakReference_Resolve(IWeakReference* This,REFIID iid,IInspectable **ref) { + return This->lpVtbl->Resolve(This,iid,ref); +} +#endif +#endif + +#endif + + +#endif /* __IWeakReference_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWeakReferenceSource interface + */ +#ifndef __IWeakReferenceSource_INTERFACE_DEFINED__ +#define __IWeakReferenceSource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWeakReferenceSource, 0x00000038, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000038-0000-0000-c000-000000000046") +IWeakReferenceSource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetWeakReference( + IWeakReference **ref) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWeakReferenceSource, 0x00000038, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) +#endif +#else +typedef struct IWeakReferenceSourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWeakReferenceSource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWeakReferenceSource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWeakReferenceSource *This); + + /*** IWeakReferenceSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWeakReference)( + IWeakReferenceSource *This, + IWeakReference **ref); + + END_INTERFACE +} IWeakReferenceSourceVtbl; + +interface IWeakReferenceSource { + CONST_VTBL IWeakReferenceSourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWeakReferenceSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWeakReferenceSource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWeakReferenceSource_Release(This) (This)->lpVtbl->Release(This) +/*** IWeakReferenceSource methods ***/ +#define IWeakReferenceSource_GetWeakReference(This,ref) (This)->lpVtbl->GetWeakReference(This,ref) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWeakReferenceSource_QueryInterface(IWeakReferenceSource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWeakReferenceSource_AddRef(IWeakReferenceSource* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWeakReferenceSource_Release(IWeakReferenceSource* This) { + return This->lpVtbl->Release(This); +} +/*** IWeakReferenceSource methods ***/ +static __WIDL_INLINE HRESULT IWeakReferenceSource_GetWeakReference(IWeakReferenceSource* This,IWeakReference **ref) { + return This->lpVtbl->GetWeakReference(This,ref); +} +#endif +#endif + +#endif + + +#endif /* __IWeakReferenceSource_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __weakreference_h__ */ diff --git a/mingw64/include/weakreference.idl b/mingw64/include/weakreference.idl new file mode 100644 index 00000000000..fb5b95bf2ce --- /dev/null +++ b/mingw64/include/weakreference.idl @@ -0,0 +1,39 @@ +/* + * Copyright 2022 RĂ©mi Bernon for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "inspectable.idl"; + +[ + object, + uuid(00000037-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IWeakReference : IUnknown +{ + HRESULT Resolve([in] REFIID iid, [out, retval, iid_is(iid)] IInspectable **ref); +} + +[ + object, + uuid(00000038-0000-0000-c000-000000000046), + pointer_default(unique) +] +interface IWeakReferenceSource : IUnknown +{ + HRESULT GetWeakReference([out, retval] IWeakReference **ref); +} diff --git a/mingw64/include/webservices.h b/mingw64/include/webservices.h new file mode 100644 index 00000000000..efd8e8a89f4 --- /dev/null +++ b/mingw64/include/webservices.h @@ -0,0 +1,1892 @@ +/* + * Copyright 2015 Nikolay Sivov for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_WEBSERVICES_H +#define __WINE_WEBSERVICES_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef struct _WS_ERROR WS_ERROR; +typedef struct _WS_HEAP WS_HEAP; +typedef struct _WS_XML_BUFFER WS_XML_BUFFER; +typedef struct _WS_XML_READER WS_XML_READER; +typedef struct _WS_XML_WRITER WS_XML_WRITER; +typedef struct _WS_PROXY_PROPERTY WS_PROXY_PROPERTY; +typedef struct _WS_SECURITY_DESCRIPTION WS_SECURITY_DESCRIPTION; +typedef struct _WS_CHANNEL_PROPERTY WS_CHANNEL_PROPERTY; +typedef struct _WS_SERVICE_PROXY WS_SERVICE_PROXY; +typedef struct _WS_SECURITY_BINDING_PROPERTY WS_SECURITY_BINDING_PROPERTY; +typedef struct _WS_SECURITY_PROPERTY WS_SECURITY_PROPERTY; +typedef struct _WS_SECURITY_PROPERTIES WS_SECURITY_PROPERTIES; +typedef struct _WS_SECURITY_BINDING WS_SECURITY_BINDING; +typedef struct _WS_CHANNEL WS_CHANNEL; +typedef struct _WS_MESSAGE_PROPERTY WS_MESSAGE_PROPERTY; +typedef struct _WS_MESSAGE_PROPERTIES WS_MESSAGE_PROPERTIES; +typedef struct _WS_HTTP_BINDING_TEMPLATE WS_HTTP_BINDING_TEMPLATE; +typedef struct _WS_HTTP_SSL_BINDING_TEMPLATE WS_HTTP_SSL_BINDING_TEMPLATE; +typedef struct _WS_CHANNEL_PROPERTIES WS_CHANNEL_PROPERTIES; +typedef struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE; +typedef struct _WS_SECURITY_BINDING_PROPERTIES WS_SECURITY_BINDING_PROPERTIES; +typedef struct _WS_CERT_CREDENTIAL WS_CERT_CREDENTIAL; +typedef struct _WS_ENDPOINT_ADDRESS WS_ENDPOINT_ADDRESS; +typedef struct _WS_ENDPOINT_IDENTITY WS_ENDPOINT_IDENTITY; +typedef struct _WS_ENUM_DESCRIPTION WS_ENUM_DESCRIPTION; +typedef struct _WS_ENUM_VALUE WS_ENUM_VALUE; +typedef struct _WS_HTTP_POLICY_DESCRIPTION WS_HTTP_POLICY_DESCRIPTION; +typedef struct _WS_MESSAGE WS_MESSAGE; +typedef struct _WS_MESSAGE_DESCRIPTION WS_MESSAGE_DESCRIPTION; +typedef struct _WS_OPERATION_DESCRIPTION WS_OPERATION_DESCRIPTION; +typedef struct _WS_PARAMETER_DESCRIPTION WS_PARAMETER_DESCRIPTION; +typedef struct _WS_OPERATION_CONTEXT WS_OPERATION_CONTEXT; +typedef struct _WS_CALL_PROPERTY WS_CALL_PROPERTY; +typedef struct _WS_FLOAT_DESCRIPTION WS_FLOAT_DESCRIPTION; +typedef struct _WS_DOUBLE_DESCRIPTION WS_DOUBLE_DESCRIPTION; +typedef struct _WS_DATETIME WS_DATETIME; +typedef struct _WS_XML_DATETIME_TEXT WS_XML_DATETIME_TEXT; +typedef struct _WS_XML_BASE64_TEXT WS_XML_BASE64_TEXT; +typedef struct _WS_DATETIME_DESCRIPTION WS_DATETIME_DESCRIPTION; +typedef struct _WS_GUID_DESCRIPTION WS_GUID_DESCRIPTION; +typedef struct _WS_UNIQUE_ID_DESCRIPTION WS_UNIQUE_ID_DESCRIPTION; +typedef struct _WS_BYTES_DESCRIPTION WS_BYTES_DESCRIPTION; +typedef struct _WS_URL WS_URL; +typedef struct _WS_HTTP_URL WS_HTTP_URL; +typedef struct _WS_HTTPS_URL WS_HTTPS_URL; +typedef struct _WS_NETTCP_URL WS_NETTCP_URL; +typedef struct _WS_SOAPUDP_URL WS_SOAPUDP_URL; +typedef struct _WS_NETPIPE_URL WS_NETPIPE_URL; +typedef struct _WS_CUSTOM_CHANNEL_CALLBACKS WS_CUSTOM_CHANNEL_CALLBACKS; +typedef struct _WS_CHANNEL_ENCODER WS_CHANNEL_ENCODER; +typedef struct _WS_CHANNEL_DECODER WS_CHANNEL_DECODER; +typedef struct _WS_CUSTOM_HTTP_PROXY WS_CUSTOM_HTTP_PROXY; +typedef struct _WS_HTTP_MESSAGE_MAPPING WS_HTTP_MESSAGE_MAPPING; +typedef struct _WS_HTTP_HEADER_MAPPING WS_HTTP_HEADER_MAPPING; +typedef struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT WS_HTTP_REDIRECT_CALLBACK_CONTEXT; +typedef struct _WS_PROXY_MESSAGE_CALLBACK_CONTEXT WS_PROXY_MESSAGE_CALLBACK_CONTEXT; +typedef struct _WS_LISTENER WS_LISTENER; +typedef struct _WS_LISTENER_PROPERTY WS_LISTENER_PROPERTY; +typedef struct _WS_DISALLOWED_USER_AGENT_SUBSTRINGS WS_DISALLOWED_USER_AGENT_SUBSTRINGS; +typedef struct _WS_LISTENER_PROPERTIES WS_LISTENER_PROPERTIES; +typedef struct _WS_CUSTOM_LISTENER_CALLBACKS WS_CUSTOM_LISTENER_CALLBACKS; + +struct _WS_STRUCT_DESCRIPTION; +struct _WS_XML_STRING; + +typedef enum { + WS_ERROR_PROPERTY_STRING_COUNT, + WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE, + WS_ERROR_PROPERTY_LANGID +} WS_ERROR_PROPERTY_ID; + +typedef struct _WS_ERROR_PROPERTY { + WS_ERROR_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_ERROR_PROPERTY; + +typedef enum { + WS_HEAP_PROPERTY_MAX_SIZE, + WS_HEAP_PROPERTY_TRIM_SIZE, + WS_HEAP_PROPERTY_REQUESTED_SIZE, + WS_HEAP_PROPERTY_ACTUAL_SIZE +} WS_HEAP_PROPERTY_ID; + +typedef struct _WS_HEAP_PROPERTY { + WS_HEAP_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_HEAP_PROPERTY; + +typedef struct _WS_HEAP_PROPERTIES { + WS_HEAP_PROPERTY *properties; + ULONG propertyCount; +} WS_HEAP_PROPERTIES; + +typedef ULONG WS_XML_BUFFER_PROPERTY_ID; + +typedef struct _WS_XML_BUFFER_PROPERTY { + WS_XML_BUFFER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_BUFFER_PROPERTY; + +typedef enum { + WS_XML_READER_PROPERTY_MAX_DEPTH, + WS_XML_READER_PROPERTY_ALLOW_FRAGMENT, + WS_XML_READER_PROPERTY_MAX_ATTRIBUTES, + WS_XML_READER_PROPERTY_READ_DECLARATION, + WS_XML_READER_PROPERTY_CHARSET, + WS_XML_READER_PROPERTY_ROW, + WS_XML_READER_PROPERTY_COLUMN, + WS_XML_READER_PROPERTY_UTF8_TRIM_SIZE, + WS_XML_READER_PROPERTY_STREAM_BUFFER_SIZE, + WS_XML_READER_PROPERTY_IN_ATTRIBUTE, + WS_XML_READER_PROPERTY_STREAM_MAX_ROOT_MIME_PART_SIZE, + WS_XML_READER_PROPERTY_STREAM_MAX_MIME_HEADERS_SIZE, + WS_XML_READER_PROPERTY_MAX_MIME_PARTS, + WS_XML_READER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES, + WS_XML_READER_PROPERTY_MAX_NAMESPACES +} WS_XML_READER_PROPERTY_ID; + +typedef struct _WS_XML_READER_PROPERTY { + WS_XML_READER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_READER_PROPERTY; + +typedef struct _WS_XML_READER_PROPERTIES { + WS_XML_READER_PROPERTY *properties; + ULONG propertyCount; +} WS_XML_READER_PROPERTIES; + +typedef enum { + WS_XML_WRITER_PROPERTY_MAX_DEPTH, + WS_XML_WRITER_PROPERTY_ALLOW_FRAGMENT, + WS_XML_WRITER_PROPERTY_MAX_ATTRIBUTES, + WS_XML_WRITER_PROPERTY_WRITE_DECLARATION, + WS_XML_WRITER_PROPERTY_INDENT, + WS_XML_WRITER_PROPERTY_BUFFER_TRIM_SIZE, + WS_XML_WRITER_PROPERTY_CHARSET, + WS_XML_WRITER_PROPERTY_BUFFERS, + WS_XML_WRITER_PROPERTY_BUFFER_MAX_SIZE, + WS_XML_WRITER_PROPERTY_BYTES, + WS_XML_WRITER_PROPERTY_IN_ATTRIBUTE, + WS_XML_WRITER_PROPERTY_MAX_MIME_PARTS_BUFFER_SIZE, + WS_XML_WRITER_PROPERTY_INITIAL_BUFFER, + WS_XML_WRITER_PROPERTY_ALLOW_INVALID_CHARACTER_REFERENCES, + WS_XML_WRITER_PROPERTY_MAX_NAMESPACES, + WS_XML_WRITER_PROPERTY_BYTES_WRITTEN, + WS_XML_WRITER_PROPERTY_BYTES_TO_CLOSE, + WS_XML_WRITER_PROPERTY_COMPRESS_EMPTY_ELEMENTS, + WS_XML_WRITER_PROPERTY_EMIT_UNCOMPRESSED_EMPTY_ELEMENTS +} WS_XML_WRITER_PROPERTY_ID; + +typedef struct _WS_XML_WRITER_PROPERTY { + WS_XML_WRITER_PROPERTY_ID id; + void *value; + ULONG valueSize; +} WS_XML_WRITER_PROPERTY; + +typedef struct _WS_XML_WRITER_PROPERTIES { + WS_XML_WRITER_PROPERTY *properties; + ULONG propertyCount; +} WS_XML_WRITER_PROPERTIES; + +typedef struct _WS_BYTES { + ULONG length; + BYTE *bytes; +} WS_BYTES; + +typedef struct _WS_BUFFERS { + ULONG bufferCount; + WS_BYTES *buffers; +} WS_BUFFERS; + +typedef enum { + WS_XML_READER_ENCODING_TYPE_TEXT = 1, + WS_XML_READER_ENCODING_TYPE_BINARY = 2, + WS_XML_READER_ENCODING_TYPE_MTOM = 3, + WS_XML_READER_ENCODING_TYPE_RAW = 4 +} WS_XML_READER_ENCODING_TYPE; + +typedef struct _WS_XML_READER_ENCODING { + WS_XML_READER_ENCODING_TYPE encodingType; +} WS_XML_READER_ENCODING; + +typedef enum { + WS_XML_WRITER_ENCODING_TYPE_TEXT = 1, + WS_XML_WRITER_ENCODING_TYPE_BINARY = 2, + WS_XML_WRITER_ENCODING_TYPE_MTOM = 3, + WS_XML_WRITER_ENCODING_TYPE_RAW = 4 +} WS_XML_WRITER_ENCODING_TYPE; + +typedef struct _WS_XML_WRITER_ENCODING { + WS_XML_WRITER_ENCODING_TYPE encodingType; +} WS_XML_WRITER_ENCODING; + +typedef enum { + WS_CHARSET_AUTO, + WS_CHARSET_UTF8, + WS_CHARSET_UTF16LE, + WS_CHARSET_UTF16BE +} WS_CHARSET; + +typedef struct _WS_XML_DICTIONARY { + GUID guid; + struct _WS_XML_STRING *strings; + ULONG stringCount; + WINBOOL isConst; +} WS_XML_DICTIONARY; + +typedef struct _WS_XML_STRING { + ULONG length; + BYTE *bytes; + WS_XML_DICTIONARY *dictionary; + ULONG id; +} WS_XML_STRING; + +typedef struct _WS_XML_READER_TEXT_ENCODING { + WS_XML_READER_ENCODING encoding; + WS_CHARSET charSet; +} WS_XML_READER_TEXT_ENCODING; + +typedef struct _WS_XML_READER_BINARY_ENCODING { + WS_XML_READER_ENCODING encoding; + WS_XML_DICTIONARY *staticDictionary; + WS_XML_DICTIONARY *dynamicDictionary; +} WS_XML_READER_BINARY_ENCODING; + +typedef struct _WS_XML_WRITER_TEXT_ENCODING { + WS_XML_WRITER_ENCODING encoding; + WS_CHARSET charSet; +} WS_XML_WRITER_TEXT_ENCODING; + +typedef HRESULT (CALLBACK *WS_DYNAMIC_STRING_CALLBACK) + (void*, const WS_XML_STRING*, WINBOOL*, ULONG*, WS_ERROR*); + +typedef struct _WS_XML_WRITER_BINARY_ENCODING { + WS_XML_WRITER_ENCODING encoding; + WS_XML_DICTIONARY *staticDictionary; + WS_DYNAMIC_STRING_CALLBACK dynamicStringCallback; + void *dynamicStringCallbackState; +} WS_XML_WRITER_BINARY_ENCODING; + +typedef enum { + WS_XML_READER_INPUT_TYPE_BUFFER = 1, + WS_XML_READER_INPUT_TYPE_STREAM = 2 +} WS_XML_READER_INPUT_TYPE; + +typedef enum { + WS_XML_WRITER_OUTPUT_TYPE_BUFFER = 1, + WS_XML_WRITER_OUTPUT_TYPE_STREAM = 2 +} WS_XML_WRITER_OUTPUT_TYPE; + +typedef struct _WS_XML_READER_INPUT { + WS_XML_READER_INPUT_TYPE inputType; +} WS_XML_READER_INPUT; + +typedef struct _WS_XML_WRITER_OUTPUT { + WS_XML_WRITER_OUTPUT_TYPE outputType; +} WS_XML_WRITER_OUTPUT; + +typedef struct _WS_XML_READER_BUFFER_INPUT { + WS_XML_READER_INPUT input; + void *encodedData; + ULONG encodedDataSize; +} WS_XML_READER_BUFFER_INPUT; + +typedef struct _WS_XML_WRITER_BUFFER_OUTPUT { + WS_XML_WRITER_OUTPUT output; +} WS_XML_WRITER_BUFFER_OUTPUT; + +typedef enum { + WS_SHORT_CALLBACK, + WS_LONG_CALLBACK +} WS_CALLBACK_MODEL; + +typedef void (CALLBACK *WS_ASYNC_CALLBACK) + (HRESULT, WS_CALLBACK_MODEL, void *); + +typedef struct _WS_ASYNC_CONTEXT { + WS_ASYNC_CALLBACK callback; + void *callbackState; +} WS_ASYNC_CONTEXT; + +typedef HRESULT (CALLBACK *WS_READ_CALLBACK) + (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef struct _WS_XML_READER_STREAM_INPUT { + WS_XML_READER_INPUT input; + WS_READ_CALLBACK readCallback; + void *readCallbackState; +} WS_XML_READER_STREAM_INPUT; + +typedef HRESULT (CALLBACK *WS_WRITE_CALLBACK) + (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef struct _WS_XML_WRITER_STREAM_OUTPUT { + WS_XML_WRITER_OUTPUT output; + WS_WRITE_CALLBACK writeCallback; + void *writeCallbackState; +} WS_XML_WRITER_STREAM_OUTPUT; + +typedef enum { + WS_ELEMENT_TYPE_MAPPING = 1, + WS_ATTRIBUTE_TYPE_MAPPING = 2, + WS_ELEMENT_CONTENT_TYPE_MAPPING = 3, + WS_ANY_ELEMENT_TYPE_MAPPING = 4 +} WS_TYPE_MAPPING; + +typedef enum { + WS_BOOL_TYPE, + WS_INT8_TYPE, + WS_INT16_TYPE, + WS_INT32_TYPE, + WS_INT64_TYPE, + WS_UINT8_TYPE, + WS_UINT16_TYPE, + WS_UINT32_TYPE, + WS_UINT64_TYPE, + WS_FLOAT_TYPE, + WS_DOUBLE_TYPE, + WS_DECIMAL_TYPE, + WS_DATETIME_TYPE, + WS_TIMESPAN_TYPE, + WS_GUID_TYPE, + WS_UNIQUE_ID_TYPE, + WS_STRING_TYPE, + WS_WSZ_TYPE, + WS_BYTES_TYPE, + WS_XML_STRING_TYPE, + WS_XML_QNAME_TYPE, + WS_XML_BUFFER_TYPE, + WS_CHAR_ARRAY_TYPE, + WS_UTF8_ARRAY_TYPE, + WS_BYTE_ARRAY_TYPE, + WS_DESCRIPTION_TYPE, + WS_STRUCT_TYPE, + WS_CUSTOM_TYPE, + WS_ENDPOINT_ADDRESS_TYPE, + WS_FAULT_TYPE, + WS_VOID_TYPE, + WS_ENUM_TYPE, + WS_DURATION_TYPE, + WS_UNION_TYPE, + WS_ANY_ATTRIBUTES_TYPE +} WS_TYPE; + +typedef enum { + WS_READ_REQUIRED_VALUE = 1, + WS_READ_REQUIRED_POINTER = 2, + WS_READ_OPTIONAL_POINTER = 3, + WS_READ_NILLABLE_POINTER = 4, + WS_READ_NILLABLE_VALUE = 5 +} WS_READ_OPTION; + +typedef enum { + WS_WRITE_REQUIRED_VALUE = 1, + WS_WRITE_REQUIRED_POINTER = 2, + WS_WRITE_NILLABLE_VALUE = 3, + WS_WRITE_NILLABLE_POINTER = 4 +} WS_WRITE_OPTION; + +typedef struct _WS_BOOL_DESCRIPTION { + WINBOOL value; +} WS_BOOL_DESCRIPTION; + +typedef struct _WS_INT8_DESCRIPTION { + char minValue; + char maxValue; +} WS_INT8_DESCRIPTION; + +typedef struct _WS_INT16_DESCRIPTION { + short minValue; + short maxValue; +} WS_INT16_DESCRIPTION; + +typedef struct _WS_INT32_DESCRIPTION { + int minValue; + int maxValue; +} WS_INT32_DESCRIPTION; + +typedef struct _WS_INT64_DESCRIPTION { + __int64 DECLSPEC_ALIGN(8) minValue; + __int64 DECLSPEC_ALIGN(8) maxValue; +} WS_INT64_DESCRIPTION; + +typedef struct _WS_UINT8_DESCRIPTION { + BYTE minValue; + BYTE maxValue; +} WS_UINT8_DESCRIPTION; + +typedef struct _WS_UINT16_DESCRIPTION { + USHORT minValue; + USHORT maxValue; +} WS_UINT16_DESCRIPTION; + +typedef struct _WS_UINT32_DESCRIPTION { + ULONG minValue; + ULONG maxValue; +} WS_UINT32_DESCRIPTION; + +typedef struct _WS_UINT64_DESCRIPTION { + unsigned __int64 DECLSPEC_ALIGN(8) minValue; + unsigned __int64 DECLSPEC_ALIGN(8) maxValue; +} WS_UINT64_DESCRIPTION; + +typedef struct _WS_WSZ_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +} WS_WSZ_DESCRIPTION; + +typedef struct _WS_STRING_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +} WS_STRING_DESCRIPTION; + +typedef struct _WS_XML_STRING_DESCRIPTION { + ULONG minByteCount; + ULONG maxByteCount; +} WS_XML_STRING_DESCRIPTION; + +typedef struct _WS_XML_QNAME_DESCRIPTION { + ULONG minLocalNameByteCount; + ULONG maxLocalNameByteCount; + ULONG minNsByteCount; + ULONG maxNsByteCount; +} WS_XML_QNAME_DESCRIPTION; + +struct _WS_ENUM_VALUE { + int value; + WS_XML_STRING *name; +}; + +struct _WS_ENUM_DESCRIPTION { + WS_ENUM_VALUE *values; + ULONG valueCount; + ULONG maxByteCount; + ULONG *nameIndices; +}; + +struct _WS_FLOAT_DESCRIPTION { + float minValue; + float maxValue; +}; + +struct _WS_DOUBLE_DESCRIPTION { + double DECLSPEC_ALIGN(8) minValue; + double DECLSPEC_ALIGN(8) maxValue; +}; + +struct _WS_GUID_DESCRIPTION { + GUID value; +}; + +struct _WS_UNIQUE_ID_DESCRIPTION { + ULONG minCharCount; + ULONG maxCharCount; +}; + +struct _WS_BYTES_DESCRIPTION { + ULONG minByteCount; + ULONG maxByteCount; +}; + +typedef enum { + WS_TYPE_ATTRIBUTE_FIELD_MAPPING, + WS_ATTRIBUTE_FIELD_MAPPING, + WS_ELEMENT_FIELD_MAPPING, + WS_REPEATING_ELEMENT_FIELD_MAPPING, + WS_TEXT_FIELD_MAPPING, + WS_NO_FIELD_MAPPING, + WS_XML_ATTRIBUTE_FIELD_MAPPING, + WS_ELEMENT_CHOICE_FIELD_MAPPING, + WS_REPEATING_ELEMENT_CHOICE_FIELD_MAPPING, + WS_ANY_ELEMENT_FIELD_MAPPING, + WS_REPEATING_ANY_ELEMENT_FIELD_MAPPING, + WS_ANY_CONTENT_FIELD_MAPPING, + WS_ANY_ATTRIBUTES_FIELD_MAPPING +} WS_FIELD_MAPPING; + +typedef struct _WS_DEFAULT_VALUE { + void *value; + ULONG valueSize; +} WS_DEFAULT_VALUE; + +typedef struct _WS_ITEM_RANGE { + ULONG minItemCount; + ULONG maxItemCount; +} WS_ITEM_RANGE; + +enum +{ + WS_FIELD_POINTER = 0x1, + WS_FIELD_OPTIONAL = 0x2, + WS_FIELD_NILLABLE = 0x4, + WS_FIELD_NILLABLE_ITEM = 0x8, + WS_FIELD_OTHER_NAMESPACE = 0x10 +}; + +typedef struct _WS_FIELD_DESCRIPTION { + WS_FIELD_MAPPING mapping; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + WS_TYPE type; + void *typeDescription; + ULONG offset; + ULONG options; + WS_DEFAULT_VALUE *defaultValue; + ULONG countOffset; + WS_XML_STRING *itemLocalName; + WS_XML_STRING *itemNs; + WS_ITEM_RANGE *itemRange; +} WS_FIELD_DESCRIPTION; + +enum +{ + WS_STRUCT_ABSTRACT = 0x1, + WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT = 0x2, + WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES = 0x4 +}; + +typedef struct _WS_STRUCT_DESCRIPTION { + ULONG size; + ULONG alignment; + WS_FIELD_DESCRIPTION **fields; + ULONG fieldCount; + WS_XML_STRING *typeLocalName; + WS_XML_STRING *typeNs; + struct _WS_STRUCT_DESCRIPTION *parentType; + struct _WS_STRUCT_DESCRIPTION **subTypes; + ULONG subTypeCount; + ULONG structOptions; +} WS_STRUCT_DESCRIPTION; + +typedef struct _WS_UNION_FIELD_DESCRIPTION { + int value; + WS_FIELD_DESCRIPTION field; +} WS_UNION_FIELD_DESCRIPTION; + +typedef struct _WS_UNION_DESCRIPTION { + ULONG size; + ULONG alignment; + WS_UNION_FIELD_DESCRIPTION **fields; + ULONG fieldCount; + ULONG enumOffset; + int noneEnumValue; + ULONG *valueIndices; +} WS_UNION_DESCRIPTION; + +typedef struct _WS_ATTRIBUTE_DESCRIPTION { + WS_XML_STRING *attributeLocalName; + WS_XML_STRING *attributeNs; + WS_TYPE type; + void *typeDescription; +} WS_ATTRIBUTE_DESCRIPTION; + +typedef struct _WS_ELEMENT_DESCRIPTION { + WS_XML_STRING *elementLocalName; + WS_XML_STRING *elementNs; + WS_TYPE type; + void *typeDescription; +} WS_ELEMENT_DESCRIPTION; + +typedef struct _WS_STRING { + ULONG length; + WCHAR *chars; +} WS_STRING; + +typedef struct _WS_UNIQUE_ID { + WS_STRING uri; + GUID guid; +} WS_UNIQUE_ID; + +typedef enum { + WS_XML_NODE_TYPE_ELEMENT = 1, + WS_XML_NODE_TYPE_TEXT = 2, + WS_XML_NODE_TYPE_END_ELEMENT = 3, + WS_XML_NODE_TYPE_COMMENT = 4, + WS_XML_NODE_TYPE_CDATA = 6, + WS_XML_NODE_TYPE_END_CDATA = 7, + WS_XML_NODE_TYPE_EOF = 8, + WS_XML_NODE_TYPE_BOF = 9 +} WS_XML_NODE_TYPE; + +typedef struct _WS_XML_NODE { + WS_XML_NODE_TYPE nodeType; +} WS_XML_NODE; + +typedef enum { + WS_MOVE_TO_ROOT_ELEMENT, + WS_MOVE_TO_NEXT_ELEMENT, + WS_MOVE_TO_PREVIOUS_ELEMENT, + WS_MOVE_TO_CHILD_ELEMENT, + WS_MOVE_TO_END_ELEMENT, + WS_MOVE_TO_PARENT_ELEMENT, + WS_MOVE_TO_NEXT_NODE, + WS_MOVE_TO_PREVIOUS_NODE, + WS_MOVE_TO_FIRST_NODE, + WS_MOVE_TO_BOF, + WS_MOVE_TO_EOF, + WS_MOVE_TO_CHILD_NODE +} WS_MOVE_TO; + +typedef enum { + WS_XML_TEXT_TYPE_UTF8 = 1, + WS_XML_TEXT_TYPE_UTF16 = 2, + WS_XML_TEXT_TYPE_BASE64 = 3, + WS_XML_TEXT_TYPE_BOOL = 4, + WS_XML_TEXT_TYPE_INT32 = 5, + WS_XML_TEXT_TYPE_INT64 = 6, + WS_XML_TEXT_TYPE_UINT64 = 7, + WS_XML_TEXT_TYPE_FLOAT = 8, + WS_XML_TEXT_TYPE_DOUBLE = 9, + WS_XML_TEXT_TYPE_DECIMAL = 10, + WS_XML_TEXT_TYPE_GUID = 11, + WS_XML_TEXT_TYPE_UNIQUE_ID = 12, + WS_XML_TEXT_TYPE_DATETIME = 13, + WS_XML_TEXT_TYPE_TIMESPAN = 14, + WS_XML_TEXT_TYPE_QNAME = 15, + WS_XML_TEXT_TYPE_LIST = 16 +} WS_XML_TEXT_TYPE; + +typedef struct _WS_XML_TEXT { + WS_XML_TEXT_TYPE textType; +} WS_XML_TEXT; + +typedef struct _WS_XML_UTF8_TEXT { + WS_XML_TEXT text; + WS_XML_STRING value; +} WS_XML_UTF8_TEXT; + +typedef struct _WS_XML_UTF16_TEXT { + WS_XML_TEXT text; + BYTE *bytes; + ULONG byteCount; +} WS_XML_UTF16_TEXT; + +typedef struct _WS_XML_BOOL_TEXT { + WS_XML_TEXT text; + WINBOOL value; +} WS_XML_BOOL_TEXT; + +typedef struct _WS_XML_INT32_TEXT { + WS_XML_TEXT text; + __int32 value; +} WS_XML_INT32_TEXT; + +typedef struct _WS_XML_INT64_TEXT { + WS_XML_TEXT text; + __int64 DECLSPEC_ALIGN(8) value; +} WS_XML_INT64_TEXT; + +typedef struct _WS_XML_UINT64_TEXT { + WS_XML_TEXT text; + unsigned __int64 DECLSPEC_ALIGN(8) value; +} WS_XML_UINT64_TEXT; + +typedef struct _WS_XML_FLOAT_TEXT { + WS_XML_TEXT text; + float value; +} WS_XML_FLOAT_TEXT; + +typedef struct _WS_XML_DOUBLE_TEXT { + WS_XML_TEXT text; + double DECLSPEC_ALIGN(8) value; +} WS_XML_DOUBLE_TEXT; + +typedef struct _WS_XML_GUID_TEXT { + WS_XML_TEXT text; + GUID value; +} WS_XML_GUID_TEXT; + +typedef struct _WS_XML_UNIQUE_ID_TEXT { + WS_XML_TEXT text; + GUID value; +} WS_XML_UNIQUE_ID_TEXT; + +typedef struct _WS_XML_QNAME_TEXT { + WS_XML_TEXT text; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; +} WS_XML_QNAME_TEXT; + +typedef enum { + WS_BOOL_VALUE_TYPE, + WS_INT8_VALUE_TYPE, + WS_INT16_VALUE_TYPE, + WS_INT32_VALUE_TYPE, + WS_INT64_VALUE_TYPE, + WS_UINT8_VALUE_TYPE, + WS_UINT16_VALUE_TYPE, + WS_UINT32_VALUE_TYPE, + WS_UINT64_VALUE_TYPE, + WS_FLOAT_VALUE_TYPE, + WS_DOUBLE_VALUE_TYPE, + WS_DECIMAL_VALUE_TYPE, + WS_DATETIME_VALUE_TYPE, + WS_TIMESPAN_VALUE_TYPE, + WS_GUID_VALUE_TYPE, + WS_DURATION_VALUE_TYPE +} WS_VALUE_TYPE; + +typedef struct _WS_XML_ATTRIBUTE { + BYTE singleQuote; + BYTE isXmlNs; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + WS_XML_TEXT *value; +} WS_XML_ATTRIBUTE; + +typedef struct _WS_XML_ELEMENT_NODE { + WS_XML_NODE node; + WS_XML_STRING *prefix; + WS_XML_STRING *localName; + WS_XML_STRING *ns; + ULONG attributeCount; + WS_XML_ATTRIBUTE **attributes; + WINBOOL isEmpty; +} WS_XML_ELEMENT_NODE; + +typedef struct _WS_XML_TEXT_NODE { + WS_XML_NODE node; + WS_XML_TEXT *text; +} WS_XML_TEXT_NODE; + +typedef struct _WS_XML_COMMENT_NODE { + WS_XML_NODE node; + WS_XML_STRING value; +} WS_XML_COMMENT_NODE; + +typedef struct _WS_XML_NODE_POSITION { + WS_XML_BUFFER *buffer; + void *node; +} WS_XML_NODE_POSITION; + +typedef struct _WS_XML_QNAME { + WS_XML_STRING localName; + WS_XML_STRING ns; +} WS_XML_QNAME; + +typedef enum { + WS_SERVICE_PROXY_STATE_CREATED, + WS_SERVICE_PROXY_STATE_OPENING, + WS_SERVICE_PROXY_STATE_OPEN, + WS_SERVICE_PROXY_STATE_CLOSING, + WS_SERVICE_PROXY_STATE_CLOSED, + WS_SERVICE_PROXY_STATE_FAULTED +} WS_SERVICE_PROXY_STATE; + +typedef enum { + WS_PROXY_PROPERTY_CALL_TIMEOUT, + WS_PROXY_PROPERTY_MESSAGE_PROPERTIES, + WS_PROXY_PROPERTY_MAX_CALL_POOL_SIZE, + WS_PROXY_PROPERTY_STATE, + WS_PROXY_PROPERTY_MAX_PENDING_CALLS, + WS_PROXY_PROPERTY_MAX_CLOSE_TIMEOUT, + WS_PROXY_FAULT_LANG_ID +} WS_PROXY_PROPERTY_ID; + +struct _WS_PROXY_PROPERTY { + WS_PROXY_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +typedef enum { + WS_CHANNEL_TYPE_INPUT = 0x1, + WS_CHANNEL_TYPE_OUTPUT = 0x2, + WS_CHANNEL_TYPE_SESSION = 0x4, + WS_CHANNEL_TYPE_INPUT_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_OUTPUT_SESSION = (WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_DUPLEX = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT), + WS_CHANNEL_TYPE_DUPLEX_SESSION = (WS_CHANNEL_TYPE_INPUT | WS_CHANNEL_TYPE_OUTPUT | WS_CHANNEL_TYPE_SESSION), + WS_CHANNEL_TYPE_REQUEST = 0x8, + WS_CHANNEL_TYPE_REPLY = 0x10 +} WS_CHANNEL_TYPE; + +typedef enum { + WS_ENCODING_XML_BINARY_1, + WS_ENCODING_XML_BINARY_SESSION_1, + WS_ENCODING_XML_MTOM_UTF8, + WS_ENCODING_XML_MTOM_UTF16BE, + WS_ENCODING_XML_MTOM_UTF16LE, + WS_ENCODING_XML_UTF8, + WS_ENCODING_XML_UTF16BE, + WS_ENCODING_XML_UTF16LE, + WS_ENCODING_RAW +} WS_ENCODING; + +typedef enum { + WS_CHANNEL_STATE_CREATED, + WS_CHANNEL_STATE_OPENING, + WS_CHANNEL_STATE_ACCEPTING, + WS_CHANNEL_STATE_OPEN, + WS_CHANNEL_STATE_FAULTED, + WS_CHANNEL_STATE_CLOSING, + WS_CHANNEL_STATE_CLOSED +} WS_CHANNEL_STATE; + +typedef enum { + WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE = 0, + WS_CHANNEL_PROPERTY_MAX_STREAMED_MESSAGE_SIZE = 1, + WS_CHANNEL_PROPERTY_MAX_STREAMED_START_SIZE = 2, + WS_CHANNEL_PROPERTY_MAX_STREAMED_FLUSH_SIZE = 3, + WS_CHANNEL_PROPERTY_ENCODING = 4, + WS_CHANNEL_PROPERTY_ENVELOPE_VERSION = 5, + WS_CHANNEL_PROPERTY_ADDRESSING_VERSION = 6, + WS_CHANNEL_PROPERTY_MAX_SESSION_DICTIONARY_SIZE = 7, + WS_CHANNEL_PROPERTY_STATE = 8, + WS_CHANNEL_PROPERTY_ASYNC_CALLBACK_MODEL = 9, + WS_CHANNEL_PROPERTY_IP_VERSION = 10, + WS_CHANNEL_PROPERTY_RESOLVE_TIMEOUT = 11, + WS_CHANNEL_PROPERTY_CONNECT_TIMEOUT = 12, + WS_CHANNEL_PROPERTY_SEND_TIMEOUT = 13, + WS_CHANNEL_PROPERTY_RECEIVE_RESPONSE_TIMEOUT = 14, + WS_CHANNEL_PROPERTY_RECEIVE_TIMEOUT = 15, + WS_CHANNEL_PROPERTY_CLOSE_TIMEOUT = 16, + WS_CHANNEL_PROPERTY_ENABLE_TIMEOUTS = 17, + WS_CHANNEL_PROPERTY_TRANSFER_MODE = 18, + WS_CHANNEL_PROPERTY_MULTICAST_INTERFACE = 19, + WS_CHANNEL_PROPERTY_MULTICAST_HOPS = 20, + WS_CHANNEL_PROPERTY_REMOTE_ADDRESS = 21, + WS_CHANNEL_PROPERTY_REMOTE_IP_ADDRESS = 22, + WS_CHANNEL_PROPERTY_HTTP_CONNECTION_ID = 23, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_CALLBACKS = 24, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_PARAMETERS = 25, + WS_CHANNEL_PROPERTY_CUSTOM_CHANNEL_INSTANCE = 26, + WS_CHANNEL_PROPERTY_TRANSPORT_URL = 27, + WS_CHANNEL_PROPERTY_NO_DELAY = 28, + WS_CHANNEL_PROPERTY_SEND_KEEP_ALIVES = 29, + WS_CHANNEL_PROPERTY_KEEP_ALIVE_TIME = 30, + WS_CHANNEL_PROPERTY_KEEP_ALIVE_INTERVAL = 31, + WS_CHANNEL_PROPERTY_MAX_HTTP_SERVER_CONNECTIONS = 32, + WS_CHANNEL_PROPERTY_IS_SESSION_SHUT_DOWN = 33, + WS_CHANNEL_PROPERTY_CHANNEL_TYPE = 34, + WS_CHANNEL_PROPERTY_TRIM_BUFFERED_MESSAGE_SIZE = 35, + WS_CHANNEL_PROPERTY_ENCODER = 36, + WS_CHANNEL_PROPERTY_DECODER = 37, + WS_CHANNEL_PROPERTY_PROTECTION_LEVEL = 38, + WS_CHANNEL_PROPERTY_COOKIE_MODE = 39, + WS_CHANNEL_PROPERTY_HTTP_PROXY_SETTING_MODE = 40, + WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY = 41, + WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING = 42, + WS_CHANNEL_PROPERTY_ENABLE_HTTP_REDIRECT = 43, + WS_CHANNEL_PROPERTY_HTTP_REDIRECT_CALLBACK_CONTEXT = 44, + WS_CHANNEL_PROPERTY_FAULTS_AS_ERRORS = 45, + WS_CHANNEL_PROPERTY_ALLOW_UNSECURED_FAULTS = 46, + WS_CHANNEL_PROPERTY_HTTP_SERVER_SPN = 47, + WS_CHANNEL_PROPERTY_HTTP_PROXY_SPN = 48, + WS_CHANNEL_PROPERTY_MAX_HTTP_REQUEST_HEADERS_BUFFER_SIZE = 49 +} WS_CHANNEL_PROPERTY_ID; + +struct _WS_CHANNEL_PROPERTY { + WS_CHANNEL_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_CHANNEL_PROPERTIES { + WS_CHANNEL_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_HTTP_CHANNEL_BINDING, + WS_TCP_CHANNEL_BINDING, + WS_UDP_CHANNEL_BINDING, + WS_CUSTOM_CHANNEL_BINDING, + WS_NAMEDPIPE_CHANNEL_BINDING +} WS_CHANNEL_BINDING; + +typedef enum { + WS_SSL_TRANSPORT_SECURITY_BINDING_TYPE, + WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_TYPE, + WS_HTTP_HEADER_AUTH_SECURITY_BINDING_TYPE, + WS_USERNAME_MESSAGE_SECURITY_BINDING_TYPE, + WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_TYPE, + WS_XML_TOKEN_MESSAGE_SECURITY_BINDING_TYPE, + WS_SAML_MESSAGE_SECURITY_BINDING_TYPE, + WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_TYPE, + WS_NAMEDPIPE_SSPI_TRANSPORT_SECURITY_BINDING_TYPE +} WS_SECURITY_BINDING_TYPE; + +typedef enum { + WS_SECURITY_BINDING_PROPERTY_REQUIRE_SSL_CLIENT_CERT = 1, + WS_SECURITY_BINDING_PROPERTY_WINDOWS_INTEGRATED_AUTH_PACKAGE = 2, + WS_SECURITY_BINDING_PROPERTY_REQUIRE_SERVER_AUTH = 3, + WS_SECURITY_BINDING_PROPERTY_ALLOW_ANONYMOUS_CLIENTS = 4, + WS_SECURITY_BINDING_PROPERTY_ALLOWED_IMPERSONATION_LEVEL = 5, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_SCHEME = 6, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_TARGET = 7, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_BASIC_REALM = 8, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_REALM = 9, + WS_SECURITY_BINDING_PROPERTY_HTTP_HEADER_AUTH_DIGEST_DOMAIN = 10, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_SIZE = 11, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_KEY_ENTROPY_MODE = 12, + WS_SECURITY_BINDING_PROPERTY_MESSAGE_PROPERTIES = 13, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_PENDING_CONTEXTS = 14, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_MAX_ACTIVE_CONTEXTS = 15, + WS_SECURITY_BINDING_PROPERTY_SECURE_CONVERSATION_VERSION = 16, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_SUPPORT_RENEW = 17, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_RENEWAL_INTERVAL = 18, + WS_SECURITY_BINDING_PROPERTY_SECURITY_CONTEXT_ROLLOVER_INTERVAL = 19, + WS_SECURITY_BINDING_PROPERTY_CERT_FAILURES_TO_IGNORE = 20, + WS_SECURITY_BINDING_PROPERTY_DISABLE_CERT_REVOCATION_CHECK = 21, + WS_SECURITY_BINDING_PROPERTY_DISALLOWED_SECURE_PROTOCOLS = 22, + WS_SECURITY_BINDING_PROPERTY_CERTIFICATE_VALIDATION_CALLBACK_CONTEXT = 23 +} WS_SECURITY_BINDING_PROPERTY_ID; + +struct _WS_SECURITY_BINDING_PROPERTY { + WS_SECURITY_BINDING_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_SECURITY_BINDING_PROPERTIES { + WS_SECURITY_BINDING_PROPERTY *properties; + ULONG propertyCount; +}; + +struct _WS_SECURITY_BINDING { + WS_SECURITY_BINDING_TYPE bindingType; + WS_SECURITY_BINDING_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_SECURITY_PROPERTY_TRANSPORT_PROTECTION_LEVEL = 1, + WS_SECURITY_PROPERTY_ALGORITHM_SUITE = 2, + WS_SECURITY_PROPERTY_ALGORITHM_SUITE_NAME = 3, + WS_SECURITY_PROPERTY_MAX_ALLOWED_LATENCY = 4, + WS_SECURITY_PROPERTY_TIMESTAMP_VALIDITY_DURATION = 5, + WS_SECURITY_PROPERTY_MAX_ALLOWED_CLOCK_SKEW = 6, + WS_SECURITY_PROPERTY_TIMESTAMP_USAGE = 7, + WS_SECURITY_PROPERTY_SECURITY_HEADER_LAYOUT = 8, + WS_SECURITY_PROPERTY_SECURITY_HEADER_VERSION = 9, + WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_POLICY = 10, + WS_SECURITY_PROPERTY_EXTENDED_PROTECTION_SCENARIO = 11, + WS_SECURITY_PROPERTY_SERVICE_IDENTITIES = 12 +} WS_SECURITY_PROPERTY_ID; + +struct _WS_SECURITY_PROPERTY { + WS_SECURITY_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_SECURITY_PROPERTIES { + WS_SECURITY_PROPERTY *properties; + ULONG propertyCount; +}; + +struct _WS_SECURITY_DESCRIPTION { + WS_SECURITY_BINDING **securityBindings; + ULONG securityBindingCount; + WS_SECURITY_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_HTTP_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_BINDING_TEMPLATE_TYPE, + WS_HTTP_HEADER_AUTH_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_HEADER_AUTH_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_USERNAME_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE, + WS_TCP_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_USERNAME_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_KERBEROS_APREQ_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_HTTP_SSL_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_USERNAME_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE, + WS_TCP_SSPI_KERBEROS_APREQ_SECURITY_CONTEXT_BINDING_TEMPLATE_TYPE +} WS_BINDING_TEMPLATE_TYPE; + +typedef enum { + WS_SUBJECT_NAME_CERT_CREDENTIAL_TYPE = 1, + WS_THUMBPRINT_CERT_CREDENTIAL_TYPE = 2, + WS_CUSTOM_CERT_CREDENTIAL_TYPE = 3 +} WS_CERT_CREDENTIAL_TYPE; + +struct _WS_CERT_CREDENTIAL { + WS_CERT_CREDENTIAL_TYPE credentialType; +}; + +struct _WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE { + WS_SECURITY_BINDING_PROPERTIES securityBindingProperties; + WS_CERT_CREDENTIAL *localCertCredential; +}; + +struct _WS_HTTP_BINDING_TEMPLATE { + WS_CHANNEL_PROPERTIES channelProperties; +}; + +struct _WS_HTTP_SSL_BINDING_TEMPLATE { + WS_CHANNEL_PROPERTIES channelProperties; + WS_SECURITY_PROPERTIES securityProperties; + WS_SSL_TRANSPORT_SECURITY_BINDING_TEMPLATE sslTransportSecurityBinding; +}; + +enum { + WS_MUST_UNDERSTAND_HEADER_ATTRIBUTE = 0x1, + WS_RELAY_HEADER_ATTRIBUTE = 0x2 +}; + +typedef enum { + WS_ADDRESSING_VERSION_0_9 = 1, + WS_ADDRESSING_VERSION_1_0 = 2, + WS_ADDRESSING_VERSION_TRANSPORT = 3 +} WS_ADDRESSING_VERSION; + +typedef enum { + WS_ENVELOPE_VERSION_SOAP_1_1 = 1, + WS_ENVELOPE_VERSION_SOAP_1_2 = 2, + WS_ENVELOPE_VERSION_NONE = 3 +} WS_ENVELOPE_VERSION; + +typedef enum { + WS_MESSAGE_PROPERTY_STATE, + WS_MESSAGE_PROPERTY_HEAP, + WS_MESSAGE_PROPERTY_ENVELOPE_VERSION, + WS_MESSAGE_PROPERTY_ADDRESSING_VERSION, + WS_MESSAGE_PROPERTY_HEADER_BUFFER, + WS_MESSAGE_PROPERTY_HEADER_POSITION, + WS_MESSAGE_PROPERTY_BODY_READER, + WS_MESSAGE_PROPERTY_BODY_WRITER, + WS_MESSAGE_PROPERTY_IS_ADDRESSED, + WS_MESSAGE_PROPERTY_HEAP_PROPERTIES, + WS_MESSAGE_PROPERTY_XML_READER_PROPERTIES, + WS_MESSAGE_PROPERTY_XML_WRITER_PROPERTIES, + WS_MESSAGE_PROPERTY_IS_FAULT, + WS_MESSAGE_PROPERTY_MAX_PROCESSED_HEADERS, + WS_MESSAGE_PROPERTY_USERNAME, + WS_MESSAGE_PROPERTY_ENCODED_CERT, + WS_MESSAGE_PROPERTY_TRANSPORT_SECURITY_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_HTTP_HEADER_AUTH_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_MESSAGE_SECURITY_WINDOWS_TOKEN, + WS_MESSAGE_PROPERTY_SAML_ASSERTION, + WS_MESSAGE_PROPERTY_SECURITY_CONTEXT, + WS_MESSAGE_PROPERTY_PROTECTION_LEVEL +} WS_MESSAGE_PROPERTY_ID; + +struct _WS_MESSAGE_PROPERTY { + WS_MESSAGE_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_MESSAGE_PROPERTIES { + WS_MESSAGE_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef enum { + WS_MESSAGE_STATE_EMPTY = 1, + WS_MESSAGE_STATE_INITIALIZED = 2, + WS_MESSAGE_STATE_READING = 3, + WS_MESSAGE_STATE_WRITING = 4, + WS_MESSAGE_STATE_DONE = 5 +} WS_MESSAGE_STATE; + +typedef enum { + WS_BLANK_MESSAGE, + WS_DUPLICATE_MESSAGE, + WS_REQUEST_MESSAGE, + WS_REPLY_MESSAGE, + WS_FAULT_MESSAGE +} WS_MESSAGE_INITIALIZATION; + +typedef enum { + WS_ACTION_HEADER = 1, + WS_TO_HEADER = 2, + WS_MESSAGE_ID_HEADER = 3, + WS_RELATES_TO_HEADER = 4, + WS_FROM_HEADER = 5, + WS_REPLY_TO_HEADER = 6, + WS_FAULT_TO_HEADER = 7 +} WS_HEADER_TYPE; + +typedef enum { + WS_REPEATING_HEADER = 1, + WS_SINGLETON_HEADER = 2 +} WS_REPEATING_HEADER_OPTION; + +typedef enum { + WS_DNS_ENDPOINT_IDENTITY_TYPE = 1, + WS_UPN_ENDPOINT_IDENTITY_TYPE = 2, + WS_SPN_ENDPOINT_IDENTITY_TYPE = 3, + WS_RSA_ENDPOINT_IDENTITY_TYPE = 4, + WS_CERT_ENDPOINT_IDENTITY_TYPE = 5, + WS_UNKNOWN_ENDPOINT_IDENTITY_TYPE = 6 +} WS_ENDPOINT_IDENTITY_TYPE; + +struct _WS_ENDPOINT_IDENTITY { + WS_ENDPOINT_IDENTITY_TYPE identityType; +}; + +struct _WS_ENDPOINT_ADDRESS { + WS_STRING url; + WS_XML_BUFFER *headers; + WS_XML_BUFFER *extensions; + WS_ENDPOINT_IDENTITY *identity; +}; + +typedef struct _WS_FAULT_CODE { + WS_XML_QNAME value; + struct _WS_FAULT_CODE *subCode; +} WS_FAULT_CODE; + +typedef struct _WS_FAULT_REASON { + WS_STRING text; + WS_STRING lang; +} WS_FAULT_REASON; + +typedef struct _WS_FAULT { + WS_FAULT_CODE *code; + WS_FAULT_REASON *reasons; + ULONG reasonCount; + WS_STRING actor; + WS_STRING node; + WS_XML_BUFFER *detail; +} WS_FAULT; + +typedef struct _WS_FAULT_DESCRIPTION { + WS_ENVELOPE_VERSION envelopeVersion; +} WS_FAULT_DESCRIPTION; + +typedef struct _WS_FAULT_DETAIL_DESCRIPTION { + WS_XML_STRING *action; + WS_ELEMENT_DESCRIPTION *detailElementDescription; +} WS_FAULT_DETAIL_DESCRIPTION; + +typedef enum { + WS_FAULT_ERROR_PROPERTY_FAULT = 0, + WS_FAULT_ERROR_PROPERTY_ACTION = 1, + WS_FAULT_ERROR_PROPERTY_HEADER = 2 +} WS_FAULT_ERROR_PROPERTY_ID; + + +struct _WS_HTTP_POLICY_DESCRIPTION { + WS_CHANNEL_PROPERTIES channelProperties; +}; + +struct _WS_MESSAGE_DESCRIPTION { + WS_XML_STRING *action; + WS_ELEMENT_DESCRIPTION *bodyElementDescription; +}; + +typedef enum { + WS_PARAMETER_TYPE_NORMAL, + WS_PARAMETER_TYPE_ARRAY, + WS_PARAMETER_TYPE_ARRAY_COUNT, + WS_PARAMETER_TYPE_MESSAGES +} WS_PARAMETER_TYPE; + +struct _WS_PARAMETER_DESCRIPTION { + WS_PARAMETER_TYPE parameterType; + USHORT inputMessageIndex; + USHORT outputMessageIndex; +}; + +typedef HRESULT (CALLBACK *WS_SERVICE_STUB_CALLBACK)( + const WS_OPERATION_CONTEXT *context, + void *frame, + const void *callback, + const WS_ASYNC_CONTEXT *asyncContext, + WS_ERROR *error ); + +typedef enum { + WS_NON_RPC_LITERAL_OPERATION, + WS_RPC_LITERAL_OPERATION +} WS_OPERATION_STYLE; + +struct _WS_OPERATION_DESCRIPTION { + ULONG versionInfo; + WS_MESSAGE_DESCRIPTION *inputMessageDescription; + WS_MESSAGE_DESCRIPTION *outputMessageDescription; + ULONG inputMessageOptions; + ULONG outputMessageOptions; + USHORT parameterCount; + WS_PARAMETER_DESCRIPTION *parameterDescription; + WS_SERVICE_STUB_CALLBACK stubCallback; + WS_OPERATION_STYLE style; +}; + +typedef enum { + WS_CALL_PROPERTY_CHECK_MUST_UNDERSTAND, + WS_CALL_PROPERTY_SEND_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_RECEIVE_MESSAGE_CONTEXT, + WS_CALL_PROPERTY_CALL_ID +} WS_CALL_PROPERTY_ID; + +struct _WS_CALL_PROPERTY { + WS_CALL_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +typedef enum { + WS_DATETIME_FORMAT_UTC, + WS_DATETIME_FORMAT_LOCAL, + WS_DATETIME_FORMAT_NONE +} WS_DATETIME_FORMAT; + +struct _WS_DATETIME { + unsigned __int64 DECLSPEC_ALIGN(8) ticks; + WS_DATETIME_FORMAT format; +}; + +struct _WS_DATETIME_DESCRIPTION { + WS_DATETIME minValue; + WS_DATETIME maxValue; +}; + +struct _WS_XML_DATETIME_TEXT { + WS_XML_TEXT text; + WS_DATETIME value; +}; + +struct _WS_XML_BASE64_TEXT { + WS_XML_TEXT text; + BYTE *bytes; + ULONG length; +}; + +typedef enum { + WS_URL_HTTP_SCHEME_TYPE, + WS_URL_HTTPS_SCHEME_TYPE, + WS_URL_NETTCP_SCHEME_TYPE, + WS_URL_SOAPUDP_SCHEME_TYPE, + WS_URL_NETPIPE_SCHEME_TYPE +} WS_URL_SCHEME_TYPE; + +enum { + WS_URL_FLAGS_ALLOW_HOST_WILDCARDS = 0x1, + WS_URL_FLAGS_NO_PATH_COLLAPSE = 0x2, + WS_URL_FLAGS_ZERO_TERMINATE = 0x4 +}; + +struct _WS_URL { + WS_URL_SCHEME_TYPE scheme; +}; + +struct _WS_HTTP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_HTTPS_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_NETTCP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_SOAPUDP_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +struct _WS_NETPIPE_URL { + WS_URL url; + WS_STRING host; + USHORT port; + WS_STRING portAsString; + WS_STRING path; + WS_STRING query; + WS_STRING fragment; +}; + +typedef enum +{ + WS_IP_VERSION_4 = 1, + WS_IP_VERSION_6 = 2, + WS_IP_VERSION_AUTO = 3 +} WS_IP_VERSION; + +typedef enum +{ + WS_BUFFERED_TRANSFER_MODE = 0x0, + WS_STREAMED_INPUT_TRANSFER_MODE = 0x1, + WS_STREAMED_OUTPUT_TRANSFER_MODE = 0x2, + WS_STREAMED_TRANSFER_MODE = (WS_STREAMED_INPUT_TRANSFER_MODE|WS_STREAMED_OUTPUT_TRANSFER_MODE) +} WS_TRANSFER_MODE; + +typedef HRESULT (CALLBACK *WS_CREATE_CHANNEL_CALLBACK) + (WS_CHANNEL_TYPE, const void*, ULONG, void**, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_CHANNEL_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_RESET_CHANNEL_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_OPEN_CHANNEL_CALLBACK) + (void*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CLOSE_CHANNEL_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABORT_CHANNEL_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_GET_CHANNEL_PROPERTY_CALLBACK) + (void*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SET_CHANNEL_PROPERTY_CALLBACK) + (void*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_START_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_WRITE_MESSAGE_END_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_READ_MESSAGE_START_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_READ_MESSAGE_END_CALLBACK) + (void*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABANDON_MESSAGE_CALLBACK) + (void*, WS_MESSAGE*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +struct _WS_CUSTOM_CHANNEL_CALLBACKS +{ + WS_CREATE_CHANNEL_CALLBACK createChannelCallback; + WS_FREE_CHANNEL_CALLBACK freeChannelCallback; + WS_RESET_CHANNEL_CALLBACK resetChannelCallback; + WS_OPEN_CHANNEL_CALLBACK openChannelCallback; + WS_CLOSE_CHANNEL_CALLBACK closeChannelCallback; + WS_ABORT_CHANNEL_CALLBACK abortChannelCallback; + WS_GET_CHANNEL_PROPERTY_CALLBACK getChannelPropertyCallback; + WS_SET_CHANNEL_PROPERTY_CALLBACK setChannelPropertyCallback; + WS_WRITE_MESSAGE_START_CALLBACK writeMessageStartCallback; + WS_WRITE_MESSAGE_END_CALLBACK writeMessageEndCallback; + WS_READ_MESSAGE_START_CALLBACK readMessageStartCallback; + WS_READ_MESSAGE_END_CALLBACK readMessageEndCallback; + WS_ABANDON_MESSAGE_CALLBACK abandonMessageCallback; + WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK shutdownSessionChannelCallback; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_ENCODER_CALLBACK) + (void*, WS_WRITE_CALLBACK, void*, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_GET_CONTENT_TYPE_CALLBACK) + (void*, const WS_STRING*, WS_STRING*, WS_STRING*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_START_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_ENCODE_CALLBACK) + (void*, const WS_BYTES*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ENCODER_END_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_ENCODER_CALLBACK) + (void*); + +struct _WS_CHANNEL_ENCODER +{ + void *createContext; + WS_CREATE_ENCODER_CALLBACK createEncoderCallback; + WS_ENCODER_GET_CONTENT_TYPE_CALLBACK encoderGetContentTypeCallback; + WS_ENCODER_START_CALLBACK encoderStartCallback; + WS_ENCODER_ENCODE_CALLBACK encoderEncodeCallback; + WS_ENCODER_END_CALLBACK encoderEndCallback; + WS_FREE_ENCODER_CALLBACK freeEncoderCallback; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_DECODER_CALLBACK) + (void*, WS_READ_CALLBACK, void*, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_GET_CONTENT_TYPE_CALLBACK) + (void*, const WS_STRING*, const WS_STRING*, WS_STRING*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_START_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_DECODE_CALLBACK) + (void*, void*, ULONG, ULONG*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_DECODER_END_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_DECODER_CALLBACK) + (void*); + +struct _WS_CHANNEL_DECODER +{ + void *createContext; + WS_CREATE_DECODER_CALLBACK createDecoderCallback; + WS_DECODER_GET_CONTENT_TYPE_CALLBACK decoderGetContentTypeCallback; + WS_DECODER_START_CALLBACK decoderStartCallback; + WS_DECODER_DECODE_CALLBACK decoderDecodeCallback; + WS_DECODER_END_CALLBACK decoderEndCallback; + WS_FREE_DECODER_CALLBACK freeDecoderCallback; +}; + +typedef enum +{ + WS_PROTECTION_LEVEL_NONE = 1, + WS_PROTECTION_LEVEL_SIGN = 2, + WS_PROTECTION_LEVEL_SIGN_AND_ENCRYPT = 3 +} WS_PROTECTION_LEVEL; + +typedef enum +{ + WS_MANUAL_COOKIE_MODE = 1, + WS_AUTO_COOKIE_MODE = 2 +} WS_COOKIE_MODE; + +typedef enum +{ + WS_HTTP_PROXY_SETTING_MODE_AUTO = 0x1, + WS_HTTP_PROXY_SETTING_MODE_NONE = 0x2, + WS_HTTP_PROXY_SETTING_MODE_CUSTOM = 0x3 +} WS_HTTP_PROXY_SETTING_MODE; + +struct _WS_CUSTOM_HTTP_PROXY +{ + WS_STRING servers; + WS_STRING bypass; +}; + +struct _WS_HTTP_HEADER_MAPPING +{ + WS_XML_STRING headerName; + ULONG headerMappingOptions; +}; + +struct _WS_HTTP_MESSAGE_MAPPING +{ + ULONG requestMappingOptions; + ULONG responseMappingOptions; + WS_HTTP_HEADER_MAPPING **requestHeaderMappings; + ULONG requestHeaderMappingCount; + WS_HTTP_HEADER_MAPPING **responseHeaderMappings; + ULONG responseHeaderMappingCount; +}; + +typedef HRESULT (CALLBACK *WS_HTTP_REDIRECT_CALLBACK) + (void*, const WS_STRING*, const WS_STRING*); + +struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT +{ + WS_HTTP_REDIRECT_CALLBACK callback; + void *state; +}; + +typedef enum +{ + WS_RECEIVE_REQUIRED_MESSAGE = 1, + WS_RECEIVE_OPTIONAL_MESSAGE = 2 +} WS_RECEIVE_OPTION; + +typedef void (CALLBACK *WS_MESSAGE_DONE_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_PROXY_MESSAGE_CALLBACK) + (WS_MESSAGE*, WS_HEAP*, void*, WS_ERROR*); + +struct _WS_PROXY_MESSAGE_CALLBACK_CONTEXT +{ + WS_PROXY_MESSAGE_CALLBACK callback; + void *state; +}; + +typedef enum +{ + WS_LISTENER_STATE_CREATED, + WS_LISTENER_STATE_OPENING, + WS_LISTENER_STATE_OPEN, + WS_LISTENER_STATE_FAULTED, + WS_LISTENER_STATE_CLOSING, + WS_LISTENER_STATE_CLOSED +} WS_LISTENER_STATE; + +typedef enum +{ + WS_LISTENER_PROPERTY_LISTEN_BACKLOG, + WS_LISTENER_PROPERTY_IP_VERSION, + WS_LISTENER_PROPERTY_STATE, + WS_LISTENER_PROPERTY_ASYNC_CALLBACK_MODEL, + WS_LISTENER_PROPERTY_CHANNEL_TYPE, + WS_LISTENER_PROPERTY_CHANNEL_BINDING, + WS_LISTENER_PROPERTY_CONNECT_TIMEOUT, + WS_LISTENER_PROPERTY_IS_MULTICAST, + WS_LISTENER_PROPERTY_MULTICAST_INTERFACES, + WS_LISTENER_PROPERTY_MULTICAST_LOOPBACK, + WS_LISTENER_PROPERTY_CLOSE_TIMEOUT, + WS_LISTENER_PROPERTY_TO_HEADER_MATCHING_OPTIONS, + WS_LISTENER_PROPERTY_TRANSPORT_URL_MATCHING_OPTIONS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_CALLBACKS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_PARAMETERS, + WS_LISTENER_PROPERTY_CUSTOM_LISTENER_INSTANCE, + WS_LISTENER_PROPERTY_DISALLOWED_USER_AGENT +} WS_LISTENER_PROPERTY_ID; + +struct _WS_LISTENER_PROPERTY +{ + WS_LISTENER_PROPERTY_ID id; + void *value; + ULONG valueSize; +}; + +struct _WS_DISALLOWED_USER_AGENT_SUBSTRINGS +{ + ULONG subStringCount; + WS_STRING **subStrings; +}; + +struct _WS_LISTENER_PROPERTIES +{ + WS_LISTENER_PROPERTY *properties; + ULONG propertyCount; +}; + +typedef HRESULT (CALLBACK *WS_CREATE_LISTENER_CALLBACK) + (WS_CHANNEL_TYPE, const void*, ULONG, void**, WS_ERROR*); + +typedef void (CALLBACK *WS_FREE_LISTENER_CALLBACK) + (void*); + +typedef HRESULT (CALLBACK *WS_RESET_LISTENER_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_OPEN_LISTENER_CALLBACK) + (void*, const WS_STRING*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CLOSE_LISTENER_CALLBACK) + (void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ABORT_LISTENER_CALLBACK) + (void*, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_GET_LISTENER_PROPERTY_CALLBACK) + (void*, WS_LISTENER_PROPERTY_ID, void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_SET_LISTENER_PROPERTY_CALLBACK) + (void*, WS_LISTENER_PROPERTY_ID, const void*, ULONG, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK) + (void*, const void*, ULONG, void**, WS_ERROR*); + +typedef HRESULT (CALLBACK *WS_ACCEPT_CHANNEL_CALLBACK) + (void*, void*, const WS_ASYNC_CONTEXT*, WS_ERROR*); + +struct _WS_CUSTOM_LISTENER_CALLBACKS +{ + WS_CREATE_LISTENER_CALLBACK createListenerCallback; + WS_FREE_LISTENER_CALLBACK freeListenerCallback; + WS_RESET_LISTENER_CALLBACK resetListenerCallback; + WS_OPEN_LISTENER_CALLBACK openListenerCallback; + WS_CLOSE_LISTENER_CALLBACK closeListenerCallback; + WS_ABORT_LISTENER_CALLBACK abortListenerCallback; + WS_GET_LISTENER_PROPERTY_CALLBACK getListenerPropertyCallback; + WS_SET_LISTENER_PROPERTY_CALLBACK setListenerPropertyCallback; + WS_CREATE_CHANNEL_FOR_LISTENER_CALLBACK createChannelForListenerCallback; + WS_ACCEPT_CHANNEL_CALLBACK acceptChannelCallback; +}; + +enum +{ + WS_MATCH_URL_DNS_HOST = 0x1, + WS_MATCH_URL_DNS_FULLY_QUALIFIED_HOST = 0x2, + WS_MATCH_URL_NETBIOS_HOST = 0x4, + WS_MATCH_URL_LOCAL_HOST = 0x8, + WS_MATCH_URL_HOST_ADDRESSES = 0x10, + WS_MATCH_URL_THIS_HOST = (WS_MATCH_URL_DNS_HOST | + WS_MATCH_URL_DNS_FULLY_QUALIFIED_HOST | + WS_MATCH_URL_NETBIOS_HOST | + WS_MATCH_URL_LOCAL_HOST | + WS_MATCH_URL_HOST_ADDRESSES), + WS_MATCH_URL_PORT = 0x20, + WS_MATCH_URL_EXACT_PATH = 0x40, + WS_MATCH_URL_PREFIX_PATH = 0x80, + WS_MATCH_URL_NO_QUERY = 0x100 +}; + +HRESULT WINAPI WsAbortServiceProxy(WS_SERVICE_PROXY*, WS_ERROR*); +HRESULT WINAPI WsAcceptChannel(WS_LISTENER*, WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsAddCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, ULONG, WS_ERROR*); +HRESULT WINAPI WsAddErrorString(WS_ERROR*, const WS_STRING*); +HRESULT WINAPI WsAddMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_TYPE, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsAddressMessage(WS_MESSAGE*, const WS_ENDPOINT_ADDRESS*, WS_ERROR*); +HRESULT WINAPI WsAlloc(WS_HEAP*, SIZE_T, void**, WS_ERROR*); +HRESULT WINAPI WsCall(WS_SERVICE_PROXY*, const WS_OPERATION_DESCRIPTION*, const void**, + WS_HEAP*, const WS_CALL_PROPERTY*, const ULONG, const WS_ASYNC_CONTEXT*, + WS_ERROR*); +HRESULT WINAPI WsCloseChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCloseListener(WS_LISTENER*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCloseServiceProxy(WS_SERVICE_PROXY*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsCombineUrl(const WS_STRING*, const WS_STRING*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*); +HRESULT WINAPI WsCopyNode(WS_XML_WRITER*, WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsCreateChannel(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_CHANNEL_PROPERTY*, + ULONG, const WS_SECURITY_DESCRIPTION*, WS_CHANNEL**, WS_ERROR*); +HRESULT WINAPI WsCreateChannelForListener(WS_LISTENER*, const WS_CHANNEL_PROPERTY*, ULONG, WS_CHANNEL**, + WS_ERROR*); +HRESULT WINAPI WsCreateError(const WS_ERROR_PROPERTY*, ULONG, WS_ERROR**); +HRESULT WINAPI WsCreateHeap(SIZE_T, SIZE_T, const WS_HEAP_PROPERTY*, ULONG, WS_HEAP**, WS_ERROR*); +HRESULT WINAPI WsCreateListener(WS_CHANNEL_TYPE, WS_CHANNEL_BINDING, const WS_LISTENER_PROPERTY*, + ULONG, const WS_SECURITY_DESCRIPTION*, WS_LISTENER**, WS_ERROR*); +HRESULT WINAPI WsCreateMessage(WS_ENVELOPE_VERSION, WS_ADDRESSING_VERSION, const WS_MESSAGE_PROPERTY*, + ULONG, WS_MESSAGE**, WS_ERROR*); +HRESULT WINAPI WsCreateMessageForChannel(WS_CHANNEL*, const WS_MESSAGE_PROPERTY*, ULONG, WS_MESSAGE**, + WS_ERROR*); +HRESULT WINAPI WsCreateReader(const WS_XML_READER_PROPERTY*, ULONG, WS_XML_READER**, WS_ERROR*); +HRESULT WINAPI WsCreateServiceProxy(const WS_CHANNEL_TYPE, const WS_CHANNEL_BINDING, + const WS_SECURITY_DESCRIPTION*, const WS_PROXY_PROPERTY*, + const ULONG, const WS_CHANNEL_PROPERTY*, const ULONG, + WS_SERVICE_PROXY**, WS_ERROR*); +HRESULT WINAPI WsCreateServiceProxyFromTemplate(WS_CHANNEL_TYPE, const WS_PROXY_PROPERTY*, + const ULONG, WS_BINDING_TEMPLATE_TYPE, + void*, ULONG, const void*, ULONG, + WS_SERVICE_PROXY**, WS_ERROR*); +HRESULT WINAPI WsCreateWriter(const WS_XML_WRITER_PROPERTY*, ULONG, WS_XML_WRITER**, WS_ERROR*); +HRESULT WINAPI WsCreateXmlBuffer(WS_HEAP*, const WS_XML_BUFFER_PROPERTY*, ULONG, WS_XML_BUFFER**, + WS_ERROR*); +HRESULT WINAPI WsDateTimeToFileTime(const WS_DATETIME*, FILETIME*, WS_ERROR*); +HRESULT WINAPI WsDecodeUrl(const WS_STRING*, ULONG, WS_HEAP*, WS_URL**, WS_ERROR*); +HRESULT WINAPI WsEncodeUrl(const WS_URL*, ULONG, WS_HEAP*, WS_STRING*, WS_ERROR*); +HRESULT WINAPI WsFileTimeToDateTime(const FILETIME*, WS_DATETIME*, WS_ERROR*); +HRESULT WINAPI WsFillBody(WS_MESSAGE*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFillReader(WS_XML_READER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFindAttribute(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, WINBOOL, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsFlushBody(WS_MESSAGE*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsFlushWriter(WS_XML_WRITER*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +void WINAPI WsFreeChannel(WS_CHANNEL*); +void WINAPI WsFreeError(WS_ERROR*); +void WINAPI WsFreeHeap(WS_HEAP*); +void WINAPI WsFreeListener(WS_LISTENER*); +void WINAPI WsFreeMessage(WS_MESSAGE*); +void WINAPI WsFreeReader(WS_XML_READER*); +void WINAPI WsFreeServiceProxy(WS_SERVICE_PROXY*); +void WINAPI WsFreeWriter(WS_XML_WRITER*); +HRESULT WINAPI WsGetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetCustomHeader(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_REPEATING_HEADER_OPTION, + ULONG, WS_READ_OPTION, WS_HEAP*, void*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsGetDictionary(WS_ENCODING, WS_XML_DICTIONARY**, WS_ERROR*); +HRESULT WINAPI WsGetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, void*, ULONG); +HRESULT WINAPI WsGetErrorString(WS_ERROR*, ULONG, WS_STRING*); +HRESULT WINAPI WsGetFaultErrorDetail(WS_ERROR*, const WS_FAULT_DETAIL_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG); +HRESULT WINAPI WsGetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, void*, ULONG); +HRESULT WINAPI WsGetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsGetHeapProperty(WS_HEAP*, WS_HEAP_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetListenerProperty(WS_LISTENER*, WS_LISTENER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_REPEATING_HEADER_OPTION, + ULONG, WS_TYPE, WS_READ_OPTION, WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetNamespaceFromPrefix(WS_XML_READER*, const WS_XML_STRING*, WINBOOL, + const WS_XML_STRING**, WS_ERROR*); +HRESULT WINAPI WsGetPrefixFromNamespace(WS_XML_WRITER*, const WS_XML_STRING*, WINBOOL, + const WS_XML_STRING**, WS_ERROR*); +HRESULT WINAPI WsGetReaderNode(WS_XML_READER*, const WS_XML_NODE**, WS_ERROR*); +HRESULT WINAPI WsGetReaderPosition(WS_XML_READER*, WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsGetReaderProperty(WS_XML_READER*, WS_XML_READER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetServiceProxyProperty(WS_SERVICE_PROXY*, const WS_PROXY_PROPERTY_ID, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsGetWriterPosition(WS_XML_WRITER*, WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsGetWriterProperty(WS_XML_WRITER*, WS_XML_WRITER_PROPERTY_ID, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsGetXmlAttribute(WS_XML_READER*, const WS_XML_STRING*, WS_HEAP*, WCHAR**, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsInitializeMessage(WS_MESSAGE*, WS_MESSAGE_INITIALIZATION, WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsMoveReader(WS_XML_READER*, WS_MOVE_TO, WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsMoveWriter(WS_XML_WRITER*, WS_MOVE_TO, WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsOpenChannel(WS_CHANNEL*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsOpenListener(WS_LISTENER*, const WS_STRING*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsOpenServiceProxy(WS_SERVICE_PROXY*, const WS_ENDPOINT_ADDRESS*, const WS_ASYNC_CONTEXT*, + WS_ERROR*); +HRESULT WINAPI WsReadAttribute(WS_XML_READER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadBody(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_READ_OPTION, WS_HEAP*, void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsReadBytes(WS_XML_READER*, void*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadChars(WS_XML_READER*, WCHAR*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadCharsUtf8(WS_XML_READER*, BYTE*, ULONG, ULONG*, WS_ERROR*); +HRESULT WINAPI WsReadElement(WS_XML_READER*, const WS_ELEMENT_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadEndAttribute(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadEndElement(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadEnvelopeEnd(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsReadEnvelopeStart(WS_MESSAGE*, WS_XML_READER*, WS_MESSAGE_DONE_CALLBACK, void*, + WS_ERROR*); +HRESULT WINAPI WsReadMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsReadMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsReadNode(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadQualifiedName(WS_XML_READER*, WS_HEAP*, WS_XML_STRING*, WS_XML_STRING*, + WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsReadStartAttribute(WS_XML_READER*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadStartElement(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsReadToStartElement(WS_XML_READER*, const WS_XML_STRING*, const WS_XML_STRING*, + WINBOOL*, WS_ERROR*); +HRESULT WINAPI WsReadType(WS_XML_READER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadValue(WS_XML_READER*, WS_VALUE_TYPE, void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsReadXmlBuffer(WS_XML_READER*, WS_HEAP*, WS_XML_BUFFER**, WS_ERROR*); +HRESULT WINAPI WsReceiveMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION**, ULONG, + WS_RECEIVE_OPTION, WS_READ_OPTION, WS_HEAP*, void*, ULONG, ULONG*, + const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsRemoveCustomHeader(WS_MESSAGE*, const WS_XML_STRING*, const WS_XML_STRING*, + WS_ERROR*); +HRESULT WINAPI WsRemoveHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_ERROR*); +HRESULT WINAPI WsRemoveMappedHeader(WS_MESSAGE*, const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsRemoveNode(const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsRequestReply(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_READ_OPTION, + WS_HEAP*, void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsResetChannel(WS_CHANNEL*, WS_ERROR*); +HRESULT WINAPI WsResetMessage(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsResetError(WS_ERROR*); +HRESULT WINAPI WsResetHeap(WS_HEAP*, WS_ERROR*); +HRESULT WINAPI WsResetListener(WS_LISTENER*, WS_ERROR*); +HRESULT WINAPI WsResetMessage(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsResetServiceProxy(WS_SERVICE_PROXY*, WS_ERROR*); +HRESULT WINAPI WsRequestReply(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, + WS_READ_OPTION, WS_HEAP*, void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSendMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSendReplyMessage(WS_CHANNEL*, WS_MESSAGE*, const WS_MESSAGE_DESCRIPTION*, + WS_WRITE_OPTION, const void*, ULONG, WS_MESSAGE*, + const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSetChannelProperty(WS_CHANNEL*, WS_CHANNEL_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetErrorProperty(WS_ERROR*, WS_ERROR_PROPERTY_ID, const void*, ULONG); +HRESULT WINAPI WsSetFaultErrorProperty(WS_ERROR*, WS_FAULT_ERROR_PROPERTY_ID, const void*, ULONG); +HRESULT WINAPI WsSetHeader(WS_MESSAGE*, WS_HEADER_TYPE, WS_TYPE, WS_WRITE_OPTION, const void*, ULONG, + WS_ERROR*); +HRESULT WINAPI WsSetInput(WS_XML_READER*, const WS_XML_READER_ENCODING*, const WS_XML_READER_INPUT*, + const WS_XML_READER_PROPERTY*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetInputToBuffer(WS_XML_READER*, WS_XML_BUFFER*, const WS_XML_READER_PROPERTY*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsSetListenerProperty(WS_LISTENER*, WS_LISTENER_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetMessageProperty(WS_MESSAGE*, WS_MESSAGE_PROPERTY_ID, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetOutput(WS_XML_WRITER*, const WS_XML_WRITER_ENCODING*, const WS_XML_WRITER_OUTPUT*, + const WS_XML_WRITER_PROPERTY*, ULONG, WS_ERROR*); +HRESULT WINAPI WsSetOutputToBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_PROPERTY*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsSetReaderPosition(WS_XML_READER*, const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsSetWriterPosition(WS_XML_WRITER*, const WS_XML_NODE_POSITION*, WS_ERROR*); +HRESULT WINAPI WsShutdownSessionChannel(WS_CHANNEL*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsSkipNode(WS_XML_READER*, WS_ERROR*); +HRESULT WINAPI WsWriteArray(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, WS_VALUE_TYPE, + const void*, ULONG, ULONG, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteAttribute(WS_XML_WRITER*, const WS_ATTRIBUTE_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteBody(WS_MESSAGE*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, const void*, + ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteBytes(WS_XML_WRITER*, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteChars(WS_XML_WRITER*, const WCHAR*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteCharsUtf8(WS_XML_WRITER*, const BYTE*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteElement(WS_XML_WRITER*, const WS_ELEMENT_DESCRIPTION*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteEndAttribute(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndCData(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndElement(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEndStartElement(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteEnvelopeEnd(WS_MESSAGE*, WS_ERROR*); +HRESULT WINAPI WsWriteEnvelopeStart(WS_MESSAGE*, WS_XML_WRITER*, WS_MESSAGE_DONE_CALLBACK, void*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageStart(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteMessageEnd(WS_CHANNEL*, WS_MESSAGE*, const WS_ASYNC_CONTEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteNode(WS_XML_WRITER*, const WS_XML_NODE*, WS_ERROR*); +HRESULT WINAPI WsWriteQualifiedName(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsWriteStartAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WINBOOL, WS_ERROR*); +HRESULT WINAPI WsWriteStartCData(WS_XML_WRITER*, WS_ERROR*); +HRESULT WINAPI WsWriteStartElement(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + const WS_XML_STRING*, WS_ERROR*); +HRESULT WINAPI WsWriteText(WS_XML_WRITER*, const WS_XML_TEXT*, WS_ERROR*); +HRESULT WINAPI WsWriteType(WS_XML_WRITER*, WS_TYPE_MAPPING, WS_TYPE, const void*, WS_WRITE_OPTION, + const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteValue(WS_XML_WRITER*, WS_VALUE_TYPE, const void*, ULONG, WS_ERROR*); +HRESULT WINAPI WsWriteXmlBuffer(WS_XML_WRITER*, WS_XML_BUFFER*, WS_ERROR*); +HRESULT WINAPI WsWriteXmlBufferToBytes(WS_XML_WRITER*, WS_XML_BUFFER*, const WS_XML_WRITER_ENCODING*, + const WS_XML_WRITER_PROPERTY*, ULONG, WS_HEAP*, void**, + ULONG*, WS_ERROR*); +HRESULT WINAPI WsWriteXmlnsAttribute(WS_XML_WRITER*, const WS_XML_STRING*, const WS_XML_STRING*, + WINBOOL, WS_ERROR*); +HRESULT WINAPI WsXmlStringEquals(const WS_XML_STRING*, const WS_XML_STRING*, WS_ERROR*); + +#ifndef FACILITY_WEBSERVICES +#define FACILITY_WEBSERVICES 61 +#define WS_S_ASYNC 0x003d0000 +#define WS_S_END 0x003d0001 +#define WS_E_INVALID_FORMAT 0x803d0000 +#define WS_E_OBJECT_FAULTED 0x803d0001 +#define WS_E_NUMERIC_OVERFLOW 0x803d0002 +#define WS_E_INVALID_OPERATION 0x803d0003 +#define WS_E_OPERATION_ABORTED 0x803d0004 +#define WS_E_ENDPOINT_ACCESS_DENIED 0x803d0005 +#define WS_E_OPERATION_TIMED_OUT 0x803d0006 +#define WS_E_OPERATION_ABANDONED 0x803d0007 +#define WS_E_QUOTA_EXCEEDED 0x803d0008 +#define WS_E_NO_TRANSLATION_AVAILABLE 0x803d0009 +#define WS_E_SECURITY_VERIFICATION_FAILURE 0x803d000a +#define WS_E_ADDRESS_IN_USE 0x803d000b +#define WS_E_ADDRESS_NOT_AVAILABLE 0x803d000c +#define WS_E_ENDPOINT_NOT_FOUND 0x803d000d +#define WS_E_ENDPOINT_NOT_AVAILABLE 0x803d000e +#define WS_E_ENDPOINT_FAILURE 0x803d000f +#define WS_E_ENDPOINT_UNREACHABLE 0x803d0010 +#define WS_E_ENDPOINT_ACTION_NOT_SUPPORTED 0x803d0011 +#define WS_E_ENDPOINT_TOO_BUSY 0x803d0012 +#define WS_E_ENDPOINT_FAULT_RECEIVED 0x803d0013 +#define WS_E_ENDPOINT_DISCONNECTED 0x803d0014 +#define WS_E_PROXY_FAILURE 0x803d0015 +#define WS_E_PROXY_ACCESS_DENIED 0x803d0016 +#define WS_E_NOT_SUPPORTED 0x803d0017 +#define WS_E_PROXY_REQUIRES_BASIC_AUTH 0x803d0018 +#define WS_E_PROXY_REQUIRES_DIGEST_AUTH 0x803d0019 +#define WS_E_PROXY_REQUIRES_NTLM_AUTH 0x803d001a +#define WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH 0x803d001b +#define WS_E_SERVER_REQUIRES_BASIC_AUTH 0x803d001c +#define WS_E_SERVER_REQUIRES_DIGEST_AUTH 0x803d001d +#define WS_E_SERVER_REQUIRES_NTLM_AUTH 0x803d001e +#define WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH 0x803d001f +#define WS_E_INVALID_ENDPOINT_URL 0x803d0020 +#define WS_E_OTHER 0x803d0021 +#define WS_E_SECURITY_TOKEN_EXPIRED 0x803d0022 +#define WS_E_SECURITY_SYSTEM_FAILURE 0x803d0023 +#endif + +#define WS_STRING_VALUE(s) { sizeof(s) / sizeof((s)[0]) - 1, (WCHAR *)(s) } +#define WS_XML_STRING_VALUE(s) { sizeof(s) - 1, (BYTE *)(s) } + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __WINE_WEBSERVICES_H */ diff --git a/mingw64/include/wincodecsdk.h b/mingw64/include/wincodecsdk.h index dcd087f4a61..88e88c9b576 100644 --- a/mingw64/include/wincodecsdk.h +++ b/mingw64/include/wincodecsdk.h @@ -90,6 +90,14 @@ interface IWICPersistStream; #endif /* __cplusplus */ #endif +#ifndef __IWICStreamProvider_FWD_DEFINED__ +#define __IWICStreamProvider_FWD_DEFINED__ +typedef interface IWICStreamProvider IWICStreamProvider; +#ifdef __cplusplus +interface IWICStreamProvider; +#endif /* __cplusplus */ +#endif + #ifndef __IWICComponentFactory_FWD_DEFINED__ #define __IWICComponentFactory_FWD_DEFINED__ typedef interface IWICComponentFactory IWICComponentFactory; @@ -1708,6 +1716,115 @@ static __WIDL_INLINE HRESULT IWICPersistStream_SaveEx(IWICPersistStream* This,IS #endif /* __IWICPersistStream_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IWICStreamProvider interface + */ +#ifndef __IWICStreamProvider_INTERFACE_DEFINED__ +#define __IWICStreamProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWICStreamProvider, 0x449494bc, 0xb468, 0x4927, 0x96,0xd7, 0xba,0x90,0xd3,0x1a,0xb5,0x05); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("449494bc-b468-4927-96d7-ba90d31ab505") +IWICStreamProvider : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetStream( + IStream **stream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPersistOptions( + DWORD *options) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreferredVendorGUID( + GUID *guid) = 0; + + virtual HRESULT STDMETHODCALLTYPE RefreshStream( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWICStreamProvider, 0x449494bc, 0xb468, 0x4927, 0x96,0xd7, 0xba,0x90,0xd3,0x1a,0xb5,0x05) +#endif +#else +typedef struct IWICStreamProviderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWICStreamProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWICStreamProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWICStreamProvider *This); + + /*** IWICStreamProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *GetStream)( + IWICStreamProvider *This, + IStream **stream); + + HRESULT (STDMETHODCALLTYPE *GetPersistOptions)( + IWICStreamProvider *This, + DWORD *options); + + HRESULT (STDMETHODCALLTYPE *GetPreferredVendorGUID)( + IWICStreamProvider *This, + GUID *guid); + + HRESULT (STDMETHODCALLTYPE *RefreshStream)( + IWICStreamProvider *This); + + END_INTERFACE +} IWICStreamProviderVtbl; + +interface IWICStreamProvider { + CONST_VTBL IWICStreamProviderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWICStreamProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWICStreamProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWICStreamProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IWICStreamProvider methods ***/ +#define IWICStreamProvider_GetStream(This,stream) (This)->lpVtbl->GetStream(This,stream) +#define IWICStreamProvider_GetPersistOptions(This,options) (This)->lpVtbl->GetPersistOptions(This,options) +#define IWICStreamProvider_GetPreferredVendorGUID(This,guid) (This)->lpVtbl->GetPreferredVendorGUID(This,guid) +#define IWICStreamProvider_RefreshStream(This) (This)->lpVtbl->RefreshStream(This) +#else +/*** IUnknown methods ***/ +static __WIDL_INLINE HRESULT IWICStreamProvider_QueryInterface(IWICStreamProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static __WIDL_INLINE ULONG IWICStreamProvider_AddRef(IWICStreamProvider* This) { + return This->lpVtbl->AddRef(This); +} +static __WIDL_INLINE ULONG IWICStreamProvider_Release(IWICStreamProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IWICStreamProvider methods ***/ +static __WIDL_INLINE HRESULT IWICStreamProvider_GetStream(IWICStreamProvider* This,IStream **stream) { + return This->lpVtbl->GetStream(This,stream); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_GetPersistOptions(IWICStreamProvider* This,DWORD *options) { + return This->lpVtbl->GetPersistOptions(This,options); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_GetPreferredVendorGUID(IWICStreamProvider* This,GUID *guid) { + return This->lpVtbl->GetPreferredVendorGUID(This,guid); +} +static __WIDL_INLINE HRESULT IWICStreamProvider_RefreshStream(IWICStreamProvider* This) { + return This->lpVtbl->RefreshStream(This); +} +#endif +#endif + +#endif + + +#endif /* __IWICStreamProvider_INTERFACE_DEFINED__ */ + /***************************************************************************** * IWICComponentFactory interface */ diff --git a/mingw64/include/wincodecsdk.idl b/mingw64/include/wincodecsdk.idl index 8692eea3067..a12ca9226d1 100644 --- a/mingw64/include/wincodecsdk.idl +++ b/mingw64/include/wincodecsdk.idl @@ -366,6 +366,24 @@ interface IWICPersistStream : IPersistStream [in] BOOL fClearDirty); } +[ + object, + uuid(449494bc-b468-4927-96d7-ba90d31ab505) +] +interface IWICStreamProvider : IUnknown +{ + HRESULT GetStream( + [out] IStream **stream); + + HRESULT GetPersistOptions( + [out] DWORD *options); + + HRESULT GetPreferredVendorGUID( + [out] GUID *guid); + + HRESULT RefreshStream(); +} + [ object, uuid(412d0c3a-9650-44fa-af5b-dd2a06c8e8fb) diff --git a/mingw64/include/winhttp.h b/mingw64/include/winhttp.h index e9c443daa36..d0ba52d611f 100644 --- a/mingw64/include/winhttp.h +++ b/mingw64/include/winhttp.h @@ -192,7 +192,8 @@ typedef int INTERNET_SCHEME, *LPINTERNET_SCHEME; #define WINHTTP_DECOMPRESSION_FLAG_ALL ( WINHTTP_DECOMPRESSION_FLAG_GZIP | WINHTTP_DECOMPRESSION_FLAG_DEFLATE ) #define WINHTTP_PROTOCOL_FLAG_HTTP2 0x1 -#define WINHTTP_PROTOCOL_MASK WINHTTP_PROTOCOL_FLAG_HTTP2 +#define WINHTTP_PROTOCOL_FLAG_HTTP3 0x2 +#define WINHTTP_PROTOCOL_MASK (WINHTTP_PROTOCOL_FLAG_HTTP2 | WINHTTP_PROTOCOL_FLAG_HTTP3) #define WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM 0 #define WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW 1 diff --git a/mingw64/include/winnt.h b/mingw64/include/winnt.h index c4805f91712..683552518e9 100644 --- a/mingw64/include/winnt.h +++ b/mingw64/include/winnt.h @@ -8950,8 +8950,10 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); #define HEAP_PSEUDO_TAG_FLAG 0x8000 #define HEAP_TAG_SHIFT 18 -#if (!defined (__CRT__NO_INLINE) || defined(_UCRT)) && !defined (__WIDL__) - __forceinline PVOID RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) { + PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt); + +#if !defined (__CRT__NO_INLINE) && !defined (__WIDL__) + __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) { volatile char *vptr =(volatile char *)ptr; #ifdef __x86_64 __stosb((PBYTE)((DWORD64)vptr),0,cnt); @@ -8963,8 +8965,6 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *); #endif /* __x86_64 */ return ptr; } -#else /* intrinsic in kernel32 */ - PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt); #endif /* !__CRT__NO_INLINE // !__WIDL__ */ /* Let this macro fail for non-desktop mode. AFAIU this should be better an inline-function ... */ diff --git a/mingw64/lib/libdxguid.a b/mingw64/lib/libdxguid.a index a1a21e651ea..452816936d3 100644 Binary files a/mingw64/lib/libdxguid.a and b/mingw64/lib/libdxguid.a differ diff --git a/mingw64/lib/libkernel32.a b/mingw64/lib/libkernel32.a index f464b35a2d1..7857529ee7e 100644 Binary files a/mingw64/lib/libkernel32.a and b/mingw64/lib/libkernel32.a differ diff --git a/mingw64/lib/libmingw32.a b/mingw64/lib/libmingw32.a index 146459bb83c..5a704d8bd05 100644 Binary files a/mingw64/lib/libmingw32.a and b/mingw64/lib/libmingw32.a differ diff --git a/mingw64/lib/libnanosrv.a b/mingw64/lib/libnanosrv.a index 9f46bd3de3f..ce5081adb66 100644 Binary files a/mingw64/lib/libnanosrv.a and b/mingw64/lib/libnanosrv.a differ diff --git a/mingw64/lib/libucrt.a b/mingw64/lib/libucrt.a index e6cd70650c9..0e53f859ad1 100644 Binary files a/mingw64/lib/libucrt.a and b/mingw64/lib/libucrt.a differ diff --git a/mingw64/lib/libucrtapp.a b/mingw64/lib/libucrtapp.a index 1552d2f9258..abeaf8ee435 100644 Binary files a/mingw64/lib/libucrtapp.a and b/mingw64/lib/libucrtapp.a differ diff --git a/mingw64/lib/libucrtbase.a b/mingw64/lib/libucrtbase.a index f8f4a2d0262..129be535829 100644 Binary files a/mingw64/lib/libucrtbase.a and b/mingw64/lib/libucrtbase.a differ diff --git a/mingw64/lib/libucrtbased.a b/mingw64/lib/libucrtbased.a index 3344d94913b..5c5bc54699a 100644 Binary files a/mingw64/lib/libucrtbased.a and b/mingw64/lib/libucrtbased.a differ diff --git a/mingw64/lib/libuuid.a b/mingw64/lib/libuuid.a index b8b05dea7a8..194b05a0b89 100644 Binary files a/mingw64/lib/libuuid.a and b/mingw64/lib/libuuid.a differ diff --git a/mingw64/lib/libwintrust.a b/mingw64/lib/libwintrust.a index fa91efeb5df..320904ef776 100644 Binary files a/mingw64/lib/libwintrust.a and b/mingw64/lib/libwintrust.a differ diff --git a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 27f1496d603..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 79% rename from var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/desc index e4e0f1ed65c..feaea64a7e0 100644 --- a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-crt-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-crt-git @@ -17,16 +17,16 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197354 +1725629475 %INSTALLDATE% -1725418837 +1725678055 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% -126609677 +126632829 %GROUPS% mingw-w64-i686-toolchain diff --git a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..4f803d5cdf5 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-crt-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 4826e1ee67f..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 80% rename from var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/desc index b202aca8873..522a5c1df7d 100644 --- a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-headers-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-headers-git @@ -17,16 +17,16 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197215 +1725629331 %INSTALLDATE% -1725418836 +1725678054 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% -86503018 +86592254 %GROUPS% mingw-w64-i686-toolchain diff --git a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/files similarity index 99% rename from var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/files index f4591efb8af..643bd0c743f 100644 --- a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r250.gc6bf4bdf6-1/files +++ b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/files @@ -1643,7 +1643,10 @@ mingw32/include/wdstci.h mingw32/include/wdstpdi.h mingw32/include/wdstptmgmt.h mingw32/include/wdstptmgmt.idl +mingw32/include/weakreference.h +mingw32/include/weakreference.idl mingw32/include/webauthn.h +mingw32/include/webservices.h mingw32/include/werapi.h mingw32/include/wfext.h mingw32/include/wia.h diff --git a/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..4ed237180b3 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-headers-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 042d1d2491d..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 80% rename from var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc index 636383e73b4..0cad714852e 100644 --- a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-libmangle-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-libmangle-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197851 +1725629973 %INSTALLDATE% -1725418837 +1725678055 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 53195 diff --git a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..d70d404249a Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index c694f2c44b1..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 82% rename from var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc index 090e54ae106..169a51a85fb 100644 --- a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-libwinpthread-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-winpthreads-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197722 +1725629844 %INSTALLDATE% -1725418837 +1725678055 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 75640 diff --git a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..a8d32f82848 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 9869aefde89..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 82% rename from var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/desc index e6da1e3c9f4..d5004edc453 100644 --- a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-tools-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-tools-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197948 +1725630073 %INSTALLDATE% -1725418837 +1725678055 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 1045184 diff --git a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..9c25732920d Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-tools-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 4635d3d6e4d..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 75% rename from var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc index d91caf7d74c..116bab6a1b6 100644 --- a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-i686-winpthreads-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-winpthreads-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197722 +1725629844 %INSTALLDATE% -1725418837 +1725678055 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 414993 @@ -40,7 +40,7 @@ pgp %DEPENDS% mingw-w64-i686-crt-git -mingw-w64-i686-libwinpthread-git=12.0.0.r250.gc6bf4bdf6 +mingw-w64-i686-libwinpthread-git=12.0.0.r264.g5c63f0a96 %CONFLICTS% mingw-w64-i686-winpthreads diff --git a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..e49cc8ea5b3 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-i686-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index ca7dfb9ebb4..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 80% rename from var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/desc index 114ac457f99..3409b77ffd9 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-crt-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-crt-git @@ -17,16 +17,16 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197351 +1725630068 %INSTALLDATE% -1725418839 +1725678057 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% -140817434 +140867926 %GROUPS% mingw-w64-x86_64-toolchain diff --git a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..3e25c6d592d Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-crt-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-git-extra-1.1.641.031e03baf-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-git-extra-1.1.641.031e03baf-1/desc index a36b10701e9..2c2a26cfacd 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-git-extra-1.1.641.031e03baf-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-git-extra-1.1.641.031e03baf-1/desc @@ -20,7 +20,7 @@ any 1718204260 %INSTALLDATE% -1725591759 +1725678059 %PACKAGER% Johannes Schindelin diff --git a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 8ef9fe88f22..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 80% rename from var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/desc index d6a643b7649..9dd030bee71 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-headers-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-headers-git @@ -17,16 +17,16 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197215 +1725629934 %INSTALLDATE% -1725418838 +1725678056 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% -86503018 +86592254 %GROUPS% mingw-w64-x86_64-toolchain diff --git a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/files similarity index 99% rename from var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/files index 4b8223c64dd..0f254775218 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r250.gc6bf4bdf6-1/files +++ b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/files @@ -1643,7 +1643,10 @@ mingw64/include/wdstci.h mingw64/include/wdstpdi.h mingw64/include/wdstptmgmt.h mingw64/include/wdstptmgmt.idl +mingw64/include/weakreference.h +mingw64/include/weakreference.idl mingw64/include/webauthn.h +mingw64/include/webservices.h mingw64/include/werapi.h mingw64/include/wfext.h mingw64/include/wia.h diff --git a/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..1b95e7f5c26 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-headers-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 63e504efd4d..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 80% rename from var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc index c4820485710..9ef9d7e4f95 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-libmangle-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-libmangle-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197879 +1725630593 %INSTALLDATE% -1725418839 +1725678057 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 53571 diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..d684560ef9a Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-libmangle-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 741aff32d22..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 82% rename from var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc index 3d52d00cc95..da4079abba5 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-libwinpthread-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-winpthreads-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197752 +1725630458 %INSTALLDATE% -1725418839 +1725678057 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 63681 diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..ff340e34304 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-libwinpthread-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index 4e18e402273..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 82% rename from var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/desc index 1730322e806..a383ab8ab91 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-tools-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-tools-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197971 +1725630685 %INSTALLDATE% -1725418839 +1725678057 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 984952 diff --git a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..5d9285114c2 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-tools-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree deleted file mode 100644 index b6798906c9c..00000000000 Binary files a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/mtree and /dev/null differ diff --git a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc similarity index 75% rename from var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc rename to var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc index 66c20c19a95..c8f480201a7 100644 --- a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/desc +++ b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/desc @@ -2,7 +2,7 @@ mingw-w64-x86_64-winpthreads-git %VERSION% -12.0.0.r250.gc6bf4bdf6-1 +12.0.0.r264.g5c63f0a96-1 %BASE% mingw-w64-winpthreads-git @@ -17,13 +17,13 @@ https://www.mingw-w64.org/ any %BUILDDATE% -1725197752 +1725630458 %INSTALLDATE% -1725418839 +1725678057 %PACKAGER% -CI (msys2/msys2-autobuild/22f1e5ad/10654423242) +CI (msys2/msys2-autobuild/22f1e5ad/10737965919) %SIZE% 408957 @@ -40,7 +40,7 @@ pgp %DEPENDS% mingw-w64-x86_64-crt-git -mingw-w64-x86_64-libwinpthread-git=12.0.0.r250.gc6bf4bdf6 +mingw-w64-x86_64-libwinpthread-git=12.0.0.r264.g5c63f0a96 %CONFLICTS% mingw-w64-x86_64-winpthreads diff --git a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/files b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/files similarity index 100% rename from var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r250.gc6bf4bdf6-1/files rename to var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/files diff --git a/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree new file mode 100644 index 00000000000..db357036a98 Binary files /dev/null and b/var/lib/pacman/local/mingw-w64-x86_64-winpthreads-git-12.0.0.r264.g5c63f0a96-1/mtree differ diff --git a/var/lib/pacman/sync/clang32.db b/var/lib/pacman/sync/clang32.db index 38a9c4395c6..e6a8c2e7eed 100644 Binary files a/var/lib/pacman/sync/clang32.db and b/var/lib/pacman/sync/clang32.db differ diff --git a/var/lib/pacman/sync/clang32.db.sig b/var/lib/pacman/sync/clang32.db.sig index 6081945436e..406082f6d6b 100644 Binary files a/var/lib/pacman/sync/clang32.db.sig and b/var/lib/pacman/sync/clang32.db.sig differ diff --git a/var/lib/pacman/sync/clang64.db b/var/lib/pacman/sync/clang64.db index b49133c7319..bbf55ec3143 100644 Binary files a/var/lib/pacman/sync/clang64.db and b/var/lib/pacman/sync/clang64.db differ diff --git a/var/lib/pacman/sync/clang64.db.sig b/var/lib/pacman/sync/clang64.db.sig index 25d3ab40dbc..dd7e895696f 100644 Binary files a/var/lib/pacman/sync/clang64.db.sig and b/var/lib/pacman/sync/clang64.db.sig differ diff --git a/var/lib/pacman/sync/clangarm64.db b/var/lib/pacman/sync/clangarm64.db index ca38fc16b23..7192594ff34 100644 Binary files a/var/lib/pacman/sync/clangarm64.db and b/var/lib/pacman/sync/clangarm64.db differ diff --git a/var/lib/pacman/sync/clangarm64.db.sig b/var/lib/pacman/sync/clangarm64.db.sig index 97271891dae..988585be5de 100644 Binary files a/var/lib/pacman/sync/clangarm64.db.sig and b/var/lib/pacman/sync/clangarm64.db.sig differ diff --git a/var/lib/pacman/sync/mingw32.db b/var/lib/pacman/sync/mingw32.db index 4f08ce93f02..f122bcf15e2 100644 Binary files a/var/lib/pacman/sync/mingw32.db and b/var/lib/pacman/sync/mingw32.db differ diff --git a/var/lib/pacman/sync/mingw32.db.sig b/var/lib/pacman/sync/mingw32.db.sig index f92e9bea246..a8e1ce212a0 100644 Binary files a/var/lib/pacman/sync/mingw32.db.sig and b/var/lib/pacman/sync/mingw32.db.sig differ diff --git a/var/lib/pacman/sync/mingw64.db b/var/lib/pacman/sync/mingw64.db index 46a9f2edc0b..5ee5d6d0d03 100644 Binary files a/var/lib/pacman/sync/mingw64.db and b/var/lib/pacman/sync/mingw64.db differ diff --git a/var/lib/pacman/sync/mingw64.db.sig b/var/lib/pacman/sync/mingw64.db.sig index 147312133e6..437cf188e9b 100644 Binary files a/var/lib/pacman/sync/mingw64.db.sig and b/var/lib/pacman/sync/mingw64.db.sig differ diff --git a/var/lib/pacman/sync/ucrt64.db b/var/lib/pacman/sync/ucrt64.db index 0eff5a8c2b5..e4fd121d1ad 100644 Binary files a/var/lib/pacman/sync/ucrt64.db and b/var/lib/pacman/sync/ucrt64.db differ diff --git a/var/lib/pacman/sync/ucrt64.db.sig b/var/lib/pacman/sync/ucrt64.db.sig index 50965207de4..4b53a301f6d 100644 Binary files a/var/lib/pacman/sync/ucrt64.db.sig and b/var/lib/pacman/sync/ucrt64.db.sig differ