diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-10-12 03:17:52 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-12 03:17:52 -0400 |
| commit | a3c9c154b4822f0f46c9f09df642fd0d40e24a89 (patch) | |
| tree | 657e736c577bb6e03335af55b8bf6df93a79fc0a | |
| parent | e6ebdcb82ed9fd226ef18670115b8b2617c0a392 (diff) | |
| parent | b020d83265b10544f4f1f4da1502dba0ebb445d6 (diff) | |
| download | zig-a3c9c154b4822f0f46c9f09df642fd0d40e24a89.tar.gz zig-a3c9c154b4822f0f46c9f09df642fd0d40e24a89.zip | |
Merge pull request #13089 from ziglang/update-mingw
356 files changed, 36720 insertions, 8232 deletions
diff --git a/ci/azure/pipelines.yml b/ci/azure/pipelines.yml index 79cb9fc637..555d43ee5f 100644 --- a/ci/azure/pipelines.yml +++ b/ci/azure/pipelines.yml @@ -16,7 +16,7 @@ jobs: vmImage: 'windows-2019' variables: TARGET: 'x86_64-windows-gnu' - ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.10.0-dev.4193+f3a1b5c48' + ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.10.0-dev.4251+7713ded24' ZIG_LLVM_CLANG_LLD_URL: 'https://ziglang.org/deps/${{ variables.ZIG_LLVM_CLANG_LLD_NAME }}.zip' steps: - pwsh: | diff --git a/lib/libc/include/any-windows-any/_mingw.h b/lib/libc/include/any-windows-any/_mingw.h index 2530f7b845..536b9d5805 100644 --- a/lib/libc/include/any-windows-any/_mingw.h +++ b/lib/libc/include/any-windows-any/_mingw.h @@ -221,13 +221,19 @@ limitations in handling dllimport attribute. */ #ifndef __MSVCRT_VERSION__ /* High byte is the major version, low byte is the minor. */ -# ifndef _UCRT -# define __MSVCRT_VERSION__ 0x700 -# else +# if defined(__CRTDLL__) +# define __MSVCRT_VERSION__ 0x00 +# elif defined(_UCRT) # define __MSVCRT_VERSION__ 0xE00 +# else +# define __MSVCRT_VERSION__ 0x700 # endif #endif +#if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000)) +/* Allow both 0x1400 and 0xE00 to identify UCRT */ +#define _UCRT +#endif #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0603 @@ -583,7 +589,7 @@ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void) #if defined(__i386__) || defined(__x86_64__) __asm__ __volatile__("int {$}3":); #elif defined(__arm__) - __asm__ __volatile__("udf #1"); + __asm__ __volatile__("udf #0xfe"); #elif defined(__aarch64__) __asm__ __volatile__("brk #0xf000"); #else diff --git a/lib/libc/include/any-windows-any/_mingw_mac.h b/lib/libc/include/any-windows-any/_mingw_mac.h index 4160013c46..b36d4a2905 100644 --- a/lib/libc/include/any-windows-any/_mingw_mac.h +++ b/lib/libc/include/any-windows-any/_mingw_mac.h @@ -11,7 +11,7 @@ #define __MINGW64_STRINGIFY(x) \ __STRINGIFY(x) -#define __MINGW64_VERSION_MAJOR 9 +#define __MINGW64_VERSION_MAJOR 10 #define __MINGW64_VERSION_MINOR 0 #define __MINGW64_VERSION_BUGFIX 0 @@ -301,6 +301,8 @@ # define __mingw_attribute_artificial #endif +#define __MINGW_SELECTANY __attribute__((__selectany__)) + #if _FORTIFY_SOURCE > 0 && __OPTIMIZE__ > 0 && __MINGW_GNUC_PREREQ(4, 1) # if _FORTIFY_SOURCE > 1 # define __MINGW_FORTIFY_LEVEL 2 @@ -353,7 +355,7 @@ /* Enable workaround for ABI incompatibility on affected platforms */ #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS -#if defined(__GNUC__) && defined(__cplusplus) && (defined(__x86_64__) || defined(__i386__)) +#if defined(__GNUC__) && defined(__cplusplus) #define WIDL_EXPLICIT_AGGREGATE_RETURNS #endif #endif diff --git a/lib/libc/include/any-windows-any/activation.h b/lib/libc/include/any-windows-any/activation.h index a538b8eeb1..4167403322 100644 --- a/lib/libc/include/any-windows-any/activation.h +++ b/lib/libc/include/any-windows-any/activation.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activation.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activation.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/activaut.h b/lib/libc/include/any-windows-any/activaut.h index a366929034..dbf99f03cf 100644 --- a/lib/libc/include/any-windows-any/activaut.h +++ b/lib/libc/include/any-windows-any/activaut.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activaut.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activaut.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/activdbg.h b/lib/libc/include/any-windows-any/activdbg.h index b5545a7b40..5088aae8b7 100644 --- a/lib/libc/include/any-windows-any/activdbg.h +++ b/lib/libc/include/any-windows-any/activdbg.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activdbg.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activdbg.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/activdbg100.h b/lib/libc/include/any-windows-any/activdbg100.h index d803513310..33f0c40293 100644 --- a/lib/libc/include/any-windows-any/activdbg100.h +++ b/lib/libc/include/any-windows-any/activdbg100.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activdbg100.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activdbg100.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/activprof.h b/lib/libc/include/any-windows-any/activprof.h index 9944c67d53..845aa9f3f4 100644 --- a/lib/libc/include/any-windows-any/activprof.h +++ b/lib/libc/include/any-windows-any/activprof.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activprof.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activprof.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/activscp.h b/lib/libc/include/any-windows-any/activscp.h index e8b6b54c7f..23a1269cf9 100644 --- a/lib/libc/include/any-windows-any/activscp.h +++ b/lib/libc/include/any-windows-any/activscp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/activscp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/activscp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/adhoc.h b/lib/libc/include/any-windows-any/adhoc.h index 1e0ac7b4a9..8b9d7aedc0 100644 --- a/lib/libc/include/any-windows-any/adhoc.h +++ b/lib/libc/include/any-windows-any/adhoc.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/adhoc.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/adhoc.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/afunix.h b/lib/libc/include/any-windows-any/afunix.h new file mode 100644 index 0000000000..8a4f05f552 --- /dev/null +++ b/lib/libc/include/any-windows-any/afunix.h @@ -0,0 +1,19 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _AFUNIX_ +#define _AFUNIX_ + +#define UNIX_PATH_MAX 108 + +typedef struct sockaddr_un { + ADDRESS_FAMILY sun_family; + char sun_path[UNIX_PATH_MAX]; +} SOCKADDR_UN, *PSOCKADDR_UN; + +#define SIO_AF_UNIX_GETPEERPID _WSAIOR(IOC_VENDOR, 256) + +#endif /* _AFUNIX_ */ diff --git a/lib/libc/include/any-windows-any/alg.h b/lib/libc/include/any-windows-any/alg.h index 3dcf91d83c..abe3de2e56 100644 --- a/lib/libc/include/any-windows-any/alg.h +++ b/lib/libc/include/any-windows-any/alg.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/alg.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/alg.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/amstream.h b/lib/libc/include/any-windows-any/amstream.h index 87276f5f82..42e741571e 100644 --- a/lib/libc/include/any-windows-any/amstream.h +++ b/lib/libc/include/any-windows-any/amstream.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/amstream.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/amstream.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/amvideo.h b/lib/libc/include/any-windows-any/amvideo.h index 41555a73f2..902e4c9214 100644 --- a/lib/libc/include/any-windows-any/amvideo.h +++ b/lib/libc/include/any-windows-any/amvideo.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/amvideo.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/amvideo.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/asyncinfo.h b/lib/libc/include/any-windows-any/asyncinfo.h index 7bfe8235df..2699be8faf 100644 --- a/lib/libc/include/any-windows-any/asyncinfo.h +++ b/lib/libc/include/any-windows-any/asyncinfo.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/asyncinfo.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/asyncinfo.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/audioclient.h b/lib/libc/include/any-windows-any/audioclient.h index 3fdb1ceff0..fde365779c 100644 --- a/lib/libc/include/any-windows-any/audioclient.h +++ b/lib/libc/include/any-windows-any/audioclient.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/audioclient.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/audioclient.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/audioendpoints.h b/lib/libc/include/any-windows-any/audioendpoints.h index 4c491efb59..3a5c965f4e 100644 --- a/lib/libc/include/any-windows-any/audioendpoints.h +++ b/lib/libc/include/any-windows-any/audioendpoints.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/audioendpoints.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/audioendpoints.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/audiopolicy.h b/lib/libc/include/any-windows-any/audiopolicy.h index cf883c8ca3..9af84c5578 100644 --- a/lib/libc/include/any-windows-any/audiopolicy.h +++ b/lib/libc/include/any-windows-any/audiopolicy.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/audiopolicy.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/audiopolicy.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/austream.h b/lib/libc/include/any-windows-any/austream.h index 73f7a28e15..b2b50036a7 100644 --- a/lib/libc/include/any-windows-any/austream.h +++ b/lib/libc/include/any-windows-any/austream.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/austream.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/austream.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/bdaiface.h b/lib/libc/include/any-windows-any/bdaiface.h index c3a1106a78..2770126bc8 100644 --- a/lib/libc/include/any-windows-any/bdaiface.h +++ b/lib/libc/include/any-windows-any/bdaiface.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/bdaiface.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/bdaiface.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/bits.h b/lib/libc/include/any-windows-any/bits.h index 6f971ee9ad..7d99905164 100644 --- a/lib/libc/include/any-windows-any/bits.h +++ b/lib/libc/include/any-windows-any/bits.h @@ -1,379 +1,792 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ +/*** Autogenerated by WIDL 7.0 from include/bits.idl - Do not edit ***/ + +#ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of <rpcndr.h> +#include <rpc.h> +#include <rpcndr.h> #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include <windows.h> +#include <ole2.h> #endif #ifndef __bits_h__ #define __bits_h__ +/* Forward declarations */ + #ifndef __IBackgroundCopyFile_FWD_DEFINED__ #define __IBackgroundCopyFile_FWD_DEFINED__ -typedef struct IBackgroundCopyFile IBackgroundCopyFile; +typedef interface IBackgroundCopyFile IBackgroundCopyFile; +#ifdef __cplusplus +interface IBackgroundCopyFile; +#endif /* __cplusplus */ #endif #ifndef __IEnumBackgroundCopyFiles_FWD_DEFINED__ #define __IEnumBackgroundCopyFiles_FWD_DEFINED__ -typedef struct IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles; +typedef interface IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles; +#ifdef __cplusplus +interface IEnumBackgroundCopyFiles; +#endif /* __cplusplus */ #endif #ifndef __IBackgroundCopyError_FWD_DEFINED__ #define __IBackgroundCopyError_FWD_DEFINED__ -typedef struct IBackgroundCopyError IBackgroundCopyError; +typedef interface IBackgroundCopyError IBackgroundCopyError; +#ifdef __cplusplus +interface IBackgroundCopyError; +#endif /* __cplusplus */ #endif #ifndef __IBackgroundCopyJob_FWD_DEFINED__ #define __IBackgroundCopyJob_FWD_DEFINED__ -typedef struct IBackgroundCopyJob IBackgroundCopyJob; +typedef interface IBackgroundCopyJob IBackgroundCopyJob; +#ifdef __cplusplus +interface IBackgroundCopyJob; +#endif /* __cplusplus */ #endif #ifndef __IEnumBackgroundCopyJobs_FWD_DEFINED__ #define __IEnumBackgroundCopyJobs_FWD_DEFINED__ -typedef struct IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs; +typedef interface IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs; +#ifdef __cplusplus +interface IEnumBackgroundCopyJobs; +#endif /* __cplusplus */ #endif #ifndef __IBackgroundCopyCallback_FWD_DEFINED__ #define __IBackgroundCopyCallback_FWD_DEFINED__ -typedef struct IBackgroundCopyCallback IBackgroundCopyCallback; -#endif - -#ifndef __AsyncIBackgroundCopyCallback_FWD_DEFINED__ -#define __AsyncIBackgroundCopyCallback_FWD_DEFINED__ -typedef struct AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback; +typedef interface IBackgroundCopyCallback IBackgroundCopyCallback; +#ifdef __cplusplus +interface IBackgroundCopyCallback; +#endif /* __cplusplus */ #endif #ifndef __IBackgroundCopyManager_FWD_DEFINED__ #define __IBackgroundCopyManager_FWD_DEFINED__ -typedef struct IBackgroundCopyManager IBackgroundCopyManager; +typedef interface IBackgroundCopyManager IBackgroundCopyManager; +#ifdef __cplusplus +interface IBackgroundCopyManager; +#endif /* __cplusplus */ #endif #ifndef __BackgroundCopyManager_FWD_DEFINED__ #define __BackgroundCopyManager_FWD_DEFINED__ - #ifdef __cplusplus typedef class BackgroundCopyManager BackgroundCopyManager; #else typedef struct BackgroundCopyManager BackgroundCopyManager; -#endif -#endif +#endif /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager_FWD_DEFINED__ */ -#ifndef __IBackgroundCopyCallback_FWD_DEFINED__ -#define __IBackgroundCopyCallback_FWD_DEFINED__ -typedef struct IBackgroundCopyCallback IBackgroundCopyCallback; -#endif +/* Headers for imported files */ -#include "unknwn.h" +#include <unknwn.h> #ifdef __cplusplus -extern "C"{ -#endif - -#ifndef __MIDL_user_allocate_free_DEFINED__ -#define __MIDL_user_allocate_free_DEFINED__ - void *__RPC_API MIDL_user_allocate(size_t); - void __RPC_API MIDL_user_free(void *); +extern "C" { #endif #include "bitsmsg.h" #define BG_SIZE_UNKNOWN (UINT64)(-1) - - extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_c_ifspec; - extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_s_ifspec; - +#define BG_NOTIFY_JOB_TRANSFERRED 0x0001 +#define BG_NOTIFY_JOB_ERROR 0x0002 +#define BG_NOTIFY_DISABLE 0x0004 +#define BG_NOTIFY_JOB_MODIFICATION 0x0008 +#define BG_NOTIFY_FILE_TRANSFERRED 0x0010 +#ifdef WINE_NO_UNICODE_MACROS +#undef EnumJobs +#undef GetJob +#endif +/***************************************************************************** + * IBackgroundCopyFile interface + */ #ifndef __IBackgroundCopyFile_INTERFACE_DEFINED__ #define __IBackgroundCopyFile_INTERFACE_DEFINED__ - typedef struct _BG_FILE_PROGRESS { +typedef struct _BG_FILE_PROGRESS { UINT64 BytesTotal; UINT64 BytesTransferred; WINBOOL Completed; - } BG_FILE_PROGRESS; - - EXTERN_C const IID IID_IBackgroundCopyFile; +} BG_FILE_PROGRESS; +DEFINE_GUID(IID_IBackgroundCopyFile, 0x01b7bd23, 0xfb88, 0x4a77, 0x84,0x90, 0x58,0x91,0xd3,0xe4,0x65,0x3a); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyFile : public IUnknown { - public: - virtual HRESULT WINAPI GetRemoteName(LPWSTR *pVal) = 0; - virtual HRESULT WINAPI GetLocalName(LPWSTR *pVal) = 0; - virtual HRESULT WINAPI GetProgress(BG_FILE_PROGRESS *pVal) = 0; - }; +MIDL_INTERFACE("01b7bd23-fb88-4a77-8490-5891d3e4653a") +IBackgroundCopyFile : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetRemoteName( + LPWSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocalName( + LPWSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProgress( + BG_FILE_PROGRESS *pVal) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyFile, 0x01b7bd23, 0xfb88, 0x4a77, 0x84,0x90, 0x58,0x91,0xd3,0xe4,0x65,0x3a) +#endif #else - typedef struct IBackgroundCopyFileVtbl { +typedef struct IBackgroundCopyFileVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyFile *This); - ULONG (WINAPI *Release)(IBackgroundCopyFile *This); - HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile *This,LPWSTR *pVal); - HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile *This,LPWSTR *pVal); - HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyFile *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyFile *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyFile *This); + + /*** IBackgroundCopyFile methods ***/ + HRESULT (STDMETHODCALLTYPE *GetRemoteName)( + IBackgroundCopyFile *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *GetLocalName)( + IBackgroundCopyFile *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyFile *This, + BG_FILE_PROGRESS *pVal); + END_INTERFACE - } IBackgroundCopyFileVtbl; - struct IBackgroundCopyFile { - CONST_VTBL struct IBackgroundCopyFileVtbl *lpVtbl; - }; +} IBackgroundCopyFileVtbl; + +interface IBackgroundCopyFile { + CONST_VTBL IBackgroundCopyFileVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyFile_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyFile_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyFile methods ***/ #define IBackgroundCopyFile_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal) #define IBackgroundCopyFile_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal) #define IBackgroundCopyFile_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyFile_QueryInterface(IBackgroundCopyFile* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyFile_AddRef(IBackgroundCopyFile* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyFile_Release(IBackgroundCopyFile* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyFile methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyFile_GetRemoteName(IBackgroundCopyFile* This,LPWSTR *pVal) { + return This->lpVtbl->GetRemoteName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyFile_GetLocalName(IBackgroundCopyFile* This,LPWSTR *pVal) { + return This->lpVtbl->GetLocalName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyFile_GetProgress(IBackgroundCopyFile* This,BG_FILE_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} #endif #endif - HRESULT WINAPI IBackgroundCopyFile_GetRemoteName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal); - void __RPC_STUB IBackgroundCopyFile_GetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyFile_GetLocalName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal); - void __RPC_STUB IBackgroundCopyFile_GetLocalName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyFile_GetProgress_Proxy(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal); - void __RPC_STUB IBackgroundCopyFile_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyFile_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IEnumBackgroundCopyFiles interface + */ #ifndef __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__ #define __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IEnumBackgroundCopyFiles; + +DEFINE_GUID(IID_IEnumBackgroundCopyFiles, 0xca51e165, 0xc365, 0x424c, 0x8d,0x41, 0x24,0xaa,0xa4,0xff,0x3c,0x40); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IEnumBackgroundCopyFiles : public IUnknown { - public: - virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) = 0; - virtual HRESULT WINAPI Skip(ULONG celt) = 0; - virtual HRESULT WINAPI Reset(void) = 0; - virtual HRESULT WINAPI Clone(IEnumBackgroundCopyFiles **ppenum) = 0; - virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0; - }; +MIDL_INTERFACE("ca51e165-c365-424c-8d41-24aaa4ff3c40") +IEnumBackgroundCopyFiles : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + IBackgroundCopyFile **rgelt, + ULONG *pceltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IEnumBackgroundCopyFiles **ppenum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCount( + ULONG *puCount) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEnumBackgroundCopyFiles, 0xca51e165, 0xc365, 0x424c, 0x8d,0x41, 0x24,0xaa,0xa4,0xff,0x3c,0x40) +#endif #else - typedef struct IEnumBackgroundCopyFilesVtbl { +typedef struct IEnumBackgroundCopyFilesVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyFiles *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IEnumBackgroundCopyFiles *This); - ULONG (WINAPI *Release)(IEnumBackgroundCopyFiles *This); - HRESULT (WINAPI *Next)(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched); - HRESULT (WINAPI *Skip)(IEnumBackgroundCopyFiles *This,ULONG celt); - HRESULT (WINAPI *Reset)(IEnumBackgroundCopyFiles *This); - HRESULT (WINAPI *Clone)(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum); - HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyFiles *This,ULONG *puCount); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEnumBackgroundCopyFiles *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEnumBackgroundCopyFiles *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEnumBackgroundCopyFiles *This); + + /*** IEnumBackgroundCopyFiles methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IEnumBackgroundCopyFiles *This, + ULONG celt, + IBackgroundCopyFile **rgelt, + ULONG *pceltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IEnumBackgroundCopyFiles *This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IEnumBackgroundCopyFiles *This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IEnumBackgroundCopyFiles *This, + IEnumBackgroundCopyFiles **ppenum); + + HRESULT (STDMETHODCALLTYPE *GetCount)( + IEnumBackgroundCopyFiles *This, + ULONG *puCount); + END_INTERFACE - } IEnumBackgroundCopyFilesVtbl; - struct IEnumBackgroundCopyFiles { - CONST_VTBL struct IEnumBackgroundCopyFilesVtbl *lpVtbl; - }; +} IEnumBackgroundCopyFilesVtbl; + +interface IEnumBackgroundCopyFiles { + CONST_VTBL IEnumBackgroundCopyFilesVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IEnumBackgroundCopyFiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumBackgroundCopyFiles_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumBackgroundCopyFiles_Release(This) (This)->lpVtbl->Release(This) +/*** IEnumBackgroundCopyFiles methods ***/ #define IEnumBackgroundCopyFiles_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) #define IEnumBackgroundCopyFiles_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) #define IEnumBackgroundCopyFiles_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumBackgroundCopyFiles_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) #define IEnumBackgroundCopyFiles_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_QueryInterface(IEnumBackgroundCopyFiles* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEnumBackgroundCopyFiles_AddRef(IEnumBackgroundCopyFiles* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEnumBackgroundCopyFiles_Release(IEnumBackgroundCopyFiles* This) { + return This->lpVtbl->Release(This); +} +/*** IEnumBackgroundCopyFiles methods ***/ +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Next(IEnumBackgroundCopyFiles* This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) { + return This->lpVtbl->Next(This,celt,rgelt,pceltFetched); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Skip(IEnumBackgroundCopyFiles* This,ULONG celt) { + return This->lpVtbl->Skip(This,celt); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Reset(IEnumBackgroundCopyFiles* This) { + return This->lpVtbl->Reset(This); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Clone(IEnumBackgroundCopyFiles* This,IEnumBackgroundCopyFiles **ppenum) { + return This->lpVtbl->Clone(This,ppenum); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_GetCount(IEnumBackgroundCopyFiles* This,ULONG *puCount) { + return This->lpVtbl->GetCount(This,puCount); +} #endif #endif - HRESULT WINAPI IEnumBackgroundCopyFiles_Next_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched); - void __RPC_STUB IEnumBackgroundCopyFiles_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyFiles_Skip_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt); - void __RPC_STUB IEnumBackgroundCopyFiles_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyFiles_Reset_Proxy(IEnumBackgroundCopyFiles *This); - void __RPC_STUB IEnumBackgroundCopyFiles_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyFiles_Clone_Proxy(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum); - void __RPC_STUB IEnumBackgroundCopyFiles_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyFiles_GetCount_Proxy(IEnumBackgroundCopyFiles *This,ULONG *puCount); - void __RPC_STUB IEnumBackgroundCopyFiles_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyError interface + */ #ifndef __IBackgroundCopyError_INTERFACE_DEFINED__ #define __IBackgroundCopyError_INTERFACE_DEFINED__ - typedef enum __MIDL_IBackgroundCopyError_0001 { - BG_ERROR_CONTEXT_NONE = 0,BG_ERROR_CONTEXT_UNKNOWN = 1,BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3, - BG_ERROR_CONTEXT_LOCAL_FILE = 4,BG_ERROR_CONTEXT_REMOTE_FILE = 5,BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7 - } BG_ERROR_CONTEXT; - EXTERN_C const IID IID_IBackgroundCopyError; +typedef enum __WIDL_bits_generated_name_0000000C { + BG_ERROR_CONTEXT_NONE = 0, + BG_ERROR_CONTEXT_UNKNOWN = 1, + BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2, + BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3, + BG_ERROR_CONTEXT_LOCAL_FILE = 4, + BG_ERROR_CONTEXT_REMOTE_FILE = 5, + BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6, + BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7 +} BG_ERROR_CONTEXT; +DEFINE_GUID(IID_IBackgroundCopyError, 0x19c613a0, 0xfcb8, 0x4f28, 0x81,0xae, 0x89,0x7c,0x3d,0x07,0x8f,0x81); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyError : public IUnknown { - public: - virtual HRESULT WINAPI GetError(BG_ERROR_CONTEXT *pContext,HRESULT *pCode) = 0; - virtual HRESULT WINAPI GetFile(IBackgroundCopyFile **pVal) = 0; - virtual HRESULT WINAPI GetErrorDescription(DWORD LanguageId,LPWSTR *pErrorDescription) = 0; - virtual HRESULT WINAPI GetErrorContextDescription(DWORD LanguageId,LPWSTR *pContextDescription) = 0; - virtual HRESULT WINAPI GetProtocol(LPWSTR *pProtocol) = 0; - }; +MIDL_INTERFACE("19c613a0-fcb8-4f28-81ae-897c3d078f81") +IBackgroundCopyError : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetError( + BG_ERROR_CONTEXT *pContext, + HRESULT *pCode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFile( + IBackgroundCopyFile **pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetErrorDescription( + DWORD LanguageId, + LPWSTR *pErrorDescription) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetErrorContextDescription( + DWORD LanguageId, + LPWSTR *pContextDescription) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProtocol( + LPWSTR *pProtocol) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyError, 0x19c613a0, 0xfcb8, 0x4f28, 0x81,0xae, 0x89,0x7c,0x3d,0x07,0x8f,0x81) +#endif #else - typedef struct IBackgroundCopyErrorVtbl { +typedef struct IBackgroundCopyErrorVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyError *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyError *This); - ULONG (WINAPI *Release)(IBackgroundCopyError *This); - HRESULT (WINAPI *GetError)(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode); - HRESULT (WINAPI *GetFile)(IBackgroundCopyError *This,IBackgroundCopyFile **pVal); - HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription); - HRESULT (WINAPI *GetErrorContextDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription); - HRESULT (WINAPI *GetProtocol)(IBackgroundCopyError *This,LPWSTR *pProtocol); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyError *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyError *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyError *This); + + /*** IBackgroundCopyError methods ***/ + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyError *This, + BG_ERROR_CONTEXT *pContext, + HRESULT *pCode); + + HRESULT (STDMETHODCALLTYPE *GetFile)( + IBackgroundCopyError *This, + IBackgroundCopyFile **pVal); + + HRESULT (STDMETHODCALLTYPE *GetErrorDescription)( + IBackgroundCopyError *This, + DWORD LanguageId, + LPWSTR *pErrorDescription); + + HRESULT (STDMETHODCALLTYPE *GetErrorContextDescription)( + IBackgroundCopyError *This, + DWORD LanguageId, + LPWSTR *pContextDescription); + + HRESULT (STDMETHODCALLTYPE *GetProtocol)( + IBackgroundCopyError *This, + LPWSTR *pProtocol); + END_INTERFACE - } IBackgroundCopyErrorVtbl; - struct IBackgroundCopyError { - CONST_VTBL struct IBackgroundCopyErrorVtbl *lpVtbl; - }; +} IBackgroundCopyErrorVtbl; + +interface IBackgroundCopyError { + CONST_VTBL IBackgroundCopyErrorVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyError_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyError_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyError methods ***/ #define IBackgroundCopyError_GetError(This,pContext,pCode) (This)->lpVtbl->GetError(This,pContext,pCode) #define IBackgroundCopyError_GetFile(This,pVal) (This)->lpVtbl->GetFile(This,pVal) #define IBackgroundCopyError_GetErrorDescription(This,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription) #define IBackgroundCopyError_GetErrorContextDescription(This,LanguageId,pContextDescription) (This)->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription) #define IBackgroundCopyError_GetProtocol(This,pProtocol) (This)->lpVtbl->GetProtocol(This,pProtocol) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyError_QueryInterface(IBackgroundCopyError* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyError_AddRef(IBackgroundCopyError* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyError_Release(IBackgroundCopyError* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyError methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyError_GetError(IBackgroundCopyError* This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode) { + return This->lpVtbl->GetError(This,pContext,pCode); +} +static FORCEINLINE HRESULT IBackgroundCopyError_GetFile(IBackgroundCopyError* This,IBackgroundCopyFile **pVal) { + return This->lpVtbl->GetFile(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyError_GetErrorDescription(IBackgroundCopyError* This,DWORD LanguageId,LPWSTR *pErrorDescription) { + return This->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription); +} +static FORCEINLINE HRESULT IBackgroundCopyError_GetErrorContextDescription(IBackgroundCopyError* This,DWORD LanguageId,LPWSTR *pContextDescription) { + return This->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription); +} +static FORCEINLINE HRESULT IBackgroundCopyError_GetProtocol(IBackgroundCopyError* This,LPWSTR *pProtocol) { + return This->lpVtbl->GetProtocol(This,pProtocol); +} #endif #endif - HRESULT WINAPI IBackgroundCopyError_GetError_Proxy(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode); - void __RPC_STUB IBackgroundCopyError_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyError_GetFile_Proxy(IBackgroundCopyError *This,IBackgroundCopyFile **pVal); - void __RPC_STUB IBackgroundCopyError_GetFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyError_GetErrorDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription); - void __RPC_STUB IBackgroundCopyError_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyError_GetErrorContextDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription); - void __RPC_STUB IBackgroundCopyError_GetErrorContextDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyError_GetProtocol_Proxy(IBackgroundCopyError *This,LPWSTR *pProtocol); - void __RPC_STUB IBackgroundCopyError_GetProtocol_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyError_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyJob interface + */ #ifndef __IBackgroundCopyJob_INTERFACE_DEFINED__ #define __IBackgroundCopyJob_INTERFACE_DEFINED__ - typedef struct _BG_FILE_INFO { + +typedef struct _BG_FILE_INFO { LPWSTR RemoteName; LPWSTR LocalName; - } BG_FILE_INFO; - - typedef struct _BG_JOB_PROGRESS { +} BG_FILE_INFO; +typedef struct _BG_JOB_PROGRESS { UINT64 BytesTotal; UINT64 BytesTransferred; ULONG FilesTotal; ULONG FilesTransferred; - } BG_JOB_PROGRESS; - - typedef struct _BG_JOB_TIMES { +} BG_JOB_PROGRESS; +typedef struct _BG_JOB_TIMES { FILETIME CreationTime; FILETIME ModificationTime; FILETIME TransferCompletionTime; - } BG_JOB_TIMES; - - typedef enum __MIDL_IBackgroundCopyJob_0001 { +} BG_JOB_TIMES; +typedef enum __WIDL_bits_generated_name_0000000D { BG_JOB_PRIORITY_FOREGROUND = 0, - BG_JOB_PRIORITY_HIGH,BG_JOB_PRIORITY_NORMAL,BG_JOB_PRIORITY_LOW - } BG_JOB_PRIORITY; + BG_JOB_PRIORITY_HIGH = 1, + BG_JOB_PRIORITY_NORMAL = 2, + BG_JOB_PRIORITY_LOW = 3 +} BG_JOB_PRIORITY; +typedef enum __WIDL_bits_generated_name_0000000E { + BG_JOB_STATE_QUEUED = 0, + BG_JOB_STATE_CONNECTING = 1, + BG_JOB_STATE_TRANSFERRING = 2, + BG_JOB_STATE_SUSPENDED = 3, + BG_JOB_STATE_ERROR = 4, + BG_JOB_STATE_TRANSIENT_ERROR = 5, + BG_JOB_STATE_TRANSFERRED = 6, + BG_JOB_STATE_ACKNOWLEDGED = 7, + BG_JOB_STATE_CANCELLED = 8 +} BG_JOB_STATE; +typedef enum __WIDL_bits_generated_name_0000000F { + BG_JOB_TYPE_DOWNLOAD = 0, + BG_JOB_TYPE_UPLOAD = 1, + BG_JOB_TYPE_UPLOAD_REPLY = 2 +} BG_JOB_TYPE; +typedef enum __WIDL_bits_generated_name_00000010 { + BG_JOB_PROXY_USAGE_PRECONFIG = 0, + BG_JOB_PROXY_USAGE_NO_PROXY = 1, + BG_JOB_PROXY_USAGE_OVERRIDE = 2, + BG_JOB_PROXY_USAGE_AUTODETECT = 3 +} BG_JOB_PROXY_USAGE; +DEFINE_GUID(IID_IBackgroundCopyJob, 0x37668d37, 0x507e, 0x4160, 0x93,0x16, 0x26,0x30,0x6d,0x15,0x0b,0x12); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("37668d37-507e-4160-9316-26306d150b12") +IBackgroundCopyJob : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFileSet( + ULONG cFileCount, + BG_FILE_INFO *pFileSet) = 0; - typedef enum __MIDL_IBackgroundCopyJob_0002 { - BG_JOB_STATE_QUEUED = 0,BG_JOB_STATE_CONNECTING,BG_JOB_STATE_TRANSFERRING, - BG_JOB_STATE_SUSPENDED,BG_JOB_STATE_ERROR,BG_JOB_STATE_TRANSIENT_ERROR, - BG_JOB_STATE_TRANSFERRED,BG_JOB_STATE_ACKNOWLEDGED,BG_JOB_STATE_CANCELLED - } BG_JOB_STATE; + virtual HRESULT STDMETHODCALLTYPE AddFile( + LPCWSTR RemoteUrl, + LPCWSTR LocalName) = 0; - typedef enum __MIDL_IBackgroundCopyJob_0003 { - BG_JOB_TYPE_DOWNLOAD = 0,BG_JOB_TYPE_UPLOAD,BG_JOB_TYPE_UPLOAD_REPLY - } BG_JOB_TYPE; + virtual HRESULT STDMETHODCALLTYPE EnumFiles( + IEnumBackgroundCopyFiles **pEnum) = 0; - typedef enum __MIDL_IBackgroundCopyJob_0004 { - BG_JOB_PROXY_USAGE_PRECONFIG = 0,BG_JOB_PROXY_USAGE_NO_PROXY, - BG_JOB_PROXY_USAGE_OVERRIDE,BG_JOB_PROXY_USAGE_AUTODETECT - } BG_JOB_PROXY_USAGE; + virtual HRESULT STDMETHODCALLTYPE Suspend( + ) = 0; - EXTERN_C const IID IID_IBackgroundCopyJob; -#if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyJob : public IUnknown { - public: - virtual HRESULT WINAPI AddFileSet(ULONG cFileCount,BG_FILE_INFO *pFileSet) = 0; - virtual HRESULT WINAPI AddFile(LPCWSTR RemoteUrl,LPCWSTR LocalName) = 0; - virtual HRESULT WINAPI EnumFiles(IEnumBackgroundCopyFiles **pEnum) = 0; - virtual HRESULT WINAPI Suspend(void) = 0; - virtual HRESULT WINAPI Resume(void) = 0; - virtual HRESULT WINAPI Cancel(void) = 0; - virtual HRESULT WINAPI Complete(void) = 0; - virtual HRESULT WINAPI GetId(GUID *pVal) = 0; - virtual HRESULT WINAPI GetType(BG_JOB_TYPE *pVal) = 0; - virtual HRESULT WINAPI GetProgress(BG_JOB_PROGRESS *pVal) = 0; - virtual HRESULT WINAPI GetTimes(BG_JOB_TIMES *pVal) = 0; - virtual HRESULT WINAPI GetState(BG_JOB_STATE *pVal) = 0; - virtual HRESULT WINAPI GetError(IBackgroundCopyError **ppError) = 0; - virtual HRESULT WINAPI GetOwner(LPWSTR *pVal) = 0; - virtual HRESULT WINAPI SetDisplayName(LPCWSTR Val) = 0; - virtual HRESULT WINAPI GetDisplayName(LPWSTR *pVal) = 0; - virtual HRESULT WINAPI SetDescription(LPCWSTR Val) = 0; - virtual HRESULT WINAPI GetDescription(LPWSTR *pVal) = 0; - virtual HRESULT WINAPI SetPriority(BG_JOB_PRIORITY Val) = 0; - virtual HRESULT WINAPI GetPriority(BG_JOB_PRIORITY *pVal) = 0; - virtual HRESULT WINAPI SetNotifyFlags(ULONG Val) = 0; - virtual HRESULT WINAPI GetNotifyFlags(ULONG *pVal) = 0; - virtual HRESULT WINAPI SetNotifyInterface(IUnknown *Val) = 0; - virtual HRESULT WINAPI GetNotifyInterface(IUnknown **pVal) = 0; - virtual HRESULT WINAPI SetMinimumRetryDelay(ULONG Seconds) = 0; - virtual HRESULT WINAPI GetMinimumRetryDelay(ULONG *Seconds) = 0; - virtual HRESULT WINAPI SetNoProgressTimeout(ULONG Seconds) = 0; - virtual HRESULT WINAPI GetNoProgressTimeout(ULONG *Seconds) = 0; - virtual HRESULT WINAPI GetErrorCount(ULONG *Errors) = 0; - virtual HRESULT WINAPI SetProxySettings(BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) = 0; - virtual HRESULT WINAPI GetProxySettings(BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) = 0; - virtual HRESULT WINAPI TakeOwnership(void) = 0; - }; + virtual HRESULT STDMETHODCALLTYPE Resume( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Cancel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Complete( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetId( + GUID *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetType( + BG_JOB_TYPE *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProgress( + BG_JOB_PROGRESS *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTimes( + BG_JOB_TIMES *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetState( + BG_JOB_STATE *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetError( + IBackgroundCopyError **ppError) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOwner( + LPWSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDisplayName( + LPCWSTR Val) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDisplayName( + LPWSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDescription( + LPCWSTR Val) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDescription( + LPWSTR *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPriority( + BG_JOB_PRIORITY Val) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPriority( + BG_JOB_PRIORITY *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNotifyFlags( + ULONG Val) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNotifyFlags( + ULONG *pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNotifyInterface( + IUnknown *Val) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNotifyInterface( + IUnknown **pVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMinimumRetryDelay( + ULONG Seconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMinimumRetryDelay( + ULONG *Seconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNoProgressTimeout( + ULONG Seconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNoProgressTimeout( + ULONG *Seconds) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetErrorCount( + ULONG *Errors) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProxySettings( + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProxySettings( + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList) = 0; + + virtual HRESULT STDMETHODCALLTYPE TakeOwnership( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJob, 0x37668d37, 0x507e, 0x4160, 0x93,0x16, 0x26,0x30,0x6d,0x15,0x0b,0x12) +#endif #else - typedef struct IBackgroundCopyJobVtbl { +typedef struct IBackgroundCopyJobVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyJob *This); - ULONG (WINAPI *Release)(IBackgroundCopyJob *This); - HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet); - HRESULT (WINAPI *AddFile)(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName); - HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum); - HRESULT (WINAPI *Suspend)(IBackgroundCopyJob *This); - HRESULT (WINAPI *Resume)(IBackgroundCopyJob *This); - HRESULT (WINAPI *Cancel)(IBackgroundCopyJob *This); - HRESULT (WINAPI *Complete)(IBackgroundCopyJob *This); - HRESULT (WINAPI *GetId)(IBackgroundCopyJob *This,GUID *pVal); - HRESULT (WINAPI *GetType)(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal); - HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal); - HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal); - HRESULT (WINAPI *GetState)(IBackgroundCopyJob *This,BG_JOB_STATE *pVal); - HRESULT (WINAPI *GetError)(IBackgroundCopyJob *This,IBackgroundCopyError **ppError); - HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob *This,LPCWSTR Val); - HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob *This,LPCWSTR Val); - HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob *This,LPWSTR *pVal); - HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val); - HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal); - HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob *This,ULONG Val); - HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob *This,ULONG *pVal); - HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob *This,IUnknown *Val); - HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob *This,IUnknown **pVal); - HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG Seconds); - HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG *Seconds); - HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG Seconds); - HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG *Seconds); - HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob *This,ULONG *Errors); - HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList); - HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList); - HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob *This); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJob *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJob *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJob *This); + + /*** IBackgroundCopyJob methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFileSet)( + IBackgroundCopyJob *This, + ULONG cFileCount, + BG_FILE_INFO *pFileSet); + + HRESULT (STDMETHODCALLTYPE *AddFile)( + IBackgroundCopyJob *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName); + + HRESULT (STDMETHODCALLTYPE *EnumFiles)( + IBackgroundCopyJob *This, + IEnumBackgroundCopyFiles **pEnum); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBackgroundCopyJob *This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBackgroundCopyJob *This); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + IBackgroundCopyJob *This); + + HRESULT (STDMETHODCALLTYPE *Complete)( + IBackgroundCopyJob *This); + + HRESULT (STDMETHODCALLTYPE *GetId)( + IBackgroundCopyJob *This, + GUID *pVal); + + HRESULT (STDMETHODCALLTYPE *GetType)( + IBackgroundCopyJob *This, + BG_JOB_TYPE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyJob *This, + BG_JOB_PROGRESS *pVal); + + HRESULT (STDMETHODCALLTYPE *GetTimes)( + IBackgroundCopyJob *This, + BG_JOB_TIMES *pVal); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IBackgroundCopyJob *This, + BG_JOB_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyJob *This, + IBackgroundCopyError **ppError); + + HRESULT (STDMETHODCALLTYPE *GetOwner)( + IBackgroundCopyJob *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDisplayName)( + IBackgroundCopyJob *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IBackgroundCopyJob *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IBackgroundCopyJob *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IBackgroundCopyJob *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBackgroundCopyJob *This, + BG_JOB_PRIORITY Val); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBackgroundCopyJob *This, + BG_JOB_PRIORITY *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)( + IBackgroundCopyJob *This, + ULONG Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)( + IBackgroundCopyJob *This, + ULONG *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)( + IBackgroundCopyJob *This, + IUnknown *Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)( + IBackgroundCopyJob *This, + IUnknown **pVal); + + HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)( + IBackgroundCopyJob *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)( + IBackgroundCopyJob *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)( + IBackgroundCopyJob *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)( + IBackgroundCopyJob *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *GetErrorCount)( + IBackgroundCopyJob *This, + ULONG *Errors); + + HRESULT (STDMETHODCALLTYPE *SetProxySettings)( + IBackgroundCopyJob *This, + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *GetProxySettings)( + IBackgroundCopyJob *This, + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *TakeOwnership)( + IBackgroundCopyJob *This); + END_INTERFACE - } IBackgroundCopyJobVtbl; - struct IBackgroundCopyJob { - CONST_VTBL struct IBackgroundCopyJobVtbl *lpVtbl; - }; +} IBackgroundCopyJobVtbl; + +interface IBackgroundCopyJob { + CONST_VTBL IBackgroundCopyJobVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyJob_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyJob_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJob methods ***/ #define IBackgroundCopyJob_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet) #define IBackgroundCopyJob_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName) #define IBackgroundCopyJob_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum) @@ -406,294 +819,509 @@ extern "C"{ #define IBackgroundCopyJob_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) #define IBackgroundCopyJob_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) #define IBackgroundCopyJob_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob_QueryInterface(IBackgroundCopyJob* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJob_AddRef(IBackgroundCopyJob* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJob_Release(IBackgroundCopyJob* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJob methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob_AddFileSet(IBackgroundCopyJob* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) { + return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_AddFile(IBackgroundCopyJob* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) { + return This->lpVtbl->AddFile(This,RemoteUrl,LocalName); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_EnumFiles(IBackgroundCopyJob* This,IEnumBackgroundCopyFiles **pEnum) { + return This->lpVtbl->EnumFiles(This,pEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_Suspend(IBackgroundCopyJob* This) { + return This->lpVtbl->Suspend(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_Resume(IBackgroundCopyJob* This) { + return This->lpVtbl->Resume(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_Cancel(IBackgroundCopyJob* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_Complete(IBackgroundCopyJob* This) { + return This->lpVtbl->Complete(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetId(IBackgroundCopyJob* This,GUID *pVal) { + return This->lpVtbl->GetId(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetType(IBackgroundCopyJob* This,BG_JOB_TYPE *pVal) { + return This->lpVtbl->GetType(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetProgress(IBackgroundCopyJob* This,BG_JOB_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetTimes(IBackgroundCopyJob* This,BG_JOB_TIMES *pVal) { + return This->lpVtbl->GetTimes(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetState(IBackgroundCopyJob* This,BG_JOB_STATE *pVal) { + return This->lpVtbl->GetState(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetError(IBackgroundCopyJob* This,IBackgroundCopyError **ppError) { + return This->lpVtbl->GetError(This,ppError); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetOwner(IBackgroundCopyJob* This,LPWSTR *pVal) { + return This->lpVtbl->GetOwner(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetDisplayName(IBackgroundCopyJob* This,LPCWSTR Val) { + return This->lpVtbl->SetDisplayName(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetDisplayName(IBackgroundCopyJob* This,LPWSTR *pVal) { + return This->lpVtbl->GetDisplayName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetDescription(IBackgroundCopyJob* This,LPCWSTR Val) { + return This->lpVtbl->SetDescription(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetDescription(IBackgroundCopyJob* This,LPWSTR *pVal) { + return This->lpVtbl->GetDescription(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetPriority(IBackgroundCopyJob* This,BG_JOB_PRIORITY Val) { + return This->lpVtbl->SetPriority(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetPriority(IBackgroundCopyJob* This,BG_JOB_PRIORITY *pVal) { + return This->lpVtbl->GetPriority(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetNotifyFlags(IBackgroundCopyJob* This,ULONG Val) { + return This->lpVtbl->SetNotifyFlags(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetNotifyFlags(IBackgroundCopyJob* This,ULONG *pVal) { + return This->lpVtbl->GetNotifyFlags(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetNotifyInterface(IBackgroundCopyJob* This,IUnknown *Val) { + return This->lpVtbl->SetNotifyInterface(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetNotifyInterface(IBackgroundCopyJob* This,IUnknown **pVal) { + return This->lpVtbl->GetNotifyInterface(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetMinimumRetryDelay(IBackgroundCopyJob* This,ULONG Seconds) { + return This->lpVtbl->SetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetMinimumRetryDelay(IBackgroundCopyJob* This,ULONG *Seconds) { + return This->lpVtbl->GetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetNoProgressTimeout(IBackgroundCopyJob* This,ULONG Seconds) { + return This->lpVtbl->SetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetNoProgressTimeout(IBackgroundCopyJob* This,ULONG *Seconds) { + return This->lpVtbl->GetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetErrorCount(IBackgroundCopyJob* This,ULONG *Errors) { + return This->lpVtbl->GetErrorCount(This,Errors); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_SetProxySettings(IBackgroundCopyJob* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) { + return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_GetProxySettings(IBackgroundCopyJob* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) { + return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob_TakeOwnership(IBackgroundCopyJob* This) { + return This->lpVtbl->TakeOwnership(This); +} #endif #endif - HRESULT WINAPI IBackgroundCopyJob_AddFileSet_Proxy(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet); - void __RPC_STUB IBackgroundCopyJob_AddFileSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_AddFile_Proxy(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName); - void __RPC_STUB IBackgroundCopyJob_AddFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_EnumFiles_Proxy(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum); - void __RPC_STUB IBackgroundCopyJob_EnumFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_Suspend_Proxy(IBackgroundCopyJob *This); - void __RPC_STUB IBackgroundCopyJob_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_Resume_Proxy(IBackgroundCopyJob *This); - void __RPC_STUB IBackgroundCopyJob_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_Cancel_Proxy(IBackgroundCopyJob *This); - void __RPC_STUB IBackgroundCopyJob_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_Complete_Proxy(IBackgroundCopyJob *This); - void __RPC_STUB IBackgroundCopyJob_Complete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetId_Proxy(IBackgroundCopyJob *This,GUID *pVal); - void __RPC_STUB IBackgroundCopyJob_GetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetType_Proxy(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal); - void __RPC_STUB IBackgroundCopyJob_GetType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetProgress_Proxy(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal); - void __RPC_STUB IBackgroundCopyJob_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetTimes_Proxy(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal); - void __RPC_STUB IBackgroundCopyJob_GetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetState_Proxy(IBackgroundCopyJob *This,BG_JOB_STATE *pVal); - void __RPC_STUB IBackgroundCopyJob_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetError_Proxy(IBackgroundCopyJob *This,IBackgroundCopyError **ppError); - void __RPC_STUB IBackgroundCopyJob_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetOwner_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal); - void __RPC_STUB IBackgroundCopyJob_GetOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetDisplayName_Proxy(IBackgroundCopyJob *This,LPCWSTR Val); - void __RPC_STUB IBackgroundCopyJob_SetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetDisplayName_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal); - void __RPC_STUB IBackgroundCopyJob_GetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetDescription_Proxy(IBackgroundCopyJob *This,LPCWSTR Val); - void __RPC_STUB IBackgroundCopyJob_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetDescription_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal); - void __RPC_STUB IBackgroundCopyJob_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val); - void __RPC_STUB IBackgroundCopyJob_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal); - void __RPC_STUB IBackgroundCopyJob_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG Val); - void __RPC_STUB IBackgroundCopyJob_SetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG *pVal); - void __RPC_STUB IBackgroundCopyJob_GetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown *Val); - void __RPC_STUB IBackgroundCopyJob_SetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown **pVal); - void __RPC_STUB IBackgroundCopyJob_GetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG Seconds); - void __RPC_STUB IBackgroundCopyJob_SetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG *Seconds); - void __RPC_STUB IBackgroundCopyJob_GetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG Seconds); - void __RPC_STUB IBackgroundCopyJob_SetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG *Seconds); - void __RPC_STUB IBackgroundCopyJob_GetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetErrorCount_Proxy(IBackgroundCopyJob *This,ULONG *Errors); - void __RPC_STUB IBackgroundCopyJob_GetErrorCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_SetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList); - void __RPC_STUB IBackgroundCopyJob_SetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_GetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList); - void __RPC_STUB IBackgroundCopyJob_GetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob_TakeOwnership_Proxy(IBackgroundCopyJob *This); - void __RPC_STUB IBackgroundCopyJob_TakeOwnership_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyJob_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IEnumBackgroundCopyJobs interface + */ #ifndef __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__ #define __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IEnumBackgroundCopyJobs; + +DEFINE_GUID(IID_IEnumBackgroundCopyJobs, 0x1af4f612, 0x3b71, 0x466f, 0x8f,0x58, 0x7b,0x6f,0x73,0xac,0x57,0xad); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IEnumBackgroundCopyJobs : public IUnknown { - public: - virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) = 0; - virtual HRESULT WINAPI Skip(ULONG celt) = 0; - virtual HRESULT WINAPI Reset(void) = 0; - virtual HRESULT WINAPI Clone(IEnumBackgroundCopyJobs **ppenum) = 0; - virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0; - }; +MIDL_INTERFACE("1af4f612-3b71-466f-8f58-7b6f73ac57ad") +IEnumBackgroundCopyJobs : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + IBackgroundCopyJob **rgelt, + ULONG *pceltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IEnumBackgroundCopyJobs **ppenum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCount( + ULONG *puCount) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IEnumBackgroundCopyJobs, 0x1af4f612, 0x3b71, 0x466f, 0x8f,0x58, 0x7b,0x6f,0x73,0xac,0x57,0xad) +#endif #else - typedef struct IEnumBackgroundCopyJobsVtbl { +typedef struct IEnumBackgroundCopyJobsVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyJobs *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IEnumBackgroundCopyJobs *This); - ULONG (WINAPI *Release)(IEnumBackgroundCopyJobs *This); - HRESULT (WINAPI *Next)(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched); - HRESULT (WINAPI *Skip)(IEnumBackgroundCopyJobs *This,ULONG celt); - HRESULT (WINAPI *Reset)(IEnumBackgroundCopyJobs *This); - HRESULT (WINAPI *Clone)(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum); - HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs *This,ULONG *puCount); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IEnumBackgroundCopyJobs *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IEnumBackgroundCopyJobs *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IEnumBackgroundCopyJobs *This); + + /*** IEnumBackgroundCopyJobs methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IEnumBackgroundCopyJobs *This, + ULONG celt, + IBackgroundCopyJob **rgelt, + ULONG *pceltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IEnumBackgroundCopyJobs *This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IEnumBackgroundCopyJobs *This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IEnumBackgroundCopyJobs *This, + IEnumBackgroundCopyJobs **ppenum); + + HRESULT (STDMETHODCALLTYPE *GetCount)( + IEnumBackgroundCopyJobs *This, + ULONG *puCount); + END_INTERFACE - } IEnumBackgroundCopyJobsVtbl; - struct IEnumBackgroundCopyJobs { - CONST_VTBL struct IEnumBackgroundCopyJobsVtbl *lpVtbl; - }; +} IEnumBackgroundCopyJobsVtbl; + +interface IEnumBackgroundCopyJobs { + CONST_VTBL IEnumBackgroundCopyJobsVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IEnumBackgroundCopyJobs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumBackgroundCopyJobs_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumBackgroundCopyJobs_Release(This) (This)->lpVtbl->Release(This) +/*** IEnumBackgroundCopyJobs methods ***/ #define IEnumBackgroundCopyJobs_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) #define IEnumBackgroundCopyJobs_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) #define IEnumBackgroundCopyJobs_Reset(This) (This)->lpVtbl->Reset(This) #define IEnumBackgroundCopyJobs_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) #define IEnumBackgroundCopyJobs_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_QueryInterface(IEnumBackgroundCopyJobs* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IEnumBackgroundCopyJobs_AddRef(IEnumBackgroundCopyJobs* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IEnumBackgroundCopyJobs_Release(IEnumBackgroundCopyJobs* This) { + return This->lpVtbl->Release(This); +} +/*** IEnumBackgroundCopyJobs methods ***/ +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Next(IEnumBackgroundCopyJobs* This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) { + return This->lpVtbl->Next(This,celt,rgelt,pceltFetched); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Skip(IEnumBackgroundCopyJobs* This,ULONG celt) { + return This->lpVtbl->Skip(This,celt); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Reset(IEnumBackgroundCopyJobs* This) { + return This->lpVtbl->Reset(This); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Clone(IEnumBackgroundCopyJobs* This,IEnumBackgroundCopyJobs **ppenum) { + return This->lpVtbl->Clone(This,ppenum); +} +static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_GetCount(IEnumBackgroundCopyJobs* This,ULONG *puCount) { + return This->lpVtbl->GetCount(This,puCount); +} #endif #endif - HRESULT WINAPI IEnumBackgroundCopyJobs_Next_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched); - void __RPC_STUB IEnumBackgroundCopyJobs_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyJobs_Skip_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt); - void __RPC_STUB IEnumBackgroundCopyJobs_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyJobs_Reset_Proxy(IEnumBackgroundCopyJobs *This); - void __RPC_STUB IEnumBackgroundCopyJobs_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyJobs_Clone_Proxy(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum); - void __RPC_STUB IEnumBackgroundCopyJobs_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IEnumBackgroundCopyJobs_GetCount_Proxy(IEnumBackgroundCopyJobs *This,ULONG *puCount); - void __RPC_STUB IEnumBackgroundCopyJobs_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif -#define BG_NOTIFY_JOB_TRANSFERRED 0x0001 -#define BG_NOTIFY_JOB_ERROR 0x0002 -#define BG_NOTIFY_DISABLE 0x0004 -#define BG_NOTIFY_JOB_MODIFICATION 0x0008 - extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_c_ifspec; - extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_s_ifspec; +#endif /* __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IBackgroundCopyCallback interface + */ #ifndef __IBackgroundCopyCallback_INTERFACE_DEFINED__ #define __IBackgroundCopyCallback_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IBackgroundCopyCallback; + +DEFINE_GUID(IID_IBackgroundCopyCallback, 0x97ea99c7, 0x0186, 0x4ad4, 0x8d,0xf9, 0xc5,0xb4,0xe0,0xed,0x6b,0x22); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyCallback : public IUnknown { - public: - virtual HRESULT WINAPI JobTransferred(IBackgroundCopyJob *pJob) = 0; - virtual HRESULT WINAPI JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0; - virtual HRESULT WINAPI JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0; - }; +MIDL_INTERFACE("97ea99c7-0186-4ad4-8df9-c5b4e0ed6b22") +IBackgroundCopyCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE JobTransferred( + IBackgroundCopyJob *pJob) = 0; + + virtual HRESULT STDMETHODCALLTYPE JobError( + IBackgroundCopyJob *pJob, + IBackgroundCopyError *pError) = 0; + + virtual HRESULT STDMETHODCALLTYPE JobModification( + IBackgroundCopyJob *pJob, + DWORD dwReserved) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyCallback, 0x97ea99c7, 0x0186, 0x4ad4, 0x8d,0xf9, 0xc5,0xb4,0xe0,0xed,0x6b,0x22) +#endif #else - typedef struct IBackgroundCopyCallbackVtbl { +typedef struct IBackgroundCopyCallbackVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyCallback *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyCallback *This); - ULONG (WINAPI *Release)(IBackgroundCopyCallback *This); - HRESULT (WINAPI *JobTransferred)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob); - HRESULT (WINAPI *JobError)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError); - HRESULT (WINAPI *JobModification)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyCallback *This); + + /*** IBackgroundCopyCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *JobTransferred)( + IBackgroundCopyCallback *This, + IBackgroundCopyJob *pJob); + + HRESULT (STDMETHODCALLTYPE *JobError)( + IBackgroundCopyCallback *This, + IBackgroundCopyJob *pJob, + IBackgroundCopyError *pError); + + HRESULT (STDMETHODCALLTYPE *JobModification)( + IBackgroundCopyCallback *This, + IBackgroundCopyJob *pJob, + DWORD dwReserved); + END_INTERFACE - } IBackgroundCopyCallbackVtbl; - struct IBackgroundCopyCallback { - CONST_VTBL struct IBackgroundCopyCallbackVtbl *lpVtbl; - }; +} IBackgroundCopyCallbackVtbl; + +interface IBackgroundCopyCallback { + CONST_VTBL IBackgroundCopyCallbackVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyCallback methods ***/ #define IBackgroundCopyCallback_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob) #define IBackgroundCopyCallback_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError) #define IBackgroundCopyCallback_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyCallback_QueryInterface(IBackgroundCopyCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyCallback_AddRef(IBackgroundCopyCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyCallback_Release(IBackgroundCopyCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyCallback methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyCallback_JobTransferred(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob) { + return This->lpVtbl->JobTransferred(This,pJob); +} +static FORCEINLINE HRESULT IBackgroundCopyCallback_JobError(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) { + return This->lpVtbl->JobError(This,pJob,pError); +} +static FORCEINLINE HRESULT IBackgroundCopyCallback_JobModification(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob,DWORD dwReserved) { + return This->lpVtbl->JobModification(This,pJob,dwReserved); +} #endif #endif - HRESULT WINAPI IBackgroundCopyCallback_JobTransferred_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob); - void __RPC_STUB IBackgroundCopyCallback_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyCallback_JobError_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError); - void __RPC_STUB IBackgroundCopyCallback_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyCallback_JobModification_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved); - void __RPC_STUB IBackgroundCopyCallback_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); -#endif -#ifndef __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__ -#define __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__ - EXTERN_C const IID IID_AsyncIBackgroundCopyCallback; -#if defined(__cplusplus) && !defined(CINTERFACE) - struct AsyncIBackgroundCopyCallback : public IUnknown { - public: - virtual HRESULT WINAPI Begin_JobTransferred(IBackgroundCopyJob *pJob) = 0; - virtual HRESULT WINAPI Finish_JobTransferred(void) = 0; - virtual HRESULT WINAPI Begin_JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0; - virtual HRESULT WINAPI Finish_JobError(void) = 0; - virtual HRESULT WINAPI Begin_JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0; - virtual HRESULT WINAPI Finish_JobModification(void) = 0; - }; -#else - typedef struct AsyncIBackgroundCopyCallbackVtbl { - BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(AsyncIBackgroundCopyCallback *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(AsyncIBackgroundCopyCallback *This); - ULONG (WINAPI *Release)(AsyncIBackgroundCopyCallback *This); - HRESULT (WINAPI *Begin_JobTransferred)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob); - HRESULT (WINAPI *Finish_JobTransferred)(AsyncIBackgroundCopyCallback *This); - HRESULT (WINAPI *Begin_JobError)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError); - HRESULT (WINAPI *Finish_JobError)(AsyncIBackgroundCopyCallback *This); - HRESULT (WINAPI *Begin_JobModification)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved); - HRESULT (WINAPI *Finish_JobModification)(AsyncIBackgroundCopyCallback *This); - END_INTERFACE - } AsyncIBackgroundCopyCallbackVtbl; - struct AsyncIBackgroundCopyCallback { - CONST_VTBL struct AsyncIBackgroundCopyCallbackVtbl *lpVtbl; - }; -#ifdef COBJMACROS -#define AsyncIBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define AsyncIBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This) -#define AsyncIBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This) -#define AsyncIBackgroundCopyCallback_Begin_JobTransferred(This,pJob) (This)->lpVtbl->Begin_JobTransferred(This,pJob) -#define AsyncIBackgroundCopyCallback_Finish_JobTransferred(This) (This)->lpVtbl->Finish_JobTransferred(This) -#define AsyncIBackgroundCopyCallback_Begin_JobError(This,pJob,pError) (This)->lpVtbl->Begin_JobError(This,pJob,pError) -#define AsyncIBackgroundCopyCallback_Finish_JobError(This) (This)->lpVtbl->Finish_JobError(This) -#define AsyncIBackgroundCopyCallback_Begin_JobModification(This,pJob,dwReserved) (This)->lpVtbl->Begin_JobModification(This,pJob,dwReserved) -#define AsyncIBackgroundCopyCallback_Finish_JobModification(This) (This)->lpVtbl->Finish_JobModification(This) -#endif -#endif - HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob); - void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This); - void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobError_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError); - void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobError_Proxy(AsyncIBackgroundCopyCallback *This); - void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobModification_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved); - void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobModification_Proxy(AsyncIBackgroundCopyCallback *This); - void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); #endif + +#endif /* __IBackgroundCopyCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyManager interface + */ #ifndef __IBackgroundCopyManager_INTERFACE_DEFINED__ #define __IBackgroundCopyManager_INTERFACE_DEFINED__ #define BG_JOB_ENUM_ALL_USERS 0x0001 - - EXTERN_C const IID IID_IBackgroundCopyManager; +DEFINE_GUID(IID_IBackgroundCopyManager, 0x5ce34c0d, 0x0dc9, 0x4c1f, 0x89,0x7c, 0xda,0xa1,0xb7,0x8c,0xee,0x7c); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyManager : public IUnknown { - public: - virtual HRESULT WINAPI CreateJob(LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) = 0; - virtual HRESULT WINAPI GetJob(REFGUID jobID,IBackgroundCopyJob **ppJob) = 0; - virtual HRESULT WINAPI EnumJobs(DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) = 0; - virtual HRESULT WINAPI GetErrorDescription(HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) = 0; - }; +MIDL_INTERFACE("5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c") +IBackgroundCopyManager : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateJob( + LPCWSTR DisplayName, + BG_JOB_TYPE Type, + GUID *pJobId, + IBackgroundCopyJob **ppJob) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetJob( + REFGUID jobID, + IBackgroundCopyJob **ppJob) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumJobs( + DWORD dwFlags, + IEnumBackgroundCopyJobs **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetErrorDescription( + HRESULT hResult, + DWORD LanguageId, + LPWSTR *pErrorDescription) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyManager, 0x5ce34c0d, 0x0dc9, 0x4c1f, 0x89,0x7c, 0xda,0xa1,0xb7,0x8c,0xee,0x7c) +#endif #else - typedef struct IBackgroundCopyManagerVtbl { +typedef struct IBackgroundCopyManagerVtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyManager *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyManager *This); - ULONG (WINAPI *Release)(IBackgroundCopyManager *This); - HRESULT (WINAPI *CreateJob)(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob); - HRESULT (WINAPI *GetJob)(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob); - HRESULT (WINAPI *EnumJobs)(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum); - HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyManager *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyManager *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyManager *This); + + /*** IBackgroundCopyManager methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateJob)( + IBackgroundCopyManager *This, + LPCWSTR DisplayName, + BG_JOB_TYPE Type, + GUID *pJobId, + IBackgroundCopyJob **ppJob); + + HRESULT (STDMETHODCALLTYPE *GetJob)( + IBackgroundCopyManager *This, + REFGUID jobID, + IBackgroundCopyJob **ppJob); + + HRESULT (STDMETHODCALLTYPE *EnumJobs)( + IBackgroundCopyManager *This, + DWORD dwFlags, + IEnumBackgroundCopyJobs **ppEnum); + + HRESULT (STDMETHODCALLTYPE *GetErrorDescription)( + IBackgroundCopyManager *This, + HRESULT hResult, + DWORD LanguageId, + LPWSTR *pErrorDescription); + END_INTERFACE - } IBackgroundCopyManagerVtbl; - struct IBackgroundCopyManager { - CONST_VTBL struct IBackgroundCopyManagerVtbl *lpVtbl; - }; +} IBackgroundCopyManagerVtbl; + +interface IBackgroundCopyManager { + CONST_VTBL IBackgroundCopyManagerVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyManager_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyManager_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyManager methods ***/ #define IBackgroundCopyManager_CreateJob(This,DisplayName,Type,pJobId,ppJob) (This)->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob) #define IBackgroundCopyManager_GetJob(This,jobID,ppJob) (This)->lpVtbl->GetJob(This,jobID,ppJob) #define IBackgroundCopyManager_EnumJobs(This,dwFlags,ppEnum) (This)->lpVtbl->EnumJobs(This,dwFlags,ppEnum) #define IBackgroundCopyManager_GetErrorDescription(This,hResult,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyManager_QueryInterface(IBackgroundCopyManager* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyManager_AddRef(IBackgroundCopyManager* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyManager_Release(IBackgroundCopyManager* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyManager methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyManager_CreateJob(IBackgroundCopyManager* This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) { + return This->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob); +} +static FORCEINLINE HRESULT IBackgroundCopyManager_GetJob(IBackgroundCopyManager* This,REFGUID jobID,IBackgroundCopyJob **ppJob) { + return This->lpVtbl->GetJob(This,jobID,ppJob); +} +static FORCEINLINE HRESULT IBackgroundCopyManager_EnumJobs(IBackgroundCopyManager* This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) { + return This->lpVtbl->EnumJobs(This,dwFlags,ppEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyManager_GetErrorDescription(IBackgroundCopyManager* This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) { + return This->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription); +} #endif #endif - HRESULT WINAPI IBackgroundCopyManager_CreateJob_Proxy(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob); - void __RPC_STUB IBackgroundCopyManager_CreateJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyManager_GetJob_Proxy(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob); - void __RPC_STUB IBackgroundCopyManager_GetJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyManager_EnumJobs_Proxy(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum); - void __RPC_STUB IBackgroundCopyManager_EnumJobs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyManager_GetErrorDescription_Proxy(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription); - void __RPC_STUB IBackgroundCopyManager_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyManager_INTERFACE_DEFINED__ */ + #ifndef __BackgroundCopyManager_LIBRARY_DEFINED__ #define __BackgroundCopyManager_LIBRARY_DEFINED__ - EXTERN_C const IID LIBID_BackgroundCopyManager; - EXTERN_C const CLSID CLSID_BackgroundCopyManager; + +DEFINE_GUID(LIBID_BackgroundCopyManager, 0x1deeb74f, 0x7915, 0x4560, 0xb5,0x58, 0x91,0x8c,0x83,0xf1,0x76,0xa6); + +/***************************************************************************** + * BackgroundCopyManager coclass + */ + +DEFINE_GUID(CLSID_BackgroundCopyManager, 0x4991d34b, 0x80a1, 0x4291, 0x83,0xb6, 0x33,0x28,0x36,0x6b,0x90,0x97); + #ifdef __cplusplus - class BackgroundCopyManager; +class DECLSPEC_UUID("4991d34b-80a1-4291-83b6-3328366b9097") BackgroundCopyManager; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(BackgroundCopyManager, 0x4991d34b, 0x80a1, 0x4291, 0x83,0xb6, 0x33,0x28,0x36,0x6b,0x90,0x97) +#endif #endif + +#ifndef __IBackgroundCopyCallback_FWD_DEFINED__ +#define __IBackgroundCopyCallback_FWD_DEFINED__ +typedef interface IBackgroundCopyCallback IBackgroundCopyCallback; +#ifdef __cplusplus +interface IBackgroundCopyCallback; +#endif /* __cplusplus */ #endif +#endif /* __BackgroundCopyManager_LIBRARY_DEFINED__ */ #include "bits1_5.h" +/* Begin additional prototypes for all interfaces */ + - extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_c_ifspec; - extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_s_ifspec; +/* End additional prototypes */ #ifdef __cplusplus } #endif -#endif + +#endif /* __bits_h__ */ diff --git a/lib/libc/include/any-windows-any/bits1_5.h b/lib/libc/include/any-windows-any/bits1_5.h index 9824c0fe07..ef4f1cf558 100644 --- a/lib/libc/include/any-windows-any/bits1_5.h +++ b/lib/libc/include/any-windows-any/bits1_5.h @@ -1,30 +1,29 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ +/*** Autogenerated by WIDL 7.0 from include/bits1_5.idl - Do not edit ***/ + +#ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of <rpcndr.h> +#include <rpc.h> +#include <rpcndr.h> #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include <windows.h> +#include <ole2.h> #endif #ifndef __bits1_5_h__ #define __bits1_5_h__ +/* Forward declarations */ + #ifndef __IBackgroundCopyJob2_FWD_DEFINED__ #define __IBackgroundCopyJob2_FWD_DEFINED__ -typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2; +typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2; +#ifdef __cplusplus +interface IBackgroundCopyJob2; +#endif /* __cplusplus */ #endif #ifndef __BackgroundCopyManager1_5_FWD_DEFINED__ @@ -33,130 +32,286 @@ typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2; typedef class BackgroundCopyManager1_5 BackgroundCopyManager1_5; #else typedef struct BackgroundCopyManager1_5 BackgroundCopyManager1_5; -#endif -#endif +#endif /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager1_5_FWD_DEFINED__ */ -#ifndef __IBackgroundCopyJob2_FWD_DEFINED__ -#define __IBackgroundCopyJob2_FWD_DEFINED__ -typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2; -#endif +/* Headers for imported files */ -#include "bits.h" +#include <bits.h> #ifdef __cplusplus -extern "C"{ -#endif - -#ifndef __MIDL_user_allocate_free_DEFINED__ -#define __MIDL_user_allocate_free_DEFINED__ - void *__RPC_API MIDL_user_allocate(size_t); - void __RPC_API MIDL_user_free(void *); +extern "C" { #endif +/***************************************************************************** + * IBackgroundCopyJob2 interface + */ #ifndef __IBackgroundCopyJob2_INTERFACE_DEFINED__ #define __IBackgroundCopyJob2_INTERFACE_DEFINED__ - typedef struct _BG_JOB_REPLY_PROGRESS { +typedef struct _BG_JOB_REPLY_PROGRESS { UINT64 BytesTotal; UINT64 BytesTransferred; - } BG_JOB_REPLY_PROGRESS; - - typedef enum __MIDL_IBackgroundCopyJob2_0001 { - BG_AUTH_TARGET_SERVER = 1,BG_AUTH_TARGET_PROXY = BG_AUTH_TARGET_SERVER + 1 - } BG_AUTH_TARGET; - - typedef enum __MIDL_IBackgroundCopyJob2_0002 { - BG_AUTH_SCHEME_BASIC = 1,BG_AUTH_SCHEME_DIGEST,BG_AUTH_SCHEME_NTLM, - BG_AUTH_SCHEME_NEGOTIATE,BG_AUTH_SCHEME_PASSPORT - } BG_AUTH_SCHEME; - - typedef struct __MIDL_IBackgroundCopyJob2_0003 { +} BG_JOB_REPLY_PROGRESS; +typedef enum __WIDL_bits1_5_generated_name_00000011 { + BG_AUTH_TARGET_SERVER = 1, + BG_AUTH_TARGET_PROXY = 2 +} BG_AUTH_TARGET; +typedef enum __WIDL_bits1_5_generated_name_00000012 { + BG_AUTH_SCHEME_BASIC = 1, + BG_AUTH_SCHEME_DIGEST = 2, + BG_AUTH_SCHEME_NTLM = 3, + BG_AUTH_SCHEME_NEGOTIATE = 4, + BG_AUTH_SCHEME_PASSPORT = 5 +} BG_AUTH_SCHEME; +typedef struct __WIDL_bits1_5_generated_name_00000013 { LPWSTR UserName; LPWSTR Password; - } BG_BASIC_CREDENTIALS; - - typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS; - - typedef union __MIDL_IBackgroundCopyJob2_0004 { +} BG_BASIC_CREDENTIALS; +typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS; +typedef union __WIDL_bits1_5_generated_name_00000014 { BG_BASIC_CREDENTIALS Basic; - } BG_AUTH_CREDENTIALS_UNION; - - typedef struct __MIDL_IBackgroundCopyJob2_0005 { +} BG_AUTH_CREDENTIALS_UNION; +typedef struct __WIDL_bits1_5_generated_name_00000015 { BG_AUTH_TARGET Target; BG_AUTH_SCHEME Scheme; BG_AUTH_CREDENTIALS_UNION Credentials; - } BG_AUTH_CREDENTIALS; +} BG_AUTH_CREDENTIALS; +typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS; +DEFINE_GUID(IID_IBackgroundCopyJob2, 0x54b50739, 0x686f, 0x45eb, 0x9d,0xff, 0xd6,0xa9,0xa0,0xfa,0xa9,0xaf); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("54b50739-686f-45eb-9dff-d6a9a0faa9af") +IBackgroundCopyJob2 : public IBackgroundCopyJob +{ + virtual HRESULT STDMETHODCALLTYPE SetNotifyCmdLine( + LPCWSTR prog, + LPCWSTR params) = 0; - typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS; + virtual HRESULT STDMETHODCALLTYPE GetNotifyCmdLine( + LPWSTR *prog, + LPWSTR *params) = 0; - EXTERN_C const IID IID_IBackgroundCopyJob2; -#if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyJob2 : public IBackgroundCopyJob { - public: - virtual HRESULT WINAPI SetNotifyCmdLine(LPCWSTR Program,LPCWSTR Parameters) = 0; - virtual HRESULT WINAPI GetNotifyCmdLine(LPWSTR *pProgram,LPWSTR *pParameters) = 0; - virtual HRESULT WINAPI GetReplyProgress(BG_JOB_REPLY_PROGRESS *pProgress) = 0; - virtual HRESULT WINAPI GetReplyData(byte **ppBuffer,UINT64 *pLength) = 0; - virtual HRESULT WINAPI SetReplyFileName(LPCWSTR ReplyFileName) = 0; - virtual HRESULT WINAPI GetReplyFileName(LPWSTR *pReplyFileName) = 0; - virtual HRESULT WINAPI SetCredentials(BG_AUTH_CREDENTIALS *credentials) = 0; - virtual HRESULT WINAPI RemoveCredentials(BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme) = 0; - }; + virtual HRESULT STDMETHODCALLTYPE GetReplyProgress( + BG_JOB_REPLY_PROGRESS *progress) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetReplyData( + byte **pBuffer, + UINT64 *pLength) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetReplyFileName( + LPCWSTR filename) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetReplyFileName( + LPWSTR *pFilename) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCredentials( + BG_AUTH_CREDENTIALS *cred) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveCredentials( + BG_AUTH_TARGET target, + BG_AUTH_SCHEME scheme) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJob2, 0x54b50739, 0x686f, 0x45eb, 0x9d,0xff, 0xd6,0xa9,0xa0,0xfa,0xa9,0xaf) +#endif #else - typedef struct IBackgroundCopyJob2Vtbl { +typedef struct IBackgroundCopyJob2Vtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob2 *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyJob2 *This); - ULONG (WINAPI *Release)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob2 *This,ULONG cFileCount,BG_FILE_INFO *pFileSet); - HRESULT (WINAPI *AddFile)(IBackgroundCopyJob2 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName); - HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob2 *This,IEnumBackgroundCopyFiles **pEnum); - HRESULT (WINAPI *Suspend)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *Resume)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *Cancel)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *Complete)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *GetId)(IBackgroundCopyJob2 *This,GUID *pVal); - HRESULT (WINAPI *GetType)(IBackgroundCopyJob2 *This,BG_JOB_TYPE *pVal); - HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob2 *This,BG_JOB_PROGRESS *pVal); - HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob2 *This,BG_JOB_TIMES *pVal); - HRESULT (WINAPI *GetState)(IBackgroundCopyJob2 *This,BG_JOB_STATE *pVal); - HRESULT (WINAPI *GetError)(IBackgroundCopyJob2 *This,IBackgroundCopyError **ppError); - HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob2 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob2 *This,LPCWSTR Val); - HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob2 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob2 *This,LPCWSTR Val); - HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob2 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob2 *This,BG_JOB_PRIORITY Val); - HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob2 *This,BG_JOB_PRIORITY *pVal); - HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob2 *This,ULONG Val); - HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob2 *This,ULONG *pVal); - HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob2 *This,IUnknown *Val); - HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob2 *This,IUnknown **pVal); - HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob2 *This,ULONG Seconds); - HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob2 *This,ULONG *Seconds); - HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob2 *This,ULONG Seconds); - HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob2 *This,ULONG *Seconds); - HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob2 *This,ULONG *Errors); - HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob2 *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList); - HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob2 *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList); - HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob2 *This); - HRESULT (WINAPI *SetNotifyCmdLine)(IBackgroundCopyJob2 *This,LPCWSTR Program,LPCWSTR Parameters); - HRESULT (WINAPI *GetNotifyCmdLine)(IBackgroundCopyJob2 *This,LPWSTR *pProgram,LPWSTR *pParameters); - HRESULT (WINAPI *GetReplyProgress)(IBackgroundCopyJob2 *This,BG_JOB_REPLY_PROGRESS *pProgress); - HRESULT (WINAPI *GetReplyData)(IBackgroundCopyJob2 *This,byte **ppBuffer,UINT64 *pLength); - HRESULT (WINAPI *SetReplyFileName)(IBackgroundCopyJob2 *This,LPCWSTR ReplyFileName); - HRESULT (WINAPI *GetReplyFileName)(IBackgroundCopyJob2 *This,LPWSTR *pReplyFileName); - HRESULT (WINAPI *SetCredentials)(IBackgroundCopyJob2 *This,BG_AUTH_CREDENTIALS *credentials); - HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob2 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJob2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJob2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJob2 *This); + + /*** IBackgroundCopyJob methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFileSet)( + IBackgroundCopyJob2 *This, + ULONG cFileCount, + BG_FILE_INFO *pFileSet); + + HRESULT (STDMETHODCALLTYPE *AddFile)( + IBackgroundCopyJob2 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName); + + HRESULT (STDMETHODCALLTYPE *EnumFiles)( + IBackgroundCopyJob2 *This, + IEnumBackgroundCopyFiles **pEnum); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBackgroundCopyJob2 *This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBackgroundCopyJob2 *This); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + IBackgroundCopyJob2 *This); + + HRESULT (STDMETHODCALLTYPE *Complete)( + IBackgroundCopyJob2 *This); + + HRESULT (STDMETHODCALLTYPE *GetId)( + IBackgroundCopyJob2 *This, + GUID *pVal); + + HRESULT (STDMETHODCALLTYPE *GetType)( + IBackgroundCopyJob2 *This, + BG_JOB_TYPE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyJob2 *This, + BG_JOB_PROGRESS *pVal); + + HRESULT (STDMETHODCALLTYPE *GetTimes)( + IBackgroundCopyJob2 *This, + BG_JOB_TIMES *pVal); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IBackgroundCopyJob2 *This, + BG_JOB_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyJob2 *This, + IBackgroundCopyError **ppError); + + HRESULT (STDMETHODCALLTYPE *GetOwner)( + IBackgroundCopyJob2 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDisplayName)( + IBackgroundCopyJob2 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IBackgroundCopyJob2 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IBackgroundCopyJob2 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IBackgroundCopyJob2 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBackgroundCopyJob2 *This, + BG_JOB_PRIORITY Val); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBackgroundCopyJob2 *This, + BG_JOB_PRIORITY *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)( + IBackgroundCopyJob2 *This, + ULONG Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)( + IBackgroundCopyJob2 *This, + ULONG *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)( + IBackgroundCopyJob2 *This, + IUnknown *Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)( + IBackgroundCopyJob2 *This, + IUnknown **pVal); + + HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)( + IBackgroundCopyJob2 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)( + IBackgroundCopyJob2 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)( + IBackgroundCopyJob2 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)( + IBackgroundCopyJob2 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *GetErrorCount)( + IBackgroundCopyJob2 *This, + ULONG *Errors); + + HRESULT (STDMETHODCALLTYPE *SetProxySettings)( + IBackgroundCopyJob2 *This, + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *GetProxySettings)( + IBackgroundCopyJob2 *This, + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *TakeOwnership)( + IBackgroundCopyJob2 *This); + + /*** IBackgroundCopyJob2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)( + IBackgroundCopyJob2 *This, + LPCWSTR prog, + LPCWSTR params); + + HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)( + IBackgroundCopyJob2 *This, + LPWSTR *prog, + LPWSTR *params); + + HRESULT (STDMETHODCALLTYPE *GetReplyProgress)( + IBackgroundCopyJob2 *This, + BG_JOB_REPLY_PROGRESS *progress); + + HRESULT (STDMETHODCALLTYPE *GetReplyData)( + IBackgroundCopyJob2 *This, + byte **pBuffer, + UINT64 *pLength); + + HRESULT (STDMETHODCALLTYPE *SetReplyFileName)( + IBackgroundCopyJob2 *This, + LPCWSTR filename); + + HRESULT (STDMETHODCALLTYPE *GetReplyFileName)( + IBackgroundCopyJob2 *This, + LPWSTR *pFilename); + + HRESULT (STDMETHODCALLTYPE *SetCredentials)( + IBackgroundCopyJob2 *This, + BG_AUTH_CREDENTIALS *cred); + + HRESULT (STDMETHODCALLTYPE *RemoveCredentials)( + IBackgroundCopyJob2 *This, + BG_AUTH_TARGET target, + BG_AUTH_SCHEME scheme); + END_INTERFACE - } IBackgroundCopyJob2Vtbl; - struct IBackgroundCopyJob2 { - CONST_VTBL struct IBackgroundCopyJob2Vtbl *lpVtbl; - }; +} IBackgroundCopyJob2Vtbl; + +interface IBackgroundCopyJob2 { + CONST_VTBL IBackgroundCopyJob2Vtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IBackgroundCopyJob2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IBackgroundCopyJob2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IBackgroundCopyJob2_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJob methods ***/ #define IBackgroundCopyJob2_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet) #define IBackgroundCopyJob2_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName) #define IBackgroundCopyJob2_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum) @@ -189,49 +344,199 @@ extern "C"{ #define IBackgroundCopyJob2_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) #define IBackgroundCopyJob2_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) #define IBackgroundCopyJob2_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This) -#define IBackgroundCopyJob2_SetNotifyCmdLine(This,Program,Parameters) (This)->lpVtbl->SetNotifyCmdLine(This,Program,Parameters) -#define IBackgroundCopyJob2_GetNotifyCmdLine(This,pProgram,pParameters) (This)->lpVtbl->GetNotifyCmdLine(This,pProgram,pParameters) -#define IBackgroundCopyJob2_GetReplyProgress(This,pProgress) (This)->lpVtbl->GetReplyProgress(This,pProgress) -#define IBackgroundCopyJob2_GetReplyData(This,ppBuffer,pLength) (This)->lpVtbl->GetReplyData(This,ppBuffer,pLength) -#define IBackgroundCopyJob2_SetReplyFileName(This,ReplyFileName) (This)->lpVtbl->SetReplyFileName(This,ReplyFileName) -#define IBackgroundCopyJob2_GetReplyFileName(This,pReplyFileName) (This)->lpVtbl->GetReplyFileName(This,pReplyFileName) -#define IBackgroundCopyJob2_SetCredentials(This,credentials) (This)->lpVtbl->SetCredentials(This,credentials) -#define IBackgroundCopyJob2_RemoveCredentials(This,Target,Scheme) (This)->lpVtbl->RemoveCredentials(This,Target,Scheme) +/*** IBackgroundCopyJob2 methods ***/ +#define IBackgroundCopyJob2_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob2_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob2_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress) +#define IBackgroundCopyJob2_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength) +#define IBackgroundCopyJob2_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename) +#define IBackgroundCopyJob2_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename) +#define IBackgroundCopyJob2_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred) +#define IBackgroundCopyJob2_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob2_QueryInterface(IBackgroundCopyJob2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJob2_AddRef(IBackgroundCopyJob2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJob2_Release(IBackgroundCopyJob2* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJob methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob2_AddFileSet(IBackgroundCopyJob2* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) { + return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_AddFile(IBackgroundCopyJob2* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) { + return This->lpVtbl->AddFile(This,RemoteUrl,LocalName); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_EnumFiles(IBackgroundCopyJob2* This,IEnumBackgroundCopyFiles **pEnum) { + return This->lpVtbl->EnumFiles(This,pEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_Suspend(IBackgroundCopyJob2* This) { + return This->lpVtbl->Suspend(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_Resume(IBackgroundCopyJob2* This) { + return This->lpVtbl->Resume(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_Cancel(IBackgroundCopyJob2* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_Complete(IBackgroundCopyJob2* This) { + return This->lpVtbl->Complete(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetId(IBackgroundCopyJob2* This,GUID *pVal) { + return This->lpVtbl->GetId(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetType(IBackgroundCopyJob2* This,BG_JOB_TYPE *pVal) { + return This->lpVtbl->GetType(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetProgress(IBackgroundCopyJob2* This,BG_JOB_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetTimes(IBackgroundCopyJob2* This,BG_JOB_TIMES *pVal) { + return This->lpVtbl->GetTimes(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetState(IBackgroundCopyJob2* This,BG_JOB_STATE *pVal) { + return This->lpVtbl->GetState(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetError(IBackgroundCopyJob2* This,IBackgroundCopyError **ppError) { + return This->lpVtbl->GetError(This,ppError); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetOwner(IBackgroundCopyJob2* This,LPWSTR *pVal) { + return This->lpVtbl->GetOwner(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetDisplayName(IBackgroundCopyJob2* This,LPCWSTR Val) { + return This->lpVtbl->SetDisplayName(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetDisplayName(IBackgroundCopyJob2* This,LPWSTR *pVal) { + return This->lpVtbl->GetDisplayName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetDescription(IBackgroundCopyJob2* This,LPCWSTR Val) { + return This->lpVtbl->SetDescription(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetDescription(IBackgroundCopyJob2* This,LPWSTR *pVal) { + return This->lpVtbl->GetDescription(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetPriority(IBackgroundCopyJob2* This,BG_JOB_PRIORITY Val) { + return This->lpVtbl->SetPriority(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetPriority(IBackgroundCopyJob2* This,BG_JOB_PRIORITY *pVal) { + return This->lpVtbl->GetPriority(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyFlags(IBackgroundCopyJob2* This,ULONG Val) { + return This->lpVtbl->SetNotifyFlags(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyFlags(IBackgroundCopyJob2* This,ULONG *pVal) { + return This->lpVtbl->GetNotifyFlags(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyInterface(IBackgroundCopyJob2* This,IUnknown *Val) { + return This->lpVtbl->SetNotifyInterface(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyInterface(IBackgroundCopyJob2* This,IUnknown **pVal) { + return This->lpVtbl->GetNotifyInterface(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetMinimumRetryDelay(IBackgroundCopyJob2* This,ULONG Seconds) { + return This->lpVtbl->SetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetMinimumRetryDelay(IBackgroundCopyJob2* This,ULONG *Seconds) { + return This->lpVtbl->GetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNoProgressTimeout(IBackgroundCopyJob2* This,ULONG Seconds) { + return This->lpVtbl->SetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNoProgressTimeout(IBackgroundCopyJob2* This,ULONG *Seconds) { + return This->lpVtbl->GetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetErrorCount(IBackgroundCopyJob2* This,ULONG *Errors) { + return This->lpVtbl->GetErrorCount(This,Errors); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetProxySettings(IBackgroundCopyJob2* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) { + return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetProxySettings(IBackgroundCopyJob2* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) { + return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_TakeOwnership(IBackgroundCopyJob2* This) { + return This->lpVtbl->TakeOwnership(This); +} +/*** IBackgroundCopyJob2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyCmdLine(IBackgroundCopyJob2* This,LPCWSTR prog,LPCWSTR params) { + return This->lpVtbl->SetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyCmdLine(IBackgroundCopyJob2* This,LPWSTR *prog,LPWSTR *params) { + return This->lpVtbl->GetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyProgress(IBackgroundCopyJob2* This,BG_JOB_REPLY_PROGRESS *progress) { + return This->lpVtbl->GetReplyProgress(This,progress); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyData(IBackgroundCopyJob2* This,byte **pBuffer,UINT64 *pLength) { + return This->lpVtbl->GetReplyData(This,pBuffer,pLength); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetReplyFileName(IBackgroundCopyJob2* This,LPCWSTR filename) { + return This->lpVtbl->SetReplyFileName(This,filename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyFileName(IBackgroundCopyJob2* This,LPWSTR *pFilename) { + return This->lpVtbl->GetReplyFileName(This,pFilename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_SetCredentials(IBackgroundCopyJob2* This,BG_AUTH_CREDENTIALS *cred) { + return This->lpVtbl->SetCredentials(This,cred); +} +static FORCEINLINE HRESULT IBackgroundCopyJob2_RemoveCredentials(IBackgroundCopyJob2* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) { + return This->lpVtbl->RemoveCredentials(This,target,scheme); +} #endif #endif - HRESULT WINAPI IBackgroundCopyJob2_SetNotifyCmdLine_Proxy(IBackgroundCopyJob2 *This,LPCWSTR Program,LPCWSTR Parameters); - void __RPC_STUB IBackgroundCopyJob2_SetNotifyCmdLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_GetNotifyCmdLine_Proxy(IBackgroundCopyJob2 *This,LPWSTR *pProgram,LPWSTR *pParameters); - void __RPC_STUB IBackgroundCopyJob2_GetNotifyCmdLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_GetReplyProgress_Proxy(IBackgroundCopyJob2 *This,BG_JOB_REPLY_PROGRESS *pProgress); - void __RPC_STUB IBackgroundCopyJob2_GetReplyProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_GetReplyData_Proxy(IBackgroundCopyJob2 *This,byte **ppBuffer,UINT64 *pLength); - void __RPC_STUB IBackgroundCopyJob2_GetReplyData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_SetReplyFileName_Proxy(IBackgroundCopyJob2 *This,LPCWSTR ReplyFileName); - void __RPC_STUB IBackgroundCopyJob2_SetReplyFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_GetReplyFileName_Proxy(IBackgroundCopyJob2 *This,LPWSTR *pReplyFileName); - void __RPC_STUB IBackgroundCopyJob2_GetReplyFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_SetCredentials_Proxy(IBackgroundCopyJob2 *This,BG_AUTH_CREDENTIALS *credentials); - void __RPC_STUB IBackgroundCopyJob2_SetCredentials_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob2_RemoveCredentials_Proxy(IBackgroundCopyJob2 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme); - void __RPC_STUB IBackgroundCopyJob2_RemoveCredentials_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyJob2_INTERFACE_DEFINED__ */ + #ifndef __BackgroundCopyManager1_5_LIBRARY_DEFINED__ #define __BackgroundCopyManager1_5_LIBRARY_DEFINED__ - EXTERN_C const IID LIBID_BackgroundCopyManager1_5; - EXTERN_C const CLSID CLSID_BackgroundCopyManager1_5; + +DEFINE_GUID(LIBID_BackgroundCopyManager1_5, 0xea9319ea, 0xc628, 0x480f, 0x83,0x31, 0x76,0x8f,0xac,0x39,0x7e,0x4e); + +/***************************************************************************** + * BackgroundCopyManager1_5 coclass + */ + +DEFINE_GUID(CLSID_BackgroundCopyManager1_5, 0xf087771f, 0xd74f, 0x4c1a, 0xbb,0x8a, 0xe1,0x6a,0xca,0x91,0x24,0xea); + #ifdef __cplusplus - class BackgroundCopyManager1_5; +class DECLSPEC_UUID("f087771f-d74f-4c1a-bb8a-e16aca9124ea") BackgroundCopyManager1_5; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(BackgroundCopyManager1_5, 0xf087771f, 0xd74f, 0x4c1a, 0xbb,0x8a, 0xe1,0x6a,0xca,0x91,0x24,0xea) +#endif #endif + +#ifndef __IBackgroundCopyCallback_FWD_DEFINED__ +#define __IBackgroundCopyCallback_FWD_DEFINED__ +typedef interface IBackgroundCopyCallback IBackgroundCopyCallback; +#ifdef __cplusplus +interface IBackgroundCopyCallback; +#endif /* __cplusplus */ #endif +#ifndef __IBackgroundCopyJob2_FWD_DEFINED__ +#define __IBackgroundCopyJob2_FWD_DEFINED__ +typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2; +#ifdef __cplusplus +interface IBackgroundCopyJob2; +#endif /* __cplusplus */ +#endif + +#endif /* __BackgroundCopyManager1_5_LIBRARY_DEFINED__ */ #include "bits2_0.h" +/* Begin additional prototypes for all interfaces */ + - extern RPC_IF_HANDLE __MIDL_itf_bits1_5_0124_v0_0_c_ifspec; - extern RPC_IF_HANDLE __MIDL_itf_bits1_5_0124_v0_0_s_ifspec; +/* End additional prototypes */ #ifdef __cplusplus } #endif -#endif + +#endif /* __bits1_5_h__ */ diff --git a/lib/libc/include/any-windows-any/bits2_0.h b/lib/libc/include/any-windows-any/bits2_0.h index a9364cf85b..21e851338c 100644 --- a/lib/libc/include/any-windows-any/bits2_0.h +++ b/lib/libc/include/any-windows-any/bits2_0.h @@ -1,34 +1,37 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ +/*** Autogenerated by WIDL 7.0 from include/bits2_0.idl - Do not edit ***/ + +#ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of <rpcndr.h> +#include <rpc.h> +#include <rpcndr.h> #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include <windows.h> +#include <ole2.h> #endif #ifndef __bits2_0_h__ #define __bits2_0_h__ + +/* Forward declarations */ + #ifndef __IBackgroundCopyJob3_FWD_DEFINED__ #define __IBackgroundCopyJob3_FWD_DEFINED__ -typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3; +typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3; +#ifdef __cplusplus +interface IBackgroundCopyJob3; +#endif /* __cplusplus */ #endif #ifndef __IBackgroundCopyFile2_FWD_DEFINED__ #define __IBackgroundCopyFile2_FWD_DEFINED__ -typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2; +typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2; +#ifdef __cplusplus +interface IBackgroundCopyFile2; +#endif /* __cplusplus */ #endif #ifndef __BackgroundCopyManager2_0_FWD_DEFINED__ @@ -37,220 +40,648 @@ typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2; typedef class BackgroundCopyManager2_0 BackgroundCopyManager2_0; #else typedef struct BackgroundCopyManager2_0 BackgroundCopyManager2_0; -#endif -#endif +#endif /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager2_0_FWD_DEFINED__ */ -#ifndef __IBackgroundCopyJob3_FWD_DEFINED__ -#define __IBackgroundCopyJob3_FWD_DEFINED__ -typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3; -#endif +/* Headers for imported files */ -#include "bits.h" -#include "bits1_5.h" +#include <bits.h> +#include <bits1_5.h> #ifdef __cplusplus -extern "C"{ -#endif - -#ifndef __MIDL_user_allocate_free_DEFINED__ -#define __MIDL_user_allocate_free_DEFINED__ - void *__RPC_API MIDL_user_allocate(size_t); - void __RPC_API MIDL_user_free(void *); +extern "C" { #endif +#define BG_COPY_FILE_OWNER 1 +#define BG_COPY_FILE_GROUP 2 +#define BG_COPY_FILE_DACL 4 +#define BG_COPY_FILE_SACL 8 +#define BG_COPY_FILE_ALL 15 #define BG_LENGTH_TO_EOF (UINT64)(-1) - typedef struct _BG_FILE_RANGE { +#ifndef _BG_FILE_RANGE_DEFINED +#define _BG_FILE_RANGE_DEFINED +typedef struct _BG_FILE_RANGE { UINT64 InitialOffset; UINT64 Length; - } BG_FILE_RANGE; - -#define BG_COPY_FILE_OWNER 1 -#define BG_COPY_FILE_GROUP 2 -#define BG_COPY_FILE_DACL 4 -#define BG_COPY_FILE_SACL 8 -#define BG_COPY_FILE_ALL 15 - - extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_c_ifspec; - extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_s_ifspec; - +} BG_FILE_RANGE; +#endif +/***************************************************************************** + * IBackgroundCopyJob3 interface + */ #ifndef __IBackgroundCopyJob3_INTERFACE_DEFINED__ #define __IBackgroundCopyJob3_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IBackgroundCopyJob3; + +DEFINE_GUID(IID_IBackgroundCopyJob3, 0x443c8934, 0x90ff, 0x48ed, 0xbc,0xde, 0x26,0xf5,0xc7,0x45,0x00,0x42); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyJob3 : public IBackgroundCopyJob2 { - public: - virtual HRESULT WINAPI ReplaceRemotePrefix(LPCWSTR OldPrefix,LPCWSTR NewPrefix) = 0; - virtual HRESULT WINAPI AddFileWithRanges(LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) = 0; - virtual HRESULT WINAPI SetFileACLFlags(DWORD Flags) = 0; - virtual HRESULT WINAPI GetFileACLFlags(DWORD *Flags) = 0; - }; +MIDL_INTERFACE("443c8934-90ff-48ed-bcde-26f5c7450042") +IBackgroundCopyJob3 : public IBackgroundCopyJob2 +{ + virtual HRESULT STDMETHODCALLTYPE ReplaceRemotePrefix( + LPCWSTR OldPrefix, + LPCWSTR NewPrefix) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFileWithRanges( + LPCWSTR RemoteUrl, + LPCWSTR LocalName, + DWORD RangeCount, + BG_FILE_RANGE Ranges[]) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFileACLFlags( + DWORD Flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileACLFlags( + DWORD *Flags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJob3, 0x443c8934, 0x90ff, 0x48ed, 0xbc,0xde, 0x26,0xf5,0xc7,0x45,0x00,0x42) +#endif #else - typedef struct IBackgroundCopyJob3Vtbl { +typedef struct IBackgroundCopyJob3Vtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob3 *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyJob3 *This); - ULONG (WINAPI *Release)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob3 *This,ULONG cFileCount,BG_FILE_INFO *pFileSet); - HRESULT (WINAPI *AddFile)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName); - HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob3 *This,IEnumBackgroundCopyFiles **pEnum); - HRESULT (WINAPI *Suspend)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *Resume)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *Cancel)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *Complete)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *GetId)(IBackgroundCopyJob3 *This,GUID *pVal); - HRESULT (WINAPI *GetType)(IBackgroundCopyJob3 *This,BG_JOB_TYPE *pVal); - HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob3 *This,BG_JOB_PROGRESS *pVal); - HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob3 *This,BG_JOB_TIMES *pVal); - HRESULT (WINAPI *GetState)(IBackgroundCopyJob3 *This,BG_JOB_STATE *pVal); - HRESULT (WINAPI *GetError)(IBackgroundCopyJob3 *This,IBackgroundCopyError **ppError); - HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob3 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob3 *This,LPCWSTR Val); - HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob3 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob3 *This,LPCWSTR Val); - HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob3 *This,LPWSTR *pVal); - HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY Val); - HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY *pVal); - HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG Val); - HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG *pVal); - HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown *Val); - HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown **pVal); - HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG Seconds); - HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG *Seconds); - HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG Seconds); - HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG *Seconds); - HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob3 *This,ULONG *Errors); - HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList); - HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList); - HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob3 *This); - HRESULT (WINAPI *SetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPCWSTR Program,LPCWSTR Parameters); - HRESULT (WINAPI *GetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPWSTR *pProgram,LPWSTR *pParameters); - HRESULT (WINAPI *GetReplyProgress)(IBackgroundCopyJob3 *This,BG_JOB_REPLY_PROGRESS *pProgress); - HRESULT (WINAPI *GetReplyData)(IBackgroundCopyJob3 *This,byte **ppBuffer,UINT64 *pLength); - HRESULT (WINAPI *SetReplyFileName)(IBackgroundCopyJob3 *This,LPCWSTR ReplyFileName); - HRESULT (WINAPI *GetReplyFileName)(IBackgroundCopyJob3 *This,LPWSTR *pReplyFileName); - HRESULT (WINAPI *SetCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_CREDENTIALS *credentials); - HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme); - HRESULT (WINAPI *ReplaceRemotePrefix)(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix); - HRESULT (WINAPI *AddFileWithRanges)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]); - HRESULT (WINAPI *SetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD Flags); - HRESULT (WINAPI *GetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD *Flags); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJob3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJob3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJob3 *This); + + /*** IBackgroundCopyJob methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFileSet)( + IBackgroundCopyJob3 *This, + ULONG cFileCount, + BG_FILE_INFO *pFileSet); + + HRESULT (STDMETHODCALLTYPE *AddFile)( + IBackgroundCopyJob3 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName); + + HRESULT (STDMETHODCALLTYPE *EnumFiles)( + IBackgroundCopyJob3 *This, + IEnumBackgroundCopyFiles **pEnum); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBackgroundCopyJob3 *This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBackgroundCopyJob3 *This); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + IBackgroundCopyJob3 *This); + + HRESULT (STDMETHODCALLTYPE *Complete)( + IBackgroundCopyJob3 *This); + + HRESULT (STDMETHODCALLTYPE *GetId)( + IBackgroundCopyJob3 *This, + GUID *pVal); + + HRESULT (STDMETHODCALLTYPE *GetType)( + IBackgroundCopyJob3 *This, + BG_JOB_TYPE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyJob3 *This, + BG_JOB_PROGRESS *pVal); + + HRESULT (STDMETHODCALLTYPE *GetTimes)( + IBackgroundCopyJob3 *This, + BG_JOB_TIMES *pVal); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IBackgroundCopyJob3 *This, + BG_JOB_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyJob3 *This, + IBackgroundCopyError **ppError); + + HRESULT (STDMETHODCALLTYPE *GetOwner)( + IBackgroundCopyJob3 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDisplayName)( + IBackgroundCopyJob3 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IBackgroundCopyJob3 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IBackgroundCopyJob3 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IBackgroundCopyJob3 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBackgroundCopyJob3 *This, + BG_JOB_PRIORITY Val); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBackgroundCopyJob3 *This, + BG_JOB_PRIORITY *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)( + IBackgroundCopyJob3 *This, + ULONG Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)( + IBackgroundCopyJob3 *This, + ULONG *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)( + IBackgroundCopyJob3 *This, + IUnknown *Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)( + IBackgroundCopyJob3 *This, + IUnknown **pVal); + + HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)( + IBackgroundCopyJob3 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)( + IBackgroundCopyJob3 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)( + IBackgroundCopyJob3 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)( + IBackgroundCopyJob3 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *GetErrorCount)( + IBackgroundCopyJob3 *This, + ULONG *Errors); + + HRESULT (STDMETHODCALLTYPE *SetProxySettings)( + IBackgroundCopyJob3 *This, + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *GetProxySettings)( + IBackgroundCopyJob3 *This, + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *TakeOwnership)( + IBackgroundCopyJob3 *This); + + /*** IBackgroundCopyJob2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)( + IBackgroundCopyJob3 *This, + LPCWSTR prog, + LPCWSTR params); + + HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)( + IBackgroundCopyJob3 *This, + LPWSTR *prog, + LPWSTR *params); + + HRESULT (STDMETHODCALLTYPE *GetReplyProgress)( + IBackgroundCopyJob3 *This, + BG_JOB_REPLY_PROGRESS *progress); + + HRESULT (STDMETHODCALLTYPE *GetReplyData)( + IBackgroundCopyJob3 *This, + byte **pBuffer, + UINT64 *pLength); + + HRESULT (STDMETHODCALLTYPE *SetReplyFileName)( + IBackgroundCopyJob3 *This, + LPCWSTR filename); + + HRESULT (STDMETHODCALLTYPE *GetReplyFileName)( + IBackgroundCopyJob3 *This, + LPWSTR *pFilename); + + HRESULT (STDMETHODCALLTYPE *SetCredentials)( + IBackgroundCopyJob3 *This, + BG_AUTH_CREDENTIALS *cred); + + HRESULT (STDMETHODCALLTYPE *RemoveCredentials)( + IBackgroundCopyJob3 *This, + BG_AUTH_TARGET target, + BG_AUTH_SCHEME scheme); + + /*** IBackgroundCopyJob3 methods ***/ + HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)( + IBackgroundCopyJob3 *This, + LPCWSTR OldPrefix, + LPCWSTR NewPrefix); + + HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)( + IBackgroundCopyJob3 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName, + DWORD RangeCount, + BG_FILE_RANGE Ranges[]); + + HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)( + IBackgroundCopyJob3 *This, + DWORD Flags); + + HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)( + IBackgroundCopyJob3 *This, + DWORD *Flags); + END_INTERFACE - } IBackgroundCopyJob3Vtbl; - struct IBackgroundCopyJob3 { - CONST_VTBL struct IBackgroundCopyJob3Vtbl *lpVtbl; - }; +} IBackgroundCopyJob3Vtbl; + +interface IBackgroundCopyJob3 { + CONST_VTBL IBackgroundCopyJob3Vtbl* lpVtbl; +}; + #ifdef COBJMACROS -#define IBackgroundCopyJob3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) -#define IBackgroundCopyJob3_AddRef(This) (This)->lpVtbl -> AddRef(This) -#define IBackgroundCopyJob3_Release(This) (This)->lpVtbl -> Release(This) -#define IBackgroundCopyJob3_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl -> AddFileSet(This,cFileCount,pFileSet) -#define IBackgroundCopyJob3_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl -> AddFile(This,RemoteUrl,LocalName) -#define IBackgroundCopyJob3_EnumFiles(This,pEnum) (This)->lpVtbl -> EnumFiles(This,pEnum) -#define IBackgroundCopyJob3_Suspend(This) (This)->lpVtbl -> Suspend(This) -#define IBackgroundCopyJob3_Resume(This) (This)->lpVtbl -> Resume(This) -#define IBackgroundCopyJob3_Cancel(This) (This)->lpVtbl -> Cancel(This) -#define IBackgroundCopyJob3_Complete(This) (This)->lpVtbl -> Complete(This) -#define IBackgroundCopyJob3_GetId(This,pVal) (This)->lpVtbl -> GetId(This,pVal) -#define IBackgroundCopyJob3_GetType(This,pVal) (This)->lpVtbl -> GetType(This,pVal) -#define IBackgroundCopyJob3_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal) -#define IBackgroundCopyJob3_GetTimes(This,pVal) (This)->lpVtbl -> GetTimes(This,pVal) -#define IBackgroundCopyJob3_GetState(This,pVal) (This)->lpVtbl -> GetState(This,pVal) -#define IBackgroundCopyJob3_GetError(This,ppError) (This)->lpVtbl -> GetError(This,ppError) -#define IBackgroundCopyJob3_GetOwner(This,pVal) (This)->lpVtbl -> GetOwner(This,pVal) -#define IBackgroundCopyJob3_SetDisplayName(This,Val) (This)->lpVtbl -> SetDisplayName(This,Val) -#define IBackgroundCopyJob3_GetDisplayName(This,pVal) (This)->lpVtbl -> GetDisplayName(This,pVal) -#define IBackgroundCopyJob3_SetDescription(This,Val) (This)->lpVtbl -> SetDescription(This,Val) -#define IBackgroundCopyJob3_GetDescription(This,pVal) (This)->lpVtbl -> GetDescription(This,pVal) -#define IBackgroundCopyJob3_SetPriority(This,Val) (This)->lpVtbl -> SetPriority(This,Val) -#define IBackgroundCopyJob3_GetPriority(This,pVal) (This)->lpVtbl -> GetPriority(This,pVal) -#define IBackgroundCopyJob3_SetNotifyFlags(This,Val) (This)->lpVtbl -> SetNotifyFlags(This,Val) -#define IBackgroundCopyJob3_GetNotifyFlags(This,pVal) (This)->lpVtbl -> GetNotifyFlags(This,pVal) -#define IBackgroundCopyJob3_SetNotifyInterface(This,Val) (This)->lpVtbl -> SetNotifyInterface(This,Val) -#define IBackgroundCopyJob3_GetNotifyInterface(This,pVal) (This)->lpVtbl -> GetNotifyInterface(This,pVal) -#define IBackgroundCopyJob3_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> SetMinimumRetryDelay(This,Seconds) -#define IBackgroundCopyJob3_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> GetMinimumRetryDelay(This,Seconds) -#define IBackgroundCopyJob3_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> SetNoProgressTimeout(This,Seconds) -#define IBackgroundCopyJob3_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> GetNoProgressTimeout(This,Seconds) -#define IBackgroundCopyJob3_GetErrorCount(This,Errors) (This)->lpVtbl -> GetErrorCount(This,Errors) -#define IBackgroundCopyJob3_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl -> SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) -#define IBackgroundCopyJob3_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl -> GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) -#define IBackgroundCopyJob3_TakeOwnership(This) (This)->lpVtbl -> TakeOwnership(This) -#define IBackgroundCopyJob3_SetNotifyCmdLine(This,Program,Parameters) (This)->lpVtbl -> SetNotifyCmdLine(This,Program,Parameters) -#define IBackgroundCopyJob3_GetNotifyCmdLine(This,pProgram,pParameters) (This)->lpVtbl -> GetNotifyCmdLine(This,pProgram,pParameters) -#define IBackgroundCopyJob3_GetReplyProgress(This,pProgress) (This)->lpVtbl -> GetReplyProgress(This,pProgress) -#define IBackgroundCopyJob3_GetReplyData(This,ppBuffer,pLength) (This)->lpVtbl -> GetReplyData(This,ppBuffer,pLength) -#define IBackgroundCopyJob3_SetReplyFileName(This,ReplyFileName) (This)->lpVtbl -> SetReplyFileName(This,ReplyFileName) -#define IBackgroundCopyJob3_GetReplyFileName(This,pReplyFileName) (This)->lpVtbl -> GetReplyFileName(This,pReplyFileName) -#define IBackgroundCopyJob3_SetCredentials(This,credentials) (This)->lpVtbl -> SetCredentials(This,credentials) -#define IBackgroundCopyJob3_RemoveCredentials(This,Target,Scheme) (This)->lpVtbl -> RemoveCredentials(This,Target,Scheme) -#define IBackgroundCopyJob3_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl -> ReplaceRemotePrefix(This,OldPrefix,NewPrefix) -#define IBackgroundCopyJob3_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl -> AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) -#define IBackgroundCopyJob3_SetFileACLFlags(This,Flags) (This)->lpVtbl -> SetFileACLFlags(This,Flags) -#define IBackgroundCopyJob3_GetFileACLFlags(This,Flags) (This)->lpVtbl -> GetFileACLFlags(This,Flags) +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyJob3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyJob3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyJob3_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJob methods ***/ +#define IBackgroundCopyJob3_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet) +#define IBackgroundCopyJob3_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName) +#define IBackgroundCopyJob3_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum) +#define IBackgroundCopyJob3_Suspend(This) (This)->lpVtbl->Suspend(This) +#define IBackgroundCopyJob3_Resume(This) (This)->lpVtbl->Resume(This) +#define IBackgroundCopyJob3_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IBackgroundCopyJob3_Complete(This) (This)->lpVtbl->Complete(This) +#define IBackgroundCopyJob3_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal) +#define IBackgroundCopyJob3_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal) +#define IBackgroundCopyJob3_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal) +#define IBackgroundCopyJob3_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal) +#define IBackgroundCopyJob3_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal) +#define IBackgroundCopyJob3_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError) +#define IBackgroundCopyJob3_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal) +#define IBackgroundCopyJob3_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val) +#define IBackgroundCopyJob3_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal) +#define IBackgroundCopyJob3_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val) +#define IBackgroundCopyJob3_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal) +#define IBackgroundCopyJob3_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val) +#define IBackgroundCopyJob3_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal) +#define IBackgroundCopyJob3_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val) +#define IBackgroundCopyJob3_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal) +#define IBackgroundCopyJob3_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val) +#define IBackgroundCopyJob3_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal) +#define IBackgroundCopyJob3_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob3_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob3_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob3_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob3_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors) +#define IBackgroundCopyJob3_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) +#define IBackgroundCopyJob3_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) +#define IBackgroundCopyJob3_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This) +/*** IBackgroundCopyJob2 methods ***/ +#define IBackgroundCopyJob3_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob3_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob3_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress) +#define IBackgroundCopyJob3_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength) +#define IBackgroundCopyJob3_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename) +#define IBackgroundCopyJob3_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename) +#define IBackgroundCopyJob3_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred) +#define IBackgroundCopyJob3_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme) +/*** IBackgroundCopyJob3 methods ***/ +#define IBackgroundCopyJob3_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix) +#define IBackgroundCopyJob3_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) +#define IBackgroundCopyJob3_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags) +#define IBackgroundCopyJob3_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob3_QueryInterface(IBackgroundCopyJob3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJob3_AddRef(IBackgroundCopyJob3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJob3_Release(IBackgroundCopyJob3* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJob methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFileSet(IBackgroundCopyJob3* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) { + return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFile(IBackgroundCopyJob3* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) { + return This->lpVtbl->AddFile(This,RemoteUrl,LocalName); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_EnumFiles(IBackgroundCopyJob3* This,IEnumBackgroundCopyFiles **pEnum) { + return This->lpVtbl->EnumFiles(This,pEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_Suspend(IBackgroundCopyJob3* This) { + return This->lpVtbl->Suspend(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_Resume(IBackgroundCopyJob3* This) { + return This->lpVtbl->Resume(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_Cancel(IBackgroundCopyJob3* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_Complete(IBackgroundCopyJob3* This) { + return This->lpVtbl->Complete(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetId(IBackgroundCopyJob3* This,GUID *pVal) { + return This->lpVtbl->GetId(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetType(IBackgroundCopyJob3* This,BG_JOB_TYPE *pVal) { + return This->lpVtbl->GetType(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetProgress(IBackgroundCopyJob3* This,BG_JOB_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetTimes(IBackgroundCopyJob3* This,BG_JOB_TIMES *pVal) { + return This->lpVtbl->GetTimes(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetState(IBackgroundCopyJob3* This,BG_JOB_STATE *pVal) { + return This->lpVtbl->GetState(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetError(IBackgroundCopyJob3* This,IBackgroundCopyError **ppError) { + return This->lpVtbl->GetError(This,ppError); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetOwner(IBackgroundCopyJob3* This,LPWSTR *pVal) { + return This->lpVtbl->GetOwner(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetDisplayName(IBackgroundCopyJob3* This,LPCWSTR Val) { + return This->lpVtbl->SetDisplayName(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetDisplayName(IBackgroundCopyJob3* This,LPWSTR *pVal) { + return This->lpVtbl->GetDisplayName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetDescription(IBackgroundCopyJob3* This,LPCWSTR Val) { + return This->lpVtbl->SetDescription(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetDescription(IBackgroundCopyJob3* This,LPWSTR *pVal) { + return This->lpVtbl->GetDescription(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetPriority(IBackgroundCopyJob3* This,BG_JOB_PRIORITY Val) { + return This->lpVtbl->SetPriority(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetPriority(IBackgroundCopyJob3* This,BG_JOB_PRIORITY *pVal) { + return This->lpVtbl->GetPriority(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyFlags(IBackgroundCopyJob3* This,ULONG Val) { + return This->lpVtbl->SetNotifyFlags(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyFlags(IBackgroundCopyJob3* This,ULONG *pVal) { + return This->lpVtbl->GetNotifyFlags(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyInterface(IBackgroundCopyJob3* This,IUnknown *Val) { + return This->lpVtbl->SetNotifyInterface(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyInterface(IBackgroundCopyJob3* This,IUnknown **pVal) { + return This->lpVtbl->GetNotifyInterface(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetMinimumRetryDelay(IBackgroundCopyJob3* This,ULONG Seconds) { + return This->lpVtbl->SetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetMinimumRetryDelay(IBackgroundCopyJob3* This,ULONG *Seconds) { + return This->lpVtbl->GetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNoProgressTimeout(IBackgroundCopyJob3* This,ULONG Seconds) { + return This->lpVtbl->SetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNoProgressTimeout(IBackgroundCopyJob3* This,ULONG *Seconds) { + return This->lpVtbl->GetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetErrorCount(IBackgroundCopyJob3* This,ULONG *Errors) { + return This->lpVtbl->GetErrorCount(This,Errors); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetProxySettings(IBackgroundCopyJob3* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) { + return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetProxySettings(IBackgroundCopyJob3* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) { + return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_TakeOwnership(IBackgroundCopyJob3* This) { + return This->lpVtbl->TakeOwnership(This); +} +/*** IBackgroundCopyJob2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyCmdLine(IBackgroundCopyJob3* This,LPCWSTR prog,LPCWSTR params) { + return This->lpVtbl->SetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyCmdLine(IBackgroundCopyJob3* This,LPWSTR *prog,LPWSTR *params) { + return This->lpVtbl->GetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyProgress(IBackgroundCopyJob3* This,BG_JOB_REPLY_PROGRESS *progress) { + return This->lpVtbl->GetReplyProgress(This,progress); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyData(IBackgroundCopyJob3* This,byte **pBuffer,UINT64 *pLength) { + return This->lpVtbl->GetReplyData(This,pBuffer,pLength); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetReplyFileName(IBackgroundCopyJob3* This,LPCWSTR filename) { + return This->lpVtbl->SetReplyFileName(This,filename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyFileName(IBackgroundCopyJob3* This,LPWSTR *pFilename) { + return This->lpVtbl->GetReplyFileName(This,pFilename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetCredentials(IBackgroundCopyJob3* This,BG_AUTH_CREDENTIALS *cred) { + return This->lpVtbl->SetCredentials(This,cred); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_RemoveCredentials(IBackgroundCopyJob3* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) { + return This->lpVtbl->RemoveCredentials(This,target,scheme); +} +/*** IBackgroundCopyJob3 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob3_ReplaceRemotePrefix(IBackgroundCopyJob3* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) { + return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFileWithRanges(IBackgroundCopyJob3* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) { + return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_SetFileACLFlags(IBackgroundCopyJob3* This,DWORD Flags) { + return This->lpVtbl->SetFileACLFlags(This,Flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob3_GetFileACLFlags(IBackgroundCopyJob3* This,DWORD *Flags) { + return This->lpVtbl->GetFileACLFlags(This,Flags); +} #endif #endif - HRESULT WINAPI IBackgroundCopyJob3_ReplaceRemotePrefix_Proxy(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix); - void __RPC_STUB IBackgroundCopyJob3_ReplaceRemotePrefix_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob3_AddFileWithRanges_Proxy(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]); - void __RPC_STUB IBackgroundCopyJob3_AddFileWithRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob3_SetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD Flags); - void __RPC_STUB IBackgroundCopyJob3_SetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyJob3_GetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD *Flags); - void __RPC_STUB IBackgroundCopyJob3_GetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyJob3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyFile2 interface + */ #ifndef __IBackgroundCopyFile2_INTERFACE_DEFINED__ #define __IBackgroundCopyFile2_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IBackgroundCopyFile2; + +DEFINE_GUID(IID_IBackgroundCopyFile2, 0x83e81b93, 0x0873, 0x474d, 0x8a,0x8c, 0xf2,0x01,0x8b,0x1a,0x93,0x9c); #if defined(__cplusplus) && !defined(CINTERFACE) - struct IBackgroundCopyFile2 : public IBackgroundCopyFile { - public: - virtual HRESULT WINAPI GetFileRanges(DWORD *RangeCount,BG_FILE_RANGE **Ranges) = 0; - virtual HRESULT WINAPI SetRemoteName(LPCWSTR Val) = 0; - }; +MIDL_INTERFACE("83e81b93-0873-474d-8a8c-f2018b1a939c") +IBackgroundCopyFile2 : public IBackgroundCopyFile +{ + virtual HRESULT STDMETHODCALLTYPE GetFileRanges( + DWORD *RangeCount, + BG_FILE_RANGE **Ranges) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRemoteName( + LPCWSTR Val) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyFile2, 0x83e81b93, 0x0873, 0x474d, 0x8a,0x8c, 0xf2,0x01,0x8b,0x1a,0x93,0x9c) +#endif #else - typedef struct IBackgroundCopyFile2Vtbl { +typedef struct IBackgroundCopyFile2Vtbl { BEGIN_INTERFACE - HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile2 *This,REFIID riid,void **ppvObject); - ULONG (WINAPI *AddRef)(IBackgroundCopyFile2 *This); - ULONG (WINAPI *Release)(IBackgroundCopyFile2 *This); - HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile2 *This,LPWSTR *pVal); - HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile2 *This,LPWSTR *pVal); - HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile2 *This,BG_FILE_PROGRESS *pVal); - HRESULT (WINAPI *GetFileRanges)(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges); - HRESULT (WINAPI *SetRemoteName)(IBackgroundCopyFile2 *This,LPCWSTR Val); + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyFile2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyFile2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyFile2 *This); + + /*** IBackgroundCopyFile methods ***/ + HRESULT (STDMETHODCALLTYPE *GetRemoteName)( + IBackgroundCopyFile2 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *GetLocalName)( + IBackgroundCopyFile2 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyFile2 *This, + BG_FILE_PROGRESS *pVal); + + /*** IBackgroundCopyFile2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFileRanges)( + IBackgroundCopyFile2 *This, + DWORD *RangeCount, + BG_FILE_RANGE **Ranges); + + HRESULT (STDMETHODCALLTYPE *SetRemoteName)( + IBackgroundCopyFile2 *This, + LPCWSTR Val); + END_INTERFACE - } IBackgroundCopyFile2Vtbl; - struct IBackgroundCopyFile2 { - CONST_VTBL struct IBackgroundCopyFile2Vtbl *lpVtbl; - }; +} IBackgroundCopyFile2Vtbl; + +interface IBackgroundCopyFile2 { + CONST_VTBL IBackgroundCopyFile2Vtbl* lpVtbl; +}; + #ifdef COBJMACROS -#define IBackgroundCopyFile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) -#define IBackgroundCopyFile2_AddRef(This) (This)->lpVtbl -> AddRef(This) -#define IBackgroundCopyFile2_Release(This) (This)->lpVtbl -> Release(This) -#define IBackgroundCopyFile2_GetRemoteName(This,pVal) (This)->lpVtbl -> GetRemoteName(This,pVal) -#define IBackgroundCopyFile2_GetLocalName(This,pVal) (This)->lpVtbl -> GetLocalName(This,pVal) -#define IBackgroundCopyFile2_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal) -#define IBackgroundCopyFile2_GetFileRanges(This,RangeCount,Ranges) (This)->lpVtbl -> GetFileRanges(This,RangeCount,Ranges) -#define IBackgroundCopyFile2_SetRemoteName(This,Val) (This)->lpVtbl -> SetRemoteName(This,Val) +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyFile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyFile2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyFile2_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyFile methods ***/ +#define IBackgroundCopyFile2_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal) +#define IBackgroundCopyFile2_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal) +#define IBackgroundCopyFile2_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal) +/*** IBackgroundCopyFile2 methods ***/ +#define IBackgroundCopyFile2_GetFileRanges(This,RangeCount,Ranges) (This)->lpVtbl->GetFileRanges(This,RangeCount,Ranges) +#define IBackgroundCopyFile2_SetRemoteName(This,Val) (This)->lpVtbl->SetRemoteName(This,Val) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyFile2_QueryInterface(IBackgroundCopyFile2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyFile2_AddRef(IBackgroundCopyFile2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyFile2_Release(IBackgroundCopyFile2* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyFile methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyFile2_GetRemoteName(IBackgroundCopyFile2* This,LPWSTR *pVal) { + return This->lpVtbl->GetRemoteName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyFile2_GetLocalName(IBackgroundCopyFile2* This,LPWSTR *pVal) { + return This->lpVtbl->GetLocalName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyFile2_GetProgress(IBackgroundCopyFile2* This,BG_FILE_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +/*** IBackgroundCopyFile2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyFile2_GetFileRanges(IBackgroundCopyFile2* This,DWORD *RangeCount,BG_FILE_RANGE **Ranges) { + return This->lpVtbl->GetFileRanges(This,RangeCount,Ranges); +} +static FORCEINLINE HRESULT IBackgroundCopyFile2_SetRemoteName(IBackgroundCopyFile2* This,LPCWSTR Val) { + return This->lpVtbl->SetRemoteName(This,Val); +} #endif #endif - HRESULT WINAPI IBackgroundCopyFile2_GetFileRanges_Proxy(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges); - void __RPC_STUB IBackgroundCopyFile2_GetFileRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); - HRESULT WINAPI IBackgroundCopyFile2_SetRemoteName_Proxy(IBackgroundCopyFile2 *This,LPCWSTR Val); - void __RPC_STUB IBackgroundCopyFile2_SetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); + #endif + +#endif /* __IBackgroundCopyFile2_INTERFACE_DEFINED__ */ + #ifndef __BackgroundCopyManager2_0_LIBRARY_DEFINED__ #define __BackgroundCopyManager2_0_LIBRARY_DEFINED__ - EXTERN_C const IID LIBID_BackgroundCopyManager2_0; - EXTERN_C const CLSID CLSID_BackgroundCopyManager2_0; + +DEFINE_GUID(LIBID_BackgroundCopyManager2_0, 0x2289a9af, 0xdc96, 0x486e, 0xb2,0x68, 0x89,0xc9,0xe3,0x39,0x7c,0x3d); + +/***************************************************************************** + * BackgroundCopyManager2_0 coclass + */ + +DEFINE_GUID(CLSID_BackgroundCopyManager2_0, 0x6d18ad12, 0xbde3, 0x4393, 0xb3,0x11, 0x09,0x9c,0x34,0x6e,0x6d,0xf9); + #ifdef __cplusplus - class BackgroundCopyManager2_0; +class DECLSPEC_UUID("6d18ad12-bde3-4393-b311-099c346e6df9") BackgroundCopyManager2_0; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(BackgroundCopyManager2_0, 0x6d18ad12, 0xbde3, 0x4393, 0xb3,0x11, 0x09,0x9c,0x34,0x6e,0x6d,0xf9) #endif #endif +#ifndef __IBackgroundCopyCallback_FWD_DEFINED__ +#define __IBackgroundCopyCallback_FWD_DEFINED__ +typedef interface IBackgroundCopyCallback IBackgroundCopyCallback; #ifdef __cplusplus -} +interface IBackgroundCopyCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBackgroundCopyJob3_FWD_DEFINED__ +#define __IBackgroundCopyJob3_FWD_DEFINED__ +typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3; +#ifdef __cplusplus +interface IBackgroundCopyJob3; +#endif /* __cplusplus */ +#endif + +#ifndef __IBackgroundCopyFile2_FWD_DEFINED__ +#define __IBackgroundCopyFile2_FWD_DEFINED__ +typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2; +#ifdef __cplusplus +interface IBackgroundCopyFile2; +#endif /* __cplusplus */ #endif + +#endif /* __BackgroundCopyManager2_0_LIBRARY_DEFINED__ */ +#include "bits2_5.h" +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} #endif + +#endif /* __bits2_0_h__ */ diff --git a/lib/libc/include/any-windows-any/bits2_5.h b/lib/libc/include/any-windows-any/bits2_5.h new file mode 100644 index 0000000000..a32e20d7e8 --- /dev/null +++ b/lib/libc/include/any-windows-any/bits2_5.h @@ -0,0 +1,270 @@ +/*** Autogenerated by WIDL 7.0 from include/bits2_5.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __bits2_5_h__ +#define __bits2_5_h__ + +/* Forward declarations */ + +#ifndef __IBackgroundCopyJobHttpOptions_FWD_DEFINED__ +#define __IBackgroundCopyJobHttpOptions_FWD_DEFINED__ +typedef interface IBackgroundCopyJobHttpOptions IBackgroundCopyJobHttpOptions; +#ifdef __cplusplus +interface IBackgroundCopyJobHttpOptions; +#endif /* __cplusplus */ +#endif + +#ifndef __BackgroundCopyManager2_5_FWD_DEFINED__ +#define __BackgroundCopyManager2_5_FWD_DEFINED__ +#ifdef __cplusplus +typedef class BackgroundCopyManager2_5 BackgroundCopyManager2_5; +#else +typedef struct BackgroundCopyManager2_5 BackgroundCopyManager2_5; +#endif /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager2_5_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <bits.h> +#include <bits1_5.h> +#include <bits2_0.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************** + * IBackgroundCopyJobHttpOptions interface + */ +#ifndef __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__ +#define __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__ + +typedef enum __WIDL_bits2_5_generated_name_00000016 { + BG_CERT_STORE_LOCATION_CURRENT_USER = 0, + BG_CERT_STORE_LOCATION_LOCAL_MACHINE = 1, + BG_CERT_STORE_LOCATION_CURRENT_SERVICE = 2, + BG_CERT_STORE_LOCATION_SERVICES = 3, + BG_CERT_STORE_LOCATION_USERS = 4, + BG_CERT_STORE_LOCATION_CURRENT_USER_GROUP_POLICY = 5, + BG_CERT_STORE_LOCATION_LOCAL_MACHINE_GROUP_POLICY = 6, + BG_CERT_STORE_LOCATION_LOCAL_MACHINE_ENTERPRISE = 7 +} BG_CERT_STORE_LOCATION; +DEFINE_GUID(IID_IBackgroundCopyJobHttpOptions, 0xf1bd1079, 0x9f01, 0x4bdc, 0x80,0x36, 0xf0,0x9b,0x70,0x09,0x50,0x66); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f1bd1079-9f01-4bdc-8036-f09b70095066") +IBackgroundCopyJobHttpOptions : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetClientCertificateByID( + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + BYTE *pCertHashBlob) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetClientCertificateByName( + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + LPCWSTR SubjectName) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveClientCertificate( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClientCertificate( + BG_CERT_STORE_LOCATION *pStoreLocation, + LPWSTR *pStoreName, + BYTE **ppCertHashBlob, + LPWSTR *pSubjectName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCustomHeaders( + LPCWSTR RequestHeaders) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCustomHeaders( + LPWSTR *pRequestHeaders) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSecurityFlags( + ULONG Flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSecurityFlags( + ULONG *pFlags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJobHttpOptions, 0xf1bd1079, 0x9f01, 0x4bdc, 0x80,0x36, 0xf0,0x9b,0x70,0x09,0x50,0x66) +#endif +#else +typedef struct IBackgroundCopyJobHttpOptionsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJobHttpOptions *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJobHttpOptions *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJobHttpOptions *This); + + /*** IBackgroundCopyJobHttpOptions methods ***/ + HRESULT (STDMETHODCALLTYPE *SetClientCertificateByID)( + IBackgroundCopyJobHttpOptions *This, + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + BYTE *pCertHashBlob); + + HRESULT (STDMETHODCALLTYPE *SetClientCertificateByName)( + IBackgroundCopyJobHttpOptions *This, + BG_CERT_STORE_LOCATION StoreLocation, + LPCWSTR StoreName, + LPCWSTR SubjectName); + + HRESULT (STDMETHODCALLTYPE *RemoveClientCertificate)( + IBackgroundCopyJobHttpOptions *This); + + HRESULT (STDMETHODCALLTYPE *GetClientCertificate)( + IBackgroundCopyJobHttpOptions *This, + BG_CERT_STORE_LOCATION *pStoreLocation, + LPWSTR *pStoreName, + BYTE **ppCertHashBlob, + LPWSTR *pSubjectName); + + HRESULT (STDMETHODCALLTYPE *SetCustomHeaders)( + IBackgroundCopyJobHttpOptions *This, + LPCWSTR RequestHeaders); + + HRESULT (STDMETHODCALLTYPE *GetCustomHeaders)( + IBackgroundCopyJobHttpOptions *This, + LPWSTR *pRequestHeaders); + + HRESULT (STDMETHODCALLTYPE *SetSecurityFlags)( + IBackgroundCopyJobHttpOptions *This, + ULONG Flags); + + HRESULT (STDMETHODCALLTYPE *GetSecurityFlags)( + IBackgroundCopyJobHttpOptions *This, + ULONG *pFlags); + + END_INTERFACE +} IBackgroundCopyJobHttpOptionsVtbl; + +interface IBackgroundCopyJobHttpOptions { + CONST_VTBL IBackgroundCopyJobHttpOptionsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyJobHttpOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyJobHttpOptions_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyJobHttpOptions_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJobHttpOptions methods ***/ +#define IBackgroundCopyJobHttpOptions_SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob) (This)->lpVtbl->SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob) +#define IBackgroundCopyJobHttpOptions_SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName) (This)->lpVtbl->SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName) +#define IBackgroundCopyJobHttpOptions_RemoveClientCertificate(This) (This)->lpVtbl->RemoveClientCertificate(This) +#define IBackgroundCopyJobHttpOptions_GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName) (This)->lpVtbl->GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName) +#define IBackgroundCopyJobHttpOptions_SetCustomHeaders(This,RequestHeaders) (This)->lpVtbl->SetCustomHeaders(This,RequestHeaders) +#define IBackgroundCopyJobHttpOptions_GetCustomHeaders(This,pRequestHeaders) (This)->lpVtbl->GetCustomHeaders(This,pRequestHeaders) +#define IBackgroundCopyJobHttpOptions_SetSecurityFlags(This,Flags) (This)->lpVtbl->SetSecurityFlags(This,Flags) +#define IBackgroundCopyJobHttpOptions_GetSecurityFlags(This,pFlags) (This)->lpVtbl->GetSecurityFlags(This,pFlags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_QueryInterface(IBackgroundCopyJobHttpOptions* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJobHttpOptions_AddRef(IBackgroundCopyJobHttpOptions* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJobHttpOptions_Release(IBackgroundCopyJobHttpOptions* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJobHttpOptions methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetClientCertificateByID(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION StoreLocation,LPCWSTR StoreName,BYTE *pCertHashBlob) { + return This->lpVtbl->SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetClientCertificateByName(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION StoreLocation,LPCWSTR StoreName,LPCWSTR SubjectName) { + return This->lpVtbl->SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_RemoveClientCertificate(IBackgroundCopyJobHttpOptions* This) { + return This->lpVtbl->RemoveClientCertificate(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetClientCertificate(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION *pStoreLocation,LPWSTR *pStoreName,BYTE **ppCertHashBlob,LPWSTR *pSubjectName) { + return This->lpVtbl->GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetCustomHeaders(IBackgroundCopyJobHttpOptions* This,LPCWSTR RequestHeaders) { + return This->lpVtbl->SetCustomHeaders(This,RequestHeaders); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetCustomHeaders(IBackgroundCopyJobHttpOptions* This,LPWSTR *pRequestHeaders) { + return This->lpVtbl->GetCustomHeaders(This,pRequestHeaders); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetSecurityFlags(IBackgroundCopyJobHttpOptions* This,ULONG Flags) { + return This->lpVtbl->SetSecurityFlags(This,Flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetSecurityFlags(IBackgroundCopyJobHttpOptions* This,ULONG *pFlags) { + return This->lpVtbl->GetSecurityFlags(This,pFlags); +} +#endif +#endif + +#endif + + +#endif /* __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__ */ + +#ifndef __BackgroundCopyManager2_5_LIBRARY_DEFINED__ +#define __BackgroundCopyManager2_5_LIBRARY_DEFINED__ + +DEFINE_GUID(LIBID_BackgroundCopyManager2_5, 0x4974177c, 0x3bb6, 0x4c37, 0x9f,0xf0, 0x6b,0x74,0x26,0xf0,0xab,0xa9); + +/***************************************************************************** + * BackgroundCopyManager2_5 coclass + */ + +DEFINE_GUID(CLSID_BackgroundCopyManager2_5, 0x03ca98d6, 0xff5d, 0x49b8, 0xab,0xc6, 0x03,0xdd,0x84,0x12,0x70,0x20); + +#ifdef __cplusplus +class DECLSPEC_UUID("03ca98d6-ff5d-49b8-abc6-03dd84127020") BackgroundCopyManager2_5; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(BackgroundCopyManager2_5, 0x03ca98d6, 0xff5d, 0x49b8, 0xab,0xc6, 0x03,0xdd,0x84,0x12,0x70,0x20) +#endif +#endif + +#ifndef __IBackgroundCopyCallback_FWD_DEFINED__ +#define __IBackgroundCopyCallback_FWD_DEFINED__ +typedef interface IBackgroundCopyCallback IBackgroundCopyCallback; +#ifdef __cplusplus +interface IBackgroundCopyCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IBackgroundCopyJobHttpOptions_FWD_DEFINED__ +#define __IBackgroundCopyJobHttpOptions_FWD_DEFINED__ +typedef interface IBackgroundCopyJobHttpOptions IBackgroundCopyJobHttpOptions; +#ifdef __cplusplus +interface IBackgroundCopyJobHttpOptions; +#endif /* __cplusplus */ +#endif + +#endif /* __BackgroundCopyManager2_5_LIBRARY_DEFINED__ */ +#include "bits3_0.h" +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __bits2_5_h__ */ diff --git a/lib/libc/include/any-windows-any/bits3_0.h b/lib/libc/include/any-windows-any/bits3_0.h new file mode 100644 index 0000000000..73c070139f --- /dev/null +++ b/lib/libc/include/any-windows-any/bits3_0.h @@ -0,0 +1,704 @@ +/*** Autogenerated by WIDL 7.0 from include/bits3_0.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __bits3_0_h__ +#define __bits3_0_h__ + +/* Forward declarations */ + +#ifndef __IBackgroundCopyCallback2_FWD_DEFINED__ +#define __IBackgroundCopyCallback2_FWD_DEFINED__ +typedef interface IBackgroundCopyCallback2 IBackgroundCopyCallback2; +#ifdef __cplusplus +interface IBackgroundCopyCallback2; +#endif /* __cplusplus */ +#endif + +#ifndef __IBackgroundCopyJob4_FWD_DEFINED__ +#define __IBackgroundCopyJob4_FWD_DEFINED__ +typedef interface IBackgroundCopyJob4 IBackgroundCopyJob4; +#ifdef __cplusplus +interface IBackgroundCopyJob4; +#endif /* __cplusplus */ +#endif + +#ifndef __BackgroundCopyManager3_0_FWD_DEFINED__ +#define __BackgroundCopyManager3_0_FWD_DEFINED__ +#ifdef __cplusplus +typedef class BackgroundCopyManager3_0 BackgroundCopyManager3_0; +#else +typedef struct BackgroundCopyManager3_0 BackgroundCopyManager3_0; +#endif /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager3_0_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <bits.h> +#include <bits2_0.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************** + * IBackgroundCopyCallback2 interface + */ +#ifndef __IBackgroundCopyCallback2_INTERFACE_DEFINED__ +#define __IBackgroundCopyCallback2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBackgroundCopyCallback2, 0x659cdeac, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("659cdeac-489e-11d9-a9cd-000d56965251") +IBackgroundCopyCallback2 : public IBackgroundCopyCallback +{ + virtual HRESULT STDMETHODCALLTYPE FileTransferred( + IBackgroundCopyJob *job, + IBackgroundCopyFile *file) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyCallback2, 0x659cdeac, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51) +#endif +#else +typedef struct IBackgroundCopyCallback2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyCallback2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyCallback2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyCallback2 *This); + + /*** IBackgroundCopyCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *JobTransferred)( + IBackgroundCopyCallback2 *This, + IBackgroundCopyJob *pJob); + + HRESULT (STDMETHODCALLTYPE *JobError)( + IBackgroundCopyCallback2 *This, + IBackgroundCopyJob *pJob, + IBackgroundCopyError *pError); + + HRESULT (STDMETHODCALLTYPE *JobModification)( + IBackgroundCopyCallback2 *This, + IBackgroundCopyJob *pJob, + DWORD dwReserved); + + /*** IBackgroundCopyCallback2 methods ***/ + HRESULT (STDMETHODCALLTYPE *FileTransferred)( + IBackgroundCopyCallback2 *This, + IBackgroundCopyJob *job, + IBackgroundCopyFile *file); + + END_INTERFACE +} IBackgroundCopyCallback2Vtbl; + +interface IBackgroundCopyCallback2 { + CONST_VTBL IBackgroundCopyCallback2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyCallback2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyCallback2_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyCallback methods ***/ +#define IBackgroundCopyCallback2_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob) +#define IBackgroundCopyCallback2_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError) +#define IBackgroundCopyCallback2_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved) +/*** IBackgroundCopyCallback2 methods ***/ +#define IBackgroundCopyCallback2_FileTransferred(This,job,file) (This)->lpVtbl->FileTransferred(This,job,file) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyCallback2_QueryInterface(IBackgroundCopyCallback2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyCallback2_AddRef(IBackgroundCopyCallback2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyCallback2_Release(IBackgroundCopyCallback2* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyCallback methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobTransferred(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob) { + return This->lpVtbl->JobTransferred(This,pJob); +} +static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobError(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) { + return This->lpVtbl->JobError(This,pJob,pError); +} +static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobModification(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob,DWORD dwReserved) { + return This->lpVtbl->JobModification(This,pJob,dwReserved); +} +/*** IBackgroundCopyCallback2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyCallback2_FileTransferred(IBackgroundCopyCallback2* This,IBackgroundCopyJob *job,IBackgroundCopyFile *file) { + return This->lpVtbl->FileTransferred(This,job,file); +} +#endif +#endif + +#endif + + +#endif /* __IBackgroundCopyCallback2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyJob4 interface + */ +#ifndef __IBackgroundCopyJob4_INTERFACE_DEFINED__ +#define __IBackgroundCopyJob4_INTERFACE_DEFINED__ + +#define BG_JOB_ENABLE_PEERCACHING_CLIENT 0x0001 +#define BG_JOB_ENABLE_PEERCACHING_SERVER 0x0002 +#define BG_JOB_DISABLE_BRANCH_CACHE 0x0004 +DEFINE_GUID(IID_IBackgroundCopyJob4, 0x659cdeae, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("659cdeae-489e-11d9-a9cd-000d56965251") +IBackgroundCopyJob4 : public IBackgroundCopyJob3 +{ + virtual HRESULT STDMETHODCALLTYPE SetPeerCachingFlags( + DWORD flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPeerCachingFlags( + DWORD *flags) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOwnerIntegrityLevel( + ULONG *level) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOwnerElevationState( + WINBOOL *elevated) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMaximumDownloadTime( + ULONG timeout) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMaximumDownloadTime( + ULONG *timeout) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJob4, 0x659cdeae, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51) +#endif +#else +typedef struct IBackgroundCopyJob4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJob4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJob4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJob4 *This); + + /*** IBackgroundCopyJob methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFileSet)( + IBackgroundCopyJob4 *This, + ULONG cFileCount, + BG_FILE_INFO *pFileSet); + + HRESULT (STDMETHODCALLTYPE *AddFile)( + IBackgroundCopyJob4 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName); + + HRESULT (STDMETHODCALLTYPE *EnumFiles)( + IBackgroundCopyJob4 *This, + IEnumBackgroundCopyFiles **pEnum); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBackgroundCopyJob4 *This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBackgroundCopyJob4 *This); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + IBackgroundCopyJob4 *This); + + HRESULT (STDMETHODCALLTYPE *Complete)( + IBackgroundCopyJob4 *This); + + HRESULT (STDMETHODCALLTYPE *GetId)( + IBackgroundCopyJob4 *This, + GUID *pVal); + + HRESULT (STDMETHODCALLTYPE *GetType)( + IBackgroundCopyJob4 *This, + BG_JOB_TYPE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyJob4 *This, + BG_JOB_PROGRESS *pVal); + + HRESULT (STDMETHODCALLTYPE *GetTimes)( + IBackgroundCopyJob4 *This, + BG_JOB_TIMES *pVal); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IBackgroundCopyJob4 *This, + BG_JOB_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyJob4 *This, + IBackgroundCopyError **ppError); + + HRESULT (STDMETHODCALLTYPE *GetOwner)( + IBackgroundCopyJob4 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDisplayName)( + IBackgroundCopyJob4 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IBackgroundCopyJob4 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IBackgroundCopyJob4 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IBackgroundCopyJob4 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBackgroundCopyJob4 *This, + BG_JOB_PRIORITY Val); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBackgroundCopyJob4 *This, + BG_JOB_PRIORITY *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)( + IBackgroundCopyJob4 *This, + ULONG Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)( + IBackgroundCopyJob4 *This, + ULONG *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)( + IBackgroundCopyJob4 *This, + IUnknown *Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)( + IBackgroundCopyJob4 *This, + IUnknown **pVal); + + HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)( + IBackgroundCopyJob4 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)( + IBackgroundCopyJob4 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)( + IBackgroundCopyJob4 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)( + IBackgroundCopyJob4 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *GetErrorCount)( + IBackgroundCopyJob4 *This, + ULONG *Errors); + + HRESULT (STDMETHODCALLTYPE *SetProxySettings)( + IBackgroundCopyJob4 *This, + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *GetProxySettings)( + IBackgroundCopyJob4 *This, + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *TakeOwnership)( + IBackgroundCopyJob4 *This); + + /*** IBackgroundCopyJob2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)( + IBackgroundCopyJob4 *This, + LPCWSTR prog, + LPCWSTR params); + + HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)( + IBackgroundCopyJob4 *This, + LPWSTR *prog, + LPWSTR *params); + + HRESULT (STDMETHODCALLTYPE *GetReplyProgress)( + IBackgroundCopyJob4 *This, + BG_JOB_REPLY_PROGRESS *progress); + + HRESULT (STDMETHODCALLTYPE *GetReplyData)( + IBackgroundCopyJob4 *This, + byte **pBuffer, + UINT64 *pLength); + + HRESULT (STDMETHODCALLTYPE *SetReplyFileName)( + IBackgroundCopyJob4 *This, + LPCWSTR filename); + + HRESULT (STDMETHODCALLTYPE *GetReplyFileName)( + IBackgroundCopyJob4 *This, + LPWSTR *pFilename); + + HRESULT (STDMETHODCALLTYPE *SetCredentials)( + IBackgroundCopyJob4 *This, + BG_AUTH_CREDENTIALS *cred); + + HRESULT (STDMETHODCALLTYPE *RemoveCredentials)( + IBackgroundCopyJob4 *This, + BG_AUTH_TARGET target, + BG_AUTH_SCHEME scheme); + + /*** IBackgroundCopyJob3 methods ***/ + HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)( + IBackgroundCopyJob4 *This, + LPCWSTR OldPrefix, + LPCWSTR NewPrefix); + + HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)( + IBackgroundCopyJob4 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName, + DWORD RangeCount, + BG_FILE_RANGE Ranges[]); + + HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)( + IBackgroundCopyJob4 *This, + DWORD Flags); + + HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)( + IBackgroundCopyJob4 *This, + DWORD *Flags); + + /*** IBackgroundCopyJob4 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPeerCachingFlags)( + IBackgroundCopyJob4 *This, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPeerCachingFlags)( + IBackgroundCopyJob4 *This, + DWORD *flags); + + HRESULT (STDMETHODCALLTYPE *GetOwnerIntegrityLevel)( + IBackgroundCopyJob4 *This, + ULONG *level); + + HRESULT (STDMETHODCALLTYPE *GetOwnerElevationState)( + IBackgroundCopyJob4 *This, + WINBOOL *elevated); + + HRESULT (STDMETHODCALLTYPE *SetMaximumDownloadTime)( + IBackgroundCopyJob4 *This, + ULONG timeout); + + HRESULT (STDMETHODCALLTYPE *GetMaximumDownloadTime)( + IBackgroundCopyJob4 *This, + ULONG *timeout); + + END_INTERFACE +} IBackgroundCopyJob4Vtbl; + +interface IBackgroundCopyJob4 { + CONST_VTBL IBackgroundCopyJob4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyJob4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyJob4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyJob4_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJob methods ***/ +#define IBackgroundCopyJob4_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet) +#define IBackgroundCopyJob4_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName) +#define IBackgroundCopyJob4_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum) +#define IBackgroundCopyJob4_Suspend(This) (This)->lpVtbl->Suspend(This) +#define IBackgroundCopyJob4_Resume(This) (This)->lpVtbl->Resume(This) +#define IBackgroundCopyJob4_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IBackgroundCopyJob4_Complete(This) (This)->lpVtbl->Complete(This) +#define IBackgroundCopyJob4_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal) +#define IBackgroundCopyJob4_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal) +#define IBackgroundCopyJob4_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal) +#define IBackgroundCopyJob4_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal) +#define IBackgroundCopyJob4_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal) +#define IBackgroundCopyJob4_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError) +#define IBackgroundCopyJob4_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal) +#define IBackgroundCopyJob4_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val) +#define IBackgroundCopyJob4_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal) +#define IBackgroundCopyJob4_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val) +#define IBackgroundCopyJob4_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal) +#define IBackgroundCopyJob4_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val) +#define IBackgroundCopyJob4_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal) +#define IBackgroundCopyJob4_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val) +#define IBackgroundCopyJob4_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal) +#define IBackgroundCopyJob4_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val) +#define IBackgroundCopyJob4_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal) +#define IBackgroundCopyJob4_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob4_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob4_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob4_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob4_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors) +#define IBackgroundCopyJob4_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) +#define IBackgroundCopyJob4_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) +#define IBackgroundCopyJob4_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This) +/*** IBackgroundCopyJob2 methods ***/ +#define IBackgroundCopyJob4_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob4_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob4_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress) +#define IBackgroundCopyJob4_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength) +#define IBackgroundCopyJob4_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename) +#define IBackgroundCopyJob4_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename) +#define IBackgroundCopyJob4_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred) +#define IBackgroundCopyJob4_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme) +/*** IBackgroundCopyJob3 methods ***/ +#define IBackgroundCopyJob4_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix) +#define IBackgroundCopyJob4_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) +#define IBackgroundCopyJob4_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags) +#define IBackgroundCopyJob4_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags) +/*** IBackgroundCopyJob4 methods ***/ +#define IBackgroundCopyJob4_SetPeerCachingFlags(This,flags) (This)->lpVtbl->SetPeerCachingFlags(This,flags) +#define IBackgroundCopyJob4_GetPeerCachingFlags(This,flags) (This)->lpVtbl->GetPeerCachingFlags(This,flags) +#define IBackgroundCopyJob4_GetOwnerIntegrityLevel(This,level) (This)->lpVtbl->GetOwnerIntegrityLevel(This,level) +#define IBackgroundCopyJob4_GetOwnerElevationState(This,elevated) (This)->lpVtbl->GetOwnerElevationState(This,elevated) +#define IBackgroundCopyJob4_SetMaximumDownloadTime(This,timeout) (This)->lpVtbl->SetMaximumDownloadTime(This,timeout) +#define IBackgroundCopyJob4_GetMaximumDownloadTime(This,timeout) (This)->lpVtbl->GetMaximumDownloadTime(This,timeout) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob4_QueryInterface(IBackgroundCopyJob4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJob4_AddRef(IBackgroundCopyJob4* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJob4_Release(IBackgroundCopyJob4* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJob methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFileSet(IBackgroundCopyJob4* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) { + return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFile(IBackgroundCopyJob4* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) { + return This->lpVtbl->AddFile(This,RemoteUrl,LocalName); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_EnumFiles(IBackgroundCopyJob4* This,IEnumBackgroundCopyFiles **pEnum) { + return This->lpVtbl->EnumFiles(This,pEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_Suspend(IBackgroundCopyJob4* This) { + return This->lpVtbl->Suspend(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_Resume(IBackgroundCopyJob4* This) { + return This->lpVtbl->Resume(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_Cancel(IBackgroundCopyJob4* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_Complete(IBackgroundCopyJob4* This) { + return This->lpVtbl->Complete(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetId(IBackgroundCopyJob4* This,GUID *pVal) { + return This->lpVtbl->GetId(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetType(IBackgroundCopyJob4* This,BG_JOB_TYPE *pVal) { + return This->lpVtbl->GetType(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetProgress(IBackgroundCopyJob4* This,BG_JOB_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetTimes(IBackgroundCopyJob4* This,BG_JOB_TIMES *pVal) { + return This->lpVtbl->GetTimes(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetState(IBackgroundCopyJob4* This,BG_JOB_STATE *pVal) { + return This->lpVtbl->GetState(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetError(IBackgroundCopyJob4* This,IBackgroundCopyError **ppError) { + return This->lpVtbl->GetError(This,ppError); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwner(IBackgroundCopyJob4* This,LPWSTR *pVal) { + return This->lpVtbl->GetOwner(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetDisplayName(IBackgroundCopyJob4* This,LPCWSTR Val) { + return This->lpVtbl->SetDisplayName(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetDisplayName(IBackgroundCopyJob4* This,LPWSTR *pVal) { + return This->lpVtbl->GetDisplayName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetDescription(IBackgroundCopyJob4* This,LPCWSTR Val) { + return This->lpVtbl->SetDescription(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetDescription(IBackgroundCopyJob4* This,LPWSTR *pVal) { + return This->lpVtbl->GetDescription(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetPriority(IBackgroundCopyJob4* This,BG_JOB_PRIORITY Val) { + return This->lpVtbl->SetPriority(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetPriority(IBackgroundCopyJob4* This,BG_JOB_PRIORITY *pVal) { + return This->lpVtbl->GetPriority(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyFlags(IBackgroundCopyJob4* This,ULONG Val) { + return This->lpVtbl->SetNotifyFlags(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyFlags(IBackgroundCopyJob4* This,ULONG *pVal) { + return This->lpVtbl->GetNotifyFlags(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyInterface(IBackgroundCopyJob4* This,IUnknown *Val) { + return This->lpVtbl->SetNotifyInterface(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyInterface(IBackgroundCopyJob4* This,IUnknown **pVal) { + return This->lpVtbl->GetNotifyInterface(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetMinimumRetryDelay(IBackgroundCopyJob4* This,ULONG Seconds) { + return This->lpVtbl->SetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetMinimumRetryDelay(IBackgroundCopyJob4* This,ULONG *Seconds) { + return This->lpVtbl->GetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNoProgressTimeout(IBackgroundCopyJob4* This,ULONG Seconds) { + return This->lpVtbl->SetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNoProgressTimeout(IBackgroundCopyJob4* This,ULONG *Seconds) { + return This->lpVtbl->GetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetErrorCount(IBackgroundCopyJob4* This,ULONG *Errors) { + return This->lpVtbl->GetErrorCount(This,Errors); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetProxySettings(IBackgroundCopyJob4* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) { + return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetProxySettings(IBackgroundCopyJob4* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) { + return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_TakeOwnership(IBackgroundCopyJob4* This) { + return This->lpVtbl->TakeOwnership(This); +} +/*** IBackgroundCopyJob2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyCmdLine(IBackgroundCopyJob4* This,LPCWSTR prog,LPCWSTR params) { + return This->lpVtbl->SetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyCmdLine(IBackgroundCopyJob4* This,LPWSTR *prog,LPWSTR *params) { + return This->lpVtbl->GetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyProgress(IBackgroundCopyJob4* This,BG_JOB_REPLY_PROGRESS *progress) { + return This->lpVtbl->GetReplyProgress(This,progress); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyData(IBackgroundCopyJob4* This,byte **pBuffer,UINT64 *pLength) { + return This->lpVtbl->GetReplyData(This,pBuffer,pLength); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetReplyFileName(IBackgroundCopyJob4* This,LPCWSTR filename) { + return This->lpVtbl->SetReplyFileName(This,filename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyFileName(IBackgroundCopyJob4* This,LPWSTR *pFilename) { + return This->lpVtbl->GetReplyFileName(This,pFilename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetCredentials(IBackgroundCopyJob4* This,BG_AUTH_CREDENTIALS *cred) { + return This->lpVtbl->SetCredentials(This,cred); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_RemoveCredentials(IBackgroundCopyJob4* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) { + return This->lpVtbl->RemoveCredentials(This,target,scheme); +} +/*** IBackgroundCopyJob3 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob4_ReplaceRemotePrefix(IBackgroundCopyJob4* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) { + return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFileWithRanges(IBackgroundCopyJob4* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) { + return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetFileACLFlags(IBackgroundCopyJob4* This,DWORD Flags) { + return This->lpVtbl->SetFileACLFlags(This,Flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetFileACLFlags(IBackgroundCopyJob4* This,DWORD *Flags) { + return This->lpVtbl->GetFileACLFlags(This,Flags); +} +/*** IBackgroundCopyJob4 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetPeerCachingFlags(IBackgroundCopyJob4* This,DWORD flags) { + return This->lpVtbl->SetPeerCachingFlags(This,flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetPeerCachingFlags(IBackgroundCopyJob4* This,DWORD *flags) { + return This->lpVtbl->GetPeerCachingFlags(This,flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwnerIntegrityLevel(IBackgroundCopyJob4* This,ULONG *level) { + return This->lpVtbl->GetOwnerIntegrityLevel(This,level); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwnerElevationState(IBackgroundCopyJob4* This,WINBOOL *elevated) { + return This->lpVtbl->GetOwnerElevationState(This,elevated); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_SetMaximumDownloadTime(IBackgroundCopyJob4* This,ULONG timeout) { + return This->lpVtbl->SetMaximumDownloadTime(This,timeout); +} +static FORCEINLINE HRESULT IBackgroundCopyJob4_GetMaximumDownloadTime(IBackgroundCopyJob4* This,ULONG *timeout) { + return This->lpVtbl->GetMaximumDownloadTime(This,timeout); +} +#endif +#endif + +#endif + + +#endif /* __IBackgroundCopyJob4_INTERFACE_DEFINED__ */ + +#ifndef __BackgroundCopyManager3_0_LIBRARY_DEFINED__ +#define __BackgroundCopyManager3_0_LIBRARY_DEFINED__ + +DEFINE_GUID(LIBID_BackgroundCopyManager3_0, 0x659cdea6, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51); + +/***************************************************************************** + * BackgroundCopyManager3_0 coclass + */ + +DEFINE_GUID(CLSID_BackgroundCopyManager3_0, 0x659cdea7, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51); + +#ifdef __cplusplus +class DECLSPEC_UUID("659cdea7-489e-11d9-a9cd-000d56965251") BackgroundCopyManager3_0; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(BackgroundCopyManager3_0, 0x659cdea7, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51) +#endif +#endif + +#ifndef __IBackgroundCopyJob4_FWD_DEFINED__ +#define __IBackgroundCopyJob4_FWD_DEFINED__ +typedef interface IBackgroundCopyJob4 IBackgroundCopyJob4; +#ifdef __cplusplus +interface IBackgroundCopyJob4; +#endif /* __cplusplus */ +#endif + +#endif /* __BackgroundCopyManager3_0_LIBRARY_DEFINED__ */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __bits3_0_h__ */ diff --git a/lib/libc/include/any-windows-any/bits5_0.h b/lib/libc/include/any-windows-any/bits5_0.h new file mode 100644 index 0000000000..d99baf8b1e --- /dev/null +++ b/lib/libc/include/any-windows-any/bits5_0.h @@ -0,0 +1,581 @@ +/*** Autogenerated by WIDL 7.0 from include/bits5_0.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __bits5_0_h__ +#define __bits5_0_h__ + +/* Forward declarations */ + +#ifndef __IBackgroundCopyJob5_FWD_DEFINED__ +#define __IBackgroundCopyJob5_FWD_DEFINED__ +typedef interface IBackgroundCopyJob5 IBackgroundCopyJob5; +#ifdef __cplusplus +interface IBackgroundCopyJob5; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <bits.h> +#include <bits1_5.h> +#include <bits2_0.h> +#include <bits2_5.h> +#include <bits3_0.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define BITS_COST_STATE_TRANSFER_ALWAYS 0x800000ff +/***************************************************************************** + * IBackgroundCopyJob5 interface + */ +#ifndef __IBackgroundCopyJob5_INTERFACE_DEFINED__ +#define __IBackgroundCopyJob5_INTERFACE_DEFINED__ + +typedef enum __WIDL_bits5_0_generated_name_00000017 { + BITS_JOB_PROPERTY_ID_COST_FLAGS = 1, + BITS_JOB_PROPERTY_NOTIFICATION_CLSID = 2, + BITS_JOB_PROPERTY_DYNAMIC_CONTENT = 3, + BITS_JOB_PROPERTY_HIGH_PERFORMANCE = 4, + BITS_JOB_PROPERTY_MAX_DOWNLOAD_SIZE = 5, + BITS_JOB_PROPERTY_USE_STORED_CREDENTIALS = 7, + BITS_JOB_PROPERTY_MINIMUM_NOTIFICATION_INTERVAL_MS = 9, + BITS_JOB_PROPERTY_ON_DEMAND_MODE = 10 +} BITS_JOB_PROPERTY_ID; +typedef union _BITS_JOB_PROPERTY_VALUE { + DWORD Dword; + GUID ClsID; + WINBOOL Enable; + UINT64 Uint64; + BG_AUTH_TARGET Target; +} BITS_JOB_PROPERTY_VALUE; +DEFINE_GUID(IID_IBackgroundCopyJob5, 0xe847030c, 0xbbba, 0x4657, 0xaf,0x6d, 0x48,0x4a,0xa4,0x2b,0xf1,0xfe); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e847030c-bbba-4657-af6d-484aa42bf1fe") +IBackgroundCopyJob5 : public IBackgroundCopyJob4 +{ + virtual HRESULT STDMETHODCALLTYPE SetProperty( + BITS_JOB_PROPERTY_ID id, + BITS_JOB_PROPERTY_VALUE value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProperty( + BITS_JOB_PROPERTY_ID id, + BITS_JOB_PROPERTY_VALUE *value) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IBackgroundCopyJob5, 0xe847030c, 0xbbba, 0x4657, 0xaf,0x6d, 0x48,0x4a,0xa4,0x2b,0xf1,0xfe) +#endif +#else +typedef struct IBackgroundCopyJob5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IBackgroundCopyJob5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IBackgroundCopyJob5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IBackgroundCopyJob5 *This); + + /*** IBackgroundCopyJob methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFileSet)( + IBackgroundCopyJob5 *This, + ULONG cFileCount, + BG_FILE_INFO *pFileSet); + + HRESULT (STDMETHODCALLTYPE *AddFile)( + IBackgroundCopyJob5 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName); + + HRESULT (STDMETHODCALLTYPE *EnumFiles)( + IBackgroundCopyJob5 *This, + IEnumBackgroundCopyFiles **pEnum); + + HRESULT (STDMETHODCALLTYPE *Suspend)( + IBackgroundCopyJob5 *This); + + HRESULT (STDMETHODCALLTYPE *Resume)( + IBackgroundCopyJob5 *This); + + HRESULT (STDMETHODCALLTYPE *Cancel)( + IBackgroundCopyJob5 *This); + + HRESULT (STDMETHODCALLTYPE *Complete)( + IBackgroundCopyJob5 *This); + + HRESULT (STDMETHODCALLTYPE *GetId)( + IBackgroundCopyJob5 *This, + GUID *pVal); + + HRESULT (STDMETHODCALLTYPE *GetType)( + IBackgroundCopyJob5 *This, + BG_JOB_TYPE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetProgress)( + IBackgroundCopyJob5 *This, + BG_JOB_PROGRESS *pVal); + + HRESULT (STDMETHODCALLTYPE *GetTimes)( + IBackgroundCopyJob5 *This, + BG_JOB_TIMES *pVal); + + HRESULT (STDMETHODCALLTYPE *GetState)( + IBackgroundCopyJob5 *This, + BG_JOB_STATE *pVal); + + HRESULT (STDMETHODCALLTYPE *GetError)( + IBackgroundCopyJob5 *This, + IBackgroundCopyError **ppError); + + HRESULT (STDMETHODCALLTYPE *GetOwner)( + IBackgroundCopyJob5 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDisplayName)( + IBackgroundCopyJob5 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDisplayName)( + IBackgroundCopyJob5 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetDescription)( + IBackgroundCopyJob5 *This, + LPCWSTR Val); + + HRESULT (STDMETHODCALLTYPE *GetDescription)( + IBackgroundCopyJob5 *This, + LPWSTR *pVal); + + HRESULT (STDMETHODCALLTYPE *SetPriority)( + IBackgroundCopyJob5 *This, + BG_JOB_PRIORITY Val); + + HRESULT (STDMETHODCALLTYPE *GetPriority)( + IBackgroundCopyJob5 *This, + BG_JOB_PRIORITY *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)( + IBackgroundCopyJob5 *This, + ULONG Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)( + IBackgroundCopyJob5 *This, + ULONG *pVal); + + HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)( + IBackgroundCopyJob5 *This, + IUnknown *Val); + + HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)( + IBackgroundCopyJob5 *This, + IUnknown **pVal); + + HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)( + IBackgroundCopyJob5 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)( + IBackgroundCopyJob5 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)( + IBackgroundCopyJob5 *This, + ULONG Seconds); + + HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)( + IBackgroundCopyJob5 *This, + ULONG *Seconds); + + HRESULT (STDMETHODCALLTYPE *GetErrorCount)( + IBackgroundCopyJob5 *This, + ULONG *Errors); + + HRESULT (STDMETHODCALLTYPE *SetProxySettings)( + IBackgroundCopyJob5 *This, + BG_JOB_PROXY_USAGE ProxyUsage, + const WCHAR *ProxyList, + const WCHAR *ProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *GetProxySettings)( + IBackgroundCopyJob5 *This, + BG_JOB_PROXY_USAGE *pProxyUsage, + LPWSTR *pProxyList, + LPWSTR *pProxyBypassList); + + HRESULT (STDMETHODCALLTYPE *TakeOwnership)( + IBackgroundCopyJob5 *This); + + /*** IBackgroundCopyJob2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)( + IBackgroundCopyJob5 *This, + LPCWSTR prog, + LPCWSTR params); + + HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)( + IBackgroundCopyJob5 *This, + LPWSTR *prog, + LPWSTR *params); + + HRESULT (STDMETHODCALLTYPE *GetReplyProgress)( + IBackgroundCopyJob5 *This, + BG_JOB_REPLY_PROGRESS *progress); + + HRESULT (STDMETHODCALLTYPE *GetReplyData)( + IBackgroundCopyJob5 *This, + byte **pBuffer, + UINT64 *pLength); + + HRESULT (STDMETHODCALLTYPE *SetReplyFileName)( + IBackgroundCopyJob5 *This, + LPCWSTR filename); + + HRESULT (STDMETHODCALLTYPE *GetReplyFileName)( + IBackgroundCopyJob5 *This, + LPWSTR *pFilename); + + HRESULT (STDMETHODCALLTYPE *SetCredentials)( + IBackgroundCopyJob5 *This, + BG_AUTH_CREDENTIALS *cred); + + HRESULT (STDMETHODCALLTYPE *RemoveCredentials)( + IBackgroundCopyJob5 *This, + BG_AUTH_TARGET target, + BG_AUTH_SCHEME scheme); + + /*** IBackgroundCopyJob3 methods ***/ + HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)( + IBackgroundCopyJob5 *This, + LPCWSTR OldPrefix, + LPCWSTR NewPrefix); + + HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)( + IBackgroundCopyJob5 *This, + LPCWSTR RemoteUrl, + LPCWSTR LocalName, + DWORD RangeCount, + BG_FILE_RANGE Ranges[]); + + HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)( + IBackgroundCopyJob5 *This, + DWORD Flags); + + HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)( + IBackgroundCopyJob5 *This, + DWORD *Flags); + + /*** IBackgroundCopyJob4 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPeerCachingFlags)( + IBackgroundCopyJob5 *This, + DWORD flags); + + HRESULT (STDMETHODCALLTYPE *GetPeerCachingFlags)( + IBackgroundCopyJob5 *This, + DWORD *flags); + + HRESULT (STDMETHODCALLTYPE *GetOwnerIntegrityLevel)( + IBackgroundCopyJob5 *This, + ULONG *level); + + HRESULT (STDMETHODCALLTYPE *GetOwnerElevationState)( + IBackgroundCopyJob5 *This, + WINBOOL *elevated); + + HRESULT (STDMETHODCALLTYPE *SetMaximumDownloadTime)( + IBackgroundCopyJob5 *This, + ULONG timeout); + + HRESULT (STDMETHODCALLTYPE *GetMaximumDownloadTime)( + IBackgroundCopyJob5 *This, + ULONG *timeout); + + /*** IBackgroundCopyJob5 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetProperty)( + IBackgroundCopyJob5 *This, + BITS_JOB_PROPERTY_ID id, + BITS_JOB_PROPERTY_VALUE value); + + HRESULT (STDMETHODCALLTYPE *GetProperty)( + IBackgroundCopyJob5 *This, + BITS_JOB_PROPERTY_ID id, + BITS_JOB_PROPERTY_VALUE *value); + + END_INTERFACE +} IBackgroundCopyJob5Vtbl; + +interface IBackgroundCopyJob5 { + CONST_VTBL IBackgroundCopyJob5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IBackgroundCopyJob5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IBackgroundCopyJob5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IBackgroundCopyJob5_Release(This) (This)->lpVtbl->Release(This) +/*** IBackgroundCopyJob methods ***/ +#define IBackgroundCopyJob5_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet) +#define IBackgroundCopyJob5_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName) +#define IBackgroundCopyJob5_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum) +#define IBackgroundCopyJob5_Suspend(This) (This)->lpVtbl->Suspend(This) +#define IBackgroundCopyJob5_Resume(This) (This)->lpVtbl->Resume(This) +#define IBackgroundCopyJob5_Cancel(This) (This)->lpVtbl->Cancel(This) +#define IBackgroundCopyJob5_Complete(This) (This)->lpVtbl->Complete(This) +#define IBackgroundCopyJob5_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal) +#define IBackgroundCopyJob5_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal) +#define IBackgroundCopyJob5_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal) +#define IBackgroundCopyJob5_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal) +#define IBackgroundCopyJob5_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal) +#define IBackgroundCopyJob5_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError) +#define IBackgroundCopyJob5_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal) +#define IBackgroundCopyJob5_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val) +#define IBackgroundCopyJob5_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal) +#define IBackgroundCopyJob5_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val) +#define IBackgroundCopyJob5_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal) +#define IBackgroundCopyJob5_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val) +#define IBackgroundCopyJob5_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal) +#define IBackgroundCopyJob5_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val) +#define IBackgroundCopyJob5_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal) +#define IBackgroundCopyJob5_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val) +#define IBackgroundCopyJob5_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal) +#define IBackgroundCopyJob5_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob5_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds) +#define IBackgroundCopyJob5_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob5_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds) +#define IBackgroundCopyJob5_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors) +#define IBackgroundCopyJob5_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) +#define IBackgroundCopyJob5_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) +#define IBackgroundCopyJob5_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This) +/*** IBackgroundCopyJob2 methods ***/ +#define IBackgroundCopyJob5_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob5_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params) +#define IBackgroundCopyJob5_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress) +#define IBackgroundCopyJob5_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength) +#define IBackgroundCopyJob5_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename) +#define IBackgroundCopyJob5_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename) +#define IBackgroundCopyJob5_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred) +#define IBackgroundCopyJob5_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme) +/*** IBackgroundCopyJob3 methods ***/ +#define IBackgroundCopyJob5_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix) +#define IBackgroundCopyJob5_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) +#define IBackgroundCopyJob5_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags) +#define IBackgroundCopyJob5_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags) +/*** IBackgroundCopyJob4 methods ***/ +#define IBackgroundCopyJob5_SetPeerCachingFlags(This,flags) (This)->lpVtbl->SetPeerCachingFlags(This,flags) +#define IBackgroundCopyJob5_GetPeerCachingFlags(This,flags) (This)->lpVtbl->GetPeerCachingFlags(This,flags) +#define IBackgroundCopyJob5_GetOwnerIntegrityLevel(This,level) (This)->lpVtbl->GetOwnerIntegrityLevel(This,level) +#define IBackgroundCopyJob5_GetOwnerElevationState(This,elevated) (This)->lpVtbl->GetOwnerElevationState(This,elevated) +#define IBackgroundCopyJob5_SetMaximumDownloadTime(This,timeout) (This)->lpVtbl->SetMaximumDownloadTime(This,timeout) +#define IBackgroundCopyJob5_GetMaximumDownloadTime(This,timeout) (This)->lpVtbl->GetMaximumDownloadTime(This,timeout) +/*** IBackgroundCopyJob5 methods ***/ +#define IBackgroundCopyJob5_SetProperty(This,id,value) (This)->lpVtbl->SetProperty(This,id,value) +#define IBackgroundCopyJob5_GetProperty(This,id,value) (This)->lpVtbl->GetProperty(This,id,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_QueryInterface(IBackgroundCopyJob5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IBackgroundCopyJob5_AddRef(IBackgroundCopyJob5* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IBackgroundCopyJob5_Release(IBackgroundCopyJob5* This) { + return This->lpVtbl->Release(This); +} +/*** IBackgroundCopyJob methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFileSet(IBackgroundCopyJob5* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) { + return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFile(IBackgroundCopyJob5* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) { + return This->lpVtbl->AddFile(This,RemoteUrl,LocalName); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_EnumFiles(IBackgroundCopyJob5* This,IEnumBackgroundCopyFiles **pEnum) { + return This->lpVtbl->EnumFiles(This,pEnum); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_Suspend(IBackgroundCopyJob5* This) { + return This->lpVtbl->Suspend(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_Resume(IBackgroundCopyJob5* This) { + return This->lpVtbl->Resume(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_Cancel(IBackgroundCopyJob5* This) { + return This->lpVtbl->Cancel(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_Complete(IBackgroundCopyJob5* This) { + return This->lpVtbl->Complete(This); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetId(IBackgroundCopyJob5* This,GUID *pVal) { + return This->lpVtbl->GetId(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetType(IBackgroundCopyJob5* This,BG_JOB_TYPE *pVal) { + return This->lpVtbl->GetType(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProgress(IBackgroundCopyJob5* This,BG_JOB_PROGRESS *pVal) { + return This->lpVtbl->GetProgress(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetTimes(IBackgroundCopyJob5* This,BG_JOB_TIMES *pVal) { + return This->lpVtbl->GetTimes(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetState(IBackgroundCopyJob5* This,BG_JOB_STATE *pVal) { + return This->lpVtbl->GetState(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetError(IBackgroundCopyJob5* This,IBackgroundCopyError **ppError) { + return This->lpVtbl->GetError(This,ppError); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwner(IBackgroundCopyJob5* This,LPWSTR *pVal) { + return This->lpVtbl->GetOwner(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetDisplayName(IBackgroundCopyJob5* This,LPCWSTR Val) { + return This->lpVtbl->SetDisplayName(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetDisplayName(IBackgroundCopyJob5* This,LPWSTR *pVal) { + return This->lpVtbl->GetDisplayName(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetDescription(IBackgroundCopyJob5* This,LPCWSTR Val) { + return This->lpVtbl->SetDescription(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetDescription(IBackgroundCopyJob5* This,LPWSTR *pVal) { + return This->lpVtbl->GetDescription(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetPriority(IBackgroundCopyJob5* This,BG_JOB_PRIORITY Val) { + return This->lpVtbl->SetPriority(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetPriority(IBackgroundCopyJob5* This,BG_JOB_PRIORITY *pVal) { + return This->lpVtbl->GetPriority(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyFlags(IBackgroundCopyJob5* This,ULONG Val) { + return This->lpVtbl->SetNotifyFlags(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyFlags(IBackgroundCopyJob5* This,ULONG *pVal) { + return This->lpVtbl->GetNotifyFlags(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyInterface(IBackgroundCopyJob5* This,IUnknown *Val) { + return This->lpVtbl->SetNotifyInterface(This,Val); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyInterface(IBackgroundCopyJob5* This,IUnknown **pVal) { + return This->lpVtbl->GetNotifyInterface(This,pVal); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetMinimumRetryDelay(IBackgroundCopyJob5* This,ULONG Seconds) { + return This->lpVtbl->SetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetMinimumRetryDelay(IBackgroundCopyJob5* This,ULONG *Seconds) { + return This->lpVtbl->GetMinimumRetryDelay(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNoProgressTimeout(IBackgroundCopyJob5* This,ULONG Seconds) { + return This->lpVtbl->SetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNoProgressTimeout(IBackgroundCopyJob5* This,ULONG *Seconds) { + return This->lpVtbl->GetNoProgressTimeout(This,Seconds); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetErrorCount(IBackgroundCopyJob5* This,ULONG *Errors) { + return This->lpVtbl->GetErrorCount(This,Errors); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetProxySettings(IBackgroundCopyJob5* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) { + return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProxySettings(IBackgroundCopyJob5* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) { + return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_TakeOwnership(IBackgroundCopyJob5* This) { + return This->lpVtbl->TakeOwnership(This); +} +/*** IBackgroundCopyJob2 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyCmdLine(IBackgroundCopyJob5* This,LPCWSTR prog,LPCWSTR params) { + return This->lpVtbl->SetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyCmdLine(IBackgroundCopyJob5* This,LPWSTR *prog,LPWSTR *params) { + return This->lpVtbl->GetNotifyCmdLine(This,prog,params); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyProgress(IBackgroundCopyJob5* This,BG_JOB_REPLY_PROGRESS *progress) { + return This->lpVtbl->GetReplyProgress(This,progress); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyData(IBackgroundCopyJob5* This,byte **pBuffer,UINT64 *pLength) { + return This->lpVtbl->GetReplyData(This,pBuffer,pLength); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetReplyFileName(IBackgroundCopyJob5* This,LPCWSTR filename) { + return This->lpVtbl->SetReplyFileName(This,filename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyFileName(IBackgroundCopyJob5* This,LPWSTR *pFilename) { + return This->lpVtbl->GetReplyFileName(This,pFilename); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetCredentials(IBackgroundCopyJob5* This,BG_AUTH_CREDENTIALS *cred) { + return This->lpVtbl->SetCredentials(This,cred); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_RemoveCredentials(IBackgroundCopyJob5* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) { + return This->lpVtbl->RemoveCredentials(This,target,scheme); +} +/*** IBackgroundCopyJob3 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_ReplaceRemotePrefix(IBackgroundCopyJob5* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) { + return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFileWithRanges(IBackgroundCopyJob5* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) { + return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetFileACLFlags(IBackgroundCopyJob5* This,DWORD Flags) { + return This->lpVtbl->SetFileACLFlags(This,Flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetFileACLFlags(IBackgroundCopyJob5* This,DWORD *Flags) { + return This->lpVtbl->GetFileACLFlags(This,Flags); +} +/*** IBackgroundCopyJob4 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetPeerCachingFlags(IBackgroundCopyJob5* This,DWORD flags) { + return This->lpVtbl->SetPeerCachingFlags(This,flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetPeerCachingFlags(IBackgroundCopyJob5* This,DWORD *flags) { + return This->lpVtbl->GetPeerCachingFlags(This,flags); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwnerIntegrityLevel(IBackgroundCopyJob5* This,ULONG *level) { + return This->lpVtbl->GetOwnerIntegrityLevel(This,level); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwnerElevationState(IBackgroundCopyJob5* This,WINBOOL *elevated) { + return This->lpVtbl->GetOwnerElevationState(This,elevated); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetMaximumDownloadTime(IBackgroundCopyJob5* This,ULONG timeout) { + return This->lpVtbl->SetMaximumDownloadTime(This,timeout); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetMaximumDownloadTime(IBackgroundCopyJob5* This,ULONG *timeout) { + return This->lpVtbl->GetMaximumDownloadTime(This,timeout); +} +/*** IBackgroundCopyJob5 methods ***/ +static FORCEINLINE HRESULT IBackgroundCopyJob5_SetProperty(IBackgroundCopyJob5* This,BITS_JOB_PROPERTY_ID id,BITS_JOB_PROPERTY_VALUE value) { + return This->lpVtbl->SetProperty(This,id,value); +} +static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProperty(IBackgroundCopyJob5* This,BITS_JOB_PROPERTY_ID id,BITS_JOB_PROPERTY_VALUE *value) { + return This->lpVtbl->GetProperty(This,id,value); +} +#endif +#endif + +#endif + + +#endif /* __IBackgroundCopyJob5_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __bits5_0_h__ */ diff --git a/lib/libc/include/any-windows-any/comadmin.h b/lib/libc/include/any-windows-any/comadmin.h index 627ea4032a..2736421bbf 100644 --- a/lib/libc/include/any-windows-any/comadmin.h +++ b/lib/libc/include/any-windows-any/comadmin.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/comadmin.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/comadmin.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/comcat.h b/lib/libc/include/any-windows-any/comcat.h index 55af776ce4..c5cf022b77 100644 --- a/lib/libc/include/any-windows-any/comcat.h +++ b/lib/libc/include/any-windows-any/comcat.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/comcat.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/comcat.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/comdef.h b/lib/libc/include/any-windows-any/comdef.h index 9d4e97ffc4..cb785f8f6f 100644 --- a/lib/libc/include/any-windows-any/comdef.h +++ b/lib/libc/include/any-windows-any/comdef.h @@ -29,8 +29,6 @@ #ifdef __cplusplus class _com_error; -void WINAPI _com_raise_error(HRESULT hr,IErrorInfo *perrinfo = 0); -void WINAPI _set_com_error_handler(void (WINAPI *pHandler)(HRESULT hr,IErrorInfo *perrinfo)); void WINAPI _com_issue_errorex(HRESULT,IUnknown*,REFIID); HRESULT WINAPI _com_dispatch_propget(IDispatch*,DISPID,VARTYPE,void*); HRESULT __cdecl _com_dispatch_propput(IDispatch*,DISPID,VARTYPE,...); @@ -165,15 +163,25 @@ inline void _com_error::Ctor(const _com_error &that) throw() { if(m_perrinfo!=NULL) m_perrinfo->AddRef(); } -inline void _com_issue_error(HRESULT hr) { +inline void WINAPI _com_raise_error(HRESULT hr, IErrorInfo *perrinfo = 0) { #if __EXCEPTIONS - throw _com_error(hr); + throw _com_error(hr, perrinfo); #else /* This is designed to use exceptions. If exceptions are disabled, there is not much we can do here. */ __debugbreak(); #endif } +__MINGW_SELECTANY void (WINAPI *__mingw_com_error_handler)(HRESULT hr,IErrorInfo *perrinfo) = _com_raise_error; + +inline void WINAPI _set_com_error_handler(void (WINAPI *pHandler)(HRESULT hr,IErrorInfo *perrinfo)) { + __mingw_com_error_handler = pHandler; +} + +inline void WINAPI _com_issue_error(HRESULT hr) { + __mingw_com_error_handler(hr, NULL); +} + typedef int __missing_type__; diff --git a/lib/libc/include/any-windows-any/commoncontrols.h b/lib/libc/include/any-windows-any/commoncontrols.h index ae18783046..c8960d6a13 100644 --- a/lib/libc/include/any-windows-any/commoncontrols.h +++ b/lib/libc/include/any-windows-any/commoncontrols.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/commoncontrols.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/commoncontrols.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/computecore.h b/lib/libc/include/any-windows-any/computecore.h new file mode 100644 index 0000000000..e6d53a9b06 --- /dev/null +++ b/lib/libc/include/any-windows-any/computecore.h @@ -0,0 +1,82 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _HYPERV_COMPUTECORE_H_ +#define _HYPERV_COMPUTECORE_H_ + +#include <apiset.h> +#include <apisetcconv.h> +#include <minwindef.h> +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#include <computedefs.h> + +#ifdef __cplusplus +extern "C" { +#endif + +HRESULT WINAPI HcsEnumerateComputeSystems (PCWSTR query, HCS_OPERATION operation); +HRESULT WINAPI HcsEnumerateComputeSystemsInNamespace (PCWSTR idNamespace, PCWSTR query, HCS_OPERATION operation); +HCS_OPERATION WINAPI HcsCreateOperation (const void *context, HCS_OPERATION_COMPLETION callback); +void WINAPI HcsCloseOperation (HCS_OPERATION operation); +void* WINAPI HcsGetOperationContext (HCS_OPERATION operation); +HRESULT WINAPI HcsSetOperationContext (HCS_OPERATION operation, const void *context); +HCS_SYSTEM WINAPI HcsGetComputeSystemFromOperation (HCS_OPERATION operation); +HCS_PROCESS WINAPI HcsGetProcessFromOperation (HCS_OPERATION operation); +HCS_OPERATION_TYPE WINAPI HcsGetOperationType (HCS_OPERATION operation); +UINT64 WINAPI HcsGetOperationId (HCS_OPERATION operation); +HRESULT WINAPI HcsGetOperationResult (HCS_OPERATION operation, PWSTR *resultDocument); +HRESULT WINAPI HcsGetOperationResultAndProcessInfo (HCS_OPERATION operation, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument); +HRESULT WINAPI HcsGetProcessorCompatibilityFromSavedState (PCWSTR RuntimeFileName, PCWSTR *ProcessorFeaturesString); +HRESULT WINAPI HcsWaitForOperationResult (HCS_OPERATION operation, DWORD timeoutMs, PWSTR *resultDocument); +HRESULT WINAPI HcsWaitForOperationResultAndProcessInfo (HCS_OPERATION operation, DWORD timeoutMs, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument); +HRESULT WINAPI HcsSetOperationCallback (HCS_OPERATION operation, const void *context, HCS_OPERATION_COMPLETION callback); +HRESULT WINAPI HcsCancelOperation (HCS_OPERATION operation); +HRESULT WINAPI HcsCreateComputeSystem (PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_SYSTEM *computeSystem); +HRESULT WINAPI HcsCreateComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const HCS_CREATE_OPTIONS *options, HCS_SYSTEM *computeSystem); +HRESULT WINAPI HcsOpenComputeSystem (PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem); +HRESULT WINAPI HcsOpenComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem); +void WINAPI HcsCloseComputeSystem (HCS_SYSTEM computeSystem); +HRESULT WINAPI HcsStartComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsShutDownComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsTerminateComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsCrashComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsPauseComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsResumeComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsSaveComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsGetComputeSystemProperties (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR propertyQuery); +HRESULT WINAPI HcsModifyComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR configuration, HANDLE identity); +HRESULT WINAPI HcsWaitForComputeSystemExit (HCS_SYSTEM computeSystem, DWORD timeoutMs, PWSTR *result); +HRESULT WINAPI HcsSetComputeSystemCallback (HCS_SYSTEM computeSystem, HCS_EVENT_OPTIONS callbackOptions, const void *context, HCS_EVENT_CALLBACK callback); +HRESULT WINAPI HcsCreateProcess (HCS_SYSTEM computeSystem, PCWSTR processParameters, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_PROCESS *process); +HRESULT WINAPI HcsOpenProcess (HCS_SYSTEM computeSystem, DWORD processId, DWORD requestedAccess, HCS_PROCESS *process); +void WINAPI HcsCloseProcess (HCS_PROCESS process); +HRESULT WINAPI HcsTerminateProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsSignalProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options); +HRESULT WINAPI HcsGetProcessInfo (HCS_PROCESS process, HCS_OPERATION operation); +HRESULT WINAPI HcsGetProcessProperties (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR propertyQuery); +HRESULT WINAPI HcsModifyProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR settings); +HRESULT WINAPI HcsSetProcessCallback (HCS_PROCESS process, HCS_EVENT_OPTIONS callbackOptions, void *context, HCS_EVENT_CALLBACK callback); +HRESULT WINAPI HcsWaitForProcessExit (HCS_PROCESS computeSystem, DWORD timeoutMs, PWSTR *result); +HRESULT WINAPI HcsGetServiceProperties (PCWSTR propertyQuery, PWSTR *result); +HRESULT WINAPI HcsModifyServiceSettings (PCWSTR settings, PWSTR *result); +HRESULT WINAPI HcsSubmitWerReport (PCWSTR settings); +HRESULT WINAPI HcsCreateEmptyGuestStateFile (PCWSTR guestStateFilePath); +HRESULT WINAPI HcsCreateEmptyRuntimeStateFile (PCWSTR runtimeStateFilePath); +HRESULT WINAPI HcsGrantVmAccess (PCWSTR vmId, PCWSTR filePath); +HRESULT WINAPI HcsRevokeVmAccess (PCWSTR vmId, PCWSTR filePath); +HRESULT WINAPI HcsGrantVmGroupAccess (PCWSTR filePath); +HRESULT WINAPI HcsRevokeVmGroupAccess (PCWSTR filePath); + +#ifdef __cplusplus +} +#endif + +#endif /* WINAPI_PARTITION_DESKTOP */ + +#endif /* _HYPERV_COMPUTECORE_H_ */ diff --git a/lib/libc/include/any-windows-any/computedefs.h b/lib/libc/include/any-windows-any/computedefs.h new file mode 100644 index 0000000000..0847e8ebc9 --- /dev/null +++ b/lib/libc/include/any-windows-any/computedefs.h @@ -0,0 +1,119 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _HYPERV_COMPUTEDEFS_H_ +#define _HYPERV_COMPUTEDEFS_H_ + +DECLARE_HANDLE(HCS_SYSTEM); +DECLARE_HANDLE(HCS_PROCESS); +DECLARE_HANDLE(HCS_OPERATION); +DECLARE_HANDLE(HCS_CALLBACK); + +typedef enum HCS_OPERATION_TYPE { + HcsOperationTypeNone = -1, + HcsOperationTypeEnumerate = 0, + HcsOperationTypeCreate = 1, + HcsOperationTypeStart = 2, + HcsOperationTypeShutdown = 3, + HcsOperationTypePause = 4, + HcsOperationTypeResume = 5, + HcsOperationTypeSave = 6, + HcsOperationTypeTerminate = 7, + HcsOperationTypeModify = 8, + HcsOperationTypeGetProperties = 9, + HcsOperationTypeCreateProcess = 10, + HcsOperationTypeSignalProcess = 11, + HcsOperationTypeGetProcessInfo = 12, + HcsOperationTypeGetProcessProperties = 13, + HcsOperationTypeModifyProcess = 14, + HcsOperationTypeCrash = 15 +} HCS_OPERATION_TYPE; + +#define HCS_INVALID_OPERATION_ID (UINT64)(-1) + +typedef void (CALLBACK *HCS_OPERATION_COMPLETION)(HCS_OPERATION operation, void *context); + +typedef enum HCS_EVENT_TYPE { + HcsEventInvalid = 0x00000000, + HcsEventSystemExited = 0x00000001, + HcsEventSystemCrashInitiated = 0x00000002, + HcsEventSystemCrashReport = 0x00000003, + HcsEventSystemRdpEnhancedModeStateChanged = 0x00000004, + HcsEventSystemSiloJobCreated = 0x00000005, + HcsEventSystemGuestConnectionClosed = 0x00000006, + HcsEventProcessExited = 0x00010000, + HcsEventOperationCallback = 0x01000000, + HcsEventServiceDisconnect = 0x02000000 +} HCS_EVENT_TYPE; + +typedef struct HCS_EVENT { + HCS_EVENT_TYPE Type; + PCWSTR EventData; + HCS_OPERATION Operation; +} HCS_EVENT; + +typedef enum HCS_EVENT_OPTIONS { + HcsEventOptionNone = 0x00000000, + HcsEventOptionEnableOperationCallbacks = 0x00000001 +} HCS_EVENT_OPTIONS; + +DEFINE_ENUM_FLAG_OPERATORS(HCS_EVENT_OPTIONS); + +typedef void (CALLBACK *HCS_EVENT_CALLBACK)(HCS_EVENT *event, void *context); + +typedef enum HCS_NOTIFICATION_FLAGS { + HcsNotificationFlagSuccess = 0x00000000, + HcsNotificationFlagFailure = 0x80000000 +} HCS_NOTIFICATION_FLAGS; + +typedef enum HCS_NOTIFICATIONS { + HcsNotificationInvalid = 0x00000000, + HcsNotificationSystemExited = 0x00000001, + HcsNotificationSystemCreateCompleted = 0x00000002, + HcsNotificationSystemStartCompleted = 0x00000003, + HcsNotificationSystemPauseCompleted = 0x00000004, + HcsNotificationSystemResumeCompleted = 0x00000005, + HcsNotificationSystemCrashReport = 0x00000006, + HcsNotificationSystemSiloJobCreated = 0x00000007, + HcsNotificationSystemSaveCompleted = 0x00000008, + HcsNotificationSystemRdpEnhancedModeStateChanged = 0x00000009, + HcsNotificationSystemShutdownFailed = 0x0000000A, + HcsNotificationSystemShutdownCompleted = 0x0000000A, + HcsNotificationSystemGetPropertiesCompleted = 0x0000000B, + HcsNotificationSystemModifyCompleted = 0x0000000C, + HcsNotificationSystemCrashInitiated = 0x0000000D, + HcsNotificationSystemGuestConnectionClosed = 0x0000000E, + HcsNotificationSystemOperationCompletion = 0x0000000F, + HcsNotificationSystemPassThru = 0x00000010, + HcsNotificationProcessExited = 0x00010000, + HcsNotificationServiceDisconnect = 0x01000000, + HcsNotificationFlagsReserved = 0xF0000000 +} HCS_NOTIFICATIONS; + +typedef void (CALLBACK *HCS_NOTIFICATION_CALLBACK)(DWORD notificationType, void *context, HRESULT notificationStatus, PCWSTR notificationData); + +typedef struct { + DWORD ProcessId; + DWORD Reserved; + HANDLE StdInput; + HANDLE StdOutput; + HANDLE StdError; +} HCS_PROCESS_INFORMATION; + +typedef enum HCS_CREATE_OPTIONS { + HcsCreateOptions_1 = 0x00010000 +}HCS_CREATE_OPTIONS; + +typedef struct { + HCS_CREATE_OPTIONS Version; + HANDLE UserToken; + SECURITY_DESCRIPTOR* SecurityDescriptor; + HCS_EVENT_OPTIONS CallbackOptions; + void* CallbackContext; + HCS_EVENT_CALLBACK Callback; +} HCS_CREATE_OPTIONS_1; + +#endif /* _HYPERV_COMPUTEDEFS_H_ */ diff --git a/lib/libc/include/any-windows-any/computenetwork.h b/lib/libc/include/any-windows-any/computenetwork.h new file mode 100644 index 0000000000..3fc8080153 --- /dev/null +++ b/lib/libc/include/any-windows-any/computenetwork.h @@ -0,0 +1,142 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef HCN_CLIENT_H +#define HCN_CLIENT_H + +#include <apiset.h> +#include <apisetcconv.h> +#include <minwindef.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum HCN_NOTIFICATIONS { + HcnNotificationInvalid = 0x00000000, + HcnNotificationNetworkPreCreate = 0x00000001, + HcnNotificationNetworkCreate = 0x00000002, + HcnNotificationNetworkPreDelete = 0x00000003, + HcnNotificationNetworkDelete = 0x00000004, + HcnNotificationNamespaceCreate = 0x00000005, + HcnNotificationNamespaceDelete = 0x00000006, + HcnNotificationGuestNetworkServiceCreate = 0x00000007, + HcnNotificationGuestNetworkServiceDelete = 0x00000008, + HcnNotificationNetworkEndpointAttached = 0x00000009, + HcnNotificationNetworkEndpointDetached = 0x00000010, + HcnNotificationGuestNetworkServiceStateChanged = 0x00000011, + HcnNotificationGuestNetworkServiceInterfaceStateChanged = 0x00000012, + HcnNotificationServiceDisconnect = 0x01000000, + HcnNotificationFlagsReserved = 0xF0000000 +} HCN_NOTIFICATIONS; + +typedef void* HCN_CALLBACK; + +typedef void (CALLBACK *HCN_NOTIFICATION_CALLBACK)(DWORD NotificationType, void *Context, HRESULT NotificationStatus, PCWSTR NotificationData); + +typedef void* HCN_NETWORK; +typedef HCN_NETWORK* PHCN_NETWORK; + +HRESULT WINAPI HcnEnumerateNetworks (PCWSTR Query, PWSTR *Networks, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCreateNetwork (REFGUID Id, PCWSTR Settings, PHCN_NETWORK Network, PWSTR *ErrorRecord); +HRESULT WINAPI HcnOpenNetwork (REFGUID Id, PHCN_NETWORK Network, PWSTR *ErrorRecord); +HRESULT WINAPI HcnModifyNetwork (HCN_NETWORK Network, PCWSTR Settings, PWSTR *ErrorRecord); +HRESULT WINAPI HcnQueryNetworkProperties (HCN_NETWORK Network, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord); +HRESULT WINAPI HcnDeleteNetwork (REFGUID Id, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCloseNetwork (HCN_NETWORK Network); + +typedef void* HCN_NAMESPACE; +typedef HCN_NAMESPACE* PHCN_NAMESPACE; + +HRESULT WINAPI HcnEnumerateNamespaces (PCWSTR Query, PWSTR *Namespaces, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCreateNamespace (REFGUID Id, PCWSTR Settings, PHCN_NAMESPACE Namespace, PWSTR *ErrorRecord); +HRESULT WINAPI HcnOpenNamespace (REFGUID Id, PHCN_NAMESPACE Namespace, PWSTR *ErrorRecord); +HRESULT WINAPI HcnModifyNamespace (HCN_NAMESPACE Namespace, PCWSTR Settings, PWSTR *ErrorRecord); +HRESULT WINAPI HcnQueryNamespaceProperties (HCN_NAMESPACE Namespace, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord); +HRESULT WINAPI HcnDeleteNamespace (REFGUID Id, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCloseNamespace (HCN_NAMESPACE Namespace); + +typedef void* HCN_ENDPOINT; +typedef HCN_ENDPOINT* PHCN_ENDPOINT; + +HRESULT WINAPI HcnEnumerateEndpoints (PCWSTR Query, PWSTR *Endpoints, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCreateEndpoint (HCN_NETWORK Network, REFGUID Id, PCWSTR Settings, PHCN_ENDPOINT Endpoint, PWSTR *ErrorRecord); +HRESULT WINAPI HcnOpenEndpoint (REFGUID Id, PHCN_ENDPOINT Endpoint, PWSTR *ErrorRecord); +HRESULT WINAPI HcnModifyEndpoint (HCN_ENDPOINT Endpoint, PCWSTR Settings, PWSTR *ErrorRecord); +HRESULT WINAPI HcnQueryEndpointProperties (HCN_ENDPOINT Endpoint, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord); +HRESULT WINAPI HcnDeleteEndpoint (REFGUID Id, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCloseEndpoint (HCN_ENDPOINT Endpoint); + +typedef void* HCN_LOADBALANCER; +typedef HCN_LOADBALANCER* PHCN_LOADBALANCER; + +HRESULT WINAPI HcnEnumerateLoadBalancers (PCWSTR Query, PWSTR *LoadBalancer, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCreateLoadBalancer (REFGUID Id, PCWSTR Settings, PHCN_LOADBALANCER LoadBalancer, PWSTR *ErrorRecord); +HRESULT WINAPI HcnOpenLoadBalancer (REFGUID Id, PHCN_LOADBALANCER LoadBalancer, PWSTR *ErrorRecord); +HRESULT WINAPI HcnModifyLoadBalancer (HCN_LOADBALANCER LoadBalancer, PCWSTR Settings, PWSTR *ErrorRecord); +HRESULT WINAPI HcnQueryLoadBalancerProperties (HCN_LOADBALANCER LoadBalancer, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord); +HRESULT WINAPI HcnDeleteLoadBalancer (REFGUID Id, PWSTR *ErrorRecord); +HRESULT WINAPI HcnCloseLoadBalancer (HCN_LOADBALANCER LoadBalancer); + +typedef void* HCN_SERVICE; +typedef HCN_SERVICE* PHCN_SERVICE; + +HRESULT WINAPI HcnRegisterServiceCallback (HCN_NOTIFICATION_CALLBACK Callback, void *Context, HCN_CALLBACK *CallbackHandle); +HRESULT WINAPI HcnUnregisterServiceCallback (HCN_CALLBACK CallbackHandle); + +typedef void* HCN_GUESTNETWORKSERVICE; +typedef HCN_GUESTNETWORKSERVICE* PHCN_GUESTNETWORKSERVICE; + +HRESULT WINAPI HcnRegisterGuestNetworkServiceCallback (HCN_GUESTNETWORKSERVICE GuestNetworkService, HCN_NOTIFICATION_CALLBACK Callback, void* Context, HCN_CALLBACK* CallbackHandle); +HRESULT WINAPI HcnUnregisterGuestNetworkServiceCallback (HCN_CALLBACK CallbackHandle); +HRESULT WINAPI HcnCreateGuestNetworkService (REFGUID Id, PCWSTR Settings, PHCN_GUESTNETWORKSERVICE GuestNetworkService, PWSTR* ErrorRecord); +HRESULT WINAPI HcnCloseGuestNetworkService (HCN_GUESTNETWORKSERVICE GuestNetworkService); +HRESULT WINAPI HcnModifyGuestNetworkService (HCN_GUESTNETWORKSERVICE GuestNetworkService, PCWSTR Settings, PWSTR* ErrorRecord); +HRESULT WINAPI HcnDeleteGuestNetworkService (REFGUID Id, PWSTR* ErrorRecord); + +typedef enum tagHCN_PORT_PROTOCOL { + HCN_PORT_PROTOCOL_TCP = 0x01, + HCN_PORT_PROTOCOL_UDP = 0x02, + HCN_PORT_PROTOCOL_BOTH = 0x03 +} HCN_PORT_PROTOCOL; + +typedef enum tagHCN_PORT_ACCESS { + HCN_PORT_ACCESS_EXCLUSIVE = 0x01, + HCN_PORT_ACCESS_SHARED = 0x02 +} HCN_PORT_ACCESS; + +typedef struct tagHCN_PORT_RANGE_RESERVATION { + USHORT startingPort; + USHORT endingPort; +} HCN_PORT_RANGE_RESERVATION; + +typedef struct tagHCN_PORT_RANGE_ENTRY { + GUID OwningPartitionId; + GUID TargetPartitionId; + HCN_PORT_PROTOCOL Protocol; + UINT64 Priority; + UINT32 ReservationType; + UINT32 SharingFlags; + UINT32 DeliveryMode; + UINT16 StartingPort; + UINT16 EndingPort; +} HCN_PORT_RANGE_ENTRY, *PHCN_PORT_RANGE_ENTRY; + +HRESULT WINAPI HcnReserveGuestNetworkServicePort (HCN_GUESTNETWORKSERVICE GuestNetworkService, HCN_PORT_PROTOCOL Protocol, HCN_PORT_ACCESS Access, USHORT Port, HANDLE* PortReservationHandle); +HRESULT WINAPI HcnReserveGuestNetworkServicePortRange (HCN_GUESTNETWORKSERVICE GuestNetworkService, USHORT PortCount, HCN_PORT_RANGE_RESERVATION* PortRangeReservation, HANDLE* PortReservationHandle); +HRESULT WINAPI HcnReleaseGuestNetworkServicePortReservationHandle (HANDLE PortReservationHandle); +HRESULT WINAPI HcnEnumerateGuestNetworkPortReservations (ULONG* ReturnCount, HCN_PORT_RANGE_ENTRY** PortEntries); +VOID WINAPI HcnFreeGuestNetworkPortReservations (HCN_PORT_RANGE_ENTRY* PortEntries); + +#ifdef __cplusplus +} +#endif + +#endif /* WINAPI_PARTITION_DESKTOP */ + +#endif /* HCN_CLIENT_H */ diff --git a/lib/libc/include/any-windows-any/computestorage.h b/lib/libc/include/any-windows-any/computestorage.h new file mode 100644 index 0000000000..f1155f4ac5 --- /dev/null +++ b/lib/libc/include/any-windows-any/computestorage.h @@ -0,0 +1,40 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _HYPERV_COMPUTESTORAGE_H_ +#define _HYPERV_COMPUTESTORAGE_H_ + +#include <apiset.h> +#include <apisetcconv.h> +#include <minwindef.h> +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#ifdef __cplusplus +extern "C" { +#endif + +HRESULT WINAPI HcsImportLayer (PCWSTR layerPath, PCWSTR sourceFolderPath, PCWSTR layerData); +HRESULT WINAPI HcsExportLayer (PCWSTR layerPath, PCWSTR exportFolderPath, PCWSTR layerData, PCWSTR options); +HRESULT WINAPI HcsExportLegacyWritableLayer (PCWSTR writableLayerMountPath, PCWSTR writableLayerFolderPath, PCWSTR exportFolderPath, PCWSTR layerData); +HRESULT WINAPI HcsDestroyLayer (PCWSTR layerPath); +HRESULT WINAPI HcsSetupBaseOSLayer (PCWSTR layerPath, HANDLE vhdHandle, PCWSTR options); +HRESULT WINAPI HcsInitializeWritableLayer (PCWSTR writableLayerPath, PCWSTR layerData, PCWSTR options); +HRESULT WINAPI HcsInitializeLegacyWritableLayer (PCWSTR writableLayerMountPath, PCWSTR writableLayerFolderPath, PCWSTR layerData, PCWSTR options); +HRESULT WINAPI HcsAttachLayerStorageFilter (PCWSTR layerPath, PCWSTR layerData); +HRESULT WINAPI HcsDetachLayerStorageFilter (PCWSTR layerPath); +HRESULT WINAPI HcsFormatWritableLayerVhd (HANDLE vhdHandle); +HRESULT WINAPI HcsGetLayerVhdMountPath (HANDLE vhdHandle, PWSTR *mountPath); +HRESULT WINAPI HcsSetupBaseOSVolume (PCWSTR layerPath, PCWSTR volumePath, PCWSTR options); + +#ifdef __cplusplus +} +#endif + +#endif /* WINAPI_PARTITION_DESKTOP */ + +#endif /* _HYPERV_COMPUTESTORAGE_H_ */ diff --git a/lib/libc/include/any-windows-any/control.h b/lib/libc/include/any-windows-any/control.h index 931f8341eb..2a747b91fa 100644 --- a/lib/libc/include/any-windows-any/control.h +++ b/lib/libc/include/any-windows-any/control.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/control.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/control.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/corecrt.h b/lib/libc/include/any-windows-any/corecrt.h index 80572c2ea9..abb720885c 100644 --- a/lib/libc/include/any-windows-any/corecrt.h +++ b/lib/libc/include/any-windows-any/corecrt.h @@ -15,11 +15,6 @@ #pragma pack(push,_CRT_PACKING) #endif -#if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000)) -/* Allow both 0x1400 and 0xE00 to identify UCRT */ -#define _UCRT -#endif - #ifdef __ERRCODE_DEFINED_MS /* #define __ERRCODE_DEFINED_MS */ typedef int errcode; diff --git a/lib/libc/include/any-windows-any/ctfutb.h b/lib/libc/include/any-windows-any/ctfutb.h index c010bda40f..79c98fd473 100644 --- a/lib/libc/include/any-windows-any/ctfutb.h +++ b/lib/libc/include/any-windows-any/ctfutb.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/ctfutb.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/ctfutb.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/ctype.h b/lib/libc/include/any-windows-any/ctype.h index d6a1a5410f..bcac1c246e 100644 --- a/lib/libc/include/any-windows-any/ctype.h +++ b/lib/libc/include/any-windows-any/ctype.h @@ -191,7 +191,7 @@ int __cdecl isblank(int _C); int __cdecl is_wctype(wint_t _C,wctype_t _Type); #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */ -#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus) int __cdecl iswblank(wint_t _C); #endif #endif diff --git a/lib/libc/include/any-windows-any/d3d10.h b/lib/libc/include/any-windows-any/d3d10.h index f4a34f623a..d31585e73c 100644 --- a/lib/libc/include/any-windows-any/d3d10.h +++ b/lib/libc/include/any-windows-any/d3d10.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d10.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d10.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d10_1.h b/lib/libc/include/any-windows-any/d3d10_1.h index 3b14c7260f..b464a663ef 100644 --- a/lib/libc/include/any-windows-any/d3d10_1.h +++ b/lib/libc/include/any-windows-any/d3d10_1.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d10_1.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d10_1.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d10effect.h b/lib/libc/include/any-windows-any/d3d10effect.h index cefa10f6a1..25edd3038c 100644 --- a/lib/libc/include/any-windows-any/d3d10effect.h +++ b/lib/libc/include/any-windows-any/d3d10effect.h @@ -35,8 +35,8 @@ typedef enum _D3D10_DEVICE_STATE_TYPES { D3D10_DST_SO_BUFFERS = 1, D3D10_DST_OM_RENDER_TARGETS, - D3D10_DST_DEPTH_STENCIL_STATE, - D3D10_DST_BLEND_STATE, + D3D10_DST_OM_DEPTH_STENCIL_STATE, + D3D10_DST_OM_BLEND_STATE, D3D10_DST_VS, D3D10_DST_VS_SAMPLERS, D3D10_DST_VS_SHADER_RESOURCES, diff --git a/lib/libc/include/any-windows-any/d3d10sdklayers.h b/lib/libc/include/any-windows-any/d3d10sdklayers.h index c70f97c743..1fe21c7169 100644 --- a/lib/libc/include/any-windows-any/d3d10sdklayers.h +++ b/lib/libc/include/any-windows-any/d3d10sdklayers.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d10sdklayers.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d10sdklayers.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11.h b/lib/libc/include/any-windows-any/d3d11.h index 1b83b61b45..29c01ae5a6 100644 --- a/lib/libc/include/any-windows-any/d3d11.h +++ b/lib/libc/include/any-windows-any/d3d11.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11_1.h b/lib/libc/include/any-windows-any/d3d11_1.h index 3781bbb578..4f378a01c1 100644 --- a/lib/libc/include/any-windows-any/d3d11_1.h +++ b/lib/libc/include/any-windows-any/d3d11_1.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11_1.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11_1.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11_2.h b/lib/libc/include/any-windows-any/d3d11_2.h index 879f793e3e..ca75be69cb 100644 --- a/lib/libc/include/any-windows-any/d3d11_2.h +++ b/lib/libc/include/any-windows-any/d3d11_2.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11_2.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11_2.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11_3.h b/lib/libc/include/any-windows-any/d3d11_3.h index 657b6dc591..639c54a2bc 100644 --- a/lib/libc/include/any-windows-any/d3d11_3.h +++ b/lib/libc/include/any-windows-any/d3d11_3.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11_3.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11_3.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11_4.h b/lib/libc/include/any-windows-any/d3d11_4.h index c0c725a889..8b3afc3b28 100644 --- a/lib/libc/include/any-windows-any/d3d11_4.h +++ b/lib/libc/include/any-windows-any/d3d11_4.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11_4.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11_4.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11on12.h b/lib/libc/include/any-windows-any/d3d11on12.h index 6dc8adfc68..b5fc71826d 100644 --- a/lib/libc/include/any-windows-any/d3d11on12.h +++ b/lib/libc/include/any-windows-any/d3d11on12.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11on12.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11on12.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d11sdklayers.h b/lib/libc/include/any-windows-any/d3d11sdklayers.h index a7a65bbd73..eb76747b4c 100644 --- a/lib/libc/include/any-windows-any/d3d11sdklayers.h +++ b/lib/libc/include/any-windows-any/d3d11sdklayers.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d11sdklayers.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d11sdklayers.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d12.h b/lib/libc/include/any-windows-any/d3d12.h index 77e9da05d6..fab244c5f0 100644 --- a/lib/libc/include/any-windows-any/d3d12.h +++ b/lib/libc/include/any-windows-any/d3d12.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d12.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d12.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d12sdklayers.h b/lib/libc/include/any-windows-any/d3d12sdklayers.h index 184775bcb8..c2c57e0c47 100644 --- a/lib/libc/include/any-windows-any/d3d12sdklayers.h +++ b/lib/libc/include/any-windows-any/d3d12sdklayers.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d12sdklayers.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d12sdklayers.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3d12shader.h b/lib/libc/include/any-windows-any/d3d12shader.h index 870c336412..0fb4a88271 100644 --- a/lib/libc/include/any-windows-any/d3d12shader.h +++ b/lib/libc/include/any-windows-any/d3d12shader.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3d12shader.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3d12shader.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/d3dcommon.h b/lib/libc/include/any-windows-any/d3dcommon.h index a09cd5e48e..1cb0e8d870 100644 --- a/lib/libc/include/any-windows-any/d3dcommon.h +++ b/lib/libc/include/any-windows-any/d3dcommon.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/d3dcommon.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/d3dcommon.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -534,19 +534,19 @@ typedef enum D3D_PRIMITIVE { D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, - D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 28, - D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 29, - D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 30, - D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 31, - D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 32, - D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 33, - D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 34, - D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 35, - D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 36, - D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 37, - D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 38, - D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 39, - D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 40, + D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, + D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, + D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, + D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, + D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, + D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, + D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, + D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, + D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, + D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, + D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, + D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, + D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, D3D10_PRIMITIVE_UNDEFINED = 0, D3D10_PRIMITIVE_POINT = 1, D3D10_PRIMITIVE_LINE = 2, @@ -578,19 +578,19 @@ typedef enum D3D_PRIMITIVE { D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, - D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = 28, - D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = 29, - D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = 30, - D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = 31, - D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = 32, - D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = 33, - D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = 34, - D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = 35, - D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = 36, - D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = 37, - D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = 38, - D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = 39, - D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = 40 + D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, + D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, + D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, + D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, + D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, + D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, + D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, + D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, + D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, + D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, + D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, + D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, + D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = 39 } D3D_PRIMITIVE; typedef enum D3D_PRIMITIVE_TOPOLOGY { D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, diff --git a/lib/libc/include/any-windows-any/dbgprop.h b/lib/libc/include/any-windows-any/dbgprop.h index 7207005072..124de2465d 100644 --- a/lib/libc/include/any-windows-any/dbgprop.h +++ b/lib/libc/include/any-windows-any/dbgprop.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dbgprop.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dbgprop.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dcommon.h b/lib/libc/include/any-windows-any/dcommon.h index aef42d5180..06fad5e717 100644 --- a/lib/libc/include/any-windows-any/dcommon.h +++ b/lib/libc/include/any-windows-any/dcommon.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dcommon.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dcommon.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dcomp.h b/lib/libc/include/any-windows-any/dcomp.h index 58f4b8466a..21010f7db1 100644 --- a/lib/libc/include/any-windows-any/dcomp.h +++ b/lib/libc/include/any-windows-any/dcomp.h @@ -524,8 +524,82 @@ __CRT_UUID_DECL(IDCompositionVisualDebug,0xfed2b808,0x5eb4,0x43a0,0xae,0xa3,0x35 #endif +#undef INTERFACE +#define INTERFACE IDCompositionFilterEffect +DECLARE_INTERFACE_IID_(IDCompositionFilterEffect, IDCompositionEffect, "30C421D5-8CB2-4E9F-B133-37BE270D4AC2") +{ + STDMETHOD(SetInput)(THIS_ UINT index, IUnknown *input, UINT flags) PURE; +}; + +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDCompositionFilterEffect,0x30c421d5,0x8cb2,0x4e9f,0xb1,0x33,0x37,0xbe,0x27,0x0d,0x4a,0xc2); #endif + +#undef INTERFACE +#define INTERFACE IDCompositionSaturationEffect +DECLARE_INTERFACE_IID_(IDCompositionSaturationEffect, IDCompositionFilterEffect, "A08DEBDA-3258-4FA4-9F16-9174D3FE93B1") +{ +#if defined(_MSC_VER) && defined(__cplusplus) + STDMETHOD(SetSaturation)(THIS_ float ratio) PURE; + STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE; +#else + STDMETHOD(SetSaturation)(THIS_ IDCompositionAnimation* animation) PURE; + STDMETHOD(SetSaturation)(THIS_ float ratio ) PURE; +#endif +}; + +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDCompositionSaturationEffect,0xa08debda,0x3258,0x4fa4,0x9f,0x16,0x91,0x74,0xd3,0xfe,0x93,0xb1); +#endif + + +#undef INTERFACE +#define INTERFACE IDCompositionGaussianBlurEffect +DECLARE_INTERFACE_IID_(IDCompositionGaussianBlurEffect, IDCompositionFilterEffect, "45D4D0B7-1BD4-454E-8894-2BFA68443033") +{ + +#if defined(_MSC_VER) && defined(__cplusplus) + STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE; + STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) PURE; +#else + STDMETHOD(SetStandardDeviation)(THIS_ IDCompositionAnimation* animation) PURE; + STDMETHOD(SetStandardDeviation)(THIS_ float amount) PURE; +#endif + STDMETHOD(SetBorderMode)(THIS_ D2D1_BORDER_MODE mode) PURE; +}; + +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDCompositionGaussianBlurEffect,0x45d4d0b7,0x1bd4,0x454e,0x88,0x94,0x2b,0xfa,0x68,0x44,0x30,0x33); +#endif + + +/* WARNING: some of the arguments are replaced with void*, only what's used has been kept */ +#undef INTERFACE +#define INTERFACE IDCompositionDevice3 +DECLARE_INTERFACE_IID_(IDCompositionDevice3, IDCompositionDevice2, "0987CB06-F916-48BF-8D35-CE7641781BD9") +{ + STDMETHOD(CreateGaussianBlurEffect)(THIS_ IDCompositionGaussianBlurEffect **gaussianBlurEffect) PURE; + STDMETHOD(CreateBrightnessEffect)(THIS_ /* TODO IDCompositionBrightnessEffect */ void **brightnessEffect) PURE; + STDMETHOD(CreateColorMatrixEffect)(THIS_ /* TODO IDCompositionColorMatrixEffect */ void **colorMatrixEffect) PURE; + STDMETHOD(CreateShadowEffect)(THIS_ /* TODO IDCompositionShadowEffect */ void **shadowEffect) PURE; + STDMETHOD(CreateHueRotationEffect)(THIS_ /* IDCompositionHueRotationEffect */ void **hueRotationEffect) PURE; + STDMETHOD(CreateSaturationEffect)(THIS_ IDCompositionSaturationEffect **saturationEffect) PURE; + STDMETHOD(CreateTurbulenceEffect)(THIS_ /* IDCompositionTurbulenceEffect */ void **turbulenceEffect) PURE; + STDMETHOD(CreateLinearTransferEffect)(THIS_ /* IDCompositionLinearTransferEffect */ void **linearTransferEffect) PURE; + STDMETHOD(CreateTableTransferEffect)(THIS_ /* IDCompositionTableTransferEffect */ void **tableTransferEffect) PURE; + STDMETHOD(CreateCompositeEffect)(THIS_ /* IDCompositionCompositeEffect */ void **compositeEffect) PURE; + STDMETHOD(CreateBlendEffect)(THIS_ /* TODO IDCompositionBlendEffect */ void **blendEffect) PURE; + STDMETHOD(CreateArithmeticCompositeEffect)(THIS_ /* IDCompositionArithmeticCompositeEffect */ void **arithmeticCompositeEffect) PURE; + STDMETHOD(CreateAffineTransform2DEffect)(THIS_ /* IDCompositionAffineTransform2DEffect */ void **affineTransform2dEffect) PURE; +}; + +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDCompositionDevice3,0x0987cb06,0xf916,0x48bf,0x8d,0x35,0xce,0x76,0x41,0x78,0x1b,0xd9); +#endif + +#endif /* WINAPI_PARTITION_DESKTOP */ + #if (_WIN32_WINNT >= 0x0A00) STDAPI DCompositionCreateDevice3(IUnknown *renderingDevice, REFIID iid, void **dcompositionDevice); diff --git a/lib/libc/include/any-windows-any/dcompanimation.h b/lib/libc/include/any-windows-any/dcompanimation.h index 5a74d04a5b..5de9698bd2 100644 --- a/lib/libc/include/any-windows-any/dcompanimation.h +++ b/lib/libc/include/any-windows-any/dcompanimation.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dcompanimation.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dcompanimation.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/ddk/ata.h b/lib/libc/include/any-windows-any/ddk/ata.h new file mode 100644 index 0000000000..2d95717e88 --- /dev/null +++ b/lib/libc/include/any-windows-any/ddk/ata.h @@ -0,0 +1,1732 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _NTATA_ +#define _NTATA_ + +#pragma pack(push,1) + +typedef struct _IDENTIFY_DEVICE_DATA { + struct { + USHORT Reserved1 : 1; + USHORT Retired3 : 1; + USHORT ResponseIncomplete : 1; + USHORT Retired2 : 3; + USHORT FixedDevice : 1; + USHORT RemovableMedia : 1; + USHORT Retired1 : 7; + USHORT DeviceType : 1; + } GeneralConfiguration; + USHORT NumCylinders; + USHORT SpecificConfiguration; + USHORT NumHeads; + USHORT Retired1[2]; + USHORT NumSectorsPerTrack; + USHORT VendorUnique1[3]; + UCHAR SerialNumber[20]; + USHORT Retired2[2]; + USHORT Obsolete1; + UCHAR FirmwareRevision[8]; + UCHAR ModelNumber[40]; + UCHAR MaximumBlockTransfer; + UCHAR VendorUnique2; + struct { + USHORT FeatureSupported : 1; + USHORT Reserved : 15; + } TrustedComputing; + struct { + UCHAR CurrentLongPhysicalSectorAlignment : 2; + UCHAR ReservedByte49 : 6; + UCHAR DmaSupported : 1; + UCHAR LbaSupported : 1; + UCHAR IordyDisable : 1; + UCHAR IordySupported : 1; + UCHAR Reserved1 : 1; + UCHAR StandybyTimerSupport : 1; + UCHAR Reserved2 : 2; + USHORT ReservedWord50; + } Capabilities; + USHORT ObsoleteWords51[2]; + USHORT TranslationFieldsValid : 3; + USHORT Reserved3 : 5; + USHORT FreeFallControlSensitivity : 8; + USHORT NumberOfCurrentCylinders; + USHORT NumberOfCurrentHeads; + USHORT CurrentSectorsPerTrack; + ULONG CurrentSectorCapacity; + UCHAR CurrentMultiSectorSetting; + UCHAR MultiSectorSettingValid : 1; + UCHAR ReservedByte59 : 3; + UCHAR SanitizeFeatureSupported : 1; + UCHAR CryptoScrambleExtCommandSupported : 1; + UCHAR OverwriteExtCommandSupported : 1; + UCHAR BlockEraseExtCommandSupported : 1; + ULONG UserAddressableSectors; + USHORT ObsoleteWord62; + USHORT MultiWordDMASupport : 8; + USHORT MultiWordDMAActive : 8; + USHORT AdvancedPIOModes : 8; + USHORT ReservedByte64 : 8; + USHORT MinimumMWXferCycleTime; + USHORT RecommendedMWXferCycleTime; + USHORT MinimumPIOCycleTime; + USHORT MinimumPIOCycleTimeIORDY; + struct { + USHORT ZonedCapabilities : 2; + USHORT NonVolatileWriteCache : 1; + USHORT ExtendedUserAddressableSectorsSupported : 1; + USHORT DeviceEncryptsAllUserData : 1; + USHORT ReadZeroAfterTrimSupported : 1; + USHORT Optional28BitCommandsSupported : 1; + USHORT IEEE1667 : 1; + USHORT DownloadMicrocodeDmaSupported : 1; + USHORT SetMaxSetPasswordUnlockDmaSupported : 1; + USHORT WriteBufferDmaSupported : 1; + USHORT ReadBufferDmaSupported : 1; + USHORT DeviceConfigIdentifySetDmaSupported : 1; + USHORT LPSAERCSupported : 1; + USHORT DeterministicReadAfterTrimSupported : 1; + USHORT CFastSpecSupported : 1; + } AdditionalSupported; + USHORT ReservedWords70[5]; + USHORT QueueDepth : 5; + USHORT ReservedWord75 : 11; + struct { + USHORT Reserved0 : 1; + USHORT SataGen1 : 1; + USHORT SataGen2 : 1; + USHORT SataGen3 : 1; + USHORT Reserved1 : 4; + USHORT NCQ : 1; + USHORT HIPM : 1; + USHORT PhyEvents : 1; + USHORT NcqUnload : 1; + USHORT NcqPriority : 1; + USHORT HostAutoPS : 1; + USHORT DeviceAutoPS : 1; + USHORT ReadLogDMA : 1; + USHORT Reserved2 : 1; + USHORT CurrentSpeed : 3; + USHORT NcqStreaming : 1; + USHORT NcqQueueMgmt : 1; + USHORT NcqReceiveSend : 1; + USHORT DEVSLPtoReducedPwrState : 1; + USHORT Reserved3 : 8; + } SerialAtaCapabilities; + struct { + USHORT Reserved0 : 1; + USHORT NonZeroOffsets : 1; + USHORT DmaSetupAutoActivate : 1; + USHORT DIPM : 1; + USHORT InOrderData : 1; + USHORT HardwareFeatureControl : 1; + USHORT SoftwareSettingsPreservation : 1; + USHORT NCQAutosense : 1; + USHORT DEVSLP : 1; + USHORT HybridInformation : 1; + USHORT Reserved1 : 6; + } SerialAtaFeaturesSupported; + struct { + USHORT Reserved0 : 1; + USHORT NonZeroOffsets : 1; + USHORT DmaSetupAutoActivate : 1; + USHORT DIPM : 1; + USHORT InOrderData : 1; + USHORT HardwareFeatureControl : 1; + USHORT SoftwareSettingsPreservation : 1; + USHORT DeviceAutoPS : 1; + USHORT DEVSLP : 1; + USHORT HybridInformation : 1; + USHORT Reserved1 : 6; + } SerialAtaFeaturesEnabled; + USHORT MajorRevision; + USHORT MinorRevision; + struct { + USHORT SmartCommands : 1; + USHORT SecurityMode : 1; + USHORT RemovableMediaFeature : 1; + USHORT PowerManagement : 1; + USHORT Reserved1 : 1; + USHORT WriteCache : 1; + USHORT LookAhead : 1; + USHORT ReleaseInterrupt : 1; + USHORT ServiceInterrupt : 1; + USHORT DeviceReset : 1; + USHORT HostProtectedArea : 1; + USHORT Obsolete1 : 1; + USHORT WriteBuffer : 1; + USHORT ReadBuffer : 1; + USHORT Nop : 1; + USHORT Obsolete2 : 1; + USHORT DownloadMicrocode : 1; + USHORT DmaQueued : 1; + USHORT Cfa : 1; + USHORT AdvancedPm : 1; + USHORT Msn : 1; + USHORT PowerUpInStandby : 1; + USHORT ManualPowerUp : 1; + USHORT Reserved2 : 1; + USHORT SetMax : 1; + USHORT Acoustics : 1; + USHORT BigLba : 1; + USHORT DeviceConfigOverlay : 1; + USHORT FlushCache : 1; + USHORT FlushCacheExt : 1; + USHORT WordValid83 : 2; + USHORT SmartErrorLog : 1; + USHORT SmartSelfTest : 1; + USHORT MediaSerialNumber : 1; + USHORT MediaCardPassThrough : 1; + USHORT StreamingFeature : 1; + USHORT GpLogging : 1; + USHORT WriteFua : 1; + USHORT WriteQueuedFua : 1; + USHORT WWN64Bit : 1; + USHORT URGReadStream : 1; + USHORT URGWriteStream : 1; + USHORT ReservedForTechReport : 2; + USHORT IdleWithUnloadFeature : 1; + USHORT WordValid : 2; + } CommandSetSupport; + struct { + USHORT SmartCommands : 1; + USHORT SecurityMode : 1; + USHORT RemovableMediaFeature : 1; + USHORT PowerManagement : 1; + USHORT Reserved1 : 1; + USHORT WriteCache : 1; + USHORT LookAhead : 1; + USHORT ReleaseInterrupt : 1; + USHORT ServiceInterrupt : 1; + USHORT DeviceReset : 1; + USHORT HostProtectedArea : 1; + USHORT Obsolete1 : 1; + USHORT WriteBuffer : 1; + USHORT ReadBuffer : 1; + USHORT Nop : 1; + USHORT Obsolete2 : 1; + USHORT DownloadMicrocode : 1; + USHORT DmaQueued : 1; + USHORT Cfa : 1; + USHORT AdvancedPm : 1; + USHORT Msn : 1; + USHORT PowerUpInStandby : 1; + USHORT ManualPowerUp : 1; + USHORT Reserved2 : 1; + USHORT SetMax : 1; + USHORT Acoustics : 1; + USHORT BigLba : 1; + USHORT DeviceConfigOverlay : 1; + USHORT FlushCache : 1; + USHORT FlushCacheExt : 1; + USHORT Resrved3 : 1; + USHORT Words119_120Valid : 1; + USHORT SmartErrorLog : 1; + USHORT SmartSelfTest : 1; + USHORT MediaSerialNumber : 1; + USHORT MediaCardPassThrough : 1; + USHORT StreamingFeature : 1; + USHORT GpLogging : 1; + USHORT WriteFua : 1; + USHORT WriteQueuedFua : 1; + USHORT WWN64Bit : 1; + USHORT URGReadStream : 1; + USHORT URGWriteStream : 1; + USHORT ReservedForTechReport : 2; + USHORT IdleWithUnloadFeature : 1; + USHORT Reserved4 : 2; + } CommandSetActive; + USHORT UltraDMASupport : 8; + USHORT UltraDMAActive : 8; + struct { + USHORT TimeRequired : 15; + USHORT ExtendedTimeReported : 1; + } NormalSecurityEraseUnit; + struct { + USHORT TimeRequired : 15; + USHORT ExtendedTimeReported : 1; + } EnhancedSecurityEraseUnit; + USHORT CurrentAPMLevel : 8; + USHORT ReservedWord91 : 8; + USHORT MasterPasswordID; + USHORT HardwareResetResult; + USHORT CurrentAcousticValue : 8; + USHORT RecommendedAcousticValue : 8; + USHORT StreamMinRequestSize; + USHORT StreamingTransferTimeDMA; + USHORT StreamingAccessLatencyDMAPIO; + ULONG StreamingPerfGranularity; + ULONG Max48BitLBA[2]; + USHORT StreamingTransferTime; + USHORT DsmCap; + struct { + USHORT LogicalSectorsPerPhysicalSector : 4; + USHORT Reserved0 : 8; + USHORT LogicalSectorLongerThan256Words : 1; + USHORT MultipleLogicalSectorsPerPhysicalSector : 1; + USHORT Reserved1 : 2; + } PhysicalLogicalSectorSize; + USHORT InterSeekDelay; + USHORT WorldWideName[4]; + USHORT ReservedForWorldWideName128[4]; + USHORT ReservedForTlcTechnicalReport; + USHORT WordsPerLogicalSector[2]; + struct { + USHORT ReservedForDrqTechnicalReport : 1; + USHORT WriteReadVerify : 1; + USHORT WriteUncorrectableExt : 1; + USHORT ReadWriteLogDmaExt : 1; + USHORT DownloadMicrocodeMode3 : 1; + USHORT FreefallControl : 1; + USHORT SenseDataReporting : 1; + USHORT ExtendedPowerConditions : 1; + USHORT Reserved0 : 6; + USHORT WordValid : 2; + } CommandSetSupportExt; + struct { + USHORT ReservedForDrqTechnicalReport : 1; + USHORT WriteReadVerify : 1; + USHORT WriteUncorrectableExt : 1; + USHORT ReadWriteLogDmaExt : 1; + USHORT DownloadMicrocodeMode3 : 1; + USHORT FreefallControl : 1; + USHORT SenseDataReporting : 1; + USHORT ExtendedPowerConditions : 1; + USHORT Reserved0 : 6; + USHORT Reserved1 : 2; + } CommandSetActiveExt; + USHORT ReservedForExpandedSupportandActive[6]; + USHORT MsnSupport : 2; + USHORT ReservedWord127 : 14; + struct { + USHORT SecuritySupported : 1; + USHORT SecurityEnabled : 1; + USHORT SecurityLocked : 1; + USHORT SecurityFrozen : 1; + USHORT SecurityCountExpired : 1; + USHORT EnhancedSecurityEraseSupported : 1; + USHORT Reserved0 : 2; + USHORT SecurityLevel : 1; + USHORT Reserved1 : 7; + } SecurityStatus; + USHORT ReservedWord129[31]; + struct { + USHORT MaximumCurrentInMA : 12; + USHORT CfaPowerMode1Disabled : 1; + USHORT CfaPowerMode1Required : 1; + USHORT Reserved0 : 1; + USHORT Word160Supported : 1; + } CfaPowerMode1; + USHORT ReservedForCfaWord161[7]; + USHORT NominalFormFactor : 4; + USHORT ReservedWord168 : 12; + struct { + USHORT SupportsTrim : 1; + USHORT Reserved0 : 15; + } DataSetManagementFeature; + USHORT AdditionalProductID[4]; + USHORT ReservedForCfaWord174[2]; + USHORT CurrentMediaSerialNumber[30]; + struct { + USHORT Supported : 1; + USHORT Reserved0 : 1; + USHORT WriteSameSuported : 1; + USHORT ErrorRecoveryControlSupported : 1; + USHORT FeatureControlSuported : 1; + USHORT DataTablesSuported : 1; + USHORT Reserved1 : 6; + USHORT VendorSpecific : 4; + } SCTCommandTransport; + USHORT ReservedWord207[2]; + struct { + USHORT AlignmentOfLogicalWithinPhysical : 14; + USHORT Word209Supported : 1; + USHORT Reserved0 : 1; + } BlockAlignment; + USHORT WriteReadVerifySectorCountMode3Only[2]; + USHORT WriteReadVerifySectorCountMode2Only[2]; + struct { + USHORT NVCachePowerModeEnabled : 1; + USHORT Reserved0 : 3; + USHORT NVCacheFeatureSetEnabled : 1; + USHORT Reserved1 : 3; + USHORT NVCachePowerModeVersion : 4; + USHORT NVCacheFeatureSetVersion : 4; + } NVCacheCapabilities; + USHORT NVCacheSizeLSW; + USHORT NVCacheSizeMSW; + USHORT NominalMediaRotationRate; + USHORT ReservedWord218; + struct { + UCHAR NVCacheEstimatedTimeToSpinUpInSeconds; + UCHAR Reserved; + } NVCacheOptions; + USHORT WriteReadVerifySectorCountMode : 8; + USHORT ReservedWord220 : 8; + USHORT ReservedWord221; + struct { + USHORT MajorVersion : 12; + USHORT TransportType : 4; + } TransportMajorVersion; + USHORT TransportMinorVersion; + USHORT ReservedWord224[6]; + ULONG ExtendedNumberOfUserAddressableSectors[2]; + USHORT MinBlocksPerDownloadMicrocodeMode03; + USHORT MaxBlocksPerDownloadMicrocodeMode03; + USHORT ReservedWord236[19]; + USHORT Signature : 8; + USHORT CheckSum : 8; +} IDENTIFY_DEVICE_DATA, *PIDENTIFY_DEVICE_DATA; + +typedef struct _IDENTIFY_PACKET_DATA { + struct { + USHORT PacketType : 2; + USHORT IncompleteResponse : 1; + USHORT Reserved1 : 2; + USHORT DrqDelay : 2; + USHORT RemovableMedia : 1; + USHORT CommandPacketType : 5; + USHORT Reserved2 : 1; + USHORT DeviceType : 2; + } GeneralConfiguration; + USHORT ResevedWord1; + USHORT UniqueConfiguration; + USHORT ReservedWords3[7]; + UCHAR SerialNumber[20]; + USHORT ReservedWords20[3]; + UCHAR FirmwareRevision[8]; + UCHAR ModelNumber[40]; + USHORT ReservedWords47[2]; + struct { + USHORT VendorSpecific : 8; + USHORT DmaSupported : 1; + USHORT LbaSupported : 1; + USHORT IordyDisabled : 1; + USHORT IordySupported : 1; + USHORT Obsolete : 1; + USHORT OverlapSupported : 1; + USHORT QueuedCommandsSupported : 1; + USHORT InterleavedDmaSupported : 1; + USHORT DeviceSpecificStandbyTimerValueMin : 1; + USHORT Obsolete1 : 1; + USHORT ReservedWord50 : 12; + USHORT WordValid : 2; + } Capabilities; + USHORT ObsoleteWords51[2]; + USHORT TranslationFieldsValid : 3; + USHORT Reserved3 : 13; + USHORT ReservedWords54[8]; + struct { + USHORT UDMA0Supported : 1; + USHORT UDMA1Supported : 1; + USHORT UDMA2Supported : 1; + USHORT UDMA3Supported : 1; + USHORT UDMA4Supported : 1; + USHORT UDMA5Supported : 1; + USHORT UDMA6Supported : 1; + USHORT MDMA0Supported : 1; + USHORT MDMA1Supported : 1; + USHORT MDMA2Supported : 1; + USHORT DMASupported : 1; + USHORT ReservedWord62 : 4; + USHORT DMADIRBitRequired : 1; + } DMADIR; + USHORT MultiWordDMASupport : 8; + USHORT MultiWordDMAActive : 8; + USHORT AdvancedPIOModes : 8; + USHORT ReservedByte64 : 8; + USHORT MinimumMWXferCycleTime; + USHORT RecommendedMWXferCycleTime; + USHORT MinimumPIOCycleTime; + USHORT MinimumPIOCycleTimeIORDY; + USHORT ReservedWords69[2]; + USHORT BusReleaseDelay; + USHORT ServiceCommandDelay; + USHORT ReservedWords73[2]; + USHORT QueueDepth : 5; + USHORT ReservedWord75 : 11; + struct { + USHORT Reserved0 : 1; + USHORT SataGen1 : 1; + USHORT SataGen2 : 1; + USHORT SataGen3 : 1; + USHORT Reserved1 : 5; + USHORT HIPM : 1; + USHORT PhyEvents : 1; + USHORT Reserved3 : 2; + USHORT HostAutoPS : 1; + USHORT DeviceAutoPS : 1; + USHORT Reserved4 : 1; + USHORT Reserved5 : 1; + USHORT CurrentSpeed : 3; + USHORT SlimlineDeviceAttention : 1; + USHORT HostEnvironmentDetect : 1; + USHORT Reserved : 10; + } SerialAtaCapabilities; + struct { + USHORT Reserved0 : 1; + USHORT Reserved1 : 2; + USHORT DIPM : 1; + USHORT Reserved2 : 1; + USHORT AsynchronousNotification : 1; + USHORT SoftwareSettingsPreservation : 1; + USHORT Reserved3 : 9; + } SerialAtaFeaturesSupported; + struct { + USHORT Reserved0 : 1; + USHORT Reserved1 : 2; + USHORT DIPM : 1; + USHORT Reserved2 : 1; + USHORT AsynchronousNotification : 1; + USHORT SoftwareSettingsPreservation : 1; + USHORT DeviceAutoPS : 1; + USHORT Reserved3 : 8; + } SerialAtaFeaturesEnabled; + USHORT MajorRevision; + USHORT MinorRevision; + struct { + USHORT SmartCommands : 1; + USHORT SecurityMode : 1; + USHORT RemovableMedia : 1; + USHORT PowerManagement : 1; + USHORT PacketCommands : 1; + USHORT WriteCache : 1; + USHORT LookAhead : 1; + USHORT ReleaseInterrupt : 1; + USHORT ServiceInterrupt : 1; + USHORT DeviceReset : 1; + USHORT HostProtectedArea : 1; + USHORT Obsolete1 : 1; + USHORT WriteBuffer : 1; + USHORT ReadBuffer : 1; + USHORT Nop : 1; + USHORT Obsolete2 : 1; + USHORT DownloadMicrocode : 1; + USHORT Reserved1 : 2; + USHORT AdvancedPm : 1; + USHORT Msn : 1; + USHORT PowerUpInStandby : 1; + USHORT ManualPowerUp : 1; + USHORT Reserved2 : 1; + USHORT SetMax : 1; + USHORT Reserved3 : 3; + USHORT FlushCache : 1; + USHORT Reserved4 : 1; + USHORT WordValid : 2; + } CommandSetSupport; + struct { + USHORT Reserved0 : 5; + USHORT GpLogging : 1; + USHORT Reserved1 : 2; + USHORT WWN64Bit : 1; + USHORT Reserved2 : 5; + USHORT WordValid : 2; + } CommandSetSupportExt; + struct { + USHORT SmartCommands : 1; + USHORT SecurityMode : 1; + USHORT RemovableMedia : 1; + USHORT PowerManagement : 1; + USHORT PacketCommands : 1; + USHORT WriteCache : 1; + USHORT LookAhead : 1; + USHORT ReleaseInterrupt : 1; + USHORT ServiceInterrupt : 1; + USHORT DeviceReset : 1; + USHORT HostProtectedArea : 1; + USHORT Obsolete1 : 1; + USHORT WriteBuffer : 1; + USHORT ReadBuffer : 1; + USHORT Nop : 1; + USHORT Obsolete2 : 1; + USHORT DownloadMicrocode : 1; + USHORT Reserved1 : 2; + USHORT AdvancedPm : 1; + USHORT Msn : 1; + USHORT PowerUpInStandby : 1; + USHORT ManualPowerUp : 1; + USHORT Reserved2 : 1; + USHORT SetMax : 1; + USHORT Reserved3 : 3; + USHORT FlushCache : 1; + USHORT Reserved : 3; + } CommandSetActive; + struct { + USHORT Reserved0 : 5; + USHORT GpLogging : 1; + USHORT Reserved1 : 2; + USHORT WWN64Bit : 1; + USHORT Reserved2 : 5; + USHORT WordValid : 2; + } CommandSetActiveExt; + USHORT UltraDMASupport : 8; + USHORT UltraDMAActive : 8; + USHORT TimeRequiredForNormalEraseModeSecurityEraseUnit; + USHORT TimeRequiredForEnhancedEraseModeSecurityEraseUnit; + USHORT CurrentAPMLevel; + USHORT MasterPasswordID; + USHORT HardwareResetResult; + USHORT ReservedWords94[14]; + USHORT WorldWideName[4]; + USHORT ReservedWords112[13]; + USHORT AtapiZeroByteCount; + USHORT ReservedWord126; + USHORT MsnSupport : 2; + USHORT ReservedWord127 : 14; + USHORT SecurityStatus; + USHORT VendorSpecific[31]; + USHORT ReservedWord160[16]; + USHORT ReservedWord176[46]; + struct { + USHORT MajorVersion : 12; + USHORT TransportType : 4; + } TransportMajorVersion; + USHORT TransportMinorVersion; + USHORT ReservedWord224[31]; + USHORT Signature : 8; + USHORT CheckSum : 8; +} IDENTIFY_PACKET_DATA, *PIDENTIFY_PACKET_DATA; + +typedef struct _REGISTER_FIS { + UCHAR FisType; + UCHAR Reserved0 : 7; + UCHAR CmdReg : 1; + UCHAR Command; + UCHAR Features; + UCHAR SectorNumber; + UCHAR CylinderLow; + UCHAR CylinderHigh; + UCHAR DeviceHead; + UCHAR SectorNumberExp; + UCHAR CylinderLowExp; + UCHAR CylinderHighExp; + UCHAR FeaturesExp; + UCHAR SectorCount; + UCHAR SectorCountExp; + UCHAR Reserved2; + UCHAR Control; + ULONG Reserved3; +} REGISTER_FIS, *PREGISTER_FIS; + +typedef union _ATA_HYBRID_INFO_FIELDS { + _ANONYMOUS_STRUCT struct { + UCHAR HybridPriority : 4; + UCHAR Reserved0 : 1; + UCHAR InfoValid : 1; + UCHAR Reserved1 : 2; + } DUMMYSTRUCTNAME; + UCHAR AsUchar; +} ATA_HYBRID_INFO_FIELDS, *PATA_HYBRID_INFO_FIELDS; + +typedef struct _DEVICE_SET_PASSWORD { + struct { + USHORT PasswordIdentifier : 1; + USHORT Reserved1 : 7; + USHORT MasterPasswordCapability : 1; + USHORT Reserved2 : 7; + } ControlWord; + USHORT Password[16]; + USHORT MasterPasswordIdentifier; + USHORT Reserved[238]; +} DEVICE_SET_PASSWORD, *PDEVICE_SET_PASSWORD; + +typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER { + ULONGLONG RevisionNumber : 16; + ULONGLONG PageNumber : 8; + ULONGLONG Reserved : 39; + ULONGLONG Valid : 1; +} IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER; + +typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES { + IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER Header; + struct { + ULONGLONG WRV : 1; + ULONGLONG WriteUncorrectable : 1; + ULONGLONG GplDma : 1; + ULONGLONG DmMode3 : 1; + ULONGLONG FreeFall : 1; + ULONGLONG SenseData : 1; + ULONGLONG EPC : 1; + ULONGLONG SmartErrorLogging : 1; + ULONGLONG SmartSelfTest : 1; + ULONGLONG Reserved9 : 1; + ULONGLONG Streaming : 1; + ULONGLONG GPL : 1; + ULONGLONG WriteFuaExt : 1; + ULONGLONG Unload : 1; + ULONGLONG DownloadMicrocode : 1; + ULONGLONG Reserved15ForCFA : 1; + ULONGLONG APM : 1; + ULONGLONG PUIS : 1; + ULONGLONG SpinUp : 1; + ULONGLONG Reserved19 : 1; + ULONGLONG Cmd48Bit : 1; + ULONGLONG Reserved21 : 1; + ULONGLONG FlushCacheExt : 1; + ULONGLONG Smart : 1; + ULONGLONG VolatileWriteCache : 1; + ULONGLONG ReadLookahead : 1; + ULONGLONG Reserved26 : 1; + ULONGLONG WriteBuffer : 1; + ULONGLONG ReadBuffer : 1; + ULONGLONG NOP : 1; + ULONGLONG Reserved30 : 1; + ULONGLONG RZAT : 1; + ULONGLONG Cmd28bit : 1; + ULONGLONG DownloadMicrocodeDma : 1; + ULONGLONG Reserved34 : 1; + ULONGLONG WriteBufferDma : 1; + ULONGLONG ReadBufferDma : 1; + ULONGLONG Reserved37 : 1; + ULONGLONG LpsMisalignmentReporting : 1; + ULONGLONG DRAT : 1; + ULONGLONG Reserved40ForCFA : 1; + ULONGLONG AmaxAddr : 1; + ULONGLONG SetEpcPowerSource : 1; + ULONGLONG LowPowerStandby : 1; + ULONGLONG DSN : 1; + ULONGLONG RequestSenseDeviceFault : 1; + ULONGLONG Reserved : 17; + ULONGLONG Valid : 1; + } SupportedCapabilities; + struct { + ULONGLONG DmMinTransferSize : 16; + ULONGLONG DmMaxTransferSize : 16; + ULONGLONG DmOffsetsImmediateSupported : 1; + ULONGLONG DmImmediateSupported : 1; + ULONGLONG DmOffsetsDeferredSupported : 1; + ULONGLONG Reserved : 28; + ULONGLONG Valid : 1; + } DownloadMicrocodeCapabilities; + struct { + ULONGLONG Rate : 16; + ULONGLONG Reserved : 47; + ULONGLONG Valid : 1; + } NominalMediaRotationRate; + struct { + ULONGLONG Factor : 4; + ULONGLONG Reserved : 59; + ULONGLONG Valid : 1; + } NominalFormFactor; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 31; + ULONGLONG Valid : 1; + } WRVSectorCountMode3; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 31; + ULONGLONG Valid : 1; + } WRVSectorCountMode2; + struct { + ULONGLONG Name; + ULONGLONG Reserved : 63; + ULONGLONG Valid : 1; + } WorldWideName; + struct { + ULONGLONG TrimSupported : 1; + ULONGLONG Reserved : 62; + ULONGLONG Valid : 1; + } DataSetManagement; + struct { + ULONGLONG UtilizationA : 32; + ULONGLONG UtilizationB : 32; + ULONGLONG Reserved0 : 32; + ULONGLONG UtilizationInterval : 8; + ULONGLONG UtilizationUnit : 8; + ULONGLONG UtilizationType : 8; + ULONGLONG Reserved1 : 7; + ULONGLONG Valid : 1; + } UtilizationPerUnitTime; + struct { + ULONGLONG DateTimeRateBasisSupported : 1; + ULONGLONG Reserved0 : 3; + ULONGLONG PowerOnHoursRateBasisSupported : 1; + ULONGLONG Reserved1 : 3; + ULONGLONG SincePowerOnRateBasisSupported : 1; + ULONGLONG Reserved2 : 14; + ULONGLONG SettingRateBasisSupported : 1; + ULONGLONG Reserved3 : 39; + ULONGLONG Valid : 1; + } UtilizationUsageRateSupport; + struct { + ULONGLONG Zoned : 2; + ULONGLONG Reserved : 61; + ULONGLONG Valid : 1; + } ZonedCapabilities; + struct { + ULONGLONG ReportZonesExtSupported : 1; + ULONGLONG NonDataOpenZoneExtSupported : 1; + ULONGLONG NonDataCloseZoneExtSupported : 1; + ULONGLONG NonDataFinishZoneExtSupported : 1; + ULONGLONG NonDataResetWritePointersExtSupported : 1; + ULONGLONG Reserved : 58; + ULONGLONG Valid : 1; + } SupportedZacCapabilities; + UCHAR Reserved[392]; +} IDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_SUPPORTED_CAPABILITIES; + +typedef struct _IDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO { + IDENTIFY_DEVICE_DATA_LOG_PAGE_HEADER Header; + struct { + ULONGLONG URSWRZ : 1; + ULONGLONG Reserved : 62; + ULONGLONG Valid : 1; + } ZonedDeviceCapabilities; + struct { + ULONGLONG Reserved : 63; + ULONGLONG Valid : 1; + } ZonedDeviceSettings; + struct { + ULONGLONG Number : 32; + ULONGLONG Reserved : 31; + ULONGLONG Valid : 1; + } OptimalNumberOfOpenSequentialWritePreferredZones; + struct { + ULONGLONG Number : 32; + ULONGLONG Reserved : 31; + ULONGLONG Valid : 1; + } OptimalNumberOfNonSequentiallyWrittenSequentialWritePreferredZones; + struct { + ULONGLONG Number : 32; + ULONGLONG Reserved : 31; + ULONGLONG Valid : 1; + } MaxNumberOfOpenSequentialWriteRequiredZones; + struct { + ULONGLONG ZacMinorVersion : 16; + ULONGLONG Reserved0 : 47; + ULONGLONG Valid : 1; + } Version; + UCHAR Reserved[456]; +} IDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO, *PIDENTIFY_DEVICE_DATA_LOG_PAGE_ZONED_DEVICE_INFO; + +typedef struct _CURRENT_DEVICE_INTERNAL_STATUS_LOG { + UCHAR LogAddress; + UCHAR Reserved0[3]; + ULONG OrganizationID; + USHORT Area1LastLogPage; + USHORT Area2LastLogPage; + USHORT Area3LastLogPage; + UCHAR Reserved2[368]; + UCHAR SavedDataAvailable; + UCHAR SavedDataGenerationNumber; + UCHAR ReasonIdentifier[128]; +} CURRENT_DEVICE_INTERNAL_STATUS_LOG, *PCURRENT_DEVICE_INTERNAL_STATUS_LOG; + +typedef struct _SAVED_DEVICE_INTERNAL_STATUS_LOG { + UCHAR LogAddress; + UCHAR Reserved0[3]; + ULONG OrganizationID; + USHORT Area1LastLogPage; + USHORT Area2LastLogPage; + USHORT Area3LastLogPage; + UCHAR Reserved2[368]; + UCHAR SavedDataAvailable; + UCHAR GenerationNumber; + UCHAR ReasonIdentifier[128]; +} SAVED_DEVICE_INTERNAL_STATUS_LOG, *PSAVED_DEVICE_INTERNAL_STATUS_LOG; + +typedef struct _DEVICE_STATISTICS_LOG_PAGE_HEADER { + ULONGLONG RevisionNumber : 16; + ULONGLONG PageNumber : 8; + ULONGLONG Reserved : 40; +} DEVICE_STATISTICS_LOG_PAGE_HEADER, *PDEVICE_STATISTICS_LOG_PAGE_HEADER; + +typedef struct _GP_LOG_SUPPORTED_DEVICE_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + UCHAR NumberOfEntries; + UCHAR LogPageNumbers[503]; +} GP_LOG_SUPPORTED_DEVICE_STATISTICS, *PGP_LOG_SUPPORTED_DEVICE_STATISTICS; + +typedef struct _GP_LOG_GENERAL_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LifeTimePoweronResets; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } PoweronHours; + struct { + ULONGLONG Count : 48; + ULONGLONG Reserved : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LogicalSectorsWritten; + struct { + ULONGLONG Count : 48; + ULONGLONG Reserved : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } WriteCommandCount; + struct { + ULONGLONG Count : 48; + ULONGLONG Reserved : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LogicalSectorsRead; + struct { + ULONGLONG Count : 48; + ULONGLONG Reserved : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } ReadCommandCount; + struct { + ULONGLONG TimeStamp : 48; + ULONGLONG Reserved : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } DateAndTime; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } PendingErrorCount; + struct { + ULONGLONG Value : 16; + ULONGLONG Reserved : 40; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } WorkloadUtilizaton; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved0 : 28; + ULONGLONG RateBasis : 4; + ULONGLONG RateValidity : 8; + ULONGLONG Reserved1 : 8; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } UtilizationUsageRate; + UCHAR Reserved[424]; +} GP_LOG_GENERAL_STATISTICS, *PGP_LOG_GENERAL_STATISTICS; + +typedef struct _GP_LOG_FREE_FALL_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberofFreeFallEventsDetected; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } OverlimitShockEvents; + UCHAR Reserved[488]; +} GP_LOG_FREE_FALL_STATISTICS, *PGP_LOG_FREE_FALL_STATISTICS; + +typedef struct _GP_LOG_ROTATING_MEDIA_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } SpindleMotorPoweronHours; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } HeadFlyingHours; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } HeadLoadEvents; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfReallocatedLogicalSectors; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } ReadRecoveryAttempts; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfMechanicalStartFailures; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfReallocationCandidateLogicalSectors; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfHighPriorityUnloadEvents; + UCHAR Reserved[440]; +} GP_LOG_ROTATING_MEDIA_STATISTICS, *PGP_LOG_ROTATING_MEDIA_STATISTICS; + +typedef struct _GP_LOG_GENERAL_ERROR_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfReportedUncorrectableErrors; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfResetsBetweenCommandAcceptanceAndCommandCompletion; + UCHAR Reserved[488]; +} GP_LOG_GENERAL_ERROR_STATISTICS, *PGP_LOG_GENERAL_ERROR_STATISTICS; + +typedef struct _GP_LOG_TEMPERATURE_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } CurrentTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } AverageShortTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } AverageLongTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } HighestTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LowestTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } HighestAverageShortTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LowestAverageShortTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } HighstAverageLongTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } LowestAverageLongTermTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } TimeInOverTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } SpecifiedMaximumOperatingTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } TimeInUnderTemperature; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } SpecifiedMinimumOperatingTemperature; + UCHAR Reserved[400]; +} GP_LOG_TEMPERATURE_STATISTICS, *PGP_LOG_TEMPERATURE_STATISTICS; + +typedef struct _GP_LOG_TRANSPORT_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Count : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfHardwareResets; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfAsrEvents; + struct { + ULONGLONG Count : 32; + ULONGLONG Reserved : 24; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } NumberOfInterfaceCrcErrors; + UCHAR Reserved[480]; +} GP_LOG_TRANSPORT_STATISTICS, *PGP_LOG_TRANSPORT_STATISTICS; + +typedef struct _GP_LOG_SOLID_STATE_DEVICE_STATISTICS { + DEVICE_STATISTICS_LOG_PAGE_HEADER Header; + struct { + ULONGLONG Value : 8; + ULONGLONG Reserved : 48; + ULONGLONG ReservedFlags : 3; + ULONGLONG MonitoredConditionMet : 1; + ULONGLONG StatisticsSupportsDsn : 1; + ULONGLONG Normalized : 1; + ULONGLONG ValidValue : 1; + ULONGLONG Supported : 1; + } PercentageUsedEnduranceIndicator; + UCHAR Reserved[496]; +} GP_LOG_SOLID_STATE_DEVICE_STATISTICS, *PGP_LOG_SOLID_STATE_DEVICE_STATISTICS; + +typedef struct _GP_LOG_NCQ_COMMAND_ERROR { + UCHAR NcqTag : 5; + UCHAR Reserved0 : 1; + UCHAR UNL : 1; + UCHAR NonQueuedCmd : 1; + UCHAR Reserved1; + UCHAR Status; + UCHAR Error; + UCHAR LBA7_0; + UCHAR LBA15_8; + UCHAR LBA23_16; + UCHAR Device; + UCHAR LBA31_24; + UCHAR LBA39_32; + UCHAR LBA47_40; + UCHAR Reserved2; + UCHAR Count7_0; + UCHAR Count15_8; + UCHAR SenseKey; + UCHAR ASC; + UCHAR ASCQ; + UCHAR Reserved3[239]; + UCHAR Vendor[255]; + UCHAR Checksum; +} GP_LOG_NCQ_COMMAND_ERROR, *PGP_LOG_NCQ_COMMAND_ERROR; + +typedef struct _GP_LOG_NCQ_NON_DATA { + struct { + ULONG AbortNcq : 1; + ULONG AbortAll : 1; + ULONG AbortStreaming : 1; + ULONG AbortNonStreaming : 1; + ULONG AbortSelectedTTag : 1; + ULONG Reserved : 27; + } SubCmd0; + struct { + ULONG DeadlineHandling : 1; + ULONG WriteDataNotContinue : 1; + ULONG ReadDataNotContinue : 1; + ULONG Reserved : 29; + } SubCmd1; + struct { + ULONG HybridDemoteBySize : 1; + ULONG Reserved : 31; + } SubCmd2; + struct { + ULONG HybridChangeByLbaRange : 1; + ULONG Reserved : 31; + } SubCmd3; + struct { + ULONG HybridControl : 1; + ULONG Reserved : 31; + } SubCmd4; + struct { + ULONG Reserved : 32; + } SubCmd5; + struct { + ULONG Reserved : 32; + } SubCmd6; + struct { + ULONG Reserved : 32; + } SubCmd7; + struct { + ULONG Reserved : 32; + } SubCmd8; + struct { + ULONG Reserved : 32; + } SubCmd9; + struct { + ULONG Reserved : 32; + } SubCmdA; + struct { + ULONG Reserved : 32; + } SubCmdB; + struct { + ULONG Reserved : 32; + } SubCmdC; + struct { + ULONG Reserved : 32; + } SubCmdD; + struct { + ULONG Reserved : 32; + } SubCmdE; + struct { + ULONG Reserved : 32; + } SubCmdF; + ULONG Reserved[112]; +} GP_LOG_NCQ_NON_DATA, *PGP_LOG_NCQ_NON_DATA; + +typedef struct _GP_LOG_NCQ_SEND_RECEIVE { + struct { + ULONG DataSetManagement : 1; + ULONG HybridEvict : 1; + ULONG Reserved : 30; + } SubCmd; + struct { + ULONG Trim : 1; + ULONG Reserved : 31; + } DataSetManagement; + ULONG Reserved[126]; +} GP_LOG_NCQ_SEND_RECEIVE, *PGP_LOG_NCQ_SEND_RECEIVE; + +typedef struct _GP_LOG_HYBRID_INFORMATION_HEADER { + USHORT HybridInfoDescrCount : 4; + USHORT Reserved0 : 12; + UCHAR Enabled; + UCHAR HybridHealth; + UCHAR DirtyLowThreshold; + UCHAR DirtyHighThreshold; + UCHAR OptimalWriteGranularity; + UCHAR MaximumHybridPriorityLevel : 4; + UCHAR Reserved1 : 4; + UCHAR PowerCondidtion; + UCHAR CachingMediumEnabled ; + struct { + UCHAR MaximumPriorityBehavior : 1; + UCHAR SupportCacheBehavior : 1; + UCHAR Reserved : 6; + } SupportedOptions; + UCHAR Reserved2; + ULONG TimeSinceEnabled; + ULONGLONG NVMSize; + ULONGLONG EnableCount; + USHORT MaximumEvictionCommands : 5; + USHORT Reserved3 : 11; + USHORT MaximumEvictionDataBlocks; + UCHAR Reserved[28]; +} GP_LOG_HYBRID_INFORMATION_HEADER, *PGP_LOG_HYBRID_INFORMATION_HEADER; + +typedef struct _GP_LOG_HYBRID_INFORMATION_DESCRIPTOR { + UCHAR HybridPriority; + UCHAR ConsumedNVMSizeFraction; + UCHAR ConsumedMappingResourcesFraction; + UCHAR ConsumedNVMSizeForDirtyDataFraction; + UCHAR ConsumedMappingResourcesForDirtyDataFraction; + UCHAR Reserved[11]; +} GP_LOG_HYBRID_INFORMATION_DESCRIPTOR, *PGP_LOG_HYBRID_INFORMATION_DESCRIPTOR; + +typedef struct _GP_LOG_HYBRID_INFORMATION { + GP_LOG_HYBRID_INFORMATION_HEADER Header; + GP_LOG_HYBRID_INFORMATION_DESCRIPTOR Descriptor[0]; +} GP_LOG_HYBRID_INFORMATION, *PGP_LOG_HYBRID_INFORMATION; + +typedef struct _REPORT_ZONES_EXT_DATA { + ULONG ZoneListLength; + UCHAR SAME : 4; + UCHAR Reserved0 : 4; + UCHAR Reserved1[3]; + ULONGLONG MaxLBA : 48; + ULONGLONG Reserved2 : 16; + UCHAR Reserved3[48]; +} REPORT_ZONES_EXT_DATA, *PREPORT_ZONES_EXT_DATA; + +typedef struct _ATA_ZONE_DESCRIPTOR { + UCHAR ZoneType : 4; + UCHAR Reserved0 : 4; + UCHAR Reset : 1; + UCHAR NonSeq : 1; + UCHAR Reserved1 : 2; + UCHAR ZoneCondition : 4; + UCHAR Reserved2[6]; + ULONGLONG ZoneLength : 48; + ULONGLONG Reserved3 : 16; + ULONGLONG ZoneStartLBA : 48; + ULONGLONG Reserved4 : 16; + ULONGLONG WritePointerLBA : 48; + ULONGLONG Reserved5 : 16; + UCHAR Reserved6[32]; +} ATA_ZONE_DESCRIPTOR, *PATA_ZONE_DESCRIPTOR; + +typedef struct _ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR { + UCHAR Reserved1[4]; + ULONG ElementIdentifier; + UCHAR Reserved2[6]; + UCHAR PhysicalElementType; + UCHAR PhysicalElementHealth; + ULONGLONG AssociatedCapacity; + UCHAR Reserved3[8]; +} ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR, *PATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR; + +typedef struct _ATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA { + ULONG NumberOfDescriptors; + ULONG NumberOfDescriptorsReturned; + ULONG ElementIdentifierBeingDepoped; + UCHAR Reserved[20]; + ATA_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR Descriptors[ANYSIZE_ARRAY]; +} ATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA, *PATA_GET_PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA; + +#pragma pack(pop) + +#define ATAPI_MODE_SENSE 0x5A +#define ATAPI_MODE_SELECT 0x55 +#define ATAPI_LS120_FORMAT_UNIT 0x24 + +#define IDE_LBA_MODE (1 << 6) + +#define IDE_DC_DISABLE_INTERRUPTS 0x02 +#define IDE_DC_RESET_CONTROLLER 0x04 +#define IDE_DC_REENABLE_CONTROLLER 0x00 + +#define IDE_STATUS_ERROR 0x01 +#define IDE_STATUS_INDEX 0x02 +#define IDE_STATUS_CORRECTED_ERROR 0x04 +#define IDE_STATUS_DRQ 0x08 +#define IDE_STATUS_DSC 0x10 +#define IDE_STATUS_DEVICE_FAULT 0x20 +#define IDE_STATUS_DRDY 0x40 +#define IDE_STATUS_IDLE 0x50 +#define IDE_STATUS_BUSY 0x80 + +#define IDE_ERROR_BAD_BLOCK 0x80 +#define IDE_ERROR_CRC_ERROR IDE_ERROR_BAD_BLOCK +#define IDE_ERROR_DATA_ERROR 0x40 +#define IDE_ERROR_MEDIA_CHANGE 0x20 +#define IDE_ERROR_ID_NOT_FOUND 0x10 +#define IDE_ERROR_MEDIA_CHANGE_REQ 0x08 +#define IDE_ERROR_COMMAND_ABORTED 0x04 +#define IDE_ERROR_END_OF_MEDIA 0x02 +#define IDE_ERROR_ILLEGAL_LENGTH 0x01 +#define IDE_ERROR_ADDRESS_NOT_FOUND IDE_ERROR_ILLEGAL_LENGTH + +#define IDE_COMMAND_NOP 0x00 +#define IDE_COMMAND_DATA_SET_MANAGEMENT 0x06 +#define IDE_COMMAND_ATAPI_RESET 0x08 +#define IDE_COMMAND_GET_PHYSICAL_ELEMENT_STATUS 0x12 +#define IDE_COMMAND_READ 0x20 +#define IDE_COMMAND_READ_EXT 0x24 +#define IDE_COMMAND_READ_DMA_EXT 0x25 +#define IDE_COMMAND_READ_DMA_QUEUED_EXT 0x26 +#define IDE_COMMAND_READ_MULTIPLE_EXT 0x29 +#define IDE_COMMAND_READ_LOG_EXT 0x2f +#define IDE_COMMAND_WRITE 0x30 +#define IDE_COMMAND_WRITE_EXT 0x34 +#define IDE_COMMAND_WRITE_DMA_EXT 0x35 +#define IDE_COMMAND_WRITE_DMA_QUEUED_EXT 0x36 +#define IDE_COMMAND_WRITE_MULTIPLE_EXT 0x39 +#define IDE_COMMAND_WRITE_DMA_FUA_EXT 0x3D +#define IDE_COMMAND_WRITE_DMA_QUEUED_FUA_EXT 0x3E +#define IDE_COMMAND_WRITE_LOG_EXT 0x3F +#define IDE_COMMAND_VERIFY 0x40 +#define IDE_COMMAND_VERIFY_EXT 0x42 +#define IDE_COMMAND_ZAC_MANAGEMENT_IN 0x4A +#define IDE_COMMAND_WRITE_LOG_DMA_EXT 0x57 +#define IDE_COMMAND_TRUSTED_NON_DATA 0x5B +#define IDE_COMMAND_TRUSTED_RECEIVE 0x5C +#define IDE_COMMAND_TRUSTED_RECEIVE_DMA 0x5D +#define IDE_COMMAND_TRUSTED_SEND 0x5E +#define IDE_COMMAND_TRUSTED_SEND_DMA 0x5F +#define IDE_COMMAND_READ_FPDMA_QUEUED 0x60 +#define IDE_COMMAND_WRITE_FPDMA_QUEUED 0x61 +#define IDE_COMMAND_NCQ_NON_DATA 0x63 +#define IDE_COMMAND_SEND_FPDMA_QUEUED 0x64 +#define IDE_COMMAND_RECEIVE_FPDMA_QUEUED 0x65 +#define IDE_COMMAND_SET_DATE_AND_TIME 0x77 +#define IDE_COMMAND_REMOVE_ELEMENT_AND_TRUNCATE 0x7C +#define IDE_COMMAND_EXECUTE_DEVICE_DIAGNOSTIC 0x90 +#define IDE_COMMAND_SET_DRIVE_PARAMETERS 0x91 +#define IDE_COMMAND_DOWNLOAD_MICROCODE 0x92 +#define IDE_COMMAND_DOWNLOAD_MICROCODE_DMA 0x93 +#define IDE_COMMAND_ZAC_MANAGEMENT_OUT 0x9F +#define IDE_COMMAND_ATAPI_PACKET 0xA0 +#define IDE_COMMAND_ATAPI_IDENTIFY 0xA1 +#define IDE_COMMAND_SMART 0xB0 +#define IDE_COMMAND_READ_LOG_DMA_EXT 0xB1 +#define IDE_COMMAND_SANITIZE_DEVICE 0xB4 +#define IDE_COMMAND_READ_MULTIPLE 0xC4 +#define IDE_COMMAND_WRITE_MULTIPLE 0xC5 +#define IDE_COMMAND_SET_MULTIPLE 0xC6 +#define IDE_COMMAND_READ_DMA 0xC8 +#define IDE_COMMAND_WRITE_DMA 0xCA +#define IDE_COMMAND_WRITE_DMA_QUEUED 0xCC +#define IDE_COMMAND_WRITE_MULTIPLE_FUA_EXT 0xCE +#define IDE_COMMAND_GET_MEDIA_STATUS 0xDA +#define IDE_COMMAND_DOOR_LOCK 0xDE +#define IDE_COMMAND_DOOR_UNLOCK 0xDF +#define IDE_COMMAND_STANDBY_IMMEDIATE 0xE0 +#define IDE_COMMAND_IDLE_IMMEDIATE 0xE1 +#define IDE_COMMAND_CHECK_POWER 0xE5 +#define IDE_COMMAND_SLEEP 0xE6 +#define IDE_COMMAND_FLUSH_CACHE 0xE7 +#define IDE_COMMAND_FLUSH_CACHE_EXT 0xEA +#define IDE_COMMAND_IDENTIFY 0xEC +#define IDE_COMMAND_MEDIA_EJECT 0xED +#define IDE_COMMAND_SET_FEATURE 0xEF +#define IDE_COMMAND_SECURITY_SET_PASSWORD 0xF1 +#define IDE_COMMAND_SECURITY_UNLOCK 0xF2 +#define IDE_COMMAND_SECURITY_ERASE_PREPARE 0xF3 +#define IDE_COMMAND_SECURITY_ERASE_UNIT 0xF4 +#define IDE_COMMAND_SECURITY_FREEZE_LOCK 0xF5 +#define IDE_COMMAND_SECURITY_DISABLE_PASSWORD 0xF6 +#define IDE_COMMAND_NOT_VALID 0xFF + +#define IDE_SET_DEFAULT_PIO_MODE(mode) ((UCHAR)1) +#define IDE_SET_ADVANCE_PIO_MODE(mode) ((UCHAR)((1 << 3) | (mode))) +#define IDE_SET_SWDMA_MODE(mode) ((UCHAR)((1 << 4) | (mode))) +#define IDE_SET_MWDMA_MODE(mode) ((UCHAR)((1 << 5) | (mode))) +#define IDE_SET_UDMA_MODE(mode) ((UCHAR)((1 << 6) | (mode))) + +#define IDE_FEATURE_ENABLE_WRITE_CACHE 0x2 +#define IDE_FEATURE_SET_TRANSFER_MODE 0x3 +#define IDE_FEATURE_ENABLE_PUIS 0x6 +#define IDE_FEATURE_PUIS_SPIN_UP 0x7 +#define IDE_FEATURE_ENABLE_SATA_FEATURE 0x10 +#define IDE_FEATURE_DISABLE_MSN 0x31 +#define IDE_FEATURE_DISABLE_REVERT_TO_POWER_ON 0x66 +#define IDE_FEATURE_DISABLE_WRITE_CACHE 0x82 +#define IDE_FEATURE_DISABLE_PUIS 0x86 +#define IDE_FEATURE_DISABLE_SATA_FEATURE 0x90 +#define IDE_FEATURE_ENABLE_MSN 0x95 + +#define IDE_SATA_FEATURE_NON_ZERO_DMA_BUFFER_OFFSET 0x1 +#define IDE_SATA_FEATURE_DMA_SETUP_FIS_AUTO_ACTIVATE 0x2 +#define IDE_SATA_FEATURE_DEVICE_INITIATED_POWER_MANAGEMENT 0x3 +#define IDE_SATA_FEATURE_GUARANTEED_IN_ORDER_DELIVERY 0x4 +#define IDE_SATA_FEATURE_ASYNCHRONOUS_NOTIFICATION 0x5 +#define IDE_SATA_FEATURE_SOFTWARE_SETTINGS_PRESERVATION 0x6 +#define IDE_SATA_FEATURE_DEVICE_AUTO_PARTIAL_TO_SLUMBER 0x7 +#define IDE_SATA_FEATURE_ENABLE_HARDWARE_FEATURE_CONTROL 0x8 +#define IDE_SATA_FEATURE_DEVSLP 0x9 +#define IDE_SATA_FEATURE_HYBRID_INFORMATION 0xA + +#define IDE_SMART_READ_ATTRIBUTES 0xD0 +#define IDE_SMART_READ_THRESHOLDS 0xD1 +#define IDE_SMART_ENABLE_DISABLE_AUTOSAVE 0xD2 +#define IDE_SMART_SAVE_ATTRIBUTE_VALUES 0xD3 +#define IDE_SMART_EXECUTE_OFFLINE_DIAGS 0xD4 +#define IDE_SMART_READ_LOG 0xD5 +#define IDE_SMART_WRITE_LOG 0xD6 +#define IDE_SMART_ENABLE 0xD8 +#define IDE_SMART_DISABLE 0xD9 +#define IDE_SMART_RETURN_STATUS 0xDA +#define IDE_SMART_ENABLE_DISABLE_AUTO_OFFLINE 0xDB + +#define IDE_DSM_FEATURE_TRIM 0x0001 + +#define IDE_NCQ_NON_DATA_ABORT_NCQ_QUEUE 0x00 +#define IDE_NCQ_NON_DATA_DEADLINE_HANDLING 0x01 +#define IDE_NCQ_NON_DATA_HYBRID_CHANGE_BY_SIZE 0x02 +#define IDE_NCQ_NON_DATA_HYBRID_DEMOTE_BY_SIZE 0x02 +#define IDE_NCQ_NON_DATA_HYBRID_CHANGE_BY_LBA_RANGE 0x03 +#define IDE_NCQ_NON_DATA_HYBRID_CONTROL 0x04 + +#define IDE_NCQ_SEND_DATA_SET_MANAGEMENT 0x00 +#define IDE_NCQ_SEND_HYBRID_EVICT 0x01 + +#define ATA_DEVICE_SET_PASSWORD_MASTER 0x01 +#define ATA_DEVICE_SET_PASSWORD_USER 0x00 + +#define IDE_GP_LOG_DIRECTORY_ADDRESS 0x00 +#define IDE_GP_SUMMARY_SMART_ERROR 0x01 +#define IDE_GP_COMPREHENSIVE_SMART_ERROR 0x02 +#define IDE_GP_EXTENDED_COMPREHENSIVE_SMART_ERROR 0x03 +#define IDE_GP_LOG_DEVICE_STATISTICS_ADDRESS 0x04 +#define IDE_GP_SMART_SELF_TEST 0x06 +#define IDE_GP_EXTENDED_SMART_SELF_TEST 0x07 +#define IDE_GP_LOG_POWER_CONDITIONS 0x08 +#define IDE_GP_SELECTIVE_SELF_TEST 0x09 +#define IDE_GP_DEVICE_STATISTICS_NOTIFICATION 0x0A +#define IDE_GP_PENDING_DEFECTS 0x0C +#define IDE_GP_LPS_MISALIGNMENT 0x0D +#define IDE_GP_LOG_NCQ_COMMAND_ERROR_ADDRESS 0x10 +#define IDE_GP_LOG_PHY_EVENT_COUNTER_ADDRESS 0x11 +#define IDE_GP_LOG_NCQ_NON_DATA_ADDRESS 0x12 +#define IDE_GP_LOG_NCQ_SEND_RECEIVE_ADDRESS 0x13 +#define IDE_GP_LOG_HYBRID_INFO_ADDRESS 0x14 +#define IDE_GP_LOG_REBUILD_ASSIST 0x15 +#define IDE_GP_LOG_LBA_STATUS 0x19 +#define IDE_GP_LOG_WRITE_STREAM_ERROR 0x21 +#define IDE_GP_LOG_READ_STREAM_ERROR 0x22 +#define IDE_GP_LOG_CURRENT_DEVICE_INTERNAL_STATUS 0x24 +#define IDE_GP_LOG_SAVED_DEVICE_INTERNAL_STATUS 0x25 +#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_ADDRESS 0x30 +#define IDE_GP_LOG_SCT_COMMAND_STATUS 0xE0 +#define IDE_GP_LOG_SCT_DATA_TRANSFER 0xE1 + +#define IDE_GP_LOG_SECTOR_SIZE 0x200 + +#define IDE_GP_LOG_VERSION 0x0001 + +#define IDE_GP_LOG_SUPPORTED_PAGES 0x00 + +#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_SUPPORTED_CAPABILITIES_PAGE 0x03 +#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_SATA_PAGE 0x08 +#define IDE_GP_LOG_IDENTIFY_DEVICE_DATA_ZONED_DEVICE_INFORMATION_PAGE 0x09 + +#define ATA_ZONED_CAPABILITIES_NOT_REPORTED 0x0 +#define ATA_ZONED_CAPABILITIES_HOST_AWARE 0x1 +#define ATA_ZONED_CAPABILITIES_DEVICE_MANAGED 0x2 + +#define ZAC_REVISION_NOT_REPORTED_1 0x0000 +#define ZAC_REVISION_NOT_REPORTED_2 0xFFFF +#define ZAC_REVISION_01 0xB6E8 +#define ZAC_REVISION_04 0xA36C + +#define CURRENT_DEVICE_INTERNAL_STATUS_DATA_LOG_ADDRESS 0x24 +#define SAVED_DEVICE_INTERNAL_STATUS_DATA_LOG_ADDRESS 0x25 + +#define IDE_GP_LOG_DEVICE_STATISTICS_GENERAL_PAGE 0x01 +#define IDE_GP_LOG_DEVICE_STATISTICS_FREE_FALL_PAGE 0x02 +#define IDE_GP_LOG_DEVICE_STATISTICS_ROTATING_MEDIA_PAGE 0x03 +#define IDE_GP_LOG_DEVICE_STATISTICS_GENERAL_ERROR_PAGE 0x04 +#define IDE_GP_LOG_DEVICE_STATISTICS_TEMPERATURE_PAGE 0x05 +#define IDE_GP_LOG_DEVICE_STATISTICS_TRANSPORT_PAGE 0x06 +#define IDE_GP_LOG_DEVICE_STATISTICS_SSD_PAGE 0x07 + +#define HYBRID_INFORMATION_DISABLED 0x00 +#define HYBRID_INFORMATION_DISABLE_IN_PROCESS 0x80 +#define HYBRID_INFORMATION_ENABLED 0xFF + +#define HYBRID_HEALTH_UNUSEABLE 0x01 +#define HYBRID_HEALTH_NVM_SIZE_CHANGED 0x02 +#define HYBRID_HEALTH_READ_ONLY 0x04 +#define HYBRID_HEALTH_DATA_LOSS 0x08 + +#define ATA_DEVICE_SIGNATURE_ATA 0x00000101 +#define ATA_DEVICE_SIGNATURE_ATAPI 0xEB140101 +#define ATA_DEVICE_SIGNATURE_HOST_ZONED 0xABCD0101 +#define ATA_DEVICE_SIGNATURE_ENCLOSURE 0xC33C0101 +#define ATA_DEVICE_SIGNATURE_PORT_MULTIPLIER 0x96690101 + +#define ZM_ACTION_REPORT_ZONES 0x00 +#define ZM_ACTION_CLOSE_ZONE 0x01 +#define ZM_ACTION_FINISH_ZONE 0x02 +#define ZM_ACTION_OPEN_ZONE 0x03 +#define ZM_ACTION_RESET_WRITE_POINTER 0x04 + +#define ZM_ALL_ZONES_BIT (1 << 8) + +#define ATA_REPORT_ZONES_OPTION_LIST_ALL_ZONES 0x00 +#define ATA_REPORT_ZONES_OPTION_LIST_EMPTY_ZONES 0x01 +#define ATA_REPORT_ZONES_OPTION_LIST_IMPLICITLY_OPENED_ZONES 0x02 +#define ATA_REPORT_ZONES_OPTION_LIST_EXPLICITLY_OPENED_ZONES 0x03 +#define ATA_REPORT_ZONES_OPTION_LIST_CLOSED_ZONES 0x04 +#define ATA_REPORT_ZONES_OPTION_LIST_FULL_ZONES 0x05 +#define ATA_REPORT_ZONES_OPTION_LIST_READ_ONLY_ZONES 0x06 +#define ATA_REPORT_ZONES_OPTION_LIST_OFFLINE_ZONES 0x07 + +#define ATA_REPORT_ZONES_OPTION_LIST_RWP_ZONES 0x10 +#define ATA_REPORT_ZONES_OPTION_LIST_NON_SEQUENTIAL_WRITE_RESOURCES_ACTIVE_ZONES 0x11 + +#define ATA_REPORT_ZONES_OPTION_LIST_NOT_WRITE_POINTER_ZONES 0x3F + +#define ATA_ZONES_TYPE_AND_LENGTH_MAY_DIFFERENT 0x0 +#define ATA_ZONES_TYPE_SAME_LENGTH_SAME 0x1 +#define ATA_ZONES_TYPE_SAME_LAST_ZONE_LENGTH_DIFFERENT 0x2 +#define ATA_ZONES_TYPE_MAY_DIFFERENT_LENGTH_SAME 0x3 + +#define ATA_ZONE_TYPE_CONVENTIONAL 0x1 +#define ATA_ZONE_TYPE_SEQUENTIAL_WRITE_REQUIRED 0x2 +#define ATA_ZONE_TYPE_SEQUENTIAL_WRITE_PREFERRED 0x3 + +#define ATA_ZONE_CONDITION_NOT_WRITE_POINTER 0x0 +#define ATA_ZONE_CONDITION_EMPTY 0x1 +#define ATA_ZONE_CONDITION_IMPLICITLY_OPENED 0x2 +#define ATA_ZONE_CONDITION_EXPLICITLY_OPENED 0x3 +#define ATA_ZONE_CONDITION_CLOSED 0x4 +#define ATA_ZONE_CONDITION_READ_ONLY 0xD +#define ATA_ZONE_CONDITION_FULL 0xE +#define ATA_ZONE_CONDITION_OFFLINE 0xF + +#endif diff --git a/lib/libc/include/any-windows-any/ddk/ntifs.h b/lib/libc/include/any-windows-any/ddk/ntifs.h index 673eb364be..ea76faa850 100644 --- a/lib/libc/include/any-windows-any/ddk/ntifs.h +++ b/lib/libc/include/any-windows-any/ddk/ntifs.h @@ -2726,6 +2726,7 @@ typedef struct _MSV1_0_NTLM3_RESPONSE { UCHAR Buffer[1]; } MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE; +/* MsvAvSingleHost present in MS-NLMP specifications but not in WinSDK */ typedef enum _MSV1_0_AVID { MsvAvEOL, MsvAvNbComputerName, @@ -2738,6 +2739,7 @@ typedef enum _MSV1_0_AVID { #if (_WIN32_WINNT >= 0x0600) MsvAvTimestamp, MsvAvRestrictions, + MsvAvSingleHost = MsvAvRestrictions, MsvAvTargetName, MsvAvChannelBindings, #endif diff --git a/lib/libc/include/any-windows-any/ddk/wdm.h b/lib/libc/include/any-windows-any/ddk/wdm.h index d79e0e7633..c2c547730b 100644 --- a/lib/libc/include/any-windows-any/ddk/wdm.h +++ b/lib/libc/include/any-windows-any/ddk/wdm.h @@ -800,7 +800,10 @@ typedef enum _KBUGCHECK_CALLBACK_REASON { KbCallbackReserved1, KbCallbackSecondaryDumpData, KbCallbackDumpIo, - KbCallbackAddPages + KbCallbackAddPages, + KbCallbackSecondaryMultiPartDumpData, + KbCallbackRemovePages, + KbCallbackTriageDumpData } KBUGCHECK_CALLBACK_REASON; struct _KBUGCHECK_REASON_CALLBACK_RECORD; @@ -917,7 +920,16 @@ typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION; typedef enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown, InterruptActiveHigh, - InterruptActiveLow + InterruptRisingEdge = InterruptActiveHigh, + InterruptActiveLow, + InterruptFallingEdge = InterruptActiveLow, +#if NTDDI_VERSION >= NTDDI_WIN8 + InterruptActiveBoth, +#endif +#if NTDDI_VERSION >= NTDDI_WINBLUE + InterruptActiveBothTriggerLow = InterruptActiveBoth, + InterruptActiveBothTriggerHigh +#endif } KINTERRUPT_POLARITY, *PKINTERRUPT_POLARITY; typedef enum _KPROFILE_SOURCE { @@ -963,7 +975,7 @@ typedef enum _KWAIT_REASON { WrDelayExecution, WrSuspended, WrUserRequest, - WrEventPair, + WrSpare0, WrQueue, WrLpcReceive, WrLpcReply, @@ -986,6 +998,9 @@ typedef enum _KWAIT_REASON { WrFastMutex, WrGuardedMutex, WrRundown, + WrAlertByThreadId, + WrDeferredPreempt, + WrPhysicalFault, MaximumWaitReason } KWAIT_REASON; @@ -1134,48 +1149,46 @@ typedef struct _KLOCK_QUEUE_HANDLE { typedef ULONG64 KSPIN_LOCK_QUEUE_NUMBER; -#define LockQueueDispatcherLock 0 -#define LockQueueExpansionLock 1 -#define LockQueuePfnLock 2 -#define LockQueueSystemSpaceLock 3 +#define LockQueueUnusedSpare0 0 +#define LockQueueUnusedSpare1 1 +#define LockQueueUnusedSpare2 2 +#define LockQueueUnusedSpare3 3 #define LockQueueVacbLock 4 #define LockQueueMasterLock 5 #define LockQueueNonPagedPoolLock 6 #define LockQueueIoCancelLock 7 -#define LockQueueWorkQueueLock 8 +#define LockQueueUnusedSpare8 8 #define LockQueueIoVpbLock 9 #define LockQueueIoDatabaseLock 10 #define LockQueueIoCompletionLock 11 #define LockQueueNtfsStructLock 12 #define LockQueueAfdWorkQueueLock 13 #define LockQueueBcbLock 14 -#define LockQueueMmNonPagedPoolLock 15 +#define LockQueueUnusedSpare15 15 #define LockQueueUnusedSpare16 16 -#define LockQueueTimerTableLock 17 -#define LockQueueMaximumLock (LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS) +#define LockQueueMaximumLock 17 #else typedef enum _KSPIN_LOCK_QUEUE_NUMBER { - LockQueueDispatcherLock, - LockQueueExpansionLock, - LockQueuePfnLock, - LockQueueSystemSpaceLock, + LockQueueUnusedSpare0, + LockQueueUnusedSpare1, + LockQueueUnusedSpare2, + LockQueueUnusedSpare3, LockQueueVacbLock, LockQueueMasterLock, LockQueueNonPagedPoolLock, LockQueueIoCancelLock, - LockQueueWorkQueueLock, + LockQueueUnusedSpare8, LockQueueIoVpbLock, LockQueueIoDatabaseLock, LockQueueIoCompletionLock, LockQueueNtfsStructLock, LockQueueAfdWorkQueueLock, LockQueueBcbLock, - LockQueueMmNonPagedPoolLock, + LockQueueUnusedSpare15, LockQueueUnusedSpare16, - LockQueueTimerTableLock, - LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS + LockQueueMaximumLock = LockQueueUnusedSpare16 + 1 } KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER; #endif /* defined(_AMD64_) */ @@ -1371,6 +1384,7 @@ typedef KSYNCHRONIZE_ROUTINE *PKSYNCHRONIZE_ROUTINE; typedef enum _POOL_TYPE { NonPagedPool, + NonPagedPoolExecute = NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, @@ -1378,13 +1392,20 @@ typedef enum _POOL_TYPE { PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType, + NonPagedPoolBase = 0, + NonPagedPoolBaseMustSucceed = 2, + NonPagedPoolBaseCacheAligned = 4, + NonPagedPoolBaseCacheAlignedMustS = 6, NonPagedPoolSession = 32, PagedPoolSession, NonPagedPoolMustSucceedSession, DontUseThisTypeSession, NonPagedPoolCacheAlignedSession, PagedPoolCacheAlignedSession, - NonPagedPoolCacheAlignedMustSSession + NonPagedPoolCacheAlignedMustSSession, + NonPagedPoolNx = 512, + NonPagedPoolNxCacheAligned = 516, + NonPagedPoolSessionNx = 544, } POOL_TYPE; typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE { @@ -1666,7 +1687,8 @@ typedef enum _MEMORY_CACHING_TYPE { MmHardwareCoherentCached, MmNonCachedUnordered, MmUSWCCached, - MmMaximumCacheType + MmMaximumCacheType, + MmNotMapped = -1 } MEMORY_CACHING_TYPE; typedef enum _MM_PAGE_PRIORITY { @@ -1863,7 +1885,12 @@ typedef enum _WORK_QUEUE_TYPE { CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, - MaximumWorkQueue + NormalWorkQueue, + BackgroundWorkQueue, + RealTimeWorkQueue, + SuperCriticalWorkQueue, + MaximumWorkQueue, + CustomPriorityWorkQueue = 32 } WORK_QUEUE_TYPE; typedef VOID @@ -2215,7 +2242,13 @@ typedef enum _SE_ADT_PARAMETER_TYPE { SeAdtParmTypeLogonIdNoSid, SeAdtParmTypeUlongNoConv, SeAdtParmTypeSockAddrNoPort, - SeAdtParmTypeAccessReason + SeAdtParmTypeAccessReason, + SeAdtParmTypeStagingReason, + SeAdtParmTypeResourceAttribute, + SeAdtParmTypeClaims, + SeAdtParmTypeLogonIdAsSid, + SeAdtParmTypeMultiSzString, + SeAdtParmTypeLogonIdEx } SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE; typedef struct _SE_ADT_OBJECT_TYPE { @@ -2311,7 +2344,7 @@ typedef enum _POWER_INFORMATION_LEVEL { SetPowerSettingValue, NotifyUserPowerSetting, PowerInformationLevelUnused0, - PowerInformationLevelUnused1, + SystemMonitorHiberBootPowerOff, SystemVideoState, TraceApplicationPowerMessage, TraceApplicationPowerMessageEnd, @@ -2335,6 +2368,50 @@ typedef enum _POWER_INFORMATION_LEVEL { ProcessorIdleDomains, WakeTimerList, SystemHiberFileSize, + ProcessorIdleStatesHv, + ProcessorPerfStatesHv, + ProcessorPerfCapHv, + ProcessorSetIdle, + LogicalProcessorIdling, + UserPresence, + PowerSettingNotificationName, + GetPowerSettingValue, + IdleResiliency, + SessionRITState, + SessionConnectNotification, + SessionPowerCleanup, + SessionLockState, + SystemHiberbootState, + PlatformInformation, + PdcInvocation, + MonitorInvocation, + FirmwareTableInformationRegistered, + SetShutdownSelectedTime, + SuspendResumeInvocation, + PlmPowerRequestCreate, + ScreenOff, + CsDeviceNotification, + PlatformRole, + LastResumePerformance, + DisplayBurst, + ExitLatencySamplingPercentage, + RegisterSpmPowerSettings, + PlatformIdleStates, + ProcessorIdleVeto, + PlatformIdleVeto, + SystemBatteryStatePrecise, + ThermalEvent, + PowerRequestActionInternal, + BatteryDeviceState, + PowerInformationInternal, + ThermalStandby, + SystemHiberFileType, + PhysicalPowerButtonPress, + QueryPotentialDripsConstraint, + EnergyTrackerCreate, + EnergyTrackerQuery, + UpdateBlackBoxRecorder, + SessionAllowExternalDmaDevices, PowerInformationLevelMaximum } POWER_INFORMATION_LEVEL; @@ -2346,7 +2423,8 @@ typedef enum { PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, - PowerActionWarmEject + PowerActionWarmEject, + PowerActionDisplayOff } POWER_ACTION, *PPOWER_ACTION; typedef enum _DEVICE_POWER_STATE { @@ -2445,7 +2523,8 @@ typedef enum { typedef enum _POWER_REQUEST_TYPE { PowerRequestDisplayRequired, PowerRequestSystemRequired, - PowerRequestAwayModeRequired + PowerRequestAwayModeRequired, + PowerRequestExecutionRequired } POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE; #if (NTDDI_VERSION >= NTDDI_WINXP) @@ -2509,6 +2588,7 @@ typedef enum _POWER_PLATFORM_ROLE { PlatformRoleSOHOServer, PlatformRoleAppliancePC, PlatformRolePerformanceServer, + PlatformRoleSlate, PlatformRoleMaximum } POWER_PLATFORM_ROLE; @@ -3041,6 +3121,7 @@ typedef enum _INTERFACE_TYPE { PNPISABus, PNPBus, Vmcs, + ACPIBus, MaximumInterfaceType } INTERFACE_TYPE, *PINTERFACE_TYPE; @@ -3224,6 +3305,8 @@ typedef enum _KEY_INFORMATION_CLASS { KeyFlagsInformation, KeyVirtualizationInformation, KeyHandleTagsInformation, + KeyTrustInformation, + KeyLayerInformation, MaxKeyInfoClass } KEY_INFORMATION_CLASS; @@ -3272,6 +3355,7 @@ typedef enum _KEY_SET_INFORMATION_CLASS { KeySetVirtualizationInformation, KeySetDebugInformation, KeySetHandleTagsInformation, + KeySetLayerInformation, MaxKeySetInfoClass } KEY_SET_INFORMATION_CLASS; @@ -3323,7 +3407,9 @@ typedef enum _KEY_VALUE_INFORMATION_CLASS { KeyValueFullInformation, KeyValuePartialInformation, KeyValueFullInformationAlign64, - KeyValuePartialInformationAlign64 + KeyValuePartialInformationAlign64, + KeyValueLayerInformation, + MaxKeyValueInfoClass } KEY_VALUE_INFORMATION_CLASS; typedef struct _KEY_WOW64_FLAGS_INFORMATION { @@ -3393,6 +3479,8 @@ typedef enum _REG_NOTIFY_CLASS { RegNtPostSaveKey, RegNtPreReplaceKey, RegNtPostReplaceKey, + RegNtPreQueryKeyName, + RegNtPostQueryKeyName, MaxRegNtNotifyClass } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS; @@ -3840,7 +3928,10 @@ typedef enum _IRQ_DEVICE_POLICY_USHORT { IrqPolicyAllProcessorsInMachine = 3, IrqPolicyAllProcessorsInGroup = 3, IrqPolicySpecifiedProcessors = 4, - IrqPolicySpreadMessagesAcrossAllProcessors = 5}; + IrqPolicySpreadMessagesAcrossAllProcessors = 5, + IrqPolicyAllProcessorsInMachineWhenSteered = 6, + IrqPolicyAllProcessorsInGroupWhenSteered = 6 +}; #else /* defined(NT_PROCESSOR_GROUPS) */ @@ -3850,7 +3941,8 @@ typedef enum _IRQ_DEVICE_POLICY { IrqPolicyOneCloseProcessor, IrqPolicyAllProcessorsInMachine, IrqPolicySpecifiedProcessors, - IrqPolicySpreadMessagesAcrossAllProcessors + IrqPolicySpreadMessagesAcrossAllProcessors, + IrqPolicyAllProcessorsInMachineWhenSteered } IRQ_DEVICE_POLICY, *PIRQ_DEVICE_POLICY; #endif @@ -4268,6 +4360,24 @@ typedef enum _CREATE_FILE_TYPE { CreateFileTypeMailslot } CREATE_FILE_TYPE; +typedef struct _NAMED_PIPE_CREATE_PARAMETERS { + ULONG NamedPipeType; + ULONG ReadMode; + ULONG CompletionMode; + ULONG MaximumInstances; + ULONG InboundQuota; + ULONG OutboundQuota; + LARGE_INTEGER DefaultTimeout; + BOOLEAN TimeoutSpecified; +} NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS; + +typedef struct _MAILSLOT_CREATE_PARAMETERS { + ULONG MailslotQuota; + ULONG MaximumMessageSize; + LARGE_INTEGER ReadTimeout; + BOOLEAN TimeoutSpecified; +} MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS; + #define IO_FORCE_ACCESS_CHECK 0x001 #define IO_NO_PARAMETER_CHECKING 0x100 @@ -4873,7 +4983,10 @@ typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined, DeviceUsageTypePaging, DeviceUsageTypeHibernation, - DeviceUsageTypeDumpFile + DeviceUsageTypeDumpFile, + DeviceUsageTypeBoot, + DeviceUsageTypePostDisplay, + DeviceUsageTypeGuestAssigned } DEVICE_USAGE_NOTIFICATION_TYPE; typedef struct _POWER_SEQUENCE { @@ -4912,7 +5025,8 @@ typedef enum _IO_NOTIFICATION_EVENT_CATEGORY { EventCategoryReserved, EventCategoryHardwareProfileChange, EventCategoryDeviceInterfaceChange, - EventCategoryTargetDeviceChange + EventCategoryTargetDeviceChange, + EventCategoryKernelSoftRestart } IO_NOTIFICATION_EVENT_CATEGORY; typedef enum _IO_PRIORITY_HINT { @@ -4989,13 +5103,38 @@ typedef enum _FILE_INFORMATION_CLASS { FileNetworkPhysicalNameInformation, FileIdGlobalTxDirectoryInformation, FileIsRemoteDeviceInformation, - FileAttributeCacheInformation, + FileUnusedInformation, FileNumaNodeInformation, FileStandardLinkInformation, FileRemoteProtocolInformation, + FileRenameInformationBypassAccessCheck, + FileLinkInformationBypassAccessCheck, + FileVolumeNameInformation, + FileIdInformation, + FileIdExtdDirectoryInformation, + FileReplaceCompletionInformation, + FileHardLinkFullIdInformation, + FileIdExtdBothDirectoryInformation, + FileDispositionInformationEx, + FileRenameInformationEx, + FileRenameInformationExBypassAccessCheck, + FileDesiredStorageClassInformation, + FileStatInformation, + FileMemoryPartitionInformation, + FileStatLxInformation, + FileCaseSensitiveInformation, + FileLinkInformationEx, + FileLinkInformationExBypassAccessCheck, + FileStorageReserveIdInformation, + FileCaseSensitiveInformationForceAccessCheck, FileMaximumInformation } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; +typedef enum _DIRECTORY_NOTIFY_INFORMATION_CLASS { + DirectoryNotifyInformation = 1, + DirectoryNotifyExtendedInformation +} DIRECTORY_NOTIFY_INFORMATION_CLASS, *PDIRECTORY_NOTIFY_INFORMATION_CLASS; + typedef struct _FILE_POSITION_INFORMATION { LARGE_INTEGER CurrentByteOffset; } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION; @@ -5063,6 +5202,10 @@ typedef enum _FSINFOCLASS { FileFsObjectIdInformation, FileFsDriverPathInformation, FileFsVolumeFlagsInformation, + FileFsSectorSizeInformation, + FileFsDataCopyInformation, + FileFsMetadataSizeInformation, + FileFsFullSizeInformationEx, FileFsMaximumInformation } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; @@ -5662,6 +5805,8 @@ typedef enum _DMA_WIDTH { Width8Bits, Width16Bits, Width32Bits, + Width64Bits, + WidthNoWrap, MaximumDmaWidth } DMA_WIDTH, *PDMA_WIDTH; @@ -6202,7 +6347,8 @@ typedef enum _BUS_QUERY_ID_TYPE { BusQueryHardwareIDs, BusQueryCompatibleIDs, BusQueryInstanceID, - BusQueryDeviceSerialNumber + BusQueryDeviceSerialNumber, + BusQueryContainerID } BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE; typedef enum _DEVICE_TEXT_TYPE { @@ -6357,27 +6503,52 @@ typedef struct _IO_STACK_LOCATION { ULONG POINTER_ALIGNMENT EaLength; } Create; struct { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT POINTER_ALIGNMENT Reserved; + USHORT ShareAccess; + PNAMED_PIPE_CREATE_PARAMETERS Parameters; + } CreatePipe; + struct { + PIO_SECURITY_CONTEXT SecurityContext; + ULONG Options; + USHORT POINTER_ALIGNMENT Reserved; + USHORT ShareAccess; + PMAILSLOT_CREATE_PARAMETERS Parameters; + } CreateMailslot; + struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; +#ifdef _WIN64 + ULONG Flags; +#endif LARGE_INTEGER ByteOffset; } Read; struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; +#ifdef _WIN64 + ULONG Flags; +#endif LARGE_INTEGER ByteOffset; } Write; struct { ULONG Length; PUNICODE_STRING FileName; FILE_INFORMATION_CLASS FileInformationClass; - ULONG FileIndex; + ULONG POINTER_ALIGNMENT FileIndex; } QueryDirectory; struct { ULONG Length; - ULONG CompletionFilter; + ULONG POINTER_ALIGNMENT CompletionFilter; } NotifyDirectory; struct { ULONG Length; + ULONG POINTER_ALIGNMENT CompletionFilter; + DIRECTORY_NOTIFY_INFORMATION_CLASS POINTER_ALIGNMENT DirectoryNotifyInformationClass; + } NotifyDirectoryEx; + struct { + ULONG Length; FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; } QueryFile; struct { @@ -6397,7 +6568,7 @@ typedef struct _IO_STACK_LOCATION { ULONG Length; PVOID EaList; ULONG EaListLength; - ULONG EaIndex; + ULONG POINTER_ALIGNMENT EaIndex; } QueryEa; struct { ULONG Length; @@ -6408,17 +6579,17 @@ typedef struct _IO_STACK_LOCATION { } QueryVolume; struct { ULONG Length; - FS_INFORMATION_CLASS FsInformationClass; + FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass; } SetVolume; struct { ULONG OutputBufferLength; - ULONG InputBufferLength; - ULONG FsControlCode; + ULONG POINTER_ALIGNMENT InputBufferLength; + ULONG POINTER_ALIGNMENT FsControlCode; PVOID Type3InputBuffer; } FileSystemControl; struct { PLARGE_INTEGER Length; - ULONG Key; + ULONG POINTER_ALIGNMENT Key; LARGE_INTEGER ByteOffset; } LockControl; struct { @@ -6499,7 +6670,14 @@ typedef struct _IO_STACK_LOCATION { PPOWER_SEQUENCE PowerSequence; } PowerSequence; struct { - ULONG SystemContext; +#if (NTDDI_VERSION >= NTDDI_WINVISTA) + _ANONYMOUS_UNION union { +#endif + ULONG SystemContext; +#if (NTDDI_VERSION >= NTDDI_WINVISTA) + SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; + } DUMMYUNIONNAME; +#endif POWER_STATE_TYPE POINTER_ALIGNMENT Type; POWER_STATE POINTER_ALIGNMENT State; POWER_ACTION POINTER_ALIGNMENT ShutdownType; @@ -7679,6 +7857,11 @@ typedef enum _TRACE_INFORMATION_CLASS { LoggerEventsLostClass, TraceSessionSettingsClass, LoggerEventsLoggedClass, + DiskIoNotifyRoutinesClass, + TraceInformationClassReserved1, + FltIoNotifyRoutinesClass, + TraceInformationClassReserved2, + WdfNotifyRoutinesClass, MaxTraceInformationClass } TRACE_INFORMATION_CLASS; @@ -9345,7 +9528,7 @@ RtlExtendedMagicDivide( ret64 = UnsignedMultiplyHigh(Pos ? Dividend.QuadPart : -Dividend.QuadPart, MagicDivisor.QuadPart); ret64 >>= ShiftCount; - ret.QuadPart = Pos ? ret64 : -(LONG64)ret64; + ret.QuadPart = Pos ? (LONG64)ret64 : -(LONG64)ret64; return ret; } #endif @@ -16128,6 +16311,885 @@ ZwSetInformationKey( #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */ +#ifndef _CLFS_PUBLIC_H_ +#define _CLFS_PUBLIC_H_ + +#ifndef CLFSUSER_API +#ifdef __CLFSUSER_EXPORTS__ +#define CLFSUSER_API +#else +#define CLFSUSER_API __declspec(dllimport) +#endif +#endif + +#if NTDDI_VERSION >= NTDDI_WS03SP1 || _WIN32_WINNT >= _WIN32_WINNT_WS03 + +#define FILE_ATTRIBUTE_DEDICATED FILE_ATTRIBUTE_TEMPORARY +#define EA_CONTAINER_NAME "ContainerName" +#define EA_CONTAINER_SIZE "ContainerSize" +#define CLFS_BASELOG_EXTENSION L".blf" +#define CLFS_FLAG_NO_FLAGS 0x00000000 +#define CLFS_FLAG_FORCE_APPEND 0x00000001 +#define CLFS_FLAG_FORCE_FLUSH 0x00000002 +#define CLFS_FLAG_USE_RESERVATION 0x00000004 +#define CLFS_FLAG_REENTRANT_FILE_SYSTEM 0x00000008 +#define CLFS_FLAG_NON_REENTRANT_FILTER 0x00000010 +#define CLFS_FLAG_REENTRANT_FILTER 0x00000020 +#define CLFS_FLAG_IGNORE_SHARE_ACCESS 0x00000040 +#define CLFS_FLAG_READ_IN_PROGRESS 0x00000080 +#define CLFS_FLAG_MINIFILTER_LEVEL 0x00000100 +#define CLFS_FLAG_HIDDEN_SYSTEM_LOG 0x00000200 +#define CLFS_FLAG_FILTER_INTERMEDIATE_LEVEL CLFS_FLAG_NON_REENTRANT_FILTER +#define CLFS_FLAG_FILTER_TOP_LEVEL CLFS_FLAG_REENTRANT_FILTER +#define CLFS_MARSHALLING_FLAG_NONE 0x00000000 +#define CLFS_MARSHALLING_FLAG_DISABLE_BUFF_INIT 0x00000001 + +typedef ULONG CLFS_CONTAINER_ID, *PCLFS_CONTAINER_ID, **PPCLFS_CONTAINER_ID; + +typedef struct _CLS_LSN { + ULONGLONG Internal; +} CLS_LSN, *PCLS_LSN, **PPCLS_LSN; + +typedef CLS_LSN CLFS_LSN, *PCLFS_LSN, **PPCLFS_LSN; + +extern __declspec(dllimport) const CLFS_LSN CLFS_LSN_INVALID; +extern __declspec(dllimport) const CLFS_LSN CLFS_LSN_NULL; + +#define ClfsNullRecord 0x00 +#define ClfsDataRecord 0x01 +#define ClfsRestartRecord 0x02 +#define ClfsClientRecord (ClfsDataRecord | ClfsRestartRecord) + +#define CLFS_CONTAINER_STREAM_PREFIX L"%BLF%:" +#define CLFS_CONTAINER_RELATIVE_PREFIX L"%BLF%\\" + +typedef UCHAR CLS_RECORD_TYPE, *PCLS_RECORD_TYPE, **PPCLS_RECORD_TYPE; +typedef CLS_RECORD_TYPE CLFS_RECORD_TYPE, *PCLFS_RECORD_TYPE, **PPCLFS_RECORD_TYPE; + +typedef enum _CLS_CONTEXT_MODE { + ClsContextNone, + ClsContextUndoNext, + ClsContextPrevious, + ClsContextForward +} CLS_CONTEXT_MODE, *PCLS_CONTEXT_MODE, **PPCLS_CONTEXT_MODE; + +typedef enum _CLFS_CONTEXT_MODE { + ClfsContextNone, + ClfsContextUndoNext, + ClfsContextPrevious, + ClfsContextForward +} CLFS_CONTEXT_MODE, *PCLFS_CONTEXT_MODE, **PPCLFS_CONTEXT_MODE; + +typedef struct _CLFS_NODE_ID { + ULONG cType; + ULONG cbNode; +} CLFS_NODE_ID, *PCLFS_NODE_ID; + +typedef struct _CLS_WRITE_ENTRY { + PVOID Buffer; + ULONG ByteLength; +} CLS_WRITE_ENTRY, *PCLS_WRITE_ENTRY, **PPCLS_WRITE_ENTRY; + +typedef CLS_WRITE_ENTRY CLFS_WRITE_ENTRY, *PCLFS_WRITE_ENTRY, **PPCLFS_WRITE_ENTRY; + +typedef GUID CLFS_LOG_ID; + +typedef struct _CLS_INFORMATION { + LONGLONG TotalAvailable; + LONGLONG CurrentAvailable; + LONGLONG TotalReservation; + ULONGLONG BaseFileSize; + ULONGLONG ContainerSize; + ULONG TotalContainers; + ULONG FreeContainers; + ULONG TotalClients; + ULONG Attributes; + ULONG FlushThreshold; + ULONG SectorSize; + CLS_LSN MinArchiveTailLsn; + CLS_LSN BaseLsn; + CLS_LSN LastFlushedLsn; + CLS_LSN LastLsn; + CLS_LSN RestartLsn; + GUID Identity; +} CLS_INFORMATION, *PCLS_INFORMATION, *PPCLS_INFORMATION; + +typedef CLS_INFORMATION CLFS_INFORMATION, *PCLFS_INFORMATION, *PPCLFS_INFORMATION; + +typedef struct _CLFS_LOG_NAME_INFORMATION { + USHORT NameLengthInBytes; + WCHAR Name[1]; +} CLFS_LOG_NAME_INFORMATION, *PCLFS_LOG_NAME_INFORMATION, **PPCLFS_LOG_NAME_INFORMATION; + +typedef struct _CLFS_STREAM_ID_INFORMATION { + UCHAR StreamIdentifier; +} CLFS_STREAM_ID_INFORMATION, *PCLFS_STREAM_ID_INFORMATION, **PPCLFS_STREAM_ID_INFORMATION; + +typedef UINT32 CLS_CONTAINER_STATE, *PCLS_CONTAINER_STATE, *PPCLS_CONTAINER_STATE; +typedef CLS_CONTAINER_STATE CLFS_CONTAINER_STATE, *PCLFS_CONTAINER_STATE, *PPCLFS_CONTAINER_STATE; + +#define ClsContainerInitializing 0x01 +#define ClsContainerInactive 0x02 +#define ClsContainerActive 0x04 +#define ClsContainerActivePendingDelete 0x08 +#define ClsContainerPendingArchive 0x10 +#define ClsContainerPendingArchiveAndDelete 0x20 + +#define ClfsContainerInitializing 0x01 +#define ClfsContainerInactive 0x02 +#define ClfsContainerActive 0x04 +#define ClfsContainerActivePendingDelete 0x08 +#define ClfsContainerPendingArchive 0x10 +#define ClfsContainerPendingArchiveAndDelete 0x20 + +#define CLFS_MAX_CONTAINER_INFO 256 + +typedef struct _CLS_CONTAINER_INFORMATION { + ULONG FileAttributes; + ULONGLONG CreationTime; + ULONGLONG LastAccessTime; + ULONGLONG LastWriteTime; + LONGLONG ContainerSize; + ULONG FileNameActualLength; + ULONG FileNameLength; + WCHAR FileName[CLFS_MAX_CONTAINER_INFO]; + CLFS_CONTAINER_STATE State; + CLFS_CONTAINER_ID PhysicalContainerId; + CLFS_CONTAINER_ID LogicalContainerId; +} CLS_CONTAINER_INFORMATION, *PCLS_CONTAINER_INFORMATION, **PPCLS_CONTAINER_INFORMATION; + +typedef CLS_CONTAINER_INFORMATION CLFS_CONTAINER_INFORMATION, *PCLFS_CONTAINER_INFORMATION, **PPCLFS_CONTAINER_INFORMATION; + +typedef enum _CLS_LOG_INFORMATION_CLASS { + ClfsLogBasicInformation, + ClfsLogBasicInformationPhysical, + ClfsLogPhysicalNameInformation, + ClfsLogStreamIdentifierInformation, +#if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_WINNT >= _WIN32_WINNT_VISTA + ClfsLogSystemMarkingInformation, + ClfsLogPhysicalLsnInformation +#endif +} CLS_LOG_INFORMATION_CLASS, *PCLS_LOG_INFORMATION_CLASS, **PPCLS_LOG_INFORMATION_CLASS; + +typedef CLS_LOG_INFORMATION_CLASS CLFS_LOG_INFORMATION_CLASS, *PCLFS_LOG_INFORMATION_CLASS, **PPCLFS_LOG_INFORMATION_CLASS; + +typedef enum _CLS_IOSTATS_CLASS { + ClsIoStatsDefault = 0x0000, + ClsIoStatsMax = 0xffff +} CLS_IOSTATS_CLASS, *PCLS_IOSTATS_CLASS, **PPCLS_IOSTATS_CLASS; + +typedef enum _CLFS_IOSTATS_CLASS { + ClfsIoStatsDefault = 0x0000, + ClfsIoStatsMax = 0xffff +} CLFS_IOSTATS_CLASS, *PCLFS_IOSTATS_CLASS, **PPCLFS_IOSTATS_CLASS; + +typedef struct _CLS_IO_STATISTICS_HEADER { + UCHAR ubMajorVersion; + UCHAR ubMinorVersion; + CLFS_IOSTATS_CLASS eStatsClass; + USHORT cbLength; + ULONG coffData; +} CLS_IO_STATISTICS_HEADER, *PCLS_IO_STATISTICS_HEADER, **PPCLS_IO_STATISTICS_HEADER; + +typedef CLS_IO_STATISTICS_HEADER CLFS_IO_STATISTICS_HEADER, *PCLFS_IO_STATISTICS_HEADER, **PPCLFS_IO_STATISTICS_HEADER; + +typedef struct _CLS_IO_STATISTICS { + CLS_IO_STATISTICS_HEADER hdrIoStats; + ULONGLONG cFlush; + ULONGLONG cbFlush; + ULONGLONG cMetaFlush; + ULONGLONG cbMetaFlush; +} CLS_IO_STATISTICS, *PCLS_IO_STATISTICS, **PPCLS_IO_STATISTICS; + +typedef CLS_IO_STATISTICS CLFS_IO_STATISTICS, *PCLFS_IO_STATISTICS, **PPCLFS_IO_STATISTICS; + +#define CLFS_SCAN_INIT 0x01 +#define CLFS_SCAN_FORWARD 0x02 +#define CLFS_SCAN_BACKWARD 0x04 +#define CLFS_SCAN_CLOSE 0x08 +#define CLFS_SCAN_INITIALIZED 0x10 +#define CLFS_SCAN_BUFFERED 0x20 + +typedef UCHAR CLFS_SCAN_MODE, *PCLFS_SCAN_MODE; + +typedef FILE_OBJECT LOG_FILE_OBJECT, *PLOG_FILE_OBJECT, **PPLOG_FILE_OBJECT; + +typedef struct _CLS_SCAN_CONTEXT { + CLFS_NODE_ID cidNode; + PLOG_FILE_OBJECT plfoLog; + ULONG cIndex __attribute__((aligned(8))); + ULONG cContainers __attribute__((aligned(8))); + ULONG cContainersReturned __attribute__((aligned(8))); + CLFS_SCAN_MODE eScanMode __attribute__((aligned(8))); + PCLS_CONTAINER_INFORMATION pinfoContainer __attribute__((aligned(8))); +} CLS_SCAN_CONTEXT, *PCLS_SCAN_CONTEXT, **PPCLS_SCAN_CONTEXT; + +typedef CLS_SCAN_CONTEXT CLFS_SCAN_CONTEXT, *PCLFS_SCAN_CONTEXT, **PPCLFS_SCAN_CONTEXT; + +typedef struct _CLS_ARCHIVE_DESCRIPTOR { + ULONGLONG coffLow; + ULONGLONG coffHigh; + CLS_CONTAINER_INFORMATION infoContainer; +} CLS_ARCHIVE_DESCRIPTOR, *PCLS_ARCHIVE_DESCRIPTOR, **PPCLS_ARCHIVE_DESCRIPTOR; + +typedef CLS_ARCHIVE_DESCRIPTOR CLFS_ARCHIVE_DESCRIPTOR, *PCLFS_ARCHIVE_DESCRIPTOR, **PPCLFS_ARCHIVE_DESCRIPTOR; + +typedef PVOID (*CLFS_BLOCK_ALLOCATION)(ULONG cbBufferLength, PVOID pvUserContext); +typedef void (*CLFS_BLOCK_DEALLOCATION)(PVOID pvBuffer, PVOID pvUserContext); + +typedef enum _CLFS_LOG_ARCHIVE_MODE { + ClfsLogArchiveEnabled = 1, + ClfsLogArchiveDisabled = 2 +} CLFS_LOG_ARCHIVE_MODE, *PCLFS_LOG_ARCHIVE_MODE; + +CLFSUSER_API +BOOLEAN +NTAPI +ClfsLsnEqual( + const CLFS_LSN* plsn1, + const CLFS_LSN* plsn2); + +CLFSUSER_API +BOOLEAN +NTAPI +ClfsLsnLess( + const CLFS_LSN* plsn1, + const CLFS_LSN* plsn2); + +CLFSUSER_API +BOOLEAN +NTAPI +ClfsLsnGreater( + const CLFS_LSN* plsn1, + const CLFS_LSN* plsn2); + +CLFSUSER_API +BOOLEAN +NTAPI +ClfsLsnNull( + const CLFS_LSN* plsn); + +CLFSUSER_API +CLFS_CONTAINER_ID +NTAPI +ClfsLsnContainer( + const CLFS_LSN* plsn); + +CLFSUSER_API +CLFS_LSN +NTAPI +ClfsLsnCreate( + CLFS_CONTAINER_ID cidContainer, + ULONG offBlock, + ULONG cRecord); + +CLFSUSER_API +ULONG +NTAPI +ClfsLsnBlockOffset( + const CLFS_LSN* plsn); + +CLFSUSER_API +ULONG +NTAPI +ClfsLsnRecordSequence( + const CLFS_LSN* plsn); + +CLFSUSER_API +BOOLEAN +NTAPI +ClfsLsnInvalid( + const CLFS_LSN* plsn); + +CLFSUSER_API +CLFS_LSN +NTAPI +ClfsLsnIncrement( + PCLFS_LSN plsn); + +#ifdef __cplusplus +#ifdef CLFS_OPERATORS + +inline CLFS_LSN operator++(CLFS_LSN& refLsn) { + refLsn = ClfsLsnIncrement (&refLsn); + return refLsn; +} + +inline BOOLEAN operator<(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return ClfsLsnLess(&refLsn1, &refLsn2); +} + +inline BOOLEAN operator>(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return ClfsLsnGreater(&refLsn1, &refLsn2); +} + +inline BOOLEAN operator==(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return ClfsLsnEqual(&refLsn1, &refLsn2); +} + +inline BOOLEAN operator!=(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return !ClfsLsnEqual(&refLsn1, &refLsn2); +} + +inline BOOLEAN operator<=(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return !ClfsLsnGreater(&refLsn1, &refLsn2); +} + +inline BOOLEAN operator>=(const CLFS_LSN& refLsn1, const CLFS_LSN& refLsn2) { + return !ClfsLsnLess(&refLsn1, &refLsn2); +} + +#endif +#endif +#endif + +#if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_WINNT >= _WIN32_WINNT_VISTA + +#pragma pack(push,8) + +typedef struct _CLFS_PHYSICAL_LSN_INFORMATION { + UCHAR StreamIdentifier; + CLFS_LSN VirtualLsn; + CLFS_LSN PhysicalLsn; +} CLFS_PHYSICAL_LSN_INFORMATION, *PCLFS_PHYSICAL_LSN_INFORMATION; + +#pragma pack(pop) + +#endif + +#endif /* _CLFS_PUBLIC_H_ */ + +#if NTDDI_VERSION >= NTDDI_WS03SP1 || _WIN32_WINNT >= _WIN32_WINNT_WS03 + +typedef enum _CLFS_MGMT_POLICY_TYPE { + ClfsMgmtPolicyMaximumSize, + ClfsMgmtPolicyMinimumSize, + ClfsMgmtPolicyNewContainerSize, + ClfsMgmtPolicyGrowthRate, + ClfsMgmtPolicyLogTail, + ClfsMgmtPolicyAutoShrink, + ClfsMgmtPolicyAutoGrow, + ClfsMgmtPolicyNewContainerPrefix, + ClfsMgmtPolicyNewContainerSuffix, + ClfsMgmtPolicyNewContainerExtension, + ClfsMgmtPolicyInvalid +} CLFS_MGMT_POLICY_TYPE, *PCLFS_MGMT_POLICY_TYPE; + +#define CLFS_MGMT_NUM_POLICIES (ULONG)ClfsMgmtPolicyInvalid + +#define CLFS_LOG_SIZE_MINIMUM (ULONGLONG)0 +#define CLFS_LOG_SIZE_MAXIMUM (ULONGLONG)-1 + +#define CLFS_MGMT_POLICY_VERSION 1 + +#define LOG_POLICY_OVERWRITE 0x01 +#define LOG_POLICY_PERSIST 0x02 + +typedef struct _CLFS_MGMT_POLICY { + ULONG Version; + ULONG LengthInBytes; + ULONG PolicyFlags; + CLFS_MGMT_POLICY_TYPE PolicyType; + union { + struct { + ULONG Containers; + } MaximumSize; + struct { + ULONG Containers; + } MinimumSize; + struct { + ULONG SizeInBytes; + } NewContainerSize; + struct { + ULONG AbsoluteGrowthInContainers; + ULONG RelativeGrowthPercentage; + } GrowthRate; + struct { + ULONG MinimumAvailablePercentage; + ULONG MinimumAvailableContainers; + } LogTail; + struct { + ULONG Percentage; + } AutoShrink; + struct { + ULONG Enabled; + } AutoGrow; + struct { + USHORT PrefixLengthInBytes; + WCHAR PrefixString[1]; + } NewContainerPrefix; + struct { + ULONGLONG NextContainerSuffix; + } NewContainerSuffix; + struct { + USHORT ExtensionLengthInBytes; + WCHAR ExtensionString[1]; + } NewContainerExtension; + } PolicyParameters; +} CLFS_MGMT_POLICY, *PCLFS_MGMT_POLICY; + +typedef enum _CLFS_MGMT_NOTIFICATION_TYPE { + ClfsMgmtAdvanceTailNotification, + ClfsMgmtLogFullHandlerNotification, + ClfsMgmtLogUnpinnedNotification, + ClfsMgmtLogWriteNotification +} CLFS_MGMT_NOTIFICATION_TYPE, *PCLFS_MGMT_NOTIFICATION_TYPE; + +typedef struct _CLFS_MGMT_NOTIFICATION { + CLFS_MGMT_NOTIFICATION_TYPE Notification; + CLFS_LSN Lsn; + USHORT LogIsPinned; +} CLFS_MGMT_NOTIFICATION, *PCLFS_MGMT_NOTIFICATION; + +typedef NTSTATUS (*PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK)( + PLOG_FILE_OBJECT LogFile, + PCLFS_LSN TargetLsn, + PVOID ClientData); + +typedef VOID (*PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK)( + PLOG_FILE_OBJECT LogFile, + NTSTATUS OperationStatus, + BOOLEAN LogIsPinned, + PVOID ClientData); + +typedef VOID (*PCLFS_CLIENT_LOG_UNPINNED_CALLBACK)( + PLOG_FILE_OBJECT LogFile, + PVOID ClientData); + +typedef VOID (*PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK)( + PLOG_FILE_OBJECT LogFile, + NTSTATUS OperationStatus, + PVOID ClientData); + +#define CLFS_MGMT_CLIENT_REGISTRATION_VERSION 1 + +typedef struct _CLFS_MGMT_CLIENT_REGISTRATION { + ULONG Version; + PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK AdvanceTailCallback; + PVOID AdvanceTailCallbackData; + PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK LogGrowthCompleteCallback; + PVOID LogGrowthCompleteCallbackData; + PCLFS_CLIENT_LOG_UNPINNED_CALLBACK LogUnpinnedCallback; + PVOID LogUnpinnedCallbackData; +} CLFS_MGMT_CLIENT_REGISTRATION, *PCLFS_MGMT_CLIENT_REGISTRATION; + +typedef PVOID CLFS_MGMT_CLIENT, *PCLFS_MGMT_CLIENT; + +CLFSUSER_API +NTSTATUS +ClfsMgmtRegisterManagedClient( + PLOG_FILE_OBJECT LogFile, + PCLFS_MGMT_CLIENT_REGISTRATION RegistrationData, + PCLFS_MGMT_CLIENT ClientCookie); + +CLFSUSER_API +NTSTATUS +ClfsMgmtDeregisterManagedClient( + CLFS_MGMT_CLIENT ClientCookie); + +CLFSUSER_API +NTSTATUS +ClfsMgmtTailAdvanceFailure( + CLFS_MGMT_CLIENT Client, + NTSTATUS Reason); + +CLFSUSER_API +NTSTATUS +ClfsMgmtHandleLogFileFull( + CLFS_MGMT_CLIENT Client); + +CLFSUSER_API +NTSTATUS +ClfsMgmtInstallPolicy( + PLOG_FILE_OBJECT LogFile, + PCLFS_MGMT_POLICY Policy, + ULONG PolicyLength); + +CLFSUSER_API +NTSTATUS +ClfsMgmtQueryPolicy( + PLOG_FILE_OBJECT LogFile, + CLFS_MGMT_POLICY_TYPE PolicyType, + PCLFS_MGMT_POLICY Policy, + PULONG PolicyLength); + +CLFSUSER_API +NTSTATUS +ClfsMgmtRemovePolicy( + PLOG_FILE_OBJECT LogFile, + CLFS_MGMT_POLICY_TYPE PolicyType); + +CLFSUSER_API +NTSTATUS +ClfsMgmtSetLogFileSize( + PLOG_FILE_OBJECT LogFile, + PULONGLONG NewSizeInContainers, + PULONGLONG ResultingSizeInContainers, + PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine, + PVOID CompletionRoutineData); + +#endif + +#if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_WINNT >= _WIN32_WINNT_VISTA + +CLFSUSER_API +NTSTATUS +ClfsMgmtSetLogFileSizeAsClient( + PLOG_FILE_OBJECT LogFile, + PCLFS_MGMT_CLIENT ClientCookie, + PULONGLONG NewSizeInContainers, + PULONGLONG ResultingSizeInContainers, + PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK CompletionRoutine, + PVOID CompletionRoutineData); + +#endif + +#ifndef __CLFSPROC_H__ +#define __CLFSPROC_H__ + +#if NTDDI_VERSION >= NTDDI_WS03SP1 + +CLFSUSER_API NTSTATUS ClfsInitialize(void); + +CLFSUSER_API void ClfsFinalize(void); + +CLFSUSER_API +NTSTATUS +ClfsCreateLogFile( + PPLOG_FILE_OBJECT pplfoLog, + PUNICODE_STRING puszLogFileName, + ACCESS_MASK fDesiredAccess, + ULONG dwShareMode, + PSECURITY_DESCRIPTOR psdLogFile, + ULONG fCreateDisposition, + ULONG fCreateOptions, + ULONG fFlagsAndAttributes, + ULONG fLogOptionFlag, + PVOID pvContext, + ULONG cbContext); + +CLFSUSER_API +NTSTATUS +ClfsDeleteLogByPointer( + PLOG_FILE_OBJECT plfoLog); + +CLFSUSER_API +NTSTATUS +ClfsDeleteLogFile( + PUNICODE_STRING puszLogFileName, + PVOID pvReserved, + ULONG fLogOptionFlag, + PVOID pvContext, + ULONG cbContext); + +CLFSUSER_API +NTSTATUS +ClfsAddLogContainer( + PLOG_FILE_OBJECT plfoLog, + PULONGLONG pcbContainer, + PUNICODE_STRING puszContainerPath); + +CLFSUSER_API +NTSTATUS +ClfsAddLogContainerSet( + PLOG_FILE_OBJECT plfoLog, + USHORT cContainers, + PULONGLONG pcbContainer, + PUNICODE_STRING rguszContainerPath); + +CLFSUSER_API +NTSTATUS +ClfsRemoveLogContainer( + PLOG_FILE_OBJECT plfoLog, + PUNICODE_STRING puszContainerPath, + BOOLEAN fForce); + +CLFSUSER_API +NTSTATUS +ClfsRemoveLogContainerSet( + PLOG_FILE_OBJECT plfoLog, + USHORT cContainers, + PUNICODE_STRING rgwszContainerPath, + BOOLEAN fForce); + +CLFSUSER_API +NTSTATUS +ClfsSetArchiveTail( + PLOG_FILE_OBJECT plfoLog, + PCLFS_LSN plsnArchiveTail); + +CLFSUSER_API +NTSTATUS +ClfsSetEndOfLog( + PLOG_FILE_OBJECT plfoLog, + PCLFS_LSN plsnEnd); + +CLFSUSER_API +NTSTATUS +ClfsCreateScanContext( + PLOG_FILE_OBJECT plfoLog, + ULONG cFromContainer, + ULONG cContainers, + CLFS_SCAN_MODE eScanMode, + PCLFS_SCAN_CONTEXT pcxScan); + +CLFSUSER_API +NTSTATUS +ClfsScanLogContainers( + PCLFS_SCAN_CONTEXT pcxScan, + CLFS_SCAN_MODE eScanMode); + +CLFSUSER_API +NTSTATUS +ClfsGetContainerName( + PLOG_FILE_OBJECT plfoLog, + CLFS_CONTAINER_ID cidLogicalContainer, + PUNICODE_STRING puszContainerName, + PULONG pcActualLenContainerName); + +CLFSUSER_API +NTSTATUS +ClfsGetLogFileInformation( + PLOG_FILE_OBJECT plfoLog, + PCLFS_INFORMATION pinfoBuffer, + PULONG pcbInfoBuffer); + +CLFSUSER_API +NTSTATUS +ClfsSetLogFileInformation( + PLOG_FILE_OBJECT plfoLog, + CLFS_LOG_INFORMATION_CLASS eInformationClass, + PVOID pinfoBuffer, + ULONG cbBuffer); + +CLFSUSER_API +NTSTATUS +ClfsReadRestartArea( + PVOID pvMarshalContext, + PVOID* ppvRestartBuffer, + PULONG pcbRestartBuffer, + PCLFS_LSN plsn, + PVOID* ppvReadContext); + +CLFSUSER_API +NTSTATUS +ClfsReadPreviousRestartArea( + PVOID pvReadContext, + PVOID* ppvRestartBuffer, + PULONG pcbRestartBuffer, + PCLFS_LSN plsnRestart); + +CLFSUSER_API +NTSTATUS +ClfsWriteRestartArea( + PVOID pvMarshalContext, + PVOID pvRestartBuffer, + ULONG cbRestartBuffer, + PCLFS_LSN plsnBase, + ULONG fFlags, + PULONG pcbWritten, + PCLFS_LSN plsnNext); + +CLFSUSER_API +NTSTATUS +ClfsAdvanceLogBase( + PVOID pvMarshalContext, + PCLFS_LSN plsnBase, + ULONG fFlags); + +CLFSUSER_API +NTSTATUS +ClfsCloseAndResetLogFile( + PLOG_FILE_OBJECT plfoLog); + +CLFSUSER_API +NTSTATUS +ClfsCloseLogFileObject( + PLOG_FILE_OBJECT plfoLog); + +CLFSUSER_API +NTSTATUS +ClfsCreateMarshallingArea( + PLOG_FILE_OBJECT plfoLog, + POOL_TYPE ePoolType, + PALLOCATE_FUNCTION pfnAllocBuffer, + PFREE_FUNCTION pfnFreeBuffer, + ULONG cbMarshallingBuffer, + ULONG cMaxWriteBuffers, + ULONG cMaxReadBuffers, + PVOID* ppvMarshalContext); + +CLFSUSER_API +NTSTATUS +ClfsDeleteMarshallingArea( + PVOID pvMarshalContext); + +CLFSUSER_API +NTSTATUS +ClfsReserveAndAppendLog( + PVOID pvMarshalContext, + PCLFS_WRITE_ENTRY rgWriteEntries, + ULONG cWriteEntries, + PCLFS_LSN plsnUndoNext, + PCLFS_LSN plsnPrevious, + ULONG cReserveRecords, + PLONGLONG rgcbReservation, + ULONG fFlags, + PCLFS_LSN plsn); + +CLFSUSER_API +NTSTATUS +ClfsReserveAndAppendLogAligned( + PVOID pvMarshalContext, + PCLFS_WRITE_ENTRY rgWriteEntries, + ULONG cWriteEntries, + ULONG cbEntryAlignment, + PCLFS_LSN plsnUndoNext, + PCLFS_LSN plsnPrevious, + ULONG cReserveRecords, + PLONGLONG rgcbReservation, + ULONG fFlags, + PCLFS_LSN plsn); + +CLFSUSER_API +NTSTATUS +ClfsAlignReservedLog( + PVOID pvMarshalContext, + ULONG cRecords, + LONGLONG rgcbReservation[], + PLONGLONG pcbAlignReservation); + +CLFSUSER_API +NTSTATUS +ClfsAllocReservedLog( + PVOID pvMarshalContext, + ULONG cRecords, + PLONGLONG pcbAdjustment); + +CLFSUSER_API +NTSTATUS +ClfsFreeReservedLog( + PVOID pvMarshalContext, + ULONG cRecords, + PLONGLONG pcbAdjustment); + +CLFSUSER_API +NTSTATUS +ClfsFlushBuffers( + PVOID pvMarshalContext); + +CLFSUSER_API +NTSTATUS +ClfsFlushToLsn( + PVOID pvMarshalContext, + PCLFS_LSN plsnFlush, + PCLFS_LSN plsnLastFlushed); + +CLFSUSER_API +NTSTATUS +ClfsReadLogRecord( + PVOID pvMarshalContext, + PCLFS_LSN plsnFirst, + CLFS_CONTEXT_MODE peContextMode, + PVOID* ppvReadBuffer, + PULONG pcbReadBuffer, + PCLFS_RECORD_TYPE peRecordType, + PCLFS_LSN plsnUndoNext, + PCLFS_LSN plsnPrevious, + PVOID* ppvReadContext); + +CLFSUSER_API +NTSTATUS +ClfsReadNextLogRecord( + PVOID pvReadContext, + PVOID* ppvBuffer, + PULONG pcbBuffer, + PCLFS_RECORD_TYPE peRecordType, + PCLFS_LSN plsnUser, + PCLFS_LSN plsnUndoNext, + PCLFS_LSN plsnPrevious, + PCLFS_LSN plsnRecord); + +CLFSUSER_API +NTSTATUS +ClfsTerminateReadLog( + PVOID pvCursorContext); + +CLFSUSER_API +NTSTATUS +ClfsGetLastLsn( + PLOG_FILE_OBJECT plfoLog, + PCLFS_LSN plsnLast); + +CLFSUSER_API +NTSTATUS +ClfsGetIoStatistics( + PLOG_FILE_OBJECT plfoLog, + PVOID pvStatsBuffer, + ULONG cbStatsBuffer, + CLFS_IOSTATS_CLASS eStatsClass, + PULONG pcbStatsWritten); + +CLFSUSER_API +CLFS_LSN +ClfsLaterLsn( + PCLFS_LSN plsn); + +CLFSUSER_API +CLFS_LSN +ClfsEarlierLsn( + PCLFS_LSN plsn); + +CLFSUSER_API +NTSTATUS +ClfsLsnDifference( + PCLFS_LSN plsnStart, + PCLFS_LSN plsnFinish, + ULONG cbContainer, + ULONG cbMaxBlock, + PLONGLONG pcbDifference); + +#endif + +#if NTDDI_VERSION >= NTDDI_VISTA + +CLFSUSER_API +BOOLEAN +ClfsValidTopLevelContext( + PIRP pirpTopLevelContext); + +CLFSUSER_API +NTSTATUS +ClfsQueryLogFileInformation( + PLOG_FILE_OBJECT plfoLog, + CLFS_LOG_INFORMATION_CLASS eInformationClass, + PVOID pinfoInputBuffer, + ULONG cbinfoInputBuffer, + PVOID pinfoBuffer, + PULONG pcbInfoBuffer); + +#endif + +#if NTDDI_VERSION >= NTDDI_WIN8 + +CLFSUSER_API +NTSTATUS +ClfsCreateMarshallingAreaEx( + PLOG_FILE_OBJECT plfoLog, + POOL_TYPE ePoolType, + PALLOCATE_FUNCTION pfnAllocBuffer, + PFREE_FUNCTION pfnFreeBuffer, + ULONG cbMarshallingBuffer, + ULONG cMaxWriteBuffers, + ULONG cMaxReadBuffers, + ULONG cAlignmentSize, + ULONGLONG fFlags, + PVOID* ppvMarshalContext); + +#endif + +#endif /* __CLFSPROC_H__ */ + #ifdef __cplusplus } #endif diff --git a/lib/libc/include/any-windows-any/ddstream.h b/lib/libc/include/any-windows-any/ddstream.h index cbd1ce4390..4e05d6d0dc 100644 --- a/lib/libc/include/any-windows-any/ddstream.h +++ b/lib/libc/include/any-windows-any/ddstream.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/ddstream.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/ddstream.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/devicetopology.h b/lib/libc/include/any-windows-any/devicetopology.h index 9780659f61..31eb8037d3 100644 --- a/lib/libc/include/any-windows-any/devicetopology.h +++ b/lib/libc/include/any-windows-any/devicetopology.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/devicetopology.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/devicetopology.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dimm.h b/lib/libc/include/any-windows-any/dimm.h index 9c148bcd0a..80b851c391 100644 --- a/lib/libc/include/any-windows-any/dimm.h +++ b/lib/libc/include/any-windows-any/dimm.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dimm.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dimm.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dinput.h b/lib/libc/include/any-windows-any/dinput.h index 57d06a82f8..4e2d510089 100644 --- a/lib/libc/include/any-windows-any/dinput.h +++ b/lib/libc/include/any-windows-any/dinput.h @@ -387,7 +387,7 @@ typedef struct DIDEVICEOBJECTINSTANCEA { WORD wUsage; DWORD dwDimension; WORD wExponent; - WORD wReserved; + WORD wReportId; #endif /* DIRECTINPUT_VERSION >= 0x0500 */ } DIDEVICEOBJECTINSTANCEA, *LPDIDEVICEOBJECTINSTANCEA; typedef const DIDEVICEOBJECTINSTANCEA *LPCDIDEVICEOBJECTINSTANCEA; @@ -408,7 +408,7 @@ typedef struct DIDEVICEOBJECTINSTANCEW { WORD wUsage; DWORD dwDimension; WORD wExponent; - WORD wReserved; + WORD wReportId; #endif /* DIRECTINPUT_VERSION >= 0x0500 */ } DIDEVICEOBJECTINSTANCEW, *LPDIDEVICEOBJECTINSTANCEW; typedef const DIDEVICEOBJECTINSTANCEW *LPCDIDEVICEOBJECTINSTANCEW; diff --git a/lib/libc/include/any-windows-any/dinputd.h b/lib/libc/include/any-windows-any/dinputd.h index 2934fc4038..8e0ceed512 100644 --- a/lib/libc/include/any-windows-any/dinputd.h +++ b/lib/libc/include/any-windows-any/dinputd.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dinputd.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dinputd.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/directmanipulation.h b/lib/libc/include/any-windows-any/directmanipulation.h index 9feb303040..a034f67639 100644 --- a/lib/libc/include/any-windows-any/directmanipulation.h +++ b/lib/libc/include/any-windows-any/directmanipulation.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/directmanipulation.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/directmanipulation.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dispex.h b/lib/libc/include/any-windows-any/dispex.h index 59ecfdaf1a..cf466b1097 100644 --- a/lib/libc/include/any-windows-any/dispex.h +++ b/lib/libc/include/any-windows-any/dispex.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dispex.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dispex.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dmodshow.h b/lib/libc/include/any-windows-any/dmodshow.h index d3370f14ae..0900fb7d56 100644 --- a/lib/libc/include/any-windows-any/dmodshow.h +++ b/lib/libc/include/any-windows-any/dmodshow.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dmodshow.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dmodshow.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/docobj.h b/lib/libc/include/any-windows-any/docobj.h index 7e12220144..8d9a318b47 100644 --- a/lib/libc/include/any-windows-any/docobj.h +++ b/lib/libc/include/any-windows-any/docobj.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/docobj.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/docobj.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/docobjectservice.h b/lib/libc/include/any-windows-any/docobjectservice.h index db841b271c..ba86e5514a 100644 --- a/lib/libc/include/any-windows-any/docobjectservice.h +++ b/lib/libc/include/any-windows-any/docobjectservice.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/docobjectservice.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/docobjectservice.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/documenttarget.h b/lib/libc/include/any-windows-any/documenttarget.h index 9f311afa82..df7db4161c 100644 --- a/lib/libc/include/any-windows-any/documenttarget.h +++ b/lib/libc/include/any-windows-any/documenttarget.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/documenttarget.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/documenttarget.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/downloadmgr.h b/lib/libc/include/any-windows-any/downloadmgr.h index 8e04a32dcc..5b26dc5948 100644 --- a/lib/libc/include/any-windows-any/downloadmgr.h +++ b/lib/libc/include/any-windows-any/downloadmgr.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/downloadmgr.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/downloadmgr.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/drmexternals.h b/lib/libc/include/any-windows-any/drmexternals.h index 39b4d5e512..67e412929c 100644 --- a/lib/libc/include/any-windows-any/drmexternals.h +++ b/lib/libc/include/any-windows-any/drmexternals.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/drmexternals.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/drmexternals.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dsound.h b/lib/libc/include/any-windows-any/dsound.h index a96c3d0b8f..58fb907e5f 100644 --- a/lib/libc/include/any-windows-any/dsound.h +++ b/lib/libc/include/any-windows-any/dsound.h @@ -83,13 +83,21 @@ typedef struct IDirectSoundBuffer8 *LPDIRECTSOUNDBUFFER8,**LPLPDIRECTSOUNDBUFFER DEFINE_GUID(IID_IDirectSoundNotify, 0xB0210783,0x89cd,0x11d0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16); typedef struct IDirectSoundNotify *LPDIRECTSOUNDNOTIFY,**LPLPDIRECTSOUNDNOTIFY; +#define IDirectSoundNotify8 IDirectSoundNotify +typedef struct IDirectSoundNotify8 *LPDIRECTSOUNDNOTIFY8; #define IID_IDirectSoundNotify8 IID_IDirectSoundNotify DEFINE_GUID(IID_IDirectSound3DListener, 0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); typedef struct IDirectSound3DListener *LPDIRECTSOUND3DLISTENER,**LPLPDIRECTSOUND3DLISTENER; +#define IDirectSound3DListener8 IDirectSound3DListener +typedef struct IDirectSound3DListener8 *LPDIRECTSOUND3DLISTENER8; +#define IID_IDirectSound3DListener8 IID_IDirectSound3DListener DEFINE_GUID(IID_IDirectSound3DBuffer, 0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); typedef struct IDirectSound3DBuffer *LPDIRECTSOUND3DBUFFER,**LPLPDIRECTSOUND3DBUFFER; +#define IDirectSound3DBuffer8 IDirectSound3DBuffer +typedef struct IDirectSound3DBuffer8 *LPDIRECTSOUND3DBUFFER8; +#define IID_IDirectSound3DBuffer8 IID_IDirectSound3DBuffer DEFINE_GUID(IID_IDirectSoundCapture, 0xB0210781,0x89CD,0x11D0,0xAF,0x08,0x00,0xA0,0xC9,0x25,0xCD,0x16); typedef struct IDirectSoundCapture *LPDIRECTSOUNDCAPTURE,**LPLPDIRECTSOUNDCAPTURE; @@ -104,6 +112,8 @@ typedef struct IDirectSoundCaptureBuffer8 *LPDIRECTSOUNDCAPTUREBUFFER8,**LPLPDIR DEFINE_GUID(IID_IDirectSoundFullDuplex, 0xEDCB4C7A,0xDAAB,0x4216,0xA4,0x2E,0x6C,0x50,0x59,0x6D,0xDC,0x1D); typedef struct IDirectSoundFullDuplex *LPDIRECTSOUNDFULLDUPLEX,**LPLPDIRECTSOUNDFULLDUPLEX; +#define IDirectSoundFullDuplex8 IDirectSoundFullDuplex +typedef struct IDirectSoundFullDuplex8 *LPDIRECTSOUNDFULLDUPLEX8; #define IID_IDirectSoundFullDuplex8 IID_IDirectSoundFullDuplex DEFINE_GUID(IID_IDirectSoundFXI3DL2Reverb, 0x4b166a6a, 0x0d66, 0x43f3, 0x80, 0xe3, 0xee, 0x62, 0x80, 0xde, 0xe1, 0xa4); @@ -1153,7 +1163,6 @@ DECLARE_INTERFACE_(IDirectSound3DListener,IUnknown) #define IDirectSound3DListener_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) #define IDirectSound3DListener_CommitDeferredSettings(p) (p)->CommitDeferredSettings() #endif -#define IDirectSound3DListener8 IDirectSound3DListener /***************************************************************************** * IDirectSound3DBuffer interface @@ -1251,7 +1260,6 @@ DECLARE_INTERFACE_(IDirectSound3DBuffer,IUnknown) #define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) (p)->SetPosition(a,b,c,d) #define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) (p)->SetVelocity(a,b,c,d) #endif -#define IDirectSound3DBuffer8 IDirectSound3DBuffer /***************************************************************************** * IKsPropertySet interface diff --git a/lib/libc/include/any-windows-any/dvdif.h b/lib/libc/include/any-windows-any/dvdif.h index 878f849c87..ebc6221b4f 100644 --- a/lib/libc/include/any-windows-any/dvdif.h +++ b/lib/libc/include/any-windows-any/dvdif.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dvdif.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dvdif.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dwrite.h b/lib/libc/include/any-windows-any/dwrite.h index a9b642b232..5f8ef03c13 100644 --- a/lib/libc/include/any-windows-any/dwrite.h +++ b/lib/libc/include/any-windows-any/dwrite.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dwrite.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dwrite.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dwrite_1.h b/lib/libc/include/any-windows-any/dwrite_1.h index 87ea22aca2..f832cd07d3 100644 --- a/lib/libc/include/any-windows-any/dwrite_1.h +++ b/lib/libc/include/any-windows-any/dwrite_1.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dwrite_1.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dwrite_1.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dwrite_2.h b/lib/libc/include/any-windows-any/dwrite_2.h index 985ced95e4..71edc6113d 100644 --- a/lib/libc/include/any-windows-any/dwrite_2.h +++ b/lib/libc/include/any-windows-any/dwrite_2.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dwrite_2.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dwrite_2.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dwrite_3.h b/lib/libc/include/any-windows-any/dwrite_3.h index 74f1beb173..41784f6075 100644 --- a/lib/libc/include/any-windows-any/dwrite_3.h +++ b/lib/libc/include/any-windows-any/dwrite_3.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dwrite_3.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dwrite_3.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -9311,16 +9311,21 @@ static FORCEINLINE WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWrit #endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ -typedef struct DWRITE_COLOR_GLYPH_RUN1 { +typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1; +struct DWRITE_COLOR_GLYPH_RUN1 +{ DWRITE_GLYPH_RUN glyphRun; DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; FLOAT baselineOriginX; FLOAT baselineOriginY; DWRITE_COLOR_F runColor; UINT16 paletteIndex; +#ifdef _WIN64 + UINT32 _pad; +#endif DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; DWRITE_MEASURING_MODE measuringMode; -} DWRITE_COLOR_GLYPH_RUN1; +}; /***************************************************************************** * IDWriteColorGlyphRunEnumerator1 interface */ diff --git a/lib/libc/include/any-windows-any/dxgi.h b/lib/libc/include/any-windows-any/dxgi.h index b0c20e073d..f1e518a392 100644 --- a/lib/libc/include/any-windows-any/dxgi.h +++ b/lib/libc/include/any-windows-any/dxgi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgi1_2.h b/lib/libc/include/any-windows-any/dxgi1_2.h index 225ebd24a0..006acb6db6 100644 --- a/lib/libc/include/any-windows-any/dxgi1_2.h +++ b/lib/libc/include/any-windows-any/dxgi1_2.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi1_2.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi1_2.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgi1_3.h b/lib/libc/include/any-windows-any/dxgi1_3.h index 3eb7bee318..5941574070 100644 --- a/lib/libc/include/any-windows-any/dxgi1_3.h +++ b/lib/libc/include/any-windows-any/dxgi1_3.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi1_3.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi1_3.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgi1_4.h b/lib/libc/include/any-windows-any/dxgi1_4.h index ceb1336977..07c5522b7a 100644 --- a/lib/libc/include/any-windows-any/dxgi1_4.h +++ b/lib/libc/include/any-windows-any/dxgi1_4.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi1_4.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi1_4.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgi1_5.h b/lib/libc/include/any-windows-any/dxgi1_5.h index d2eb1f00f6..feffb1b303 100644 --- a/lib/libc/include/any-windows-any/dxgi1_5.h +++ b/lib/libc/include/any-windows-any/dxgi1_5.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi1_5.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi1_5.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgi1_6.h b/lib/libc/include/any-windows-any/dxgi1_6.h index 7882797ad4..503e20dd2f 100644 --- a/lib/libc/include/any-windows-any/dxgi1_6.h +++ b/lib/libc/include/any-windows-any/dxgi1_6.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgi1_6.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgi1_6.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgicommon.h b/lib/libc/include/any-windows-any/dxgicommon.h index 4d00445a83..8e47cd77c6 100644 --- a/lib/libc/include/any-windows-any/dxgicommon.h +++ b/lib/libc/include/any-windows-any/dxgicommon.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgicommon.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgicommon.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgidebug.h b/lib/libc/include/any-windows-any/dxgidebug.h index 048e08c6fa..10482f5fb2 100644 --- a/lib/libc/include/any-windows-any/dxgidebug.h +++ b/lib/libc/include/any-windows-any/dxgidebug.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgidebug.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgidebug.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgiformat.h b/lib/libc/include/any-windows-any/dxgiformat.h index 6d3ea97f1b..4ad063de85 100644 --- a/lib/libc/include/any-windows-any/dxgiformat.h +++ b/lib/libc/include/any-windows-any/dxgiformat.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgiformat.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgiformat.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxgitype.h b/lib/libc/include/any-windows-any/dxgitype.h index 5e3232330e..0ef0eb0363 100644 --- a/lib/libc/include/any-windows-any/dxgitype.h +++ b/lib/libc/include/any-windows-any/dxgitype.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxgitype.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxgitype.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxva.h b/lib/libc/include/any-windows-any/dxva.h index 4f18f2e60d..b8505630d0 100644 --- a/lib/libc/include/any-windows-any/dxva.h +++ b/lib/libc/include/any-windows-any/dxva.h @@ -563,6 +563,275 @@ typedef struct _DXVA_Status_VPx USHORT wNumMbsAffected; } DXVA_Status_VPx, *LPDXVA_Status_VPx; + +#define _DIRECTX_AV1_VA_ + +/* AV1 decoder GUIDs */ +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8); + +/* AV1 picture entry data structure */ +typedef struct _DXVA_PicEntry_AV1 { + UINT width; + UINT height; + + INT wmmat[6]; + __C89_NAMELESS union { + __C89_NAMELESS struct { + UCHAR wminvalid : 1; + UCHAR wmtype : 2; + UCHAR Reserved : 5; + } __C89_NAMELESSSTRUCTNAME; + UCHAR GlobalMotionFlags; + } __C89_NAMELESSUNIONNAME; + UCHAR Index; + UINT16 Reserved16Bits; +} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1; + +/* AV1 picture parameters data structure */ +typedef struct _DXVA_PicParams_AV1 { + UINT width; + UINT height; + + UINT max_width; + UINT max_height; + + UCHAR CurrPicTextureIndex; + UCHAR superres_denom; + UCHAR bitdepth; + UCHAR seq_profile; + + struct { + UCHAR cols; + UCHAR rows; + USHORT context_update_id; + USHORT widths[64]; + USHORT heights[64]; + } tiles; + + union { + __C89_NAMELESS struct { + UINT use_128x128_superblock : 1; + UINT intra_edge_filter : 1; + UINT interintra_compound : 1; + UINT masked_compound : 1; + UINT warped_motion : 1; + UINT dual_filter : 1; + UINT jnt_comp : 1; + UINT screen_content_tools : 1; + UINT integer_mv : 1; + UINT cdef : 1; + UINT restoration : 1; + UINT film_grain : 1; + UINT intrabc : 1; + UINT high_precision_mv : 1; + UINT switchable_motion_mode : 1; + UINT filter_intra : 1; + UINT disable_frame_end_update_cdf : 1; + UINT disable_cdf_update : 1; + UINT reference_mode : 1; + UINT skip_mode : 1; + UINT reduced_tx_set : 1; + UINT superres : 1; + UINT tx_mode : 2; + UINT use_ref_frame_mvs : 1; + UINT enable_ref_frame_mvs : 1; + UINT reference_frame_update : 1; + UINT Reserved : 5; + } __C89_NAMELESSSTRUCTNAME; + UINT32 CodingParamToolFlags; + } coding; + + union { + __C89_NAMELESS struct { + UCHAR frame_type : 2; + UCHAR show_frame : 1; + UCHAR showable_frame : 1; + UCHAR subsampling_x : 1; + UCHAR subsampling_y : 1; + UCHAR mono_chrome : 1; + UCHAR Reserved : 1; + } __C89_NAMELESSSTRUCTNAME; + UCHAR FormatAndPictureInfoFlags; + } format; + + UCHAR primary_ref_frame; + UCHAR order_hint; + UCHAR order_hint_bits; + + DXVA_PicEntry_AV1 frame_refs[7]; + UCHAR RefFrameMapTextureIndex[8]; + + struct { + UCHAR filter_level[2]; + UCHAR filter_level_u; + UCHAR filter_level_v; + + UCHAR sharpness_level; + __C89_NAMELESS union { + __C89_NAMELESS struct { + UCHAR mode_ref_delta_enabled : 1; + UCHAR mode_ref_delta_update : 1; + UCHAR delta_lf_multi : 1; + UCHAR delta_lf_present : 1; + UCHAR Reserved : 4; + } __C89_NAMELESSSTRUCTNAME; + UCHAR ControlFlags; + } __C89_NAMELESSUNIONNAME; + CHAR ref_deltas[8]; + CHAR mode_deltas[2]; + UCHAR delta_lf_res; + UCHAR frame_restoration_type[3]; + USHORT log2_restoration_unit_size[3]; + UINT16 Reserved16Bits; + } loop_filter; + + struct { + __C89_NAMELESS union { + __C89_NAMELESS struct { + UCHAR delta_q_present : 1; + UCHAR delta_q_res : 2; + UCHAR Reserved : 5; + } __C89_NAMELESSSTRUCTNAME; + UCHAR ControlFlags; + } __C89_NAMELESSUNIONNAME; + + UCHAR base_qindex; + CHAR y_dc_delta_q; + CHAR u_dc_delta_q; + CHAR v_dc_delta_q; + CHAR u_ac_delta_q; + CHAR v_ac_delta_q; + UCHAR qm_y; + UCHAR qm_u; + UCHAR qm_v; + UINT16 Reserved16Bits; + } quantization; + + struct { + __C89_NAMELESS union { + __C89_NAMELESS struct { + UCHAR damping : 2; + UCHAR bits : 2; + UCHAR Reserved : 4; + } __C89_NAMELESSSTRUCTNAME; + UCHAR ControlFlags; + } __C89_NAMELESSUNIONNAME; + + union { + __C89_NAMELESS struct { + UCHAR primary : 6; + UCHAR secondary : 2; + } __C89_NAMELESSSTRUCTNAME; + UCHAR combined; + } y_strengths[8]; + + union { + __C89_NAMELESS struct { + UCHAR primary : 6; + UCHAR secondary : 2; + } __C89_NAMELESSSTRUCTNAME; + UCHAR combined; + } uv_strengths[8]; + + } cdef; + + UCHAR interp_filter; + + struct { + __C89_NAMELESS union { + __C89_NAMELESS struct { + UCHAR enabled : 1; + UCHAR update_map : 1; + UCHAR update_data : 1; + UCHAR temporal_update : 1; + UCHAR Reserved : 4; + } __C89_NAMELESSSTRUCTNAME; + UCHAR ControlFlags; + } __C89_NAMELESSUNIONNAME; + UCHAR Reserved24Bits[3]; + + union { + __C89_NAMELESS struct { + UCHAR alt_q : 1; + UCHAR alt_lf_y_v : 1; + UCHAR alt_lf_y_h : 1; + UCHAR alt_lf_u : 1; + UCHAR alt_lf_v : 1; + UCHAR ref_frame : 1; + UCHAR skip : 1; + UCHAR globalmv : 1; + } __C89_NAMELESSSTRUCTNAME; + UCHAR mask; + } feature_mask[8]; + + SHORT feature_data[8][8]; + + } segmentation; + + struct { + __C89_NAMELESS union { + __C89_NAMELESS struct { + USHORT apply_grain : 1; + USHORT scaling_shift_minus8 : 2; + USHORT chroma_scaling_from_luma : 1; + USHORT ar_coeff_lag : 2; + USHORT ar_coeff_shift_minus6 : 2; + USHORT grain_scale_shift : 2; + USHORT overlap_flag : 1; + USHORT clip_to_restricted_range : 1; + USHORT matrix_coeff_is_identity : 1; + USHORT Reserved : 3; + } __C89_NAMELESSSTRUCTNAME; + USHORT ControlFlags; + } __C89_NAMELESSUNIONNAME; + + USHORT grain_seed; + UCHAR scaling_points_y[14][2]; + UCHAR num_y_points; + UCHAR scaling_points_cb[10][2]; + UCHAR num_cb_points; + UCHAR scaling_points_cr[10][2]; + UCHAR num_cr_points; + UCHAR ar_coeffs_y[24]; + UCHAR ar_coeffs_cb[25]; + UCHAR ar_coeffs_cr[25]; + UCHAR cb_mult; + UCHAR cb_luma_mult; + UCHAR cr_mult; + UCHAR cr_luma_mult; + UCHAR Reserved8Bits; + SHORT cb_offset; + SHORT cr_offset; + } film_grain; + + UINT Reserved32Bits; + UINT StatusReportFeedbackNumber; +} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1; + +/* AV1 tile data structure */ +typedef struct _DXVA_Tile_AV1 { + UINT DataOffset; + UINT DataSize; + USHORT row; + USHORT column; + UINT16 Reserved16Bits; + UCHAR anchor_frame; + UCHAR Reserved8Bits; +} DXVA_Tile_AV1, *LPDXVA_Tile_AV1; + +typedef struct _DXVA_Status_AV1 { + UINT StatusReportFeedbackNumber; + DXVA_PicEntry_AV1 CurrPic; + UCHAR BufType; + UCHAR Status; + UCHAR Reserved8Bits; + USHORT NumMbsAffected; +} DXVA_Status_AV1, *LPDXVA_Status_AV1; + #include <poppack.h> typedef enum _DXVA_VideoChromaSubsampling diff --git a/lib/libc/include/any-windows-any/dxva2api.h b/lib/libc/include/any-windows-any/dxva2api.h index d938bed4fc..54a077a1be 100644 --- a/lib/libc/include/any-windows-any/dxva2api.h +++ b/lib/libc/include/any-windows-any/dxva2api.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxva2api.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxva2api.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/dxvahd.h b/lib/libc/include/any-windows-any/dxvahd.h index 210af9e585..71b0278630 100644 --- a/lib/libc/include/any-windows-any/dxvahd.h +++ b/lib/libc/include/any-windows-any/dxvahd.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/dxvahd.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/dxvahd.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -405,19 +405,16 @@ typedef struct _DXVAHDSW_CALLBACKS { HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice); -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif /***************************************************************************** * IDXVAHD_Device interface */ #ifndef __IDXVAHD_Device_INTERFACE_DEFINED__ #define __IDXVAHD_Device_INTERFACE_DEFINED__ +DEFINE_GUID(IID_IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d); #if defined(__cplusplus) && !defined(CINTERFACE) -interface IDXVAHD_Device : public IUnknown +MIDL_INTERFACE("95f12dfd-d77e-49be-815f-57d579634d6d") +IDXVAHD_Device : public IUnknown { virtual HRESULT STDMETHODCALLTYPE CreateVideoSurface( UINT Width, @@ -459,6 +456,9 @@ interface IDXVAHD_Device : public IUnknown IDXVAHD_VideoProcessor **ppVideoProcessor) = 0; }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d) +#endif #else typedef struct IDXVAHD_DeviceVtbl { BEGIN_INTERFACE @@ -589,19 +589,16 @@ static FORCEINLINE HRESULT IDXVAHD_Device_CreateVideoProcessor(IDXVAHD_Device* T #endif /* __IDXVAHD_Device_INTERFACE_DEFINED__ */ -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif /***************************************************************************** * IDXVAHD_VideoProcessor interface */ #ifndef __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ #define __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ +DEFINE_GUID(IID_IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52); #if defined(__cplusplus) && !defined(CINTERFACE) -interface IDXVAHD_VideoProcessor : public IUnknown +MIDL_INTERFACE("95f4edf4-6e03-4cd7-be1b-3075d665aa52") +IDXVAHD_VideoProcessor : public IUnknown { virtual HRESULT STDMETHODCALLTYPE SetVideoProcessBltState( DXVAHD_BLT_STATE State, @@ -632,6 +629,9 @@ interface IDXVAHD_VideoProcessor : public IUnknown const DXVAHD_STREAM_DATA *pStreams) = 0; }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52) +#endif #else typedef struct IDXVAHD_VideoProcessorVtbl { BEGIN_INTERFACE diff --git a/lib/libc/include/any-windows-any/endpointvolume.h b/lib/libc/include/any-windows-any/endpointvolume.h index 19e8e8255b..a9674d67ce 100644 --- a/lib/libc/include/any-windows-any/endpointvolume.h +++ b/lib/libc/include/any-windows-any/endpointvolume.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/endpointvolume.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/endpointvolume.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/eventtoken.h b/lib/libc/include/any-windows-any/eventtoken.h index 51541c03fc..4e4b80d3b6 100644 --- a/lib/libc/include/any-windows-any/eventtoken.h +++ b/lib/libc/include/any-windows-any/eventtoken.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/eventtoken.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/eventtoken.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/evr.h b/lib/libc/include/any-windows-any/evr.h index 23299edef1..06b01e8b79 100644 --- a/lib/libc/include/any-windows-any/evr.h +++ b/lib/libc/include/any-windows-any/evr.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/evr.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/evr.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/evr9.h b/lib/libc/include/any-windows-any/evr9.h index d21366d85b..bdbb526d41 100644 --- a/lib/libc/include/any-windows-any/evr9.h +++ b/lib/libc/include/any-windows-any/evr9.h @@ -1,29 +1,404 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_EVR9 -#define _INC_EVR9 +/*** Autogenerated by WIDL 7.0 from include/evr9.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __evr9_h__ +#define __evr9_h__ + +/* Forward declarations */ + +#ifndef __IMFVideoMixerBitmap_FWD_DEFINED__ +#define __IMFVideoMixerBitmap_FWD_DEFINED__ +typedef interface IMFVideoMixerBitmap IMFVideoMixerBitmap; +#ifdef __cplusplus +interface IMFVideoMixerBitmap; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoProcessor_FWD_DEFINED__ +#define __IMFVideoProcessor_FWD_DEFINED__ +typedef interface IMFVideoProcessor IMFVideoProcessor; +#ifdef __cplusplus +interface IMFVideoProcessor; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ -#if (_WIN32_WINNT >= 0x0600) +#include <unknwn.h> +#include <evr.h> +#include <dxva2api.h> #ifdef __cplusplus extern "C" { #endif -typedef enum _evr9_tag_MFVideoAlphaBitmapFlags { - MFVideoAlphaBitmap_EntireDDS = 0x00000001, - MFVideoAlphaBitmap_SrcColorKey = 0x00000002, - MFVideoAlphaBitmap_SrcRect = 0x00000004, - MFVideoAlphaBitmap_DestRect = 0x00000008, - MFVideoAlphaBitmap_FilterMode = 0x00000010, - MFVideoAlphaBitmap_Alpha = 0x00000020, - MFVideoAlphaBitmap_BitMask = 0x0000003f +typedef struct MFVideoAlphaBitmapParams { + DWORD dwFlags; + COLORREF clrSrcKey; + RECT rcSrc; + MFVideoNormalizedRect nrcDest; + FLOAT fAlpha; + DWORD dwFilterMode; +} MFVideoAlphaBitmapParams; +typedef struct MFVideoAlphaBitmap { + WINBOOL GetBitmapFromDC; + union { + HDC hdc; + IDirect3DSurface9 *pDDS; + } bitmap; + MFVideoAlphaBitmapParams params; +} MFVideoAlphaBitmap; +typedef enum __WIDL_evr9_generated_name_00000030 { + MFVideoAlphaBitmap_EntireDDS = 0x1, + MFVideoAlphaBitmap_SrcColorKey = 0x2, + MFVideoAlphaBitmap_SrcRect = 0x4, + MFVideoAlphaBitmap_DestRect = 0x8, + MFVideoAlphaBitmap_FilterMode = 0x10, + MFVideoAlphaBitmap_Alpha = 0x20, + MFVideoAlphaBitmap_BitMask = 0x3f } MFVideoAlphaBitmapFlags; +/***************************************************************************** + * IMFVideoMixerBitmap interface + */ +#ifndef __IMFVideoMixerBitmap_INTERFACE_DEFINED__ +#define __IMFVideoMixerBitmap_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoMixerBitmap, 0x814c7b20, 0x0fdb, 0x4eec, 0xaf,0x8f, 0xf9,0x57,0xc8,0xf6,0x9e,0xdc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("814c7b20-0fdb-4eec-af8f-f957c8f69edc") +IMFVideoMixerBitmap : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap( + const MFVideoAlphaBitmap *bitmap) = 0; + + virtual HRESULT STDMETHODCALLTYPE ClearAlphaBitmap( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters( + const MFVideoAlphaBitmapParams *params) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters( + MFVideoAlphaBitmapParams *params) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoMixerBitmap, 0x814c7b20, 0x0fdb, 0x4eec, 0xaf,0x8f, 0xf9,0x57,0xc8,0xf6,0x9e,0xdc) +#endif +#else +typedef struct IMFVideoMixerBitmapVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoMixerBitmap *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoMixerBitmap *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoMixerBitmap *This); + + /*** IMFVideoMixerBitmap methods ***/ + HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)( + IMFVideoMixerBitmap *This, + const MFVideoAlphaBitmap *bitmap); + + HRESULT (STDMETHODCALLTYPE *ClearAlphaBitmap)( + IMFVideoMixerBitmap *This); + + HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)( + IMFVideoMixerBitmap *This, + const MFVideoAlphaBitmapParams *params); + + HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)( + IMFVideoMixerBitmap *This, + MFVideoAlphaBitmapParams *params); + + END_INTERFACE +} IMFVideoMixerBitmapVtbl; + +interface IMFVideoMixerBitmap { + CONST_VTBL IMFVideoMixerBitmapVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoMixerBitmap_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoMixerBitmap methods ***/ +#define IMFVideoMixerBitmap_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap) +#define IMFVideoMixerBitmap_ClearAlphaBitmap(This) (This)->lpVtbl->ClearAlphaBitmap(This) +#define IMFVideoMixerBitmap_UpdateAlphaBitmapParameters(This,params) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,params) +#define IMFVideoMixerBitmap_GetAlphaBitmapParameters(This,params) (This)->lpVtbl->GetAlphaBitmapParameters(This,params) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerBitmap_QueryInterface(IMFVideoMixerBitmap* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoMixerBitmap_AddRef(IMFVideoMixerBitmap* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoMixerBitmap_Release(IMFVideoMixerBitmap* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoMixerBitmap methods ***/ +static FORCEINLINE HRESULT IMFVideoMixerBitmap_SetAlphaBitmap(IMFVideoMixerBitmap* This,const MFVideoAlphaBitmap *bitmap) { + return This->lpVtbl->SetAlphaBitmap(This,bitmap); +} +static FORCEINLINE HRESULT IMFVideoMixerBitmap_ClearAlphaBitmap(IMFVideoMixerBitmap* This) { + return This->lpVtbl->ClearAlphaBitmap(This); +} +static FORCEINLINE HRESULT IMFVideoMixerBitmap_UpdateAlphaBitmapParameters(IMFVideoMixerBitmap* This,const MFVideoAlphaBitmapParams *params) { + return This->lpVtbl->UpdateAlphaBitmapParameters(This,params); +} +static FORCEINLINE HRESULT IMFVideoMixerBitmap_GetAlphaBitmapParameters(IMFVideoMixerBitmap* This,MFVideoAlphaBitmapParams *params) { + return This->lpVtbl->GetAlphaBitmapParameters(This,params); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoMixerBitmap_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFVideoProcessor interface + */ +#ifndef __IMFVideoProcessor_INTERFACE_DEFINED__ +#define __IMFVideoProcessor_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoProcessor, 0x6ab0000c, 0xfece, 0x4d1f, 0xa2,0xac, 0xa9,0x57,0x35,0x30,0x65,0x6e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6ab0000c-fece-4d1f-a2ac-a9573530656e") +IMFVideoProcessor : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoProcessorModes( + UINT *count, + GUID **modes) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps( + GUID *mode, + DXVA2_VideoProcessorCaps *caps) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorMode( + GUID *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVideoProcessorMode( + GUID *mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange( + DWORD prop, + DXVA2_ValueRange *range) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProcAmpValues( + DWORD flags, + DXVA2_ProcAmpValues *values) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProcAmpValues( + DWORD flags, + DXVA2_ProcAmpValues *values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteringRange( + DWORD prop, + DXVA2_ValueRange *range) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteringValue( + DWORD prop, + DXVA2_Fixed32 *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFilteringValue( + DWORD prop, + DXVA2_Fixed32 *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor( + COLORREF *color) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor( + COLORREF color) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoProcessor, 0x6ab0000c, 0xfece, 0x4d1f, 0xa2,0xac, 0xa9,0x57,0x35,0x30,0x65,0x6e) +#endif +#else +typedef struct IMFVideoProcessorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoProcessor *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoProcessor *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoProcessor *This); + + /*** IMFVideoProcessor methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAvailableVideoProcessorModes)( + IMFVideoProcessor *This, + UINT *count, + GUID **modes); + + HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)( + IMFVideoProcessor *This, + GUID *mode, + DXVA2_VideoProcessorCaps *caps); + + HRESULT (STDMETHODCALLTYPE *GetVideoProcessorMode)( + IMFVideoProcessor *This, + GUID *mode); + + HRESULT (STDMETHODCALLTYPE *SetVideoProcessorMode)( + IMFVideoProcessor *This, + GUID *mode); + + HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)( + IMFVideoProcessor *This, + DWORD prop, + DXVA2_ValueRange *range); + + HRESULT (STDMETHODCALLTYPE *GetProcAmpValues)( + IMFVideoProcessor *This, + DWORD flags, + DXVA2_ProcAmpValues *values); + + HRESULT (STDMETHODCALLTYPE *SetProcAmpValues)( + IMFVideoProcessor *This, + DWORD flags, + DXVA2_ProcAmpValues *values); + + HRESULT (STDMETHODCALLTYPE *GetFilteringRange)( + IMFVideoProcessor *This, + DWORD prop, + DXVA2_ValueRange *range); + + HRESULT (STDMETHODCALLTYPE *GetFilteringValue)( + IMFVideoProcessor *This, + DWORD prop, + DXVA2_Fixed32 *value); + + HRESULT (STDMETHODCALLTYPE *SetFilteringValue)( + IMFVideoProcessor *This, + DWORD prop, + DXVA2_Fixed32 *value); + + HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)( + IMFVideoProcessor *This, + COLORREF *color); + + HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)( + IMFVideoProcessor *This, + COLORREF color); + + END_INTERFACE +} IMFVideoProcessorVtbl; + +interface IMFVideoProcessor { + CONST_VTBL IMFVideoProcessorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoProcessor_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoProcessor methods ***/ +#define IMFVideoProcessor_GetAvailableVideoProcessorModes(This,count,modes) (This)->lpVtbl->GetAvailableVideoProcessorModes(This,count,modes) +#define IMFVideoProcessor_GetVideoProcessorCaps(This,mode,caps) (This)->lpVtbl->GetVideoProcessorCaps(This,mode,caps) +#define IMFVideoProcessor_GetVideoProcessorMode(This,mode) (This)->lpVtbl->GetVideoProcessorMode(This,mode) +#define IMFVideoProcessor_SetVideoProcessorMode(This,mode) (This)->lpVtbl->SetVideoProcessorMode(This,mode) +#define IMFVideoProcessor_GetProcAmpRange(This,prop,range) (This)->lpVtbl->GetProcAmpRange(This,prop,range) +#define IMFVideoProcessor_GetProcAmpValues(This,flags,values) (This)->lpVtbl->GetProcAmpValues(This,flags,values) +#define IMFVideoProcessor_SetProcAmpValues(This,flags,values) (This)->lpVtbl->SetProcAmpValues(This,flags,values) +#define IMFVideoProcessor_GetFilteringRange(This,prop,range) (This)->lpVtbl->GetFilteringRange(This,prop,range) +#define IMFVideoProcessor_GetFilteringValue(This,prop,value) (This)->lpVtbl->GetFilteringValue(This,prop,value) +#define IMFVideoProcessor_SetFilteringValue(This,prop,value) (This)->lpVtbl->SetFilteringValue(This,prop,value) +#define IMFVideoProcessor_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color) +#define IMFVideoProcessor_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessor_QueryInterface(IMFVideoProcessor* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoProcessor_AddRef(IMFVideoProcessor* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoProcessor_Release(IMFVideoProcessor* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoProcessor methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessor_GetAvailableVideoProcessorModes(IMFVideoProcessor* This,UINT *count,GUID **modes) { + return This->lpVtbl->GetAvailableVideoProcessorModes(This,count,modes); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetVideoProcessorCaps(IMFVideoProcessor* This,GUID *mode,DXVA2_VideoProcessorCaps *caps) { + return This->lpVtbl->GetVideoProcessorCaps(This,mode,caps); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetVideoProcessorMode(IMFVideoProcessor* This,GUID *mode) { + return This->lpVtbl->GetVideoProcessorMode(This,mode); +} +static FORCEINLINE HRESULT IMFVideoProcessor_SetVideoProcessorMode(IMFVideoProcessor* This,GUID *mode) { + return This->lpVtbl->SetVideoProcessorMode(This,mode); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetProcAmpRange(IMFVideoProcessor* This,DWORD prop,DXVA2_ValueRange *range) { + return This->lpVtbl->GetProcAmpRange(This,prop,range); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetProcAmpValues(IMFVideoProcessor* This,DWORD flags,DXVA2_ProcAmpValues *values) { + return This->lpVtbl->GetProcAmpValues(This,flags,values); +} +static FORCEINLINE HRESULT IMFVideoProcessor_SetProcAmpValues(IMFVideoProcessor* This,DWORD flags,DXVA2_ProcAmpValues *values) { + return This->lpVtbl->SetProcAmpValues(This,flags,values); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetFilteringRange(IMFVideoProcessor* This,DWORD prop,DXVA2_ValueRange *range) { + return This->lpVtbl->GetFilteringRange(This,prop,range); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetFilteringValue(IMFVideoProcessor* This,DWORD prop,DXVA2_Fixed32 *value) { + return This->lpVtbl->GetFilteringValue(This,prop,value); +} +static FORCEINLINE HRESULT IMFVideoProcessor_SetFilteringValue(IMFVideoProcessor* This,DWORD prop,DXVA2_Fixed32 *value) { + return This->lpVtbl->SetFilteringValue(This,prop,value); +} +static FORCEINLINE HRESULT IMFVideoProcessor_GetBackgroundColor(IMFVideoProcessor* This,COLORREF *color) { + return This->lpVtbl->GetBackgroundColor(This,color); +} +static FORCEINLINE HRESULT IMFVideoProcessor_SetBackgroundColor(IMFVideoProcessor* This,COLORREF color) { + return This->lpVtbl->SetBackgroundColor(This,color); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoProcessor_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ #ifdef __cplusplus } #endif -#endif /*(_WIN32_WINNT >= 0x0600)*/ -#endif /*_INC_EVR9*/ + +#endif /* __evr9_h__ */ diff --git a/lib/libc/include/any-windows-any/exdisp.h b/lib/libc/include/any-windows-any/exdisp.h index 5648c412a8..2919eb7f02 100644 --- a/lib/libc/include/any-windows-any/exdisp.h +++ b/lib/libc/include/any-windows-any/exdisp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/exdisp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/exdisp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/filter.h b/lib/libc/include/any-windows-any/filter.h index aa824d3ba1..97d91a9bec 100644 --- a/lib/libc/include/any-windows-any/filter.h +++ b/lib/libc/include/any-windows-any/filter.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/filter.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/filter.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/float.h b/lib/libc/include/any-windows-any/float.h index ac534a49a1..da8717b836 100644 --- a/lib/libc/include/any-windows-any/float.h +++ b/lib/libc/include/any-windows-any/float.h @@ -245,7 +245,7 @@ #define _CW_DEFAULT (_RC_NEAR+_PC_53+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL) #elif defined(__ia64__) #define _CW_DEFAULT (_RC_NEAR+_PC_64+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL) -#elif defined(__x86_64__) +#elif defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) #define _CW_DEFAULT (_RC_NEAR+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL) #endif diff --git a/lib/libc/include/any-windows-any/fontsub.h b/lib/libc/include/any-windows-any/fontsub.h new file mode 100644 index 0000000000..aa83f034fc --- /dev/null +++ b/lib/libc/include/any-windows-any/fontsub.h @@ -0,0 +1,64 @@ +/* + * Copyright 2016 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_FONTSUB_H +#define __WINE_FONTSUB_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *(__cdecl *CFP_ALLOCPROC)(size_t); +typedef void *(__cdecl *CFP_REALLOCPROC)(void *, size_t); +typedef void (__cdecl *CFP_FREEPROC)(void *); + +#define TTFCFP_SUBSET 0 +#define TTFCFP_SUBSET1 1 +#define TTFCFP_DELTA 2 + +#define TTFCFP_UNICODE_PLATFORMID 0 +#define TTFCFP_APPLE_PLATFORMID 1 +#define TTFCFP_ISO_PLATFORMID 2 +#define TTFCFP_MS_PLATFORMID 3 + +#define TTFCFP_STD_MAC_CHAR_SET 0 +#define TTFCFP_SYMBOL_CHAR_SET 0 +#define TTFCFP_UNICODE_CHAR_SET 1 +#define TTFCFP_DONT_CARE 0xffff + +#define TTFCFP_LANG_KEEP_ALL 0 + +#define TTFCFP_FLAGS_SUBSET 0x0001 +#define TTFCFP_FLAGS_COMPRESS 0x0002 +#define TTFCFP_FLAGS_TTC 0x0004 +#define TTFCFP_FLAGS_GLYPHLIST 0x0008 + +#define ERR_GENERIC 1000 +#define ERR_MEM 1005 + +ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, unsigned char **dest, + ULONG *dest_len, ULONG *written, const unsigned short flags, const unsigned short face_index, + const unsigned short format, const unsigned short lang, const unsigned short platform, + const unsigned short encoding, const unsigned short *keep_list, const unsigned short keep_len, + CFP_ALLOCPROC allocproc, CFP_REALLOCPROC reallocproc, CFP_FREEPROC freeproc, void *reserved); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/libc/include/any-windows-any/fsrm.h b/lib/libc/include/any-windows-any/fsrm.h index 3403a46f25..91dd343bd1 100644 --- a/lib/libc/include/any-windows-any/fsrm.h +++ b/lib/libc/include/any-windows-any/fsrm.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fsrm.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fsrm.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fsrmenums.h b/lib/libc/include/any-windows-any/fsrmenums.h index 767a461925..8f56a0c99e 100644 --- a/lib/libc/include/any-windows-any/fsrmenums.h +++ b/lib/libc/include/any-windows-any/fsrmenums.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fsrmenums.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fsrmenums.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fsrmquota.h b/lib/libc/include/any-windows-any/fsrmquota.h index fa6ac0557d..e415b41560 100644 --- a/lib/libc/include/any-windows-any/fsrmquota.h +++ b/lib/libc/include/any-windows-any/fsrmquota.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fsrmquota.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fsrmquota.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fsrmreports.h b/lib/libc/include/any-windows-any/fsrmreports.h index 7f2c1b6840..e0334695a6 100644 --- a/lib/libc/include/any-windows-any/fsrmreports.h +++ b/lib/libc/include/any-windows-any/fsrmreports.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fsrmreports.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fsrmreports.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fsrmscreen.h b/lib/libc/include/any-windows-any/fsrmscreen.h index db1aed2f1e..be45fa6f2d 100644 --- a/lib/libc/include/any-windows-any/fsrmscreen.h +++ b/lib/libc/include/any-windows-any/fsrmscreen.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fsrmscreen.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fsrmscreen.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fusion.h b/lib/libc/include/any-windows-any/fusion.h index 7679af4b49..a81ae32af1 100644 --- a/lib/libc/include/any-windows-any/fusion.h +++ b/lib/libc/include/any-windows-any/fusion.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fusion.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fusion.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/fwptypes.h b/lib/libc/include/any-windows-any/fwptypes.h index c778e2a2a9..c3b1f4e119 100644 --- a/lib/libc/include/any-windows-any/fwptypes.h +++ b/lib/libc/include/any-windows-any/fwptypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/fwptypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/fwptypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/hstring.h b/lib/libc/include/any-windows-any/hstring.h index 926f5926e6..cfbe786313 100644 --- a/lib/libc/include/any-windows-any/hstring.h +++ b/lib/libc/include/any-windows-any/hstring.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/hstring.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/hstring.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/httpext.h b/lib/libc/include/any-windows-any/httpext.h index baf3148b88..8209709974 100644 --- a/lib/libc/include/any-windows-any/httpext.h +++ b/lib/libc/include/any-windows-any/httpext.h @@ -6,6 +6,10 @@ #ifndef _HTTPEXT_H_ #define _HTTPEXT_H_ +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + #include <windows.h> #ifdef __cplusplus @@ -60,6 +64,14 @@ extern "C" { #define HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK (HSE_REQ_END_RESERVED+40) #define HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN (HSE_REQ_END_RESERVED+41) #define HSE_REQ_GET_TRACE_INFO (HSE_REQ_END_RESERVED+42) +#define HSE_REQ_SET_FLUSH_FLAG (HSE_REQ_END_RESERVED+43) +#define HSE_REQ_GET_TRACE_INFO_EX (HSE_REQ_END_RESERVED+44) +#define HSE_REQ_RAISE_TRACE_EVENT (HSE_REQ_END_RESERVED+45) +#define HSE_REQ_GET_CONFIG_OBJECT (HSE_REQ_END_RESERVED+46) +#define HSE_REQ_GET_WORKER_PROCESS_SETTINGS (HSE_REQ_END_RESERVED+47) +#define HSE_REQ_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK (HSE_REQ_END_RESERVED+48) +#define HSE_REQ_CANCEL_IO (HSE_REQ_END_RESERVED+49) +#define HSE_REQ_GET_CHANNEL_BINDING_TOKEN (HSE_REQ_END_RESERVED+50) #define HSE_TERM_ADVISORY_UNLOAD 0x00000001 #define HSE_TERM_MUST_UNLOAD 0x00000002 @@ -72,6 +84,7 @@ extern "C" { #define HSE_IO_FINAL_SEND 0x00000010 #define HSE_IO_CACHE_RESPONSE 0x00000020 +#define HSE_IO_TRY_SKIP_CUSTOM_ERRORS 0x00000040 typedef LPVOID HCONN; @@ -159,6 +172,7 @@ extern "C" { #define HSE_EXEC_URL_IGNORE_VALIDATION_AND_RANGE 0x10 #define HSE_EXEC_URL_DISABLE_CUSTOM_ERROR 0x20 #define HSE_EXEC_URL_SSI_CMD 0x40 +#define HSE_EXEC_URL_HTTP_CACHE_ELIGIBLE 0x80 typedef struct _HSE_EXEC_URL_USER_INFO { HANDLE hImpersonationToken; @@ -242,6 +256,8 @@ extern "C" { DWORD dwReserved2; } HSE_TRACE_INFO,*LPHSE_TRACE_INFO; + typedef HRESULT (WINAPI *PFN_HSE_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK)(LPCWSTR pszProtocolManagerDll, LPCWSTR pszProtocolManagerDllInitFunction, DWORD dwCustomInterfaceId, PVOID *ppCustomInterface ); + #define HSE_APP_FLAG_IN_PROCESS 0 #define HSE_APP_FLAG_ISOLATED_OOP 1 #define HSE_APP_FLAG_POOLED_OOP 2 @@ -257,4 +273,7 @@ extern "C" { #ifdef __cplusplus } #endif -#endif + +#endif /* WINAPI_PARTITION_DESKTOP */ + +#endif /* _HTTPEXT_H_ */ diff --git a/lib/libc/include/any-windows-any/icftypes.h b/lib/libc/include/any-windows-any/icftypes.h index 32ecc1f53a..6794255eb4 100644 --- a/lib/libc/include/any-windows-any/icftypes.h +++ b/lib/libc/include/any-windows-any/icftypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/icftypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/icftypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/icodecapi.h b/lib/libc/include/any-windows-any/icodecapi.h index bb72a85fb9..280ea62148 100644 --- a/lib/libc/include/any-windows-any/icodecapi.h +++ b/lib/libc/include/any-windows-any/icodecapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/icodecapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/icodecapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/iketypes.h b/lib/libc/include/any-windows-any/iketypes.h index 6f6a7cb549..634501e5d3 100644 --- a/lib/libc/include/any-windows-any/iketypes.h +++ b/lib/libc/include/any-windows-any/iketypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/iketypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/iketypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/inputscope.h b/lib/libc/include/any-windows-any/inputscope.h index 4b71a0598f..d6a3bf563c 100644 --- a/lib/libc/include/any-windows-any/inputscope.h +++ b/lib/libc/include/any-windows-any/inputscope.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/inputscope.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/inputscope.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/inspectable.h b/lib/libc/include/any-windows-any/inspectable.h index 9844c961f2..03b21d160e 100644 --- a/lib/libc/include/any-windows-any/inspectable.h +++ b/lib/libc/include/any-windows-any/inspectable.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/inspectable.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/inspectable.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/intrin.h b/lib/libc/include/any-windows-any/intrin.h index bdabaea301..fbfee5fdc1 100644 --- a/lib/libc/include/any-windows-any/intrin.h +++ b/lib/libc/include/any-windows-any/intrin.h @@ -67,6 +67,10 @@ extern "C" { #endif #include <x86intrin.h> +#include <cpuid.h> + +/* Undefine the GCC one taking 5 parameters to prefer the mingw-w64 one. */ +#undef __cpuid /* Before 4.9.2, x86intrin.h had broken versions of these. */ #undef _lrotl diff --git a/lib/libc/include/any-windows-any/inttypes.h b/lib/libc/include/any-windows-any/inttypes.h index 881025c0d0..ec99d6956a 100644 --- a/lib/libc/include/any-windows-any/inttypes.h +++ b/lib/libc/include/any-windows-any/inttypes.h @@ -28,6 +28,7 @@ typedef struct { * length specifier. It appears to treat "ll" as "l". * The non-standard I64 length specifier causes warning in GCC, * but understood by MS runtime functions. + * crtdll.dll and msvcrt10.dll do not support any 64-bit modifier. */ #if defined(_UCRT) || __USE_MINGW_ANSI_STDIO #define PRId64 "lld" @@ -36,7 +37,7 @@ typedef struct { #define PRIu64 "llu" #define PRIx64 "llx" #define PRIX64 "llX" -#else +#elif !defined(__CRTDLL__) && __MSVCRT_VERSION__ >= 0x200 #define PRId64 "I64d" #define PRIi64 "I64i" #define PRIo64 "I64o" @@ -278,6 +279,51 @@ typedef struct { #define SCNuFAST8 "hhu" #endif /* __STDC_VERSION__ >= 199901 */ +#if (defined(__CRTDLL__) || __MSVCRT_VERSION__ < 0x200) && !defined(__USE_MINGW_ANSI_STDIO) +/* + * crtdll.dll and msvcrt10.dll do not support any 64-bit modifier. + * Undef all previously defined 64-bit modifiers. + */ +#undef PRIdLEAST64 +#undef PRIdFAST64 +#undef PRIdMAX +#undef PRIiLEAST64 +#undef PRIiFAST64 +#undef PRIiMAX +#undef PRIoLEAST64 +#undef PRIoFAST64 +#undef PRIoMAX +#undef PRIuLEAST64 +#undef PRIuFAST64 +#undef PRIuMAX +#undef PRIxLEAST64 +#undef PRIxFAST64 +#undef PRIxMAX +#undef PRIXLEAST64 +#undef PRIXFAST64 +#undef PRIXMAX +#undef SCNd64 +#undef SCNdLEAST64 +#undef SCNdFAST64 +#undef SCNdMAX +#undef SCNi64 +#undef SCNiLEAST64 +#undef SCNiFAST64 +#undef SCNiMAX +#undef SCNo64 +#undef SCNoLEAST64 +#undef SCNoFAST64 +#undef SCNoMAX +#undef SCNx64 +#undef SCNxLEAST64 +#undef SCNxFAST64 +#undef SCNxMAX +#undef SCNu64 +#undef SCNuLEAST64 +#undef SCNuFAST64 +#undef SCNuMAX +#endif + intmax_t __cdecl imaxabs (intmax_t j); #ifndef __CRT__NO_INLINE __CRT_INLINE intmax_t __cdecl imaxabs (intmax_t j) diff --git a/lib/libc/include/any-windows-any/ioringapi.h b/lib/libc/include/any-windows-any/ioringapi.h new file mode 100644 index 0000000000..211af18212 --- /dev/null +++ b/lib/libc/include/any-windows-any/ioringapi.h @@ -0,0 +1,140 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _APISET_IORING_ +#define _APISET_IORING_ + +#include <apiset.h> +#include <apisetcconv.h> +#include <minwindef.h> +#include <minwinbase.h> +#include <ntioring_x.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +#if NTDDI_VERSION >= NTDDI_WIN10_CO + +DECLARE_HANDLE(HIORING); + +typedef enum IORING_SQE_FLAGS { + IOSQE_FLAGS_NONE = 0 +} IORING_SQE_FLAGS; +DEFINE_ENUM_FLAG_OPERATORS(IORING_SQE_FLAGS) + +typedef enum IORING_CREATE_REQUIRED_FLAGS { + IORING_CREATE_REQUIRED_FLAGS_NONE = 0 +} IORING_CREATE_REQUIRED_FLAGS; +DEFINE_ENUM_FLAG_OPERATORS(IORING_CREATE_REQUIRED_FLAGS) + +typedef enum IORING_CREATE_ADVISORY_FLAGS { + IORING_CREATE_ADVISORY_FLAGS_NONE = 0 +} IORING_CREATE_ADVISORY_FLAGS; +DEFINE_ENUM_FLAG_OPERATORS(IORING_CREATE_ADVISORY_FLAGS) + +typedef struct IORING_CREATE_FLAGS { + IORING_CREATE_REQUIRED_FLAGS Required; + IORING_CREATE_ADVISORY_FLAGS Advisory; +} IORING_CREATE_FLAGS; + +typedef struct IORING_INFO { + IORING_VERSION IoRingVersion; + IORING_CREATE_FLAGS Flags; + UINT32 SubmissionQueueSize; + UINT32 CompletionQueueSize; +} IORING_INFO; + +typedef struct IORING_CAPABILITIES { + IORING_VERSION MaxVersion; + UINT32 MaxSubmissionQueueSize; + UINT32 MaxCompletionQueueSize; + IORING_FEATURE_FLAGS FeatureFlags; +} IORING_CAPABILITIES; + +typedef enum IORING_REF_KIND { + IORING_REF_RAW, + IORING_REF_REGISTERED +} IORING_REF_KIND; + +typedef struct IORING_HANDLE_REF { +#ifdef __cplusplus + explicit IORING_HANDLE_REF(HANDLE h) : Kind(IORING_REF_KIND::IORING_REF_RAW), Handle(h) {} + explicit IORING_HANDLE_REF(UINT32 index) : Kind(IORING_REF_KIND::IORING_REF_REGISTERED), Handle(index) {} +#endif + + IORING_REF_KIND Kind; + union HandleUnion { +#ifdef __cplusplus + HandleUnion(HANDLE h) : Handle(h) {} + HandleUnion(UINT32 index) : Index(index) {} +#endif + HANDLE Handle; + UINT32 Index; + } Handle; +} IORING_HANDLE_REF; + +#ifdef __cplusplus +#define IoRingHandleRefFromHandle(h) IORING_HANDLE_REF(static_cast<HANDLE>(h)) +#define IoRingHandleRefFromIndex(i) IORING_HANDLE_REF(static_cast<UINT32>(i)) +#else +#define IoRingHandleRefFromHandle(h) {IORING_REF_RAW, {.Handle = h}} +#define IoRingHandleRefFromIndex(i) {IORING_REF_REGISTERED, {.Index = i}} +#endif + +typedef struct IORING_BUFFER_REF { +#ifdef __cplusplus + explicit IORING_BUFFER_REF(void* address) : Kind(IORING_REF_KIND::IORING_REF_RAW), Buffer(address) {} + explicit IORING_BUFFER_REF(IORING_REGISTERED_BUFFER registeredBuffer) : Kind(IORING_REF_KIND::IORING_REF_REGISTERED), Buffer(registeredBuffer) {} + IORING_BUFFER_REF(UINT32 index, UINT32 offset) : IORING_BUFFER_REF(IORING_REGISTERED_BUFFER{index, offset}) {} +#endif + + IORING_REF_KIND Kind; + union BufferUnion { +#ifdef __cplusplus + BufferUnion(void* address) : Address(address) {} + BufferUnion(IORING_REGISTERED_BUFFER indexAndOffset) : IndexAndOffset(indexAndOffset) {} +#endif + void* Address; + IORING_REGISTERED_BUFFER IndexAndOffset; + }Buffer; +} IORING_BUFFER_REF; + +#ifdef __cplusplus +#define IoRingBufferRefFromPointer(p) IORING_BUFFER_REF(static_cast<void*>(p)) +#define IoRingBufferRefFromIndexAndOffset(i,o) IORING_BUFFER_REF((i),(o)) +#else +#define IoRingBufferRefFromPointer(p) {IORING_REF_RAW, {.Address = p}} +#define IoRingBufferRefFromIndexAndOffset(i,o) {IORING_REF_REGISTERED, {.IndexAndOffset = {(i),(o)}}} +#endif + +typedef struct IORING_CQE { + UINT_PTR UserData; + HRESULT ResultCode; + ULONG_PTR Information; +} IORING_CQE; + +#ifdef __cplusplus +extern "C" { +#endif + +STDAPI QueryIoRingCapabilities(IORING_CAPABILITIES* capabilities); +STDAPI_(WINBOOL) IsIoRingOpSupported(HIORING ioRing, IORING_OP_CODE op); +STDAPI CreateIoRing(IORING_VERSION ioringVersion, IORING_CREATE_FLAGS flags, UINT32 submissionQueueSize, UINT32 completionQueueSize, HIORING* h); +STDAPI GetIoRingInfo(HIORING ioRing, IORING_INFO* info); +STDAPI SubmitIoRing(HIORING ioRing, UINT32 waitOperations, UINT32 milliseconds, UINT32* submittedEntries); +STDAPI CloseIoRing(HIORING ioRing); +STDAPI PopIoRingCompletion(HIORING ioRing, IORING_CQE* cqe); +STDAPI SetIoRingCompletionEvent(HIORING ioRing, HANDLE hEvent); +STDAPI BuildIoRingCancelRequest(HIORING ioRing, IORING_HANDLE_REF file, UINT_PTR opToCancel, UINT_PTR userData); +STDAPI BuildIoRingReadFile(HIORING ioRing, IORING_HANDLE_REF fileRef, IORING_BUFFER_REF dataRef, UINT32 numberOfBytesToRead, UINT64 fileOffset, UINT_PTR userData, IORING_SQE_FLAGS flags); +STDAPI BuildIoRingRegisterFileHandles(HIORING ioRing, UINT32 count, HANDLE const handles[], UINT_PTR userData); +STDAPI BuildIoRingRegisterBuffers(HIORING ioRing, UINT32 count, IORING_BUFFER_INFO const buffers[], UINT_PTR userData); + +#ifdef __cplusplus +} +#endif + +#endif /* NTDDI_WIN10_CO */ +#endif /* WINAPI_PARTITION_APP */ +#endif /* _APISET_IORING_ */ diff --git a/lib/libc/include/any-windows-any/ks.h b/lib/libc/include/any-windows-any/ks.h index 05f7b527d3..6342982b48 100644 --- a/lib/libc/include/any-windows-any/ks.h +++ b/lib/libc/include/any-windows-any/ks.h @@ -581,20 +581,15 @@ DEFINE_GUIDSTRUCT("085AFF00-62CE-11CF-A5D6-28DB04C10000",KSCATEGORY_BRIDGE); DEFINE_GUIDSTRUCT("65E8773D-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_CAPTURE); #define KSCATEGORY_CAPTURE DEFINE_GUIDNAMED(KSCATEGORY_CAPTURE) -#define STATIC_KSCATEGORY_RENDER \ - 0x65E8773E,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96 -DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_RENDER); -#define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER) - -#define STATIC_KSCATEGORY_MIXER \ - 0xAD809C00,0x7B88,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 -DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000",KSCATEGORY_MIXER); -#define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER) +#define STATIC_KSCATEGORY_CLOCK \ + 0x53172480,0x4791,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 +DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000",KSCATEGORY_CLOCK); +#define KSCATEGORY_CLOCK DEFINE_GUIDNAMED(KSCATEGORY_CLOCK) -#define STATIC_KSCATEGORY_SPLITTER \ - 0x0A4252A0,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 -DEFINE_GUIDSTRUCT("0A4252A0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_SPLITTER); -#define KSCATEGORY_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_SPLITTER) +#define STATIC_KSCATEGORY_COMMUNICATIONSTRANSFORM \ + 0xCF1DDA2C,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96 +DEFINE_GUIDSTRUCT("CF1DDA2C-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_COMMUNICATIONSTRANSFORM); +#define KSCATEGORY_COMMUNICATIONSTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_COMMUNICATIONSTRANSFORM) #define STATIC_KSCATEGORY_DATACOMPRESSOR \ 0x1E84C900,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 @@ -611,10 +606,10 @@ DEFINE_GUIDSTRUCT("2721AE20-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_DATADECOMPRE DEFINE_GUIDSTRUCT("2EB07EA0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_DATATRANSFORM); #define KSCATEGORY_DATATRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_DATATRANSFORM) -#define STATIC_KSCATEGORY_COMMUNICATIONSTRANSFORM \ - 0xCF1DDA2C,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96 -DEFINE_GUIDSTRUCT("CF1DDA2C-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_COMMUNICATIONSTRANSFORM); -#define KSCATEGORY_COMMUNICATIONSTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_COMMUNICATIONSTRANSFORM) +#define STATIC_KSCATEGORY_FILESYSTEM \ + 0x760FED5E,0x9357,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96 +DEFINE_GUIDSTRUCT("760FED5E-9357-11D0-A3CC-00A0C9223196",KSCATEGORY_FILESYSTEM); +#define KSCATEGORY_FILESYSTEM DEFINE_GUIDNAMED(KSCATEGORY_FILESYSTEM) #define STATIC_KSCATEGORY_INTERFACETRANSFORM \ 0xCF1DDA2D,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96 @@ -626,15 +621,10 @@ DEFINE_GUIDSTRUCT("CF1DDA2D-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_INTERFACETRA DEFINE_GUIDSTRUCT("CF1DDA2E-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_MEDIUMTRANSFORM); #define KSCATEGORY_MEDIUMTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_MEDIUMTRANSFORM) -#define STATIC_KSCATEGORY_FILESYSTEM \ - 0x760FED5E,0x9357,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96 -DEFINE_GUIDSTRUCT("760FED5E-9357-11D0-A3CC-00A0C9223196",KSCATEGORY_FILESYSTEM); -#define KSCATEGORY_FILESYSTEM DEFINE_GUIDNAMED(KSCATEGORY_FILESYSTEM) - -#define STATIC_KSCATEGORY_CLOCK \ - 0x53172480,0x4791,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 -DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000",KSCATEGORY_CLOCK); -#define KSCATEGORY_CLOCK DEFINE_GUIDNAMED(KSCATEGORY_CLOCK) +#define STATIC_KSCATEGORY_MIXER \ + 0xAD809C00,0x7B88,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 +DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000",KSCATEGORY_MIXER); +#define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER) #define STATIC_KSCATEGORY_PROXY \ 0x97EBAACA,0x95BD,0x11D0,0xA3,0xEA,0x00,0xA0,0xC9,0x22,0x31,0x96 @@ -646,6 +636,21 @@ DEFINE_GUIDSTRUCT("97EBAACA-95BD-11D0-A3EA-00A0C9223196",KSCATEGORY_PROXY); DEFINE_GUIDSTRUCT("97EBAACB-95BD-11D0-A3EA-00A0C9223196",KSCATEGORY_QUALITY); #define KSCATEGORY_QUALITY DEFINE_GUIDNAMED(KSCATEGORY_QUALITY) +#define STATIC_KSCATEGORY_RENDER \ + 0x65E8773E,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96 +DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_RENDER); +#define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER) + +#define STATIC_KSCATEGORY_SPLITTER \ + 0x0A4252A0,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 +DEFINE_GUIDSTRUCT("0A4252A0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_SPLITTER); +#define KSCATEGORY_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_SPLITTER) + +#define STATIC_KSCATEGORY_VIDEO_CAMERA \ + 0xE5323777,0xF976,0x4F5B,0x9B,0x55,0xB9,0x46,0x99,0xC4,0x6E,0x44 +DEFINE_GUIDSTRUCT("E5323777-F976-4F5B-9B55-B94699C46E44",KSCATEGORY_VIDEO_CAMERA); +#define KSCATEGORY_VIDEO_CAMERA DEFINE_GUIDNAMED(KSCATEGORY_VIDEO_CAMERA) + typedef struct { ULONG FromNode; ULONG FromNodePin; diff --git a/lib/libc/include/any-windows-any/ksmedia.h b/lib/libc/include/any-windows-any/ksmedia.h index eb50d61d2b..2ed9f78e26 100644 --- a/lib/libc/include/any-windows-any/ksmedia.h +++ b/lib/libc/include/any-windows-any/ksmedia.h @@ -386,6 +386,7 @@ DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MULTITRACK_R DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SYNTHESIZER); #define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER) +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSNODETYPE_SWSYNTH \ 0x423274A0,0x8B81,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH); @@ -395,6 +396,7 @@ DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH); 0xCB9BEFA0,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788",KSNODETYPE_SWMIDI); #define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI) +#endif /* NTDDI_VERSION < NTDDI_VISTA */ #define STATIC_KSNODETYPE_DRM_DESCRAMBLE \ 0xFFBB6E3F,0xCCFE,0x4D84,0x90,0xD9,0x42,0x14,0x18,0xB0,0x3A,0x8E @@ -416,6 +418,13 @@ DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_VIDEO); DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_TEXT); #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT) +#if NTDDI_VERSION >= NTDDI_VISTA +#define STATIC_KSCATEGORY_REALTIME \ + 0xEB115FFCL,0x10C8,0x4964,0x83,0x1D,0x6D,0xCB,0x02,0xE6,0xF2,0x3F +DEFINE_GUIDSTRUCT("EB115FFC-10C8-4964-831D-6DCB02E6F23F",KSCATEGORY_REALTIME); +#define KSCATEGORY_REALTIME DEFINE_GUIDNAMED(KSCATEGORY_REALTIME) +#endif /* NTDDI_VERSION >= NTDDI_VISTA */ + #define STATIC_KSCATEGORY_NETWORK \ 0x67C9CC3C,0x69C4,0x11D2,0x87,0x59,0x00,0xA0,0xC9,0x22,0x31,0x96 DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196",KSCATEGORY_NETWORK); @@ -436,6 +445,7 @@ DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196",KSCATEGORY_VIRTUAL); DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1",KSCATEGORY_ACOUSTIC_ECHO_CANCEL); #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL) +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSCATEGORY_SYSAUDIO \ 0xA7C7A5B1,0x5AF3,0x11D1,0x9C,0xED,0x00,0xA0,0x24,0xBF,0x04,0x07 DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407",KSCATEGORY_SYSAUDIO); @@ -455,6 +465,7 @@ DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F",KSCATEGORY_AUDIO_GFX); 0x9EA331FA,0xB91B,0x45F8,0x92,0x85,0xBD,0x2B,0xC7,0x7A,0xFC,0xDE DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITTER); #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER) +#endif /* NTDDI_VERSION < NTDDI_VISTA */ #define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER #define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER @@ -462,6 +473,7 @@ DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITT #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSCATEGORY_AUDIO_DEVICE \ 0xFBF6F530,0x07B9,0x11D2,0xA7,0x1E,0x00,0x00,0xF8,0x00,0x47,0x88 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788",KSCATEGORY_AUDIO_DEVICE); @@ -481,6 +493,7 @@ DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WA 0xD6C50674,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88 DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_MIDIOUT_DEVICE); #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE) +#endif /* NTDDI_VERSION < NTDDI_VISTA */ #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \ 0x47A4FA20,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 @@ -1163,6 +1176,7 @@ typedef struct { ULONG Reserved; } KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE; +#if NTDDI_VERSION < NTDDI_VISTA typedef enum { KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0, KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT, @@ -1177,6 +1191,7 @@ typedef struct { ULONG Flags; ULONG Reserved; } KSAUDIO_PREFERRED_STATUS,*PKSAUDIO_PREFERRED_STATUS; +#endif /* NTDDI_VERSION < NTDDI_VISTA */ #define STATIC_KSNODETYPE_DAC \ 0x507AE360,0xC554,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 @@ -1584,10 +1599,12 @@ DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE",KSAUDFNAME_PEAKMETER); #define KSNODEPIN_DEMUX_IN 0 #define KSNODEPIN_DEMUX_OUT 1 +#if NTDDI_VERSION < NTDDI_VISTA #define KSNODEPIN_AEC_RENDER_IN 1 #define KSNODEPIN_AEC_RENDER_OUT 0 #define KSNODEPIN_AEC_CAPTURE_IN 2 #define KSNODEPIN_AEC_CAPTURE_OUT 3 +#endif /* NTDDI_VERSION < NTDDI_VISTA */ #define STATIC_KSMETHODSETID_Wavetable \ 0xDCEF31EB,0xD907,0x11D0,0x95,0x83,0x00,0xC0,0x4F,0xB9,0x25,0xD3 @@ -1610,10 +1627,12 @@ typedef struct { KSDATAFORMAT Format; } KSWAVETABLE_WAVE_DESC,*PKSWAVETABLE_WAVE_DESC; +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSPROPSETID_Acoustic_Echo_Cancel \ 0xd7a4af8b,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0x0e,0x05,0xb2 DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel); #define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel) +#endif /* NTDDI_VERSION < NTDDI_VISTA */ typedef enum { KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0, @@ -1731,6 +1750,7 @@ DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_WAVE DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380",KSMUSIC_TECHNOLOGY_SWSYNTH); #define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH) +#if NTDDI_VERSION < NTDDI_WS03 #define STATIC_KSPROPSETID_WaveTable \ 0x8539E660,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable); @@ -1742,6 +1762,7 @@ typedef enum { KSPROPERTY_WAVETABLE_MEMORY, KSPROPERTY_WAVETABLE_VERSION } KSPROPERTY_WAVETABLE; +#endif /* NTDDI_VERSION < NTDDI_WS03 */ typedef struct { KSDATARANGE DataRange; @@ -1751,6 +1772,7 @@ typedef struct { ULONG ChannelMask; } KSDATARANGE_MUSIC,*PKSDATARANGE_MUSIC; +#if NTDDI_VERSION < NTDDI_WS03 #define STATIC_KSEVENTSETID_Cyclic \ 0x142C1AC0,0x072A,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic); @@ -1759,6 +1781,7 @@ DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic); typedef enum { KSEVENT_CYCLIC_TIME_INTERVAL } KSEVENT_CYCLIC_TIME; +#endif /* NTDDI_VERSION < NTDDI_WS03 */ #define STATIC_KSPROPSETID_Cyclic \ 0x3FFEAEA0,0x2BEE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 @@ -1792,6 +1815,7 @@ typedef struct { DWORDLONG Position; } LOOPEDSTREAMING_POSITION_EVENT_DATA,*PLOOPEDSTREAMING_POSITION_EVENT_DATA; +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSPROPSETID_Sysaudio \ 0xCBE3FAA0,0xCC75,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6 DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio); @@ -1845,6 +1869,7 @@ typedef struct { ULONG MixerPinId; ULONG Reserved; } SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE; +#endif /* NTDDI_VERSION < NTDDI_VISTA */ typedef struct { KSPROPERTY Property; @@ -1882,16 +1907,19 @@ typedef struct { #endif } KSNODEPROPERTY_AUDIO_PROPERTY,*PKSNODEPROPERTY_AUDIO_PROPERTY; +#if NTDDI_VERSION < NTDDI_VISTA #define STATIC_KSPROPSETID_AudioGfx \ 0x79a9312e,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24 DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx); #define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx) +#endif /* NTDDI_VERSION < NTDDI_VISTA */ typedef enum { KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID, KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID } KSPROPERTY_AUDIOGFX; +#if NTDDI_VERSION < NTDDI_WS03 #define STATIC_KSPROPSETID_Linear \ 0x5A2FFE80,0x16B9,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear); @@ -1900,6 +1928,7 @@ DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear); typedef enum { KSPROPERTY_LINEAR_POSITION } KSPROPERTY_LINEAR; +#endif /* NTDDI_VERSION < NTDDI_WS03 */ #define STATIC_KSDATAFORMAT_TYPE_MUSIC \ 0xE725D360,0x62CC,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 diff --git a/lib/libc/include/any-windows-any/locale.h b/lib/libc/include/any-windows-any/locale.h index 6b1893b36f..9b695e333a 100644 --- a/lib/libc/include/any-windows-any/locale.h +++ b/lib/libc/include/any-windows-any/locale.h @@ -103,6 +103,12 @@ extern "C" { _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale); #endif +#ifdef __CHAR_UNSIGNED__ +/* Pull in the constructor from 'charmax.c'. */ +extern int __mingw_initcharmax; +__MINGW_SELECTANY int* __mingw_reference_charmax = &__mingw_initcharmax; +#endif + #ifdef __cplusplus } #endif diff --git a/lib/libc/include/any-windows-any/locationapi.h b/lib/libc/include/any-windows-any/locationapi.h index e2fe09cc2c..3ef382e6c7 100644 --- a/lib/libc/include/any-windows-any/locationapi.h +++ b/lib/libc/include/any-windows-any/locationapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/locationapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/locationapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mediaobj.h b/lib/libc/include/any-windows-any/mediaobj.h index 3199aaf564..e9ab1257ff 100644 --- a/lib/libc/include/any-windows-any/mediaobj.h +++ b/lib/libc/include/any-windows-any/mediaobj.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mediaobj.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mediaobj.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/medparam.h b/lib/libc/include/any-windows-any/medparam.h index 750511b842..527e25abb6 100644 --- a/lib/libc/include/any-windows-any/medparam.h +++ b/lib/libc/include/any-windows-any/medparam.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/medparam.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/medparam.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mfapi.h b/lib/libc/include/any-windows-any/mfapi.h index 6c49764cb5..899d15d2ff 100644 --- a/lib/libc/include/any-windows-any/mfapi.h +++ b/lib/libc/include/any-windows-any/mfapi.h @@ -334,7 +334,12 @@ extern "C" { #define D3DFMT_X8R8G8B8 22 #define D3DFMT_R5G6B5 23 #define D3DFMT_X1R5G5B5 24 +#define D3DFMT_A2B10G10R10 31 #define D3DFMT_P8 41 +#define D3DFMT_L8 50 +#define D3DFMT_D16 80 +#define D3DFMT_L16 81 +#define D3DFMT_A16B16G16R16F 113 #define LOCAL_D3DFMT_DEFINES 1 #endif @@ -345,6 +350,9 @@ extern "C" { DEFINE_MEDIATYPE_GUID (MFVideoFormat_RGB555, D3DFMT_X1R5G5B5); DEFINE_MEDIATYPE_GUID (MFVideoFormat_RGB565, D3DFMT_R5G6B5); DEFINE_MEDIATYPE_GUID (MFVideoFormat_RGB8, D3DFMT_P8); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_L8, D3DFMT_L8); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_L16, D3DFMT_L16); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_D16, D3DFMT_D16); #ifdef __GNUC__ #pragma GCC diagnostic push @@ -359,6 +367,7 @@ extern "C" { DEFINE_MEDIATYPE_GUID (MFVideoFormat_UYVY, FCC ('UYVY')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_NV11, FCC ('NV11')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_NV12, FCC ('NV12')); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_NV21, FCC ('NV21')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_YV12, FCC ('YV12')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_I420, FCC ('I420')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_IYUV, FCC ('IYUV')); @@ -402,9 +411,21 @@ extern "C" { DEFINE_MEDIATYPE_GUID (MFVideoFormat_HEVC_ES, FCC('HEVS')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_VP80, FCC ('VP80')); DEFINE_MEDIATYPE_GUID (MFVideoFormat_VP90, FCC ('VP90')); -#if WINVER >= 0x0602 + DEFINE_MEDIATYPE_GUID (MFVideoFormat_ORAW, FCC('ORAW')); +#if WINVER >= _WIN32_WINNT_WIN8 DEFINE_MEDIATYPE_GUID (MFVideoFormat_H263, FCC ('H263')); #endif +#if WDK_NTDDI_VERSION >= NTDDI_WIN10 + DEFINE_MEDIATYPE_GUID (MFVideoFormat_A2R10G10B10, D3DFMT_A2B10G10R10); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_A16B16G16R16F, D3DFMT_A16B16G16R16F); +#endif +#if WDK_NTDDI_VERSION >= NTDDI_WIN10_RS3 + DEFINE_MEDIATYPE_GUID (MFVideoFormat_VP10, FCC('VP10')); + DEFINE_MEDIATYPE_GUID (MFVideoFormat_AV1, FCC('AV01')); +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_FE +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Theora, FCC('theo')); +#endif #ifdef __GNUC__ #pragma GCC diagnostic pop @@ -417,6 +438,11 @@ extern "C" { #undef D3DFMT_R5G6B5 #undef D3DFMT_X1R5G5B5 #undef D3DFMT_P8 +#undef D3DFMT_A2B10G10R10 +#undef D3DFMT_A16B16G16R16F +#undef D3DFMT_L8 +#undef D3DFMT_D16 +#undef D3DFMT_L16 #undef LOCAL_D3DFMT_DEFINES #endif @@ -486,8 +512,44 @@ extern "C" { DEFINE_MEDIATYPE_GUID (MFAudioFormat_MPEG, WAVE_FORMAT_MPEG); DEFINE_MEDIATYPE_GUID (MFAudioFormat_AAC, WAVE_FORMAT_MPEG_HEAAC); DEFINE_MEDIATYPE_GUID (MFAudioFormat_ADTS, WAVE_FORMAT_MPEG_ADTS_AAC); + DEFINE_MEDIATYPE_GUID (MFAudioFormat_AMR_NB, WAVE_FORMAT_AMR_NB); + DEFINE_MEDIATYPE_GUID (MFAudioFormat_AMR_WB, WAVE_FORMAT_AMR_WB); + DEFINE_MEDIATYPE_GUID (MFAudioFormat_AMR_WP, WAVE_FORMAT_AMR_WP); +#if WINVER >= _WIN32_WINNT_WINTHRESHOLD + DEFINE_MEDIATYPE_GUID (MFAudioFormat_FLAC, WAVE_FORMAT_FLAC); + DEFINE_MEDIATYPE_GUID (MFAudioFormat_ALAC, WAVE_FORMAT_ALAC); + DEFINE_MEDIATYPE_GUID (MFAudioFormat_Opus, WAVE_FORMAT_OPUS); +#endif + DEFINE_MEDIATYPE_GUID (MFAudioFormat_Dolby_AC4, WAVE_FORMAT_DOLBY_AC4); + DEFINE_GUID (MFAudioFormat_Dolby_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x05f, 0x6c, 0xbb, 0xea); DEFINE_GUID (MFAudioFormat_Dolby_DDPlus, 0xa7fb87af, 0x2d02, 0x42fb, 0xa4, 0xd4, 0x5, 0xcd, 0x93, 0x84, 0x3b, 0xdd); + DEFINE_GUID (MFAudioFormat_Dolby_AC4_V1, 0x36b7927c, 0x3d87, 0x4a2a, 0x91, 0x96, 0xa2, 0x1a, 0xd9, 0xe9, 0x35, 0xe6); + DEFINE_GUID (MFAudioFormat_Dolby_AC4_V2, 0x7998b2a0, 0x17dd, 0x49b6, 0x8d, 0xfa, 0x9b, 0x27, 0x85, 0x52, 0xa2, 0xac); + DEFINE_GUID (MFAudioFormat_Dolby_AC4_V1_ES, 0x9d8dccc6, 0xd156, 0x4fb8, 0x97, 0x9c, 0xa8, 0x5b, 0xe7, 0xd2, 0x1d, 0xfa); + DEFINE_GUID (MFAudioFormat_Dolby_AC4_V2_ES, 0x7e58c9f9, 0xb070, 0x45f4, 0x8c, 0xcd, 0xa9, 0x9a, 0x04, 0x17, 0xc1, 0xac); + DEFINE_GUID (MFAudioFormat_Vorbis, 0x8d2fd10b, 0x5841, 0x4a6b, 0x89, 0x05, 0x58, 0x8f, 0xec, 0x1a, 0xde, 0xd9); + DEFINE_GUID (MFAudioFormat_DTS_RAW, 0xe06d8033, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); + DEFINE_GUID (MFAudioFormat_DTS_HD, 0xa2e58eb7, 0x0fa9, 0x48bb, 0xa4, 0x0c, 0xfa, 0x0e, 0x15, 0x6d, 0x06, 0x45); + DEFINE_GUID (MFAudioFormat_DTS_XLL, 0x45b37c1b, 0x8c70, 0x4e59, 0xa7, 0xbe, 0xa1, 0xe4, 0x2c, 0x81, 0xc8, 0x0d); + DEFINE_GUID (MFAudioFormat_DTS_LBR, 0xc2fe6f0a, 0x4e3c, 0x4df1, 0x9b, 0x60, 0x50, 0x86, 0x30, 0x91, 0xe4, 0xb9); + DEFINE_GUID (MFAudioFormat_DTS_UHD, 0x87020117, 0xace3, 0x42de, 0xb7, 0x3e, 0xc6, 0x56, 0x70, 0x62, 0x63, 0xf8); + DEFINE_GUID (MFAudioFormat_DTS_UHDY, 0x9b9cca00, 0x91b9, 0x4ccc, 0x88, 0x3a, 0x8f, 0x78, 0x7a, 0xc3, 0xcc, 0x86); +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 + DEFINE_GUID (MFAudioFormat_Float_SpatialObjects, 0xfa39cd94, 0xbc64, 0x4ab1, 0x9b, 0x71, 0xdc, 0xd0, 0x9d, 0x5a, 0x7e, 0x7a); +#endif +#if WINVER >= _WIN32_WINNT_WINTHRESHOLD + DEFINE_GUID (MFAudioFormat_LPCM, 0xe06d8032l, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); + DEFINE_GUID (MFAudioFormat_PCM_HDCP, 0xa5e7ff01, 0x8411, 0x4acc, 0xa8, 0x65, 0x5f, 0x49, 0x41, 0x28, 0x8d, 0x80); + DEFINE_GUID (MFAudioFormat_Dolby_AC3_HDCP, 0x97663a80, 0x8ffb, 0x4445, 0xa6, 0xba, 0x79, 0x2d, 0x90, 0x8f, 0x49, 0x7f); + DEFINE_GUID (MFAudioFormat_AAC_HDCP, 0x419bce76, 0x8b72, 0x400f, 0xad, 0xeb, 0x84, 0xb5, 0x7d, 0x63, 0x48, 0x4d); + DEFINE_GUID (MFAudioFormat_ADTS_HDCP, 0xda4963a3, 0x14d8, 0x4dcf, 0x92, 0xb7, 0x19, 0x3e, 0xb8, 0x43, 0x63, 0xdb); + DEFINE_GUID (MFAudioFormat_Base_HDCP, 0x3884b5bc, 0xe277, 0x43fd, 0x98, 0x3d, 0x03, 0x8a, 0xa8, 0xd9, 0xb6, 0x05); + DEFINE_GUID (MFVideoFormat_H264_HDCP, 0x5d0ce9dd, 0x9817, 0x49da, 0xbd, 0xfd, 0xf5, 0xf5, 0xb9, 0x8f, 0x18, 0xa6); + DEFINE_GUID (MFVideoFormat_HEVC_HDCP, 0x3cfe0fe6, 0x05c4, 0x47dc, 0x9d, 0x70, 0x4b, 0xdb, 0x29, 0x59, 0x72, 0x0f); + DEFINE_GUID (MFVideoFormat_Base_HDCP, 0xeac3b9d5, 0xbd14, 0x4237, 0x8f, 0x1f, 0xba, 0xb4, 0x28, 0xe4, 0x93, 0x12); +#endif + DEFINE_GUID (MFMPEG4Format_Base, 0x00000000, 0x767a, 0x494d, 0xb4, 0x78, 0xf2, 0x9d, 0x25, 0xdc, 0x90, 0x37); DEFINE_GUID (MF_MT_MAJOR_TYPE, 0x48eba18e, 0xf8c9, 0x4687, 0xbf, 0x11, 0x0a, 0x74, 0xc9, 0xf9, 0x6a, 0x8f); DEFINE_GUID (MF_MT_SUBTYPE, 0xf7e34c9a, 0x42e8, 0x4714, 0xb7, 0x4b, 0xcb, 0x29, 0xd7, 0x2c, 0x35, 0xe5); diff --git a/lib/libc/include/any-windows-any/mfcaptureengine.h b/lib/libc/include/any-windows-any/mfcaptureengine.h new file mode 100644 index 0000000000..335819890b --- /dev/null +++ b/lib/libc/include/any-windows-any/mfcaptureengine.h @@ -0,0 +1,1769 @@ +/*** Autogenerated by WIDL 7.0 from include/mfcaptureengine.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __mfcaptureengine_h__ +#define __mfcaptureengine_h__ + +/* Forward declarations */ + +#ifndef __IMFCaptureEngineOnEventCallback_FWD_DEFINED__ +#define __IMFCaptureEngineOnEventCallback_FWD_DEFINED__ +typedef interface IMFCaptureEngineOnEventCallback IMFCaptureEngineOnEventCallback; +#ifdef __cplusplus +interface IMFCaptureEngineOnEventCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureEngineOnSampleCallback_FWD_DEFINED__ +#define __IMFCaptureEngineOnSampleCallback_FWD_DEFINED__ +typedef interface IMFCaptureEngineOnSampleCallback IMFCaptureEngineOnSampleCallback; +#ifdef __cplusplus +interface IMFCaptureEngineOnSampleCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureSink_FWD_DEFINED__ +#define __IMFCaptureSink_FWD_DEFINED__ +typedef interface IMFCaptureSink IMFCaptureSink; +#ifdef __cplusplus +interface IMFCaptureSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureRecordSink_FWD_DEFINED__ +#define __IMFCaptureRecordSink_FWD_DEFINED__ +typedef interface IMFCaptureRecordSink IMFCaptureRecordSink; +#ifdef __cplusplus +interface IMFCaptureRecordSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCapturePreviewSink_FWD_DEFINED__ +#define __IMFCapturePreviewSink_FWD_DEFINED__ +typedef interface IMFCapturePreviewSink IMFCapturePreviewSink; +#ifdef __cplusplus +interface IMFCapturePreviewSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCapturePhotoSink_FWD_DEFINED__ +#define __IMFCapturePhotoSink_FWD_DEFINED__ +typedef interface IMFCapturePhotoSink IMFCapturePhotoSink; +#ifdef __cplusplus +interface IMFCapturePhotoSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureSource_FWD_DEFINED__ +#define __IMFCaptureSource_FWD_DEFINED__ +typedef interface IMFCaptureSource IMFCaptureSource; +#ifdef __cplusplus +interface IMFCaptureSource; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureEngine_FWD_DEFINED__ +#define __IMFCaptureEngine_FWD_DEFINED__ +typedef interface IMFCaptureEngine IMFCaptureEngine; +#ifdef __cplusplus +interface IMFCaptureEngine; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureEngineClassFactory_FWD_DEFINED__ +#define __IMFCaptureEngineClassFactory_FWD_DEFINED__ +typedef interface IMFCaptureEngineClassFactory IMFCaptureEngineClassFactory; +#ifdef __cplusplus +interface IMFCaptureEngineClassFactory; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureEngineOnSampleCallback2_FWD_DEFINED__ +#define __IMFCaptureEngineOnSampleCallback2_FWD_DEFINED__ +typedef interface IMFCaptureEngineOnSampleCallback2 IMFCaptureEngineOnSampleCallback2; +#ifdef __cplusplus +interface IMFCaptureEngineOnSampleCallback2; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFCaptureSink2_FWD_DEFINED__ +#define __IMFCaptureSink2_FWD_DEFINED__ +typedef interface IMFCaptureSink2 IMFCaptureSink2; +#ifdef __cplusplus +interface IMFCaptureSink2; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <mfobjects.h> +#include <mfidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINVER >= _WIN32_WINNT_WIN7 +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#ifndef _MFVideoNormalizedRect_ +#define _MFVideoNormalizedRect_ +typedef struct MFVideoNormalizedRect { + float left; + float top; + float right; + float bottom; +} MFVideoNormalizedRect; +#endif +typedef enum MF_CAPTURE_ENGINE_DEVICE_TYPE { + MF_CAPTURE_ENGINE_DEVICE_TYPE_AUDIO = 0x0, + MF_CAPTURE_ENGINE_DEVICE_TYPE_VIDEO = 0x1 +} MF_CAPTURE_ENGINE_DEVICE_TYPE; +typedef enum MF_CAPTURE_ENGINE_SINK_TYPE { + MF_CAPTURE_ENGINE_SINK_TYPE_RECORD = 0x0, + MF_CAPTURE_ENGINE_SINK_TYPE_PREVIEW = 0x1, + MF_CAPTURE_ENGINE_SINK_TYPE_PHOTO = 0x2 +} MF_CAPTURE_ENGINE_SINK_TYPE; +enum { + MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_PREVIEW = 0xfffffffa, + MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_RECORD = 0xfffffff9, + MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_PHOTO = 0xfffffff8, + MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_AUDIO = 0xfffffff7, + MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_METADATA = 0xfffffff6, + MF_CAPTURE_ENGINE_MEDIASOURCE = 0xffffffff +}; +typedef enum MF_CAPTURE_ENGINE_STREAM_CATEGORY { + MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_PREVIEW = 0x0, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_CAPTURE = 0x1, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_INDEPENDENT = 0x2, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_DEPENDENT = 0x3, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_AUDIO = 0x4, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_UNSUPPORTED = 0x5, + MF_CAPTURE_ENGINE_STREAM_CATEGORY_METADATA = 0x6 +} MF_CAPTURE_ENGINE_STREAM_CATEGORY; +typedef enum MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE { + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_OTHER = 0, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_COMMUNICATIONS = 1, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_MEDIA = 2, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_GAMECHAT = 3, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_SPEECH = 4, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_FARFIELDSPEECH = 5, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_UNIFORMSPEECH = 6, + MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_VOICETYPING = 7 +} MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE; +typedef enum MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE { + MF_CAPTURE_ENGINE_AUDIO_PROCESSING_DEFAULT = 0, + MF_CAPTURE_ENGINE_AUDIO_PROCESSING_RAW = 1 +} MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE; +EXTERN_GUID(MF_CAPTURE_ENGINE_INITIALIZED, 0x219992bc, 0xcf92, 0x4531, 0xa1, 0xae, 0x96, 0xe1, 0xe8, 0x86, 0xc8, 0xf1); +EXTERN_GUID(MF_CAPTURE_ENGINE_PREVIEW_STARTED, 0xa416df21, 0xf9d3, 0x4a74, 0x99, 0x1b, 0xb8, 0x17, 0x29, 0x89, 0x52, 0xc4); +EXTERN_GUID(MF_CAPTURE_ENGINE_PREVIEW_STOPPED, 0x13d5143c, 0x1edd, 0x4e50,0xa2, 0xef, 0x35, 0x0a, 0x47, 0x67, 0x80, 0x60); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_STARTED, 0xac2b027b, 0xddf9, 0x48a0,0x89, 0xbe, 0x38, 0xab, 0x35, 0xef, 0x45, 0xc0); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_STOPPED, 0x55e5200a, 0xf98f, 0x4c0d, 0xa9, 0xec, 0x9e, 0xb2, 0x5e, 0xd3, 0xd7, 0x73); +EXTERN_GUID(MF_CAPTURE_ENGINE_PHOTO_TAKEN, 0x3c50c445, 0x7304, 0x48eb,0x86, 0x5d, 0xbb, 0xa1, 0x9b, 0xa3, 0xaf, 0x5c); +EXTERN_GUID(MF_CAPTURE_SOURCE_CURRENT_DEVICE_MEDIA_TYPE_SET, 0xe7e75e4c, 0x039c, 0x4410, 0x81, 0x5b, 0x87, 0x41, 0x30, 0x7b, 0x63, 0xaa); +EXTERN_GUID(MF_CAPTURE_ENGINE_ERROR, 0x46b89fc6, 0x33cc, 0x4399,0x9d, 0xad, 0x78, 0x4d, 0xe7, 0x7d, 0x58, 0x7c); +EXTERN_GUID(MF_CAPTURE_ENGINE_EFFECT_ADDED, 0xaa8dc7b5, 0xa048, 0x4e13, 0x8e, 0xbe, 0xf2, 0x3c, 0x46, 0xc8, 0x30, 0xc1); +EXTERN_GUID(MF_CAPTURE_ENGINE_EFFECT_REMOVED, 0xc6e8db07, 0xfb09, 0x4a48, 0x89, 0xc6, 0xbf, 0x92, 0xa0, 0x42, 0x22, 0xc9); +EXTERN_GUID(MF_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED, 0xfded7521, 0x8ed8, 0x431a, 0xa9, 0x6b, 0xf3, 0xe2, 0x56, 0x5e, 0x98, 0x1c); +EXTERN_GUID(MF_CAPTURE_SINK_PREPARED, 0x7bfce257, 0x12b1, 0x4409, 0x8c, 0x34, 0xd4, 0x45, 0xda, 0xab, 0x75, 0x78); +EXTERN_GUID(MF_CAPTURE_ENGINE_OUTPUT_MEDIA_TYPE_SET, 0xcaaad994, 0x83ec, 0x45e9,0xa3, 0x0a, 0x1f, 0x20, 0xaa, 0xdb, 0x98, 0x31); +EXTERN_GUID(MF_CAPTURE_ENGINE_CAMERA_STREAM_BLOCKED, 0xa4209417, 0x8d39, 0x46f3, 0xb7, 0x59, 0x59, 0x12, 0x52, 0x8f, 0x42, 0x07); +EXTERN_GUID(MF_CAPTURE_ENGINE_CAMERA_STREAM_UNBLOCKED, 0x9be9eef0, 0xcdaf, 0x4717, 0x85, 0x64, 0x83, 0x4a, 0xae, 0x66, 0x41, 0x5c); +EXTERN_GUID(MF_CAPTURE_ENGINE_D3D_MANAGER, 0x76e25e7b, 0xd595, 0x4283, 0x96, 0x2c, 0xc5, 0x94, 0xaf, 0xd7, 0x8d, 0xdf); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_UNPROCESSED_SAMPLES, 0xb467f705, 0x7913, 0x4894, 0x9d, 0x42, 0xa2, 0x15, 0xfe, 0xa2, 0x3d, 0xa9); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_UNPROCESSED_SAMPLES, 0x1cddb141, 0xa7f4, 0x4d58, 0x98, 0x96, 0x4d, 0x15, 0xa5, 0x3c, 0x4e, 0xfe); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_PROCESSED_SAMPLES, 0xe7b4a49e, 0x382c, 0x4aef, 0xa9, 0x46, 0xae, 0xd5, 0x49, 0xb, 0x71, 0x11); +EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_PROCESSED_SAMPLES, 0x9896e12a, 0xf707, 0x4500, 0xb6, 0xbd, 0xdb, 0x8e, 0xb8, 0x10, 0xb5, 0xf); +EXTERN_GUID(MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY, 0x1c8077da, 0x8466, 0x4dc4, 0x8b, 0x8e, 0x27, 0x6b, 0x3f, 0x85, 0x92, 0x3b); +EXTERN_GUID(MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY, 0x7e025171, 0xcf32, 0x4f2e, 0x8f, 0x19, 0x41, 0x5, 0x77, 0xb7, 0x3a, 0x66); +EXTERN_GUID(MF_CAPTURE_ENGINE_DISABLE_HARDWARE_TRANSFORMS, 0xb7c42a6b, 0x3207, 0x4495, 0xb4, 0xe7, 0x81, 0xf9, 0xc3, 0x5d, 0x59, 0x91); +EXTERN_GUID(MF_CAPTURE_ENGINE_DISABLE_DXVA, 0xf9818862, 0x179d, 0x433f, 0xa3, 0x2f, 0x74, 0xcb, 0xcf, 0x74, 0x46, 0x6d); +EXTERN_GUID(MF_CAPTURE_ENGINE_MEDIASOURCE_CONFIG, 0xbc6989d2, 0x0fc1, 0x46e1, 0xa7, 0x4f, 0xef, 0xd3, 0x6b, 0xc7, 0x88, 0xde); +EXTERN_GUID(MF_CAPTURE_ENGINE_DECODER_MFT_FIELDOFUSE_UNLOCK_Attribute, 0x2b8ad2e8, 0x7acb, 0x4321, 0xa6, 0x06, 0x32, 0x5c, 0x42, 0x49, 0xf4, 0xfc); +EXTERN_GUID(MF_CAPTURE_ENGINE_ENCODER_MFT_FIELDOFUSE_UNLOCK_Attribute, 0x54c63a00, 0x78d5, 0x422f, 0xaa, 0x3e, 0x5e, 0x99, 0xac, 0x64, 0x92, 0x69); +EXTERN_GUID(MF_CAPTURE_ENGINE_ENABLE_CAMERA_STREAMSTATE_NOTIFICATION, 0x4c808e9d, 0xaaed, 0x4713, 0x90, 0xfb, 0xcb, 0x24, 0x06, 0x4a, 0xb8, 0xda); +EXTERN_GUID(MF_CAPTURE_ENGINE_MEDIA_CATEGORY, 0x8e3f5bd5, 0xdbbf, 0x42f0, 0x85, 0x42, 0xd0, 0x7a, 0x39, 0x71, 0x76, 0x2a); +EXTERN_GUID(MF_CAPTURE_ENGINE_AUDIO_PROCESSING, 0x10f1be5e, 0x7e11, 0x410b, 0x97, 0x3d, 0xf4, 0xb6, 0x10, 0x90, 0x0, 0xfe); +EXTERN_GUID(MF_CAPTURE_ENGINE_EVENT_GENERATOR_GUID, 0xabfa8ad5, 0xfc6d, 0x4911, 0x87, 0xe0, 0x96, 0x19, 0x45, 0xf8, 0xf7, 0xce); +EXTERN_GUID(MF_CAPTURE_ENGINE_EVENT_STREAM_INDEX, 0x82697f44, 0xb1cf, 0x42eb, 0x97, 0x53, 0xf8, 0x6d, 0x64, 0x9c, 0x88, 0x65); +EXTERN_GUID(MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE, 0x03160b7e, 0x1c6f, 0x4db2, 0xad, 0x56, 0xa7, 0xc4, 0x30, 0xf8, 0x23, 0x92); +EXTERN_GUID(MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE_INDEX, 0x3ce88613, 0x2214, 0x46c3, 0xb4, 0x17, 0x82, 0xf8, 0xa3, 0x13, 0xc9, 0xc3); +/***************************************************************************** + * IMFCaptureEngineOnEventCallback interface + */ +#ifndef __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__ +#define __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureEngineOnEventCallback, 0xaeda51c0, 0x9025, 0x4983, 0x90,0x12, 0xde,0x59,0x7b,0x88,0xb0,0x89); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("aeda51c0-9025-4983-9012-de597b88b089") +IMFCaptureEngineOnEventCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnEvent( + IMFMediaEvent *pEvent) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureEngineOnEventCallback, 0xaeda51c0, 0x9025, 0x4983, 0x90,0x12, 0xde,0x59,0x7b,0x88,0xb0,0x89) +#endif +#else +typedef struct IMFCaptureEngineOnEventCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureEngineOnEventCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureEngineOnEventCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureEngineOnEventCallback *This); + + /*** IMFCaptureEngineOnEventCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnEvent)( + IMFCaptureEngineOnEventCallback *This, + IMFMediaEvent *pEvent); + + END_INTERFACE +} IMFCaptureEngineOnEventCallbackVtbl; + +interface IMFCaptureEngineOnEventCallback { + CONST_VTBL IMFCaptureEngineOnEventCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureEngineOnEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureEngineOnEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureEngineOnEventCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureEngineOnEventCallback methods ***/ +#define IMFCaptureEngineOnEventCallback_OnEvent(This,pEvent) (This)->lpVtbl->OnEvent(This,pEvent) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnEventCallback_QueryInterface(IMFCaptureEngineOnEventCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureEngineOnEventCallback_AddRef(IMFCaptureEngineOnEventCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureEngineOnEventCallback_Release(IMFCaptureEngineOnEventCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureEngineOnEventCallback methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnEventCallback_OnEvent(IMFCaptureEngineOnEventCallback* This,IMFMediaEvent *pEvent) { + return This->lpVtbl->OnEvent(This,pEvent); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCaptureEngineOnSampleCallback interface + */ +#ifndef __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__ +#define __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureEngineOnSampleCallback, 0x52150b82, 0xab39, 0x4467, 0x98,0x0f, 0xe4,0x8b,0xf0,0x82,0x2e,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("52150b82-ab39-4467-980f-e48bf0822ecd") +IMFCaptureEngineOnSampleCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnSample( + IMFSample *pSample) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureEngineOnSampleCallback, 0x52150b82, 0xab39, 0x4467, 0x98,0x0f, 0xe4,0x8b,0xf0,0x82,0x2e,0xcd) +#endif +#else +typedef struct IMFCaptureEngineOnSampleCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureEngineOnSampleCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureEngineOnSampleCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureEngineOnSampleCallback *This); + + /*** IMFCaptureEngineOnSampleCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnSample)( + IMFCaptureEngineOnSampleCallback *This, + IMFSample *pSample); + + END_INTERFACE +} IMFCaptureEngineOnSampleCallbackVtbl; + +interface IMFCaptureEngineOnSampleCallback { + CONST_VTBL IMFCaptureEngineOnSampleCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureEngineOnSampleCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureEngineOnSampleCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureEngineOnSampleCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureEngineOnSampleCallback methods ***/ +#define IMFCaptureEngineOnSampleCallback_OnSample(This,pSample) (This)->lpVtbl->OnSample(This,pSample) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback_QueryInterface(IMFCaptureEngineOnSampleCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback_AddRef(IMFCaptureEngineOnSampleCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback_Release(IMFCaptureEngineOnSampleCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureEngineOnSampleCallback methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback_OnSample(IMFCaptureEngineOnSampleCallback* This,IMFSample *pSample) { + return This->lpVtbl->OnSample(This,pSample); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCaptureSink interface + */ +#ifndef __IMFCaptureSink_INTERFACE_DEFINED__ +#define __IMFCaptureSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureSink, 0x72d6135b, 0x35e9, 0x412c, 0xb9,0x26, 0xfd,0x52,0x65,0xf2,0xa8,0x85); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("72d6135b-35e9-412c-b926-fd5265f2a885") +IMFCaptureSink : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetOutputMediaType( + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetService( + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddStream( + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE Prepare( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveAllStreams( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureSink, 0x72d6135b, 0x35e9, 0x412c, 0xb9,0x26, 0xfd,0x52,0x65,0xf2,0xa8,0x85) +#endif +#else +typedef struct IMFCaptureSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureSink *This); + + /*** IMFCaptureSink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)( + IMFCaptureSink *This, + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCaptureSink *This, + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFCaptureSink *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Prepare)( + IMFCaptureSink *This); + + HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)( + IMFCaptureSink *This); + + END_INTERFACE +} IMFCaptureSinkVtbl; + +interface IMFCaptureSink { + CONST_VTBL IMFCaptureSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureSink_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSink methods ***/ +#define IMFCaptureSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) +#define IMFCaptureSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) +#define IMFCaptureSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) +#define IMFCaptureSink_Prepare(This) (This)->lpVtbl->Prepare(This) +#define IMFCaptureSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureSink_QueryInterface(IMFCaptureSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureSink_AddRef(IMFCaptureSink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureSink_Release(IMFCaptureSink* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSink methods ***/ +static FORCEINLINE HRESULT IMFCaptureSink_GetOutputMediaType(IMFCaptureSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCaptureSink_GetService(IMFCaptureSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCaptureSink_AddStream(IMFCaptureSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) { + return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex); +} +static FORCEINLINE HRESULT IMFCaptureSink_Prepare(IMFCaptureSink* This) { + return This->lpVtbl->Prepare(This); +} +static FORCEINLINE HRESULT IMFCaptureSink_RemoveAllStreams(IMFCaptureSink* This) { + return This->lpVtbl->RemoveAllStreams(This); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCaptureRecordSink interface + */ +#ifndef __IMFCaptureRecordSink_INTERFACE_DEFINED__ +#define __IMFCaptureRecordSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureRecordSink, 0x3323b55a, 0xf92a, 0x4fe2, 0x8e,0xdc, 0xe9,0xbf,0xc0,0x63,0x4d,0x77); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3323b55a-f92a-4fe2-8edc-e9bfc0634d77") +IMFCaptureRecordSink : public IMFCaptureSink +{ + virtual HRESULT STDMETHODCALLTYPE SetOutputByteStream( + IMFByteStream *pByteStream, + REFGUID guidContainerType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( + LPCWSTR fileName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSampleCallback( + DWORD dwStreamSinkIndex, + IMFCaptureEngineOnSampleCallback *pCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCustomSink( + IMFMediaSink *pMediaSink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRotation( + DWORD dwStreamIndex, + DWORD *pdwRotationValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRotation( + DWORD dwStreamIndex, + DWORD dwRotationValue) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureRecordSink, 0x3323b55a, 0xf92a, 0x4fe2, 0x8e,0xdc, 0xe9,0xbf,0xc0,0x63,0x4d,0x77) +#endif +#else +typedef struct IMFCaptureRecordSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureRecordSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureRecordSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureRecordSink *This); + + /*** IMFCaptureSink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)( + IMFCaptureRecordSink *This, + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCaptureRecordSink *This, + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFCaptureRecordSink *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Prepare)( + IMFCaptureRecordSink *This); + + HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)( + IMFCaptureRecordSink *This); + + /*** IMFCaptureRecordSink methods ***/ + HRESULT (STDMETHODCALLTYPE *SetOutputByteStream)( + IMFCaptureRecordSink *This, + IMFByteStream *pByteStream, + REFGUID guidContainerType); + + HRESULT (STDMETHODCALLTYPE *SetOutputFileName)( + IMFCaptureRecordSink *This, + LPCWSTR fileName); + + HRESULT (STDMETHODCALLTYPE *SetSampleCallback)( + IMFCaptureRecordSink *This, + DWORD dwStreamSinkIndex, + IMFCaptureEngineOnSampleCallback *pCallback); + + HRESULT (STDMETHODCALLTYPE *SetCustomSink)( + IMFCaptureRecordSink *This, + IMFMediaSink *pMediaSink); + + HRESULT (STDMETHODCALLTYPE *GetRotation)( + IMFCaptureRecordSink *This, + DWORD dwStreamIndex, + DWORD *pdwRotationValue); + + HRESULT (STDMETHODCALLTYPE *SetRotation)( + IMFCaptureRecordSink *This, + DWORD dwStreamIndex, + DWORD dwRotationValue); + + END_INTERFACE +} IMFCaptureRecordSinkVtbl; + +interface IMFCaptureRecordSink { + CONST_VTBL IMFCaptureRecordSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureRecordSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureRecordSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureRecordSink_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSink methods ***/ +#define IMFCaptureRecordSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) +#define IMFCaptureRecordSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) +#define IMFCaptureRecordSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) +#define IMFCaptureRecordSink_Prepare(This) (This)->lpVtbl->Prepare(This) +#define IMFCaptureRecordSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This) +/*** IMFCaptureRecordSink methods ***/ +#define IMFCaptureRecordSink_SetOutputByteStream(This,pByteStream,guidContainerType) (This)->lpVtbl->SetOutputByteStream(This,pByteStream,guidContainerType) +#define IMFCaptureRecordSink_SetOutputFileName(This,fileName) (This)->lpVtbl->SetOutputFileName(This,fileName) +#define IMFCaptureRecordSink_SetSampleCallback(This,dwStreamSinkIndex,pCallback) (This)->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback) +#define IMFCaptureRecordSink_SetCustomSink(This,pMediaSink) (This)->lpVtbl->SetCustomSink(This,pMediaSink) +#define IMFCaptureRecordSink_GetRotation(This,dwStreamIndex,pdwRotationValue) (This)->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue) +#define IMFCaptureRecordSink_SetRotation(This,dwStreamIndex,dwRotationValue) (This)->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureRecordSink_QueryInterface(IMFCaptureRecordSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureRecordSink_AddRef(IMFCaptureRecordSink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureRecordSink_Release(IMFCaptureRecordSink* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSink methods ***/ +static FORCEINLINE HRESULT IMFCaptureRecordSink_GetOutputMediaType(IMFCaptureRecordSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_GetService(IMFCaptureRecordSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_AddStream(IMFCaptureRecordSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) { + return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_Prepare(IMFCaptureRecordSink* This) { + return This->lpVtbl->Prepare(This); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_RemoveAllStreams(IMFCaptureRecordSink* This) { + return This->lpVtbl->RemoveAllStreams(This); +} +/*** IMFCaptureRecordSink methods ***/ +static FORCEINLINE HRESULT IMFCaptureRecordSink_SetOutputByteStream(IMFCaptureRecordSink* This,IMFByteStream *pByteStream,REFGUID guidContainerType) { + return This->lpVtbl->SetOutputByteStream(This,pByteStream,guidContainerType); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_SetOutputFileName(IMFCaptureRecordSink* This,LPCWSTR fileName) { + return This->lpVtbl->SetOutputFileName(This,fileName); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_SetSampleCallback(IMFCaptureRecordSink* This,DWORD dwStreamSinkIndex,IMFCaptureEngineOnSampleCallback *pCallback) { + return This->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_SetCustomSink(IMFCaptureRecordSink* This,IMFMediaSink *pMediaSink) { + return This->lpVtbl->SetCustomSink(This,pMediaSink); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_GetRotation(IMFCaptureRecordSink* This,DWORD dwStreamIndex,DWORD *pdwRotationValue) { + return This->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue); +} +static FORCEINLINE HRESULT IMFCaptureRecordSink_SetRotation(IMFCaptureRecordSink* This,DWORD dwStreamIndex,DWORD dwRotationValue) { + return This->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureRecordSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCapturePreviewSink interface + */ +#ifndef __IMFCapturePreviewSink_INTERFACE_DEFINED__ +#define __IMFCapturePreviewSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCapturePreviewSink, 0x77346cfd, 0x5b49, 0x4d73, 0xac,0xe0, 0x5b,0x52,0xa8,0x59,0xf2,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("77346cfd-5b49-4d73-ace0-5b52a859f2e0") +IMFCapturePreviewSink : public IMFCaptureSink +{ + virtual HRESULT STDMETHODCALLTYPE SetRenderHandle( + HANDLE handle) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRenderSurface( + IUnknown *pSurface) = 0; + + virtual HRESULT STDMETHODCALLTYPE UpdateVideo( + const MFVideoNormalizedRect *pSrc, + const RECT *pDst, + const COLORREF *pBorderClr) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSampleCallback( + DWORD dwStreamSinkIndex, + IMFCaptureEngineOnSampleCallback *pCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMirrorState( + WINBOOL *pfMirrorState) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMirrorState( + WINBOOL fMirrorState) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRotation( + DWORD dwStreamIndex, + DWORD *pdwRotationValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRotation( + DWORD dwStreamIndex, + DWORD dwRotationValue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCustomSink( + IMFMediaSink *pMediaSink) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCapturePreviewSink, 0x77346cfd, 0x5b49, 0x4d73, 0xac,0xe0, 0x5b,0x52,0xa8,0x59,0xf2,0xe0) +#endif +#else +typedef struct IMFCapturePreviewSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCapturePreviewSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCapturePreviewSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCapturePreviewSink *This); + + /*** IMFCaptureSink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)( + IMFCapturePreviewSink *This, + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCapturePreviewSink *This, + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFCapturePreviewSink *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Prepare)( + IMFCapturePreviewSink *This); + + HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)( + IMFCapturePreviewSink *This); + + /*** IMFCapturePreviewSink methods ***/ + HRESULT (STDMETHODCALLTYPE *SetRenderHandle)( + IMFCapturePreviewSink *This, + HANDLE handle); + + HRESULT (STDMETHODCALLTYPE *SetRenderSurface)( + IMFCapturePreviewSink *This, + IUnknown *pSurface); + + HRESULT (STDMETHODCALLTYPE *UpdateVideo)( + IMFCapturePreviewSink *This, + const MFVideoNormalizedRect *pSrc, + const RECT *pDst, + const COLORREF *pBorderClr); + + HRESULT (STDMETHODCALLTYPE *SetSampleCallback)( + IMFCapturePreviewSink *This, + DWORD dwStreamSinkIndex, + IMFCaptureEngineOnSampleCallback *pCallback); + + HRESULT (STDMETHODCALLTYPE *GetMirrorState)( + IMFCapturePreviewSink *This, + WINBOOL *pfMirrorState); + + HRESULT (STDMETHODCALLTYPE *SetMirrorState)( + IMFCapturePreviewSink *This, + WINBOOL fMirrorState); + + HRESULT (STDMETHODCALLTYPE *GetRotation)( + IMFCapturePreviewSink *This, + DWORD dwStreamIndex, + DWORD *pdwRotationValue); + + HRESULT (STDMETHODCALLTYPE *SetRotation)( + IMFCapturePreviewSink *This, + DWORD dwStreamIndex, + DWORD dwRotationValue); + + HRESULT (STDMETHODCALLTYPE *SetCustomSink)( + IMFCapturePreviewSink *This, + IMFMediaSink *pMediaSink); + + END_INTERFACE +} IMFCapturePreviewSinkVtbl; + +interface IMFCapturePreviewSink { + CONST_VTBL IMFCapturePreviewSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCapturePreviewSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCapturePreviewSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCapturePreviewSink_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSink methods ***/ +#define IMFCapturePreviewSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) +#define IMFCapturePreviewSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) +#define IMFCapturePreviewSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) +#define IMFCapturePreviewSink_Prepare(This) (This)->lpVtbl->Prepare(This) +#define IMFCapturePreviewSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This) +/*** IMFCapturePreviewSink methods ***/ +#define IMFCapturePreviewSink_SetRenderHandle(This,handle) (This)->lpVtbl->SetRenderHandle(This,handle) +#define IMFCapturePreviewSink_SetRenderSurface(This,pSurface) (This)->lpVtbl->SetRenderSurface(This,pSurface) +#define IMFCapturePreviewSink_UpdateVideo(This,pSrc,pDst,pBorderClr) (This)->lpVtbl->UpdateVideo(This,pSrc,pDst,pBorderClr) +#define IMFCapturePreviewSink_SetSampleCallback(This,dwStreamSinkIndex,pCallback) (This)->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback) +#define IMFCapturePreviewSink_GetMirrorState(This,pfMirrorState) (This)->lpVtbl->GetMirrorState(This,pfMirrorState) +#define IMFCapturePreviewSink_SetMirrorState(This,fMirrorState) (This)->lpVtbl->SetMirrorState(This,fMirrorState) +#define IMFCapturePreviewSink_GetRotation(This,dwStreamIndex,pdwRotationValue) (This)->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue) +#define IMFCapturePreviewSink_SetRotation(This,dwStreamIndex,dwRotationValue) (This)->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue) +#define IMFCapturePreviewSink_SetCustomSink(This,pMediaSink) (This)->lpVtbl->SetCustomSink(This,pMediaSink) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCapturePreviewSink_QueryInterface(IMFCapturePreviewSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCapturePreviewSink_AddRef(IMFCapturePreviewSink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCapturePreviewSink_Release(IMFCapturePreviewSink* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSink methods ***/ +static FORCEINLINE HRESULT IMFCapturePreviewSink_GetOutputMediaType(IMFCapturePreviewSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_GetService(IMFCapturePreviewSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_AddStream(IMFCapturePreviewSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) { + return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_Prepare(IMFCapturePreviewSink* This) { + return This->lpVtbl->Prepare(This); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_RemoveAllStreams(IMFCapturePreviewSink* This) { + return This->lpVtbl->RemoveAllStreams(This); +} +/*** IMFCapturePreviewSink methods ***/ +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRenderHandle(IMFCapturePreviewSink* This,HANDLE handle) { + return This->lpVtbl->SetRenderHandle(This,handle); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRenderSurface(IMFCapturePreviewSink* This,IUnknown *pSurface) { + return This->lpVtbl->SetRenderSurface(This,pSurface); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_UpdateVideo(IMFCapturePreviewSink* This,const MFVideoNormalizedRect *pSrc,const RECT *pDst,const COLORREF *pBorderClr) { + return This->lpVtbl->UpdateVideo(This,pSrc,pDst,pBorderClr); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetSampleCallback(IMFCapturePreviewSink* This,DWORD dwStreamSinkIndex,IMFCaptureEngineOnSampleCallback *pCallback) { + return This->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_GetMirrorState(IMFCapturePreviewSink* This,WINBOOL *pfMirrorState) { + return This->lpVtbl->GetMirrorState(This,pfMirrorState); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetMirrorState(IMFCapturePreviewSink* This,WINBOOL fMirrorState) { + return This->lpVtbl->SetMirrorState(This,fMirrorState); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_GetRotation(IMFCapturePreviewSink* This,DWORD dwStreamIndex,DWORD *pdwRotationValue) { + return This->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRotation(IMFCapturePreviewSink* This,DWORD dwStreamIndex,DWORD dwRotationValue) { + return This->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue); +} +static FORCEINLINE HRESULT IMFCapturePreviewSink_SetCustomSink(IMFCapturePreviewSink* This,IMFMediaSink *pMediaSink) { + return This->lpVtbl->SetCustomSink(This,pMediaSink); +} +#endif +#endif + +#endif + + +#endif /* __IMFCapturePreviewSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCapturePhotoSink interface + */ +#ifndef __IMFCapturePhotoSink_INTERFACE_DEFINED__ +#define __IMFCapturePhotoSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCapturePhotoSink, 0xd2d43cc8, 0x48bb, 0x4aa7, 0x95,0xdb, 0x10,0xc0,0x69,0x77,0xe7,0x77); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d2d43cc8-48bb-4aa7-95db-10c06977e777") +IMFCapturePhotoSink : public IMFCaptureSink +{ + virtual HRESULT STDMETHODCALLTYPE SetOutputFileName( + LPCWSTR fileName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSampleCallback( + IMFCaptureEngineOnSampleCallback *pCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputByteStream( + IMFByteStream *pByteStream) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCapturePhotoSink, 0xd2d43cc8, 0x48bb, 0x4aa7, 0x95,0xdb, 0x10,0xc0,0x69,0x77,0xe7,0x77) +#endif +#else +typedef struct IMFCapturePhotoSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCapturePhotoSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCapturePhotoSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCapturePhotoSink *This); + + /*** IMFCaptureSink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)( + IMFCapturePhotoSink *This, + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCapturePhotoSink *This, + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFCapturePhotoSink *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Prepare)( + IMFCapturePhotoSink *This); + + HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)( + IMFCapturePhotoSink *This); + + /*** IMFCapturePhotoSink methods ***/ + HRESULT (STDMETHODCALLTYPE *SetOutputFileName)( + IMFCapturePhotoSink *This, + LPCWSTR fileName); + + HRESULT (STDMETHODCALLTYPE *SetSampleCallback)( + IMFCapturePhotoSink *This, + IMFCaptureEngineOnSampleCallback *pCallback); + + HRESULT (STDMETHODCALLTYPE *SetOutputByteStream)( + IMFCapturePhotoSink *This, + IMFByteStream *pByteStream); + + END_INTERFACE +} IMFCapturePhotoSinkVtbl; + +interface IMFCapturePhotoSink { + CONST_VTBL IMFCapturePhotoSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCapturePhotoSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCapturePhotoSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCapturePhotoSink_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSink methods ***/ +#define IMFCapturePhotoSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) +#define IMFCapturePhotoSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) +#define IMFCapturePhotoSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) +#define IMFCapturePhotoSink_Prepare(This) (This)->lpVtbl->Prepare(This) +#define IMFCapturePhotoSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This) +/*** IMFCapturePhotoSink methods ***/ +#define IMFCapturePhotoSink_SetOutputFileName(This,fileName) (This)->lpVtbl->SetOutputFileName(This,fileName) +#define IMFCapturePhotoSink_SetSampleCallback(This,pCallback) (This)->lpVtbl->SetSampleCallback(This,pCallback) +#define IMFCapturePhotoSink_SetOutputByteStream(This,pByteStream) (This)->lpVtbl->SetOutputByteStream(This,pByteStream) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCapturePhotoSink_QueryInterface(IMFCapturePhotoSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCapturePhotoSink_AddRef(IMFCapturePhotoSink* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCapturePhotoSink_Release(IMFCapturePhotoSink* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSink methods ***/ +static FORCEINLINE HRESULT IMFCapturePhotoSink_GetOutputMediaType(IMFCapturePhotoSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_GetService(IMFCapturePhotoSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_AddStream(IMFCapturePhotoSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) { + return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_Prepare(IMFCapturePhotoSink* This) { + return This->lpVtbl->Prepare(This); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_RemoveAllStreams(IMFCapturePhotoSink* This) { + return This->lpVtbl->RemoveAllStreams(This); +} +/*** IMFCapturePhotoSink methods ***/ +static FORCEINLINE HRESULT IMFCapturePhotoSink_SetOutputFileName(IMFCapturePhotoSink* This,LPCWSTR fileName) { + return This->lpVtbl->SetOutputFileName(This,fileName); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_SetSampleCallback(IMFCapturePhotoSink* This,IMFCaptureEngineOnSampleCallback *pCallback) { + return This->lpVtbl->SetSampleCallback(This,pCallback); +} +static FORCEINLINE HRESULT IMFCapturePhotoSink_SetOutputByteStream(IMFCapturePhotoSink* This,IMFByteStream *pByteStream) { + return This->lpVtbl->SetOutputByteStream(This,pByteStream); +} +#endif +#endif + +#endif + + +#endif /* __IMFCapturePhotoSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCaptureSource interface + */ +#ifndef __IMFCaptureSource_INTERFACE_DEFINED__ +#define __IMFCaptureSource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureSource, 0x439a42a8, 0x0d2c, 0x4505, 0xbe,0x83, 0xf7,0x9b,0x2a,0x05,0xd5,0xc4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("439a42a8-0d2c-4505-be83-f79b2a05d5c4") +IMFCaptureSource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetCaptureDeviceSource( + MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType, + IMFMediaSource **ppMediaSource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCaptureDeviceActivate( + MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType, + IMFActivate **ppActivate) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetService( + REFIID rguidService, + REFIID riid, + IUnknown **ppUnknown) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddEffect( + DWORD dwSourceStreamIndex, + IUnknown *pUnknown) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveEffect( + DWORD dwSourceStreamIndex, + IUnknown *pUnknown) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveAllEffects( + DWORD dwSourceStreamIndex) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAvailableDeviceMediaType( + DWORD dwSourceStreamIndex, + DWORD dwMediaTypeIndex, + IMFMediaType **ppMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCurrentDeviceMediaType( + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentDeviceMediaType( + DWORD dwSourceStreamIndex, + IMFMediaType **ppMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceStreamCount( + DWORD *pdwStreamCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDeviceStreamCategory( + DWORD dwSourceStreamIndex, + MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMirrorState( + DWORD dwStreamIndex, + WINBOOL *pfMirrorState) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMirrorState( + DWORD dwStreamIndex, + WINBOOL fMirrorState) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamIndexFromFriendlyName( + UINT32 uifriendlyName, + DWORD *pdwActualStreamIndex) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureSource, 0x439a42a8, 0x0d2c, 0x4505, 0xbe,0x83, 0xf7,0x9b,0x2a,0x05,0xd5,0xc4) +#endif +#else +typedef struct IMFCaptureSourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureSource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureSource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureSource *This); + + /*** IMFCaptureSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCaptureDeviceSource)( + IMFCaptureSource *This, + MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType, + IMFMediaSource **ppMediaSource); + + HRESULT (STDMETHODCALLTYPE *GetCaptureDeviceActivate)( + IMFCaptureSource *This, + MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType, + IMFActivate **ppActivate); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCaptureSource *This, + REFIID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddEffect)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + IUnknown *pUnknown); + + HRESULT (STDMETHODCALLTYPE *RemoveEffect)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + IUnknown *pUnknown); + + HRESULT (STDMETHODCALLTYPE *RemoveAllEffects)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex); + + HRESULT (STDMETHODCALLTYPE *GetAvailableDeviceMediaType)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + DWORD dwMediaTypeIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *SetCurrentDeviceMediaType)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType); + + HRESULT (STDMETHODCALLTYPE *GetCurrentDeviceMediaType)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetDeviceStreamCount)( + IMFCaptureSource *This, + DWORD *pdwStreamCount); + + HRESULT (STDMETHODCALLTYPE *GetDeviceStreamCategory)( + IMFCaptureSource *This, + DWORD dwSourceStreamIndex, + MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory); + + HRESULT (STDMETHODCALLTYPE *GetMirrorState)( + IMFCaptureSource *This, + DWORD dwStreamIndex, + WINBOOL *pfMirrorState); + + HRESULT (STDMETHODCALLTYPE *SetMirrorState)( + IMFCaptureSource *This, + DWORD dwStreamIndex, + WINBOOL fMirrorState); + + HRESULT (STDMETHODCALLTYPE *GetStreamIndexFromFriendlyName)( + IMFCaptureSource *This, + UINT32 uifriendlyName, + DWORD *pdwActualStreamIndex); + + END_INTERFACE +} IMFCaptureSourceVtbl; + +interface IMFCaptureSource { + CONST_VTBL IMFCaptureSourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureSource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureSource_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSource methods ***/ +#define IMFCaptureSource_GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource) (This)->lpVtbl->GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource) +#define IMFCaptureSource_GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate) (This)->lpVtbl->GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate) +#define IMFCaptureSource_GetService(This,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,rguidService,riid,ppUnknown) +#define IMFCaptureSource_AddEffect(This,dwSourceStreamIndex,pUnknown) (This)->lpVtbl->AddEffect(This,dwSourceStreamIndex,pUnknown) +#define IMFCaptureSource_RemoveEffect(This,dwSourceStreamIndex,pUnknown) (This)->lpVtbl->RemoveEffect(This,dwSourceStreamIndex,pUnknown) +#define IMFCaptureSource_RemoveAllEffects(This,dwSourceStreamIndex) (This)->lpVtbl->RemoveAllEffects(This,dwSourceStreamIndex) +#define IMFCaptureSource_GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType) (This)->lpVtbl->GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType) +#define IMFCaptureSource_SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType) (This)->lpVtbl->SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType) +#define IMFCaptureSource_GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType) (This)->lpVtbl->GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType) +#define IMFCaptureSource_GetDeviceStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetDeviceStreamCount(This,pdwStreamCount) +#define IMFCaptureSource_GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory) (This)->lpVtbl->GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory) +#define IMFCaptureSource_GetMirrorState(This,dwStreamIndex,pfMirrorState) (This)->lpVtbl->GetMirrorState(This,dwStreamIndex,pfMirrorState) +#define IMFCaptureSource_SetMirrorState(This,dwStreamIndex,fMirrorState) (This)->lpVtbl->SetMirrorState(This,dwStreamIndex,fMirrorState) +#define IMFCaptureSource_GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex) (This)->lpVtbl->GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureSource_QueryInterface(IMFCaptureSource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureSource_AddRef(IMFCaptureSource* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureSource_Release(IMFCaptureSource* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSource methods ***/ +static FORCEINLINE HRESULT IMFCaptureSource_GetCaptureDeviceSource(IMFCaptureSource* This,MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,IMFMediaSource **ppMediaSource) { + return This->lpVtbl->GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetCaptureDeviceActivate(IMFCaptureSource* This,MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,IMFActivate **ppActivate) { + return This->lpVtbl->GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetService(IMFCaptureSource* This,REFIID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCaptureSource_AddEffect(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IUnknown *pUnknown) { + return This->lpVtbl->AddEffect(This,dwSourceStreamIndex,pUnknown); +} +static FORCEINLINE HRESULT IMFCaptureSource_RemoveEffect(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IUnknown *pUnknown) { + return This->lpVtbl->RemoveEffect(This,dwSourceStreamIndex,pUnknown); +} +static FORCEINLINE HRESULT IMFCaptureSource_RemoveAllEffects(IMFCaptureSource* This,DWORD dwSourceStreamIndex) { + return This->lpVtbl->RemoveAllEffects(This,dwSourceStreamIndex); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetAvailableDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,DWORD dwMediaTypeIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCaptureSource_SetCurrentDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType) { + return This->lpVtbl->SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetCurrentDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetDeviceStreamCount(IMFCaptureSource* This,DWORD *pdwStreamCount) { + return This->lpVtbl->GetDeviceStreamCount(This,pdwStreamCount); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetDeviceStreamCategory(IMFCaptureSource* This,DWORD dwSourceStreamIndex,MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory) { + return This->lpVtbl->GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetMirrorState(IMFCaptureSource* This,DWORD dwStreamIndex,WINBOOL *pfMirrorState) { + return This->lpVtbl->GetMirrorState(This,dwStreamIndex,pfMirrorState); +} +static FORCEINLINE HRESULT IMFCaptureSource_SetMirrorState(IMFCaptureSource* This,DWORD dwStreamIndex,WINBOOL fMirrorState) { + return This->lpVtbl->SetMirrorState(This,dwStreamIndex,fMirrorState); +} +static FORCEINLINE HRESULT IMFCaptureSource_GetStreamIndexFromFriendlyName(IMFCaptureSource* This,UINT32 uifriendlyName,DWORD *pdwActualStreamIndex) { + return This->lpVtbl->GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureSource_INTERFACE_DEFINED__ */ + +EXTERN_GUID(CLSID_MFCaptureEngine, 0xefce38d3, 0x8914, 0x4674,0xa7, 0xdf, 0xae, 0x1b, 0x3d, 0x65, 0x4b, 0x8a); +/***************************************************************************** + * IMFCaptureEngine interface + */ +#ifndef __IMFCaptureEngine_INTERFACE_DEFINED__ +#define __IMFCaptureEngine_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureEngine, 0xa6bba433, 0x176b, 0x48b2, 0xb3,0x75, 0x53,0xaa,0x03,0x47,0x32,0x07); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a6bba433-176b-48b2-b375-53aa03473207") +IMFCaptureEngine : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IMFCaptureEngineOnEventCallback *pEventCallback, + IMFAttributes *pAttributes, + IUnknown *pAudioSource, + IUnknown *pVideoSource) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartPreview( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopPreview( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartRecord( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE StopRecord( + WINBOOL bFinalize, + WINBOOL bFlushUnprocessedSamples) = 0; + + virtual HRESULT STDMETHODCALLTYPE TakePhoto( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSink( + MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType, + IMFCaptureSink **ppSink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSource( + IMFCaptureSource **ppSource) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureEngine, 0xa6bba433, 0x176b, 0x48b2, 0xb3,0x75, 0x53,0xaa,0x03,0x47,0x32,0x07) +#endif +#else +typedef struct IMFCaptureEngineVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureEngine *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureEngine *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureEngine *This); + + /*** IMFCaptureEngine methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IMFCaptureEngine *This, + IMFCaptureEngineOnEventCallback *pEventCallback, + IMFAttributes *pAttributes, + IUnknown *pAudioSource, + IUnknown *pVideoSource); + + HRESULT (STDMETHODCALLTYPE *StartPreview)( + IMFCaptureEngine *This); + + HRESULT (STDMETHODCALLTYPE *StopPreview)( + IMFCaptureEngine *This); + + HRESULT (STDMETHODCALLTYPE *StartRecord)( + IMFCaptureEngine *This); + + HRESULT (STDMETHODCALLTYPE *StopRecord)( + IMFCaptureEngine *This, + WINBOOL bFinalize, + WINBOOL bFlushUnprocessedSamples); + + HRESULT (STDMETHODCALLTYPE *TakePhoto)( + IMFCaptureEngine *This); + + HRESULT (STDMETHODCALLTYPE *GetSink)( + IMFCaptureEngine *This, + MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType, + IMFCaptureSink **ppSink); + + HRESULT (STDMETHODCALLTYPE *GetSource)( + IMFCaptureEngine *This, + IMFCaptureSource **ppSource); + + END_INTERFACE +} IMFCaptureEngineVtbl; + +interface IMFCaptureEngine { + CONST_VTBL IMFCaptureEngineVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureEngine_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureEngine_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureEngine_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureEngine methods ***/ +#define IMFCaptureEngine_Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource) (This)->lpVtbl->Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource) +#define IMFCaptureEngine_StartPreview(This) (This)->lpVtbl->StartPreview(This) +#define IMFCaptureEngine_StopPreview(This) (This)->lpVtbl->StopPreview(This) +#define IMFCaptureEngine_StartRecord(This) (This)->lpVtbl->StartRecord(This) +#define IMFCaptureEngine_StopRecord(This,bFinalize,bFlushUnprocessedSamples) (This)->lpVtbl->StopRecord(This,bFinalize,bFlushUnprocessedSamples) +#define IMFCaptureEngine_TakePhoto(This) (This)->lpVtbl->TakePhoto(This) +#define IMFCaptureEngine_GetSink(This,mfCaptureEngineSinkType,ppSink) (This)->lpVtbl->GetSink(This,mfCaptureEngineSinkType,ppSink) +#define IMFCaptureEngine_GetSource(This,ppSource) (This)->lpVtbl->GetSource(This,ppSource) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngine_QueryInterface(IMFCaptureEngine* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureEngine_AddRef(IMFCaptureEngine* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureEngine_Release(IMFCaptureEngine* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureEngine methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngine_Initialize(IMFCaptureEngine* This,IMFCaptureEngineOnEventCallback *pEventCallback,IMFAttributes *pAttributes,IUnknown *pAudioSource,IUnknown *pVideoSource) { + return This->lpVtbl->Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource); +} +static FORCEINLINE HRESULT IMFCaptureEngine_StartPreview(IMFCaptureEngine* This) { + return This->lpVtbl->StartPreview(This); +} +static FORCEINLINE HRESULT IMFCaptureEngine_StopPreview(IMFCaptureEngine* This) { + return This->lpVtbl->StopPreview(This); +} +static FORCEINLINE HRESULT IMFCaptureEngine_StartRecord(IMFCaptureEngine* This) { + return This->lpVtbl->StartRecord(This); +} +static FORCEINLINE HRESULT IMFCaptureEngine_StopRecord(IMFCaptureEngine* This,WINBOOL bFinalize,WINBOOL bFlushUnprocessedSamples) { + return This->lpVtbl->StopRecord(This,bFinalize,bFlushUnprocessedSamples); +} +static FORCEINLINE HRESULT IMFCaptureEngine_TakePhoto(IMFCaptureEngine* This) { + return This->lpVtbl->TakePhoto(This); +} +static FORCEINLINE HRESULT IMFCaptureEngine_GetSink(IMFCaptureEngine* This,MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType,IMFCaptureSink **ppSink) { + return This->lpVtbl->GetSink(This,mfCaptureEngineSinkType,ppSink); +} +static FORCEINLINE HRESULT IMFCaptureEngine_GetSource(IMFCaptureEngine* This,IMFCaptureSource **ppSource) { + return This->lpVtbl->GetSource(This,ppSource); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureEngine_INTERFACE_DEFINED__ */ + +EXTERN_GUID(CLSID_MFCaptureEngineClassFactory, 0xefce38d3, 0x8914, 0x4674,0xa7, 0xdf, 0xae, 0x1b, 0x3d, 0x65, 0x4b, 0x8a); +/***************************************************************************** + * IMFCaptureEngineClassFactory interface + */ +#ifndef __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__ +#define __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureEngineClassFactory, 0x8f02d140, 0x56fc, 0x4302, 0xa7,0x05, 0x3a,0x97,0xc7,0x8b,0xe7,0x79); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8f02d140-56fc-4302-a705-3a97c78be779") +IMFCaptureEngineClassFactory : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateInstance( + REFCLSID clsid, + REFIID riid, + LPVOID *ppvObject) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureEngineClassFactory, 0x8f02d140, 0x56fc, 0x4302, 0xa7,0x05, 0x3a,0x97,0xc7,0x8b,0xe7,0x79) +#endif +#else +typedef struct IMFCaptureEngineClassFactoryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureEngineClassFactory *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureEngineClassFactory *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureEngineClassFactory *This); + + /*** IMFCaptureEngineClassFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateInstance)( + IMFCaptureEngineClassFactory *This, + REFCLSID clsid, + REFIID riid, + LPVOID *ppvObject); + + END_INTERFACE +} IMFCaptureEngineClassFactoryVtbl; + +interface IMFCaptureEngineClassFactory { + CONST_VTBL IMFCaptureEngineClassFactoryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureEngineClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureEngineClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureEngineClassFactory_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureEngineClassFactory methods ***/ +#define IMFCaptureEngineClassFactory_CreateInstance(This,clsid,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,clsid,riid,ppvObject) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineClassFactory_QueryInterface(IMFCaptureEngineClassFactory* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureEngineClassFactory_AddRef(IMFCaptureEngineClassFactory* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureEngineClassFactory_Release(IMFCaptureEngineClassFactory* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureEngineClassFactory methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineClassFactory_CreateInstance(IMFCaptureEngineClassFactory* This,REFCLSID clsid,REFIID riid,LPVOID *ppvObject) { + return This->lpVtbl->CreateInstance(This,clsid,riid,ppvObject); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__ */ + +EXTERN_GUID(MFSampleExtension_DeviceReferenceSystemTime, 0x6523775a, 0xba2d, 0x405f,0xb2, 0xc5, 0x01, 0xff, 0x88, 0xe2, 0xe8, 0xf6); +/***************************************************************************** + * IMFCaptureEngineOnSampleCallback2 interface + */ +#ifndef __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__ +#define __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureEngineOnSampleCallback2, 0xe37ceed7, 0x340f, 0x4514, 0x9f,0x4d, 0x9c,0x2a,0xe0,0x26,0x10,0x0b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e37ceed7-340f-4514-9f4d-9c2ae026100b") +IMFCaptureEngineOnSampleCallback2 : public IMFCaptureEngineOnSampleCallback +{ + virtual HRESULT STDMETHODCALLTYPE OnSynchronizedEvent( + IMFMediaEvent *pEvent) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureEngineOnSampleCallback2, 0xe37ceed7, 0x340f, 0x4514, 0x9f,0x4d, 0x9c,0x2a,0xe0,0x26,0x10,0x0b) +#endif +#else +typedef struct IMFCaptureEngineOnSampleCallback2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureEngineOnSampleCallback2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureEngineOnSampleCallback2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureEngineOnSampleCallback2 *This); + + /*** IMFCaptureEngineOnSampleCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnSample)( + IMFCaptureEngineOnSampleCallback2 *This, + IMFSample *pSample); + + /*** IMFCaptureEngineOnSampleCallback2 methods ***/ + HRESULT (STDMETHODCALLTYPE *OnSynchronizedEvent)( + IMFCaptureEngineOnSampleCallback2 *This, + IMFMediaEvent *pEvent); + + END_INTERFACE +} IMFCaptureEngineOnSampleCallback2Vtbl; + +interface IMFCaptureEngineOnSampleCallback2 { + CONST_VTBL IMFCaptureEngineOnSampleCallback2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureEngineOnSampleCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureEngineOnSampleCallback2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureEngineOnSampleCallback2_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureEngineOnSampleCallback methods ***/ +#define IMFCaptureEngineOnSampleCallback2_OnSample(This,pSample) (This)->lpVtbl->OnSample(This,pSample) +/*** IMFCaptureEngineOnSampleCallback2 methods ***/ +#define IMFCaptureEngineOnSampleCallback2_OnSynchronizedEvent(This,pEvent) (This)->lpVtbl->OnSynchronizedEvent(This,pEvent) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_QueryInterface(IMFCaptureEngineOnSampleCallback2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback2_AddRef(IMFCaptureEngineOnSampleCallback2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback2_Release(IMFCaptureEngineOnSampleCallback2* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureEngineOnSampleCallback methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_OnSample(IMFCaptureEngineOnSampleCallback2* This,IMFSample *pSample) { + return This->lpVtbl->OnSample(This,pSample); +} +/*** IMFCaptureEngineOnSampleCallback2 methods ***/ +static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_OnSynchronizedEvent(IMFCaptureEngineOnSampleCallback2* This,IMFMediaEvent *pEvent) { + return This->lpVtbl->OnSynchronizedEvent(This,pEvent); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFCaptureSink2 interface + */ +#ifndef __IMFCaptureSink2_INTERFACE_DEFINED__ +#define __IMFCaptureSink2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFCaptureSink2, 0xf9e4219e, 0x6197, 0x4b5e, 0xb8,0x88, 0xbe,0xe3,0x10,0xab,0x2c,0x59); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f9e4219e-6197-4b5e-b888-bee310ab2c59") +IMFCaptureSink2 : public IMFCaptureSink +{ + virtual HRESULT STDMETHODCALLTYPE SetOutputMediaType( + DWORD dwStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pEncodingAttributes) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFCaptureSink2, 0xf9e4219e, 0x6197, 0x4b5e, 0xb8,0x88, 0xbe,0xe3,0x10,0xab,0x2c,0x59) +#endif +#else +typedef struct IMFCaptureSink2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFCaptureSink2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFCaptureSink2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFCaptureSink2 *This); + + /*** IMFCaptureSink methods ***/ + HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)( + IMFCaptureSink2 *This, + DWORD dwSinkStreamIndex, + IMFMediaType **ppMediaType); + + HRESULT (STDMETHODCALLTYPE *GetService)( + IMFCaptureSink2 *This, + DWORD dwSinkStreamIndex, + REFGUID rguidService, + REFIID riid, + IUnknown **ppUnknown); + + HRESULT (STDMETHODCALLTYPE *AddStream)( + IMFCaptureSink2 *This, + DWORD dwSourceStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pAttributes, + DWORD *pdwSinkStreamIndex); + + HRESULT (STDMETHODCALLTYPE *Prepare)( + IMFCaptureSink2 *This); + + HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)( + IMFCaptureSink2 *This); + + /*** IMFCaptureSink2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetOutputMediaType)( + IMFCaptureSink2 *This, + DWORD dwStreamIndex, + IMFMediaType *pMediaType, + IMFAttributes *pEncodingAttributes); + + END_INTERFACE +} IMFCaptureSink2Vtbl; + +interface IMFCaptureSink2 { + CONST_VTBL IMFCaptureSink2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFCaptureSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFCaptureSink2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFCaptureSink2_Release(This) (This)->lpVtbl->Release(This) +/*** IMFCaptureSink methods ***/ +#define IMFCaptureSink2_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) +#define IMFCaptureSink2_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) +#define IMFCaptureSink2_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) +#define IMFCaptureSink2_Prepare(This) (This)->lpVtbl->Prepare(This) +#define IMFCaptureSink2_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This) +/*** IMFCaptureSink2 methods ***/ +#define IMFCaptureSink2_SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes) (This)->lpVtbl->SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFCaptureSink2_QueryInterface(IMFCaptureSink2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFCaptureSink2_AddRef(IMFCaptureSink2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFCaptureSink2_Release(IMFCaptureSink2* This) { + return This->lpVtbl->Release(This); +} +/*** IMFCaptureSink methods ***/ +static FORCEINLINE HRESULT IMFCaptureSink2_GetOutputMediaType(IMFCaptureSink2* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) { + return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType); +} +static FORCEINLINE HRESULT IMFCaptureSink2_GetService(IMFCaptureSink2* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) { + return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown); +} +static FORCEINLINE HRESULT IMFCaptureSink2_AddStream(IMFCaptureSink2* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) { + return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex); +} +static FORCEINLINE HRESULT IMFCaptureSink2_Prepare(IMFCaptureSink2* This) { + return This->lpVtbl->Prepare(This); +} +static FORCEINLINE HRESULT IMFCaptureSink2_RemoveAllStreams(IMFCaptureSink2* This) { + return This->lpVtbl->RemoveAllStreams(This); +} +/*** IMFCaptureSink2 methods ***/ +static FORCEINLINE HRESULT IMFCaptureSink2_SetOutputMediaType(IMFCaptureSink2* This,DWORD dwStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pEncodingAttributes) { + return This->lpVtbl->SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes); +} +#endif +#endif + +#endif + + +#endif /* __IMFCaptureSink2_INTERFACE_DEFINED__ */ + +#endif /* WINAPI_PARTITION_DESKTOP */ +#endif /* WINVER >= _WIN32_WINNT_WIN7 */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __mfcaptureengine_h__ */ diff --git a/lib/libc/include/any-windows-any/mfd3d12.h b/lib/libc/include/any-windows-any/mfd3d12.h new file mode 100644 index 0000000000..231bf23dfa --- /dev/null +++ b/lib/libc/include/any-windows-any/mfd3d12.h @@ -0,0 +1,275 @@ +/*** Autogenerated by WIDL 7.0 from include/mfd3d12.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __mfd3d12_h__ +#define __mfd3d12_h__ + +/* Forward declarations */ + +#ifndef __IMFD3D12SynchronizationObjectCommands_FWD_DEFINED__ +#define __IMFD3D12SynchronizationObjectCommands_FWD_DEFINED__ +typedef interface IMFD3D12SynchronizationObjectCommands IMFD3D12SynchronizationObjectCommands; +#ifdef __cplusplus +interface IMFD3D12SynchronizationObjectCommands; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFD3D12SynchronizationObject_FWD_DEFINED__ +#define __IMFD3D12SynchronizationObject_FWD_DEFINED__ +typedef interface IMFD3D12SynchronizationObject IMFD3D12SynchronizationObject; +#ifdef __cplusplus +interface IMFD3D12SynchronizationObject; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <mfidl.h> +#include <d3d12.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +/***************************************************************************** + * IMFD3D12SynchronizationObjectCommands interface + */ +#ifndef __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__ +#define __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFD3D12SynchronizationObjectCommands, 0x09d0f835, 0x92ff, 0x4e53, 0x8e,0xfa, 0x40,0xfa,0xa5,0x51,0xf2,0x33); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("09d0f835-92ff-4e53-8efa-40faa551f233") +IMFD3D12SynchronizationObjectCommands : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE EnqueueResourceReady( + ID3D12CommandQueue *pProducerCommandQueue) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueResourceReadyWait( + ID3D12CommandQueue *pConsumerCommandQueue) = 0; + + virtual HRESULT STDMETHODCALLTYPE SignalEventOnResourceReady( + HANDLE hEvent) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueResourceRelease( + ID3D12CommandQueue *pConsumerCommandQueue) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFD3D12SynchronizationObjectCommands, 0x09d0f835, 0x92ff, 0x4e53, 0x8e,0xfa, 0x40,0xfa,0xa5,0x51,0xf2,0x33) +#endif +#else +typedef struct IMFD3D12SynchronizationObjectCommandsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFD3D12SynchronizationObjectCommands *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFD3D12SynchronizationObjectCommands *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFD3D12SynchronizationObjectCommands *This); + + /*** IMFD3D12SynchronizationObjectCommands methods ***/ + HRESULT (STDMETHODCALLTYPE *EnqueueResourceReady)( + IMFD3D12SynchronizationObjectCommands *This, + ID3D12CommandQueue *pProducerCommandQueue); + + HRESULT (STDMETHODCALLTYPE *EnqueueResourceReadyWait)( + IMFD3D12SynchronizationObjectCommands *This, + ID3D12CommandQueue *pConsumerCommandQueue); + + HRESULT (STDMETHODCALLTYPE *SignalEventOnResourceReady)( + IMFD3D12SynchronizationObjectCommands *This, + HANDLE hEvent); + + HRESULT (STDMETHODCALLTYPE *EnqueueResourceRelease)( + IMFD3D12SynchronizationObjectCommands *This, + ID3D12CommandQueue *pConsumerCommandQueue); + + END_INTERFACE +} IMFD3D12SynchronizationObjectCommandsVtbl; + +interface IMFD3D12SynchronizationObjectCommands { + CONST_VTBL IMFD3D12SynchronizationObjectCommandsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFD3D12SynchronizationObjectCommands_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFD3D12SynchronizationObjectCommands_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFD3D12SynchronizationObjectCommands_Release(This) (This)->lpVtbl->Release(This) +/*** IMFD3D12SynchronizationObjectCommands methods ***/ +#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceReady(This,pProducerCommandQueue) (This)->lpVtbl->EnqueueResourceReady(This,pProducerCommandQueue) +#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceReadyWait(This,pConsumerCommandQueue) (This)->lpVtbl->EnqueueResourceReadyWait(This,pConsumerCommandQueue) +#define IMFD3D12SynchronizationObjectCommands_SignalEventOnResourceReady(This,hEvent) (This)->lpVtbl->SignalEventOnResourceReady(This,hEvent) +#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceRelease(This,pConsumerCommandQueue) (This)->lpVtbl->EnqueueResourceRelease(This,pConsumerCommandQueue) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_QueryInterface(IMFD3D12SynchronizationObjectCommands* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFD3D12SynchronizationObjectCommands_AddRef(IMFD3D12SynchronizationObjectCommands* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFD3D12SynchronizationObjectCommands_Release(IMFD3D12SynchronizationObjectCommands* This) { + return This->lpVtbl->Release(This); +} +/*** IMFD3D12SynchronizationObjectCommands methods ***/ +static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceReady(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pProducerCommandQueue) { + return This->lpVtbl->EnqueueResourceReady(This,pProducerCommandQueue); +} +static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceReadyWait(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pConsumerCommandQueue) { + return This->lpVtbl->EnqueueResourceReadyWait(This,pConsumerCommandQueue); +} +static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_SignalEventOnResourceReady(IMFD3D12SynchronizationObjectCommands* This,HANDLE hEvent) { + return This->lpVtbl->SignalEventOnResourceReady(This,hEvent); +} +static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceRelease(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pConsumerCommandQueue) { + return This->lpVtbl->EnqueueResourceRelease(This,pConsumerCommandQueue); +} +#endif +#endif + +#endif + + +#endif /* __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFD3D12SynchronizationObject interface + */ +#ifndef __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__ +#define __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFD3D12SynchronizationObject, 0x802302b0, 0x82de, 0x45e1, 0xb4,0x21, 0xf1,0x9e,0xe5,0xbd,0xaf,0x23); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("802302b0-82de-45e1-b421-f19ee5bdaf23") +IMFD3D12SynchronizationObject : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SignalEventOnFinalResourceRelease( + HANDLE hEvent) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFD3D12SynchronizationObject, 0x802302b0, 0x82de, 0x45e1, 0xb4,0x21, 0xf1,0x9e,0xe5,0xbd,0xaf,0x23) +#endif +#else +typedef struct IMFD3D12SynchronizationObjectVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFD3D12SynchronizationObject *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFD3D12SynchronizationObject *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFD3D12SynchronizationObject *This); + + /*** IMFD3D12SynchronizationObject methods ***/ + HRESULT (STDMETHODCALLTYPE *SignalEventOnFinalResourceRelease)( + IMFD3D12SynchronizationObject *This, + HANDLE hEvent); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IMFD3D12SynchronizationObject *This); + + END_INTERFACE +} IMFD3D12SynchronizationObjectVtbl; + +interface IMFD3D12SynchronizationObject { + CONST_VTBL IMFD3D12SynchronizationObjectVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFD3D12SynchronizationObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFD3D12SynchronizationObject_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFD3D12SynchronizationObject_Release(This) (This)->lpVtbl->Release(This) +/*** IMFD3D12SynchronizationObject methods ***/ +#define IMFD3D12SynchronizationObject_SignalEventOnFinalResourceRelease(This,hEvent) (This)->lpVtbl->SignalEventOnFinalResourceRelease(This,hEvent) +#define IMFD3D12SynchronizationObject_Reset(This) (This)->lpVtbl->Reset(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_QueryInterface(IMFD3D12SynchronizationObject* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFD3D12SynchronizationObject_AddRef(IMFD3D12SynchronizationObject* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFD3D12SynchronizationObject_Release(IMFD3D12SynchronizationObject* This) { + return This->lpVtbl->Release(This); +} +/*** IMFD3D12SynchronizationObject methods ***/ +static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_SignalEventOnFinalResourceRelease(IMFD3D12SynchronizationObject* This,HANDLE hEvent) { + return This->lpVtbl->SignalEventOnFinalResourceRelease(This,hEvent); +} +static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_Reset(IMFD3D12SynchronizationObject* This) { + return This->lpVtbl->Reset(This); +} +#endif +#endif + +#endif + + +#endif /* __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__ */ + +#if NTDDI_VERSION >= NTDDI_WIN10_CO +HRESULT MFCreateD3D12SynchronizationObject(ID3D12Device *pDevice, REFIID riid, void **ppvSyncObject); +#endif /* NTDDI_WIN10_CO */ +typedef enum MF_MT_D3D_RESOURCE_VERSION_ENUM { + MF_D3D11_RESOURCE = 0, + MF_D3D12_RESOURCE = 1 +} MF_MT_D3D_RESOURCE_VERSION_ENUM; +EXTERN_GUID(MF_D3D12_SYNCHRONIZATION_OBJECT, 0x2a7c8d6a, 0x85a6, 0x494d, 0xa0, 0x46, 0x6, 0xea, 0x1a, 0x13, 0x8f, 0x4b); +EXTERN_GUID(MF_MT_D3D_RESOURCE_VERSION, 0x174f1e85, 0xfe26, 0x453d, 0xb5, 0x2e, 0x5b, 0xdd, 0x4e, 0x55, 0xb9, 0x44); +EXTERN_GUID(MF_MT_D3D12_CPU_READBACK, 0x28ee9fe3, 0xd481, 0x46a6, 0xb9, 0x8a, 0x7f, 0x69, 0xd5, 0x28, 0xe, 0x82); +EXTERN_GUID(MF_MT_D3D12_TEXTURE_LAYOUT, 0x97c85caa, 0xbeb, 0x4ee1, 0x97, 0x15, 0xf2, 0x2f, 0xad, 0x8c, 0x10, 0xf5); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, 0xeeac2585, 0x3430, 0x498c, 0x84, 0xa2, 0x77, 0xb1, 0xbb, 0xa5, 0x70, 0xf6); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, 0xb1138dc3, 0x1d5, 0x4c14, 0x9b, 0xdc, 0xcd, 0xc9, 0x33, 0x6f, 0x55, 0xb9); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, 0x82c85647, 0x5057, 0x4960, 0x95, 0x59, 0xf4, 0x5b, 0x8e, 0x27, 0x14, 0x27); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE, 0xba06bfac, 0xffe3, 0x474a, 0xab, 0x55, 0x16, 0x1e, 0xe4, 0x41, 0x7a, 0x2e); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER, 0xa6a1e439, 0x2f96, 0x4ab5, 0x98, 0xdc, 0xad, 0xf7, 0x49, 0x73, 0x50, 0x5d); +EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, 0xa4940b2, 0xcfd6, 0x4738, 0x9d, 0x2, 0x98, 0x11, 0x37, 0x34, 0x1, 0x5a); +EXTERN_GUID(MF_SA_D3D12_HEAP_FLAGS, 0x496b3266, 0xd28f, 0x4f8c, 0x93, 0xa7, 0x4a, 0x59, 0x6b, 0x1a, 0x31, 0xa1); +EXTERN_GUID(MF_SA_D3D12_HEAP_TYPE, 0x56f26a76, 0xbbc1, 0x4ce0, 0xbb, 0x11, 0xe2, 0x23, 0x68, 0xd8, 0x74, 0xed); +EXTERN_GUID(MF_SA_D3D12_CLEAR_VALUE, 0x86ba9a39, 0x526, 0x495d, 0x9a, 0xb5, 0x54, 0xec, 0x9f, 0xad, 0x6f, 0xc3); +#endif /* WINAPI_PARTITION_APP */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __mfd3d12_h__ */ diff --git a/lib/libc/include/any-windows-any/mfidl.h b/lib/libc/include/any-windows-any/mfidl.h index 9e93075e12..0c8a84a15c 100644 --- a/lib/libc/include/any-windows-any/mfidl.h +++ b/lib/libc/include/any-windows-any/mfidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mfidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mfidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -90,6 +90,14 @@ interface IMFMediaSource; #endif /* __cplusplus */ #endif +#ifndef __IMFMediaSourceEx_FWD_DEFINED__ +#define __IMFMediaSourceEx_FWD_DEFINED__ +typedef interface IMFMediaSourceEx IMFMediaSourceEx; +#ifdef __cplusplus +interface IMFMediaSourceEx; +#endif /* __cplusplus */ +#endif + #ifndef __IMFByteStreamBuffering_FWD_DEFINED__ #define __IMFByteStreamBuffering_FWD_DEFINED__ typedef interface IMFByteStreamBuffering IMFByteStreamBuffering; @@ -202,6 +210,22 @@ interface IMFSampleGrabberSinkCallback; #endif /* __cplusplus */ #endif +#ifndef __IMFShutdown_FWD_DEFINED__ +#define __IMFShutdown_FWD_DEFINED__ +typedef interface IMFShutdown IMFShutdown; +#ifdef __cplusplus +interface IMFShutdown; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFSimpleAudioVolume_FWD_DEFINED__ +#define __IMFSimpleAudioVolume_FWD_DEFINED__ +typedef interface IMFSimpleAudioVolume IMFSimpleAudioVolume; +#ifdef __cplusplus +interface IMFSimpleAudioVolume; +#endif /* __cplusplus */ +#endif + #ifndef __IMFSourceResolver_FWD_DEFINED__ #define __IMFSourceResolver_FWD_DEFINED__ typedef interface IMFSourceResolver IMFSourceResolver; @@ -218,6 +242,14 @@ interface IMFStreamSink; #endif /* __cplusplus */ #endif +#ifndef __IMFTimer_FWD_DEFINED__ +#define __IMFTimer_FWD_DEFINED__ +typedef interface IMFTimer IMFTimer; +#ifdef __cplusplus +interface IMFTimer; +#endif /* __cplusplus */ +#endif + #ifndef __IMFTopoLoader_FWD_DEFINED__ #define __IMFTopoLoader_FWD_DEFINED__ typedef interface IMFTopoLoader IMFTopoLoader; @@ -226,6 +258,78 @@ interface IMFTopoLoader; #endif /* __cplusplus */ #endif +#ifndef __IMFVideoSampleAllocator_FWD_DEFINED__ +#define __IMFVideoSampleAllocator_FWD_DEFINED__ +typedef interface IMFVideoSampleAllocator IMFVideoSampleAllocator; +#ifdef __cplusplus +interface IMFVideoSampleAllocator; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoSampleAllocatorNotify_FWD_DEFINED__ +#define __IMFVideoSampleAllocatorNotify_FWD_DEFINED__ +typedef interface IMFVideoSampleAllocatorNotify IMFVideoSampleAllocatorNotify; +#ifdef __cplusplus +interface IMFVideoSampleAllocatorNotify; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoSampleAllocatorNotifyEx_FWD_DEFINED__ +#define __IMFVideoSampleAllocatorNotifyEx_FWD_DEFINED__ +typedef interface IMFVideoSampleAllocatorNotifyEx IMFVideoSampleAllocatorNotifyEx; +#ifdef __cplusplus +interface IMFVideoSampleAllocatorNotifyEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoSampleAllocatorCallback_FWD_DEFINED__ +#define __IMFVideoSampleAllocatorCallback_FWD_DEFINED__ +typedef interface IMFVideoSampleAllocatorCallback IMFVideoSampleAllocatorCallback; +#ifdef __cplusplus +interface IMFVideoSampleAllocatorCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoSampleAllocatorEx_FWD_DEFINED__ +#define __IMFVideoSampleAllocatorEx_FWD_DEFINED__ +typedef interface IMFVideoSampleAllocatorEx IMFVideoSampleAllocatorEx; +#ifdef __cplusplus +interface IMFVideoSampleAllocatorEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoProcessorControl_FWD_DEFINED__ +#define __IMFVideoProcessorControl_FWD_DEFINED__ +typedef interface IMFVideoProcessorControl IMFVideoProcessorControl; +#ifdef __cplusplus +interface IMFVideoProcessorControl; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoProcessorControl2_FWD_DEFINED__ +#define __IMFVideoProcessorControl2_FWD_DEFINED__ +typedef interface IMFVideoProcessorControl2 IMFVideoProcessorControl2; +#ifdef __cplusplus +interface IMFVideoProcessorControl2; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoProcessorControl3_FWD_DEFINED__ +#define __IMFVideoProcessorControl3_FWD_DEFINED__ +typedef interface IMFVideoProcessorControl3 IMFVideoProcessorControl3; +#ifdef __cplusplus +interface IMFVideoProcessorControl3; +#endif /* __cplusplus */ +#endif + +#ifndef __IMFVideoRendererEffectControl_FWD_DEFINED__ +#define __IMFVideoRendererEffectControl_FWD_DEFINED__ +typedef interface IMFVideoRendererEffectControl IMFVideoRendererEffectControl; +#ifdef __cplusplus +interface IMFVideoRendererEffectControl; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <mfobjects.h> @@ -242,10 +346,11 @@ typedef enum MFSESSION_SETTOPOLOGY_FLAGS { MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4 } MFSESSION_SETTOPOLOGY_FLAGS; typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS { - MFSESSION_GETFULLTOPOLOGY_CURRENT = 0 + MFSESSION_GETFULLTOPOLOGY_CURRENT = 0x1 } MFSESSION_GETFULLTOPOLOGY_FLAGS; typedef enum MFPMPSESSION_CREATION_FLAGS { - MFPMPSESSION_UNPROTECTED_PROCESS = 0x1 + MFPMPSESSION_UNPROTECTED_PROCESS = 0x1, + MFPMPSESSION_IN_PROCESS = 0x2 } MFPMPSESSION_CREATION_FLAGS; typedef UINT64 TOPOID; typedef enum MF_TOPOLOGY_TYPE { @@ -2852,6 +2957,201 @@ HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub( #endif /* __IMFMediaSource_INTERFACE_DEFINED__ */ +#if (WINVER >= _WIN32_WINNT_WIN8) +/***************************************************************************** + * IMFMediaSourceEx interface + */ +#ifndef __IMFMediaSourceEx_INTERFACE_DEFINED__ +#define __IMFMediaSourceEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFMediaSourceEx, 0x3c9b2eb9, 0x86d5, 0x4514, 0xa3,0x94, 0xf5,0x66,0x64,0xf9,0xf0,0xd8); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3c9b2eb9-86d5-4514-a394-f56664f9f0d8") +IMFMediaSourceEx : public IMFMediaSource +{ + virtual HRESULT STDMETHODCALLTYPE GetSourceAttributes( + IMFAttributes **ppAttributes) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStreamAttributes( + DWORD dwStreamIdentifier, + IMFAttributes **ppAttributes) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetD3DManager( + IUnknown *pManager) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFMediaSourceEx, 0x3c9b2eb9, 0x86d5, 0x4514, 0xa3,0x94, 0xf5,0x66,0x64,0xf9,0xf0,0xd8) +#endif +#else +typedef struct IMFMediaSourceExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFMediaSourceEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFMediaSourceEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFMediaSourceEx *This); + + /*** IMFMediaEventGenerator methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEvent)( + IMFMediaSourceEx *This, + DWORD dwFlags, + IMFMediaEvent **ppEvent); + + HRESULT (STDMETHODCALLTYPE *BeginGetEvent)( + IMFMediaSourceEx *This, + IMFAsyncCallback *pCallback, + IUnknown *punkState); + + HRESULT (STDMETHODCALLTYPE *EndGetEvent)( + IMFMediaSourceEx *This, + IMFAsyncResult *pResult, + IMFMediaEvent **ppEvent); + + HRESULT (STDMETHODCALLTYPE *QueueEvent)( + IMFMediaSourceEx *This, + MediaEventType met, + REFGUID guidExtendedType, + HRESULT hrStatus, + const PROPVARIANT *pvValue); + + /*** IMFMediaSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( + IMFMediaSourceEx *This, + DWORD *pdwCharacteristics); + + HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)( + IMFMediaSourceEx *This, + IMFPresentationDescriptor **ppPresentationDescriptor); + + HRESULT (STDMETHODCALLTYPE *Start)( + IMFMediaSourceEx *This, + IMFPresentationDescriptor *pPresentationDescriptor, + const GUID *pguidTimeFormat, + const PROPVARIANT *pvarStartPosition); + + HRESULT (STDMETHODCALLTYPE *Stop)( + IMFMediaSourceEx *This); + + HRESULT (STDMETHODCALLTYPE *Pause)( + IMFMediaSourceEx *This); + + HRESULT (STDMETHODCALLTYPE *Shutdown)( + IMFMediaSourceEx *This); + + /*** IMFMediaSourceEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSourceAttributes)( + IMFMediaSourceEx *This, + IMFAttributes **ppAttributes); + + HRESULT (STDMETHODCALLTYPE *GetStreamAttributes)( + IMFMediaSourceEx *This, + DWORD dwStreamIdentifier, + IMFAttributes **ppAttributes); + + HRESULT (STDMETHODCALLTYPE *SetD3DManager)( + IMFMediaSourceEx *This, + IUnknown *pManager); + + END_INTERFACE +} IMFMediaSourceExVtbl; + +interface IMFMediaSourceEx { + CONST_VTBL IMFMediaSourceExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFMediaSourceEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFMediaSourceEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFMediaSourceEx_Release(This) (This)->lpVtbl->Release(This) +/*** IMFMediaEventGenerator methods ***/ +#define IMFMediaSourceEx_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent) +#define IMFMediaSourceEx_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState) +#define IMFMediaSourceEx_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent) +#define IMFMediaSourceEx_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) +/*** IMFMediaSource methods ***/ +#define IMFMediaSourceEx_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) +#define IMFMediaSourceEx_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor) +#define IMFMediaSourceEx_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) +#define IMFMediaSourceEx_Stop(This) (This)->lpVtbl->Stop(This) +#define IMFMediaSourceEx_Pause(This) (This)->lpVtbl->Pause(This) +#define IMFMediaSourceEx_Shutdown(This) (This)->lpVtbl->Shutdown(This) +/*** IMFMediaSourceEx methods ***/ +#define IMFMediaSourceEx_GetSourceAttributes(This,ppAttributes) (This)->lpVtbl->GetSourceAttributes(This,ppAttributes) +#define IMFMediaSourceEx_GetStreamAttributes(This,dwStreamIdentifier,ppAttributes) (This)->lpVtbl->GetStreamAttributes(This,dwStreamIdentifier,ppAttributes) +#define IMFMediaSourceEx_SetD3DManager(This,pManager) (This)->lpVtbl->SetD3DManager(This,pManager) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFMediaSourceEx_QueryInterface(IMFMediaSourceEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFMediaSourceEx_AddRef(IMFMediaSourceEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFMediaSourceEx_Release(IMFMediaSourceEx* This) { + return This->lpVtbl->Release(This); +} +/*** IMFMediaEventGenerator methods ***/ +static FORCEINLINE HRESULT IMFMediaSourceEx_GetEvent(IMFMediaSourceEx* This,DWORD dwFlags,IMFMediaEvent **ppEvent) { + return This->lpVtbl->GetEvent(This,dwFlags,ppEvent); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_BeginGetEvent(IMFMediaSourceEx* This,IMFAsyncCallback *pCallback,IUnknown *punkState) { + return This->lpVtbl->BeginGetEvent(This,pCallback,punkState); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_EndGetEvent(IMFMediaSourceEx* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) { + return This->lpVtbl->EndGetEvent(This,pResult,ppEvent); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_QueueEvent(IMFMediaSourceEx* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) { + return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue); +} +/*** IMFMediaSource methods ***/ +static FORCEINLINE HRESULT IMFMediaSourceEx_GetCharacteristics(IMFMediaSourceEx* This,DWORD *pdwCharacteristics) { + return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_CreatePresentationDescriptor(IMFMediaSourceEx* This,IMFPresentationDescriptor **ppPresentationDescriptor) { + return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_Start(IMFMediaSourceEx* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) { + return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_Stop(IMFMediaSourceEx* This) { + return This->lpVtbl->Stop(This); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_Pause(IMFMediaSourceEx* This) { + return This->lpVtbl->Pause(This); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_Shutdown(IMFMediaSourceEx* This) { + return This->lpVtbl->Shutdown(This); +} +/*** IMFMediaSourceEx methods ***/ +static FORCEINLINE HRESULT IMFMediaSourceEx_GetSourceAttributes(IMFMediaSourceEx* This,IMFAttributes **ppAttributes) { + return This->lpVtbl->GetSourceAttributes(This,ppAttributes); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_GetStreamAttributes(IMFMediaSourceEx* This,DWORD dwStreamIdentifier,IMFAttributes **ppAttributes) { + return This->lpVtbl->GetStreamAttributes(This,dwStreamIdentifier,ppAttributes); +} +static FORCEINLINE HRESULT IMFMediaSourceEx_SetD3DManager(IMFMediaSourceEx* This,IUnknown *pManager) { + return This->lpVtbl->SetD3DManager(This,pManager); +} +#endif +#endif + +#endif + + +#endif /* __IMFMediaSourceEx_INTERFACE_DEFINED__ */ + +EXTERN_GUID(MF_SOURCE_STREAM_SUPPORTS_HW_CONNECTION, 0xa38253aa, 0x6314, 0x42fd, 0xa3, 0xce, 0xbb, 0x27, 0xb6, 0x85, 0x99, 0x46); +#endif /* (WINVER >= _WIN32_WINNT_WIN8) */ typedef struct _MF_LEAKY_BUCKET_PAIR { DWORD dwBitrate; DWORD msBufferWindow; @@ -3141,6 +3441,21 @@ typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS { MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1 } MF_TRANSCODE_TOPOLOGYMODE_FLAGS; #endif +EXTERN_GUID(MF_TRANSCODE_CONTAINERTYPE, 0x150ff23f, 0x4abc, 0x478b, 0xac, 0x4f, 0xe1, 0x91, 0x6f, 0xba, 0x1c, 0xca); +EXTERN_GUID(MFTranscodeContainerType_ASF, 0x430f6f6e, 0xb6bf, 0x4fc1, 0xa0, 0xbd, 0x9e, 0xe4, 0x6e, 0xee, 0x2a, 0xfb); +EXTERN_GUID(MFTranscodeContainerType_MPEG4, 0xdc6cd05d, 0xb9d0, 0x40ef, 0xbd, 0x35, 0xfa, 0x62, 0x2c, 0x1a, 0xb2, 0x8a); +EXTERN_GUID(MFTranscodeContainerType_MP3, 0xe438b912, 0x83f1, 0x4de6, 0x9e, 0x3a, 0x9f, 0xfb, 0xc6, 0xdd, 0x24, 0xd1); +EXTERN_GUID(MFTranscodeContainerType_FLAC, 0x31344aa3, 0x05a9, 0x42b5, 0x90, 0x1b, 0x8e, 0x9d, 0x42, 0x57, 0xf7, 0x5e); +EXTERN_GUID(MFTranscodeContainerType_3GP, 0x34c50167, 0x4472, 0x4f34, 0x9e, 0xa0, 0xc4, 0x9f, 0xba, 0xcf, 0x03, 0x7d); +EXTERN_GUID(MFTranscodeContainerType_AC3, 0x6d8d91c3, 0x8c91, 0x4ed1, 0x87, 0x42, 0x8c, 0x34, 0x7d, 0x5b, 0x44, 0xd0); +EXTERN_GUID(MFTranscodeContainerType_ADTS, 0x132fd27d, 0x0f02, 0x43de, 0xa3, 0x01, 0x38, 0xfb, 0xbb, 0xb3, 0x83, 0x4e); +EXTERN_GUID(MFTranscodeContainerType_MPEG2, 0xbfc2dbf9, 0x7bb4, 0x4f8f, 0xaf, 0xde, 0xe1, 0x12, 0xc4, 0x4b, 0xa8, 0x82); +EXTERN_GUID(MFTranscodeContainerType_WAVE, 0x64c3453c, 0x0f26, 0x4741, 0xbe, 0x63, 0x87, 0xbd, 0xf8, 0xbb, 0x93, 0x5b); +EXTERN_GUID(MFTranscodeContainerType_AVI, 0x7edfe8af, 0x402f, 0x4d76, 0xa3, 0x3c, 0x61, 0x9f, 0xd1, 0x57, 0xd0, 0xf1); +#if (WINVER >= _WIN32_WINNT_WIN8) +EXTERN_GUID(MFTranscodeContainerType_FMPEG4, 0x9ba876f1, 0x419f, 0x4b77, 0xa1, 0xe0, 0x35, 0x95, 0x9d, 0x9d, 0x40, 0x4); +#endif /* (WINVER >= _WIN32_WINNT_WIN8) */ +EXTERN_GUID(MFTranscodeContainerType_AMR, 0x25d5ad3, 0x621a, 0x475b, 0x96, 0x4d, 0x66, 0xb1, 0xc8, 0x24, 0xf0, 0x79); typedef enum __WIDL_mfidl_generated_name_0000002E { MF_LICENSE_URL_UNTRUSTED = 0, MF_LICENSE_URL_TRUSTED = 1, @@ -5055,6 +5370,203 @@ static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnShutdown(IMFSampleGrab #endif /* __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ */ /***************************************************************************** + * IMFShutdown interface + */ +#ifndef __IMFShutdown_INTERFACE_DEFINED__ +#define __IMFShutdown_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFShutdown, 0x97ec2ea4, 0x0e42, 0x4937, 0x97,0xac, 0x9d,0x6d,0x32,0x88,0x24,0xe1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("97ec2ea4-0e42-4937-97ac-9d6d328824e1") +IMFShutdown : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Shutdown( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetShutdownStatus( + MFSHUTDOWN_STATUS *pStatus) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFShutdown, 0x97ec2ea4, 0x0e42, 0x4937, 0x97,0xac, 0x9d,0x6d,0x32,0x88,0x24,0xe1) +#endif +#else +typedef struct IMFShutdownVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFShutdown *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFShutdown *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFShutdown *This); + + /*** IMFShutdown methods ***/ + HRESULT (STDMETHODCALLTYPE *Shutdown)( + IMFShutdown *This); + + HRESULT (STDMETHODCALLTYPE *GetShutdownStatus)( + IMFShutdown *This, + MFSHUTDOWN_STATUS *pStatus); + + END_INTERFACE +} IMFShutdownVtbl; + +interface IMFShutdown { + CONST_VTBL IMFShutdownVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFShutdown_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFShutdown_Release(This) (This)->lpVtbl->Release(This) +/*** IMFShutdown methods ***/ +#define IMFShutdown_Shutdown(This) (This)->lpVtbl->Shutdown(This) +#define IMFShutdown_GetShutdownStatus(This,pStatus) (This)->lpVtbl->GetShutdownStatus(This,pStatus) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFShutdown_QueryInterface(IMFShutdown* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFShutdown_AddRef(IMFShutdown* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFShutdown_Release(IMFShutdown* This) { + return This->lpVtbl->Release(This); +} +/*** IMFShutdown methods ***/ +static FORCEINLINE HRESULT IMFShutdown_Shutdown(IMFShutdown* This) { + return This->lpVtbl->Shutdown(This); +} +static FORCEINLINE HRESULT IMFShutdown_GetShutdownStatus(IMFShutdown* This,MFSHUTDOWN_STATUS *pStatus) { + return This->lpVtbl->GetShutdownStatus(This,pStatus); +} +#endif +#endif + +#endif + + +#endif /* __IMFShutdown_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFSimpleAudioVolume interface + */ +#ifndef __IMFSimpleAudioVolume_INTERFACE_DEFINED__ +#define __IMFSimpleAudioVolume_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFSimpleAudioVolume, 0x089edf13, 0xcf71, 0x4338, 0x8d,0x13, 0x9e,0x56,0x9d,0xbd,0xc3,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("089edf13-cf71-4338-8d13-9e569dbdc319") +IMFSimpleAudioVolume : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetMasterVolume( + float fLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMasterVolume( + float *pfLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMute( + const WINBOOL bMute) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMute( + WINBOOL *pbMute) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFSimpleAudioVolume, 0x089edf13, 0xcf71, 0x4338, 0x8d,0x13, 0x9e,0x56,0x9d,0xbd,0xc3,0x19) +#endif +#else +typedef struct IMFSimpleAudioVolumeVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFSimpleAudioVolume *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFSimpleAudioVolume *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFSimpleAudioVolume *This); + + /*** IMFSimpleAudioVolume methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMasterVolume)( + IMFSimpleAudioVolume *This, + float fLevel); + + HRESULT (STDMETHODCALLTYPE *GetMasterVolume)( + IMFSimpleAudioVolume *This, + float *pfLevel); + + HRESULT (STDMETHODCALLTYPE *SetMute)( + IMFSimpleAudioVolume *This, + const WINBOOL bMute); + + HRESULT (STDMETHODCALLTYPE *GetMute)( + IMFSimpleAudioVolume *This, + WINBOOL *pbMute); + + END_INTERFACE +} IMFSimpleAudioVolumeVtbl; + +interface IMFSimpleAudioVolume { + CONST_VTBL IMFSimpleAudioVolumeVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFSimpleAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFSimpleAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFSimpleAudioVolume_Release(This) (This)->lpVtbl->Release(This) +/*** IMFSimpleAudioVolume methods ***/ +#define IMFSimpleAudioVolume_SetMasterVolume(This,fLevel) (This)->lpVtbl->SetMasterVolume(This,fLevel) +#define IMFSimpleAudioVolume_GetMasterVolume(This,pfLevel) (This)->lpVtbl->GetMasterVolume(This,pfLevel) +#define IMFSimpleAudioVolume_SetMute(This,bMute) (This)->lpVtbl->SetMute(This,bMute) +#define IMFSimpleAudioVolume_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFSimpleAudioVolume_QueryInterface(IMFSimpleAudioVolume* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFSimpleAudioVolume_AddRef(IMFSimpleAudioVolume* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFSimpleAudioVolume_Release(IMFSimpleAudioVolume* This) { + return This->lpVtbl->Release(This); +} +/*** IMFSimpleAudioVolume methods ***/ +static FORCEINLINE HRESULT IMFSimpleAudioVolume_SetMasterVolume(IMFSimpleAudioVolume* This,float fLevel) { + return This->lpVtbl->SetMasterVolume(This,fLevel); +} +static FORCEINLINE HRESULT IMFSimpleAudioVolume_GetMasterVolume(IMFSimpleAudioVolume* This,float *pfLevel) { + return This->lpVtbl->GetMasterVolume(This,pfLevel); +} +static FORCEINLINE HRESULT IMFSimpleAudioVolume_SetMute(IMFSimpleAudioVolume* This,const WINBOOL bMute) { + return This->lpVtbl->SetMute(This,bMute); +} +static FORCEINLINE HRESULT IMFSimpleAudioVolume_GetMute(IMFSimpleAudioVolume* This,WINBOOL *pbMute) { + return This->lpVtbl->GetMute(This,pbMute); +} +#endif +#endif + +#endif + + +#endif /* __IMFSimpleAudioVolume_INTERFACE_DEFINED__ */ + +/***************************************************************************** * IMFSourceResolver interface */ #ifndef __IMFSourceResolver_INTERFACE_DEFINED__ @@ -5515,6 +6027,102 @@ static FORCEINLINE HRESULT IMFStreamSink_Flush(IMFStreamSink* This) { #endif /* __IMFStreamSink_INTERFACE_DEFINED__ */ /***************************************************************************** + * IMFTimer interface + */ +#ifndef __IMFTimer_INTERFACE_DEFINED__ +#define __IMFTimer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFTimer, 0xe56e4cbd, 0x8f70, 0x49d8, 0xa0,0xf8, 0xed,0xb3,0xd6,0xab,0x9b,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e56e4cbd-8f70-49d8-a0f8-edb3d6ab9bf2") +IMFTimer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetTimer( + DWORD dwFlags, + LONGLONG llClockTime, + IMFAsyncCallback *pCallback, + IUnknown *punkState, + IUnknown **ppunkKey) = 0; + + virtual HRESULT STDMETHODCALLTYPE CancelTimer( + IUnknown *punkKey) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFTimer, 0xe56e4cbd, 0x8f70, 0x49d8, 0xa0,0xf8, 0xed,0xb3,0xd6,0xab,0x9b,0xf2) +#endif +#else +typedef struct IMFTimerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFTimer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFTimer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFTimer *This); + + /*** IMFTimer methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTimer)( + IMFTimer *This, + DWORD dwFlags, + LONGLONG llClockTime, + IMFAsyncCallback *pCallback, + IUnknown *punkState, + IUnknown **ppunkKey); + + HRESULT (STDMETHODCALLTYPE *CancelTimer)( + IMFTimer *This, + IUnknown *punkKey); + + END_INTERFACE +} IMFTimerVtbl; + +interface IMFTimer { + CONST_VTBL IMFTimerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFTimer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFTimer_Release(This) (This)->lpVtbl->Release(This) +/*** IMFTimer methods ***/ +#define IMFTimer_SetTimer(This,dwFlags,llClockTime,pCallback,punkState,ppunkKey) (This)->lpVtbl->SetTimer(This,dwFlags,llClockTime,pCallback,punkState,ppunkKey) +#define IMFTimer_CancelTimer(This,punkKey) (This)->lpVtbl->CancelTimer(This,punkKey) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFTimer_QueryInterface(IMFTimer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFTimer_AddRef(IMFTimer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFTimer_Release(IMFTimer* This) { + return This->lpVtbl->Release(This); +} +/*** IMFTimer methods ***/ +static FORCEINLINE HRESULT IMFTimer_SetTimer(IMFTimer* This,DWORD dwFlags,LONGLONG llClockTime,IMFAsyncCallback *pCallback,IUnknown *punkState,IUnknown **ppunkKey) { + return This->lpVtbl->SetTimer(This,dwFlags,llClockTime,pCallback,punkState,ppunkKey); +} +static FORCEINLINE HRESULT IMFTimer_CancelTimer(IMFTimer* This,IUnknown *punkKey) { + return This->lpVtbl->CancelTimer(This,punkKey); +} +#endif +#endif + +#endif + + +#endif /* __IMFTimer_INTERFACE_DEFINED__ */ + +/***************************************************************************** * IMFTopoLoader interface */ #ifndef __IMFTopoLoader_INTERFACE_DEFINED__ @@ -5595,8 +6203,1079 @@ static FORCEINLINE HRESULT IMFTopoLoader_Load(IMFTopoLoader* This,IMFTopology *p #endif /* __IMFTopoLoader_INTERFACE_DEFINED__ */ -HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); -HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource); +/***************************************************************************** + * IMFVideoSampleAllocator interface + */ +#ifndef __IMFVideoSampleAllocator_INTERFACE_DEFINED__ +#define __IMFVideoSampleAllocator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoSampleAllocator, 0x86cbc910, 0xe533, 0x4751, 0x8e,0x3b, 0xf1,0x9b,0x5b,0x80,0x6a,0x03); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("86cbc910-e533-4751-8e3b-f19b5b806a03") +IMFVideoSampleAllocator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetDirectXManager( + IUnknown *pManager) = 0; + + virtual HRESULT STDMETHODCALLTYPE UninitializeSampleAllocator( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitializeSampleAllocator( + DWORD cRequestedFrames, + IMFMediaType *pMediaType) = 0; + + virtual HRESULT STDMETHODCALLTYPE AllocateSample( + IMFSample **ppSample) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoSampleAllocator, 0x86cbc910, 0xe533, 0x4751, 0x8e,0x3b, 0xf1,0x9b,0x5b,0x80,0x6a,0x03) +#endif +#else +typedef struct IMFVideoSampleAllocatorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoSampleAllocator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoSampleAllocator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoSampleAllocator *This); + + /*** IMFVideoSampleAllocator methods ***/ + HRESULT (STDMETHODCALLTYPE *SetDirectXManager)( + IMFVideoSampleAllocator *This, + IUnknown *pManager); + + HRESULT (STDMETHODCALLTYPE *UninitializeSampleAllocator)( + IMFVideoSampleAllocator *This); + + HRESULT (STDMETHODCALLTYPE *InitializeSampleAllocator)( + IMFVideoSampleAllocator *This, + DWORD cRequestedFrames, + IMFMediaType *pMediaType); + + HRESULT (STDMETHODCALLTYPE *AllocateSample)( + IMFVideoSampleAllocator *This, + IMFSample **ppSample); + + END_INTERFACE +} IMFVideoSampleAllocatorVtbl; + +interface IMFVideoSampleAllocator { + CONST_VTBL IMFVideoSampleAllocatorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoSampleAllocator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoSampleAllocator_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoSampleAllocator methods ***/ +#define IMFVideoSampleAllocator_SetDirectXManager(This,pManager) (This)->lpVtbl->SetDirectXManager(This,pManager) +#define IMFVideoSampleAllocator_UninitializeSampleAllocator(This) (This)->lpVtbl->UninitializeSampleAllocator(This) +#define IMFVideoSampleAllocator_InitializeSampleAllocator(This,cRequestedFrames,pMediaType) (This)->lpVtbl->InitializeSampleAllocator(This,cRequestedFrames,pMediaType) +#define IMFVideoSampleAllocator_AllocateSample(This,ppSample) (This)->lpVtbl->AllocateSample(This,ppSample) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocator_QueryInterface(IMFVideoSampleAllocator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoSampleAllocator_AddRef(IMFVideoSampleAllocator* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoSampleAllocator_Release(IMFVideoSampleAllocator* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoSampleAllocator methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocator_SetDirectXManager(IMFVideoSampleAllocator* This,IUnknown *pManager) { + return This->lpVtbl->SetDirectXManager(This,pManager); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocator_UninitializeSampleAllocator(IMFVideoSampleAllocator* This) { + return This->lpVtbl->UninitializeSampleAllocator(This); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocator_InitializeSampleAllocator(IMFVideoSampleAllocator* This,DWORD cRequestedFrames,IMFMediaType *pMediaType) { + return This->lpVtbl->InitializeSampleAllocator(This,cRequestedFrames,pMediaType); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocator_AllocateSample(IMFVideoSampleAllocator* This,IMFSample **ppSample) { + return This->lpVtbl->AllocateSample(This,ppSample); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoSampleAllocator_INTERFACE_DEFINED__ */ + +#if WINVER >= _WIN32_WINNT_WIN7 +/***************************************************************************** + * IMFVideoSampleAllocatorNotify interface + */ +#ifndef __IMFVideoSampleAllocatorNotify_INTERFACE_DEFINED__ +#define __IMFVideoSampleAllocatorNotify_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoSampleAllocatorNotify, 0xa792cdbe, 0xc374, 0x4e89, 0x83,0x35, 0x27,0x8e,0x7b,0x99,0x56,0xa4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a792cdbe-c374-4e89-8335-278e7b9956a4") +IMFVideoSampleAllocatorNotify : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE NotifyRelease( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoSampleAllocatorNotify, 0xa792cdbe, 0xc374, 0x4e89, 0x83,0x35, 0x27,0x8e,0x7b,0x99,0x56,0xa4) +#endif +#else +typedef struct IMFVideoSampleAllocatorNotifyVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoSampleAllocatorNotify *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoSampleAllocatorNotify *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoSampleAllocatorNotify *This); + + /*** IMFVideoSampleAllocatorNotify methods ***/ + HRESULT (STDMETHODCALLTYPE *NotifyRelease)( + IMFVideoSampleAllocatorNotify *This); + + END_INTERFACE +} IMFVideoSampleAllocatorNotifyVtbl; + +interface IMFVideoSampleAllocatorNotify { + CONST_VTBL IMFVideoSampleAllocatorNotifyVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoSampleAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoSampleAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoSampleAllocatorNotify_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoSampleAllocatorNotify methods ***/ +#define IMFVideoSampleAllocatorNotify_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorNotify_QueryInterface(IMFVideoSampleAllocatorNotify* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorNotify_AddRef(IMFVideoSampleAllocatorNotify* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorNotify_Release(IMFVideoSampleAllocatorNotify* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoSampleAllocatorNotify methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorNotify_NotifyRelease(IMFVideoSampleAllocatorNotify* This) { + return This->lpVtbl->NotifyRelease(This); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoSampleAllocatorNotify_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFVideoSampleAllocatorNotifyEx interface + */ +#ifndef __IMFVideoSampleAllocatorNotifyEx_INTERFACE_DEFINED__ +#define __IMFVideoSampleAllocatorNotifyEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoSampleAllocatorNotifyEx, 0x3978aa1a, 0x6d5b, 0x4b7f, 0xa3,0x40, 0x90,0x89,0x91,0x89,0xae,0x34); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3978aa1a-6d5b-4b7f-a340-90899189ae34") +IMFVideoSampleAllocatorNotifyEx : public IMFVideoSampleAllocatorNotify +{ + virtual HRESULT STDMETHODCALLTYPE NotifyPrune( + IMFSample *ppSample) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoSampleAllocatorNotifyEx, 0x3978aa1a, 0x6d5b, 0x4b7f, 0xa3,0x40, 0x90,0x89,0x91,0x89,0xae,0x34) +#endif +#else +typedef struct IMFVideoSampleAllocatorNotifyExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoSampleAllocatorNotifyEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoSampleAllocatorNotifyEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoSampleAllocatorNotifyEx *This); + + /*** IMFVideoSampleAllocatorNotify methods ***/ + HRESULT (STDMETHODCALLTYPE *NotifyRelease)( + IMFVideoSampleAllocatorNotifyEx *This); + + /*** IMFVideoSampleAllocatorNotifyEx methods ***/ + HRESULT (STDMETHODCALLTYPE *NotifyPrune)( + IMFVideoSampleAllocatorNotifyEx *This, + IMFSample *ppSample); + + END_INTERFACE +} IMFVideoSampleAllocatorNotifyExVtbl; + +interface IMFVideoSampleAllocatorNotifyEx { + CONST_VTBL IMFVideoSampleAllocatorNotifyExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoSampleAllocatorNotifyEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoSampleAllocatorNotifyEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoSampleAllocatorNotifyEx_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoSampleAllocatorNotify methods ***/ +#define IMFVideoSampleAllocatorNotifyEx_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This) +/*** IMFVideoSampleAllocatorNotifyEx methods ***/ +#define IMFVideoSampleAllocatorNotifyEx_NotifyPrune(This,ppSample) (This)->lpVtbl->NotifyPrune(This,ppSample) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorNotifyEx_QueryInterface(IMFVideoSampleAllocatorNotifyEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorNotifyEx_AddRef(IMFVideoSampleAllocatorNotifyEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorNotifyEx_Release(IMFVideoSampleAllocatorNotifyEx* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoSampleAllocatorNotify methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorNotifyEx_NotifyRelease(IMFVideoSampleAllocatorNotifyEx* This) { + return This->lpVtbl->NotifyRelease(This); +} +/*** IMFVideoSampleAllocatorNotifyEx methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorNotifyEx_NotifyPrune(IMFVideoSampleAllocatorNotifyEx* This,IMFSample *ppSample) { + return This->lpVtbl->NotifyPrune(This,ppSample); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoSampleAllocatorNotifyEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFVideoSampleAllocatorCallback interface + */ +#ifndef __IMFVideoSampleAllocatorCallback_INTERFACE_DEFINED__ +#define __IMFVideoSampleAllocatorCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoSampleAllocatorCallback, 0x992388b4, 0x3372, 0x4f67, 0x8b,0x6f, 0xc8,0x4c,0x07,0x1f,0x47,0x51); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("992388b4-3372-4f67-8b6f-c84c071f4751") +IMFVideoSampleAllocatorCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetCallback( + IMFVideoSampleAllocatorNotify *pNotify) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFreeSampleCount( + LONG *plSamples) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoSampleAllocatorCallback, 0x992388b4, 0x3372, 0x4f67, 0x8b,0x6f, 0xc8,0x4c,0x07,0x1f,0x47,0x51) +#endif +#else +typedef struct IMFVideoSampleAllocatorCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoSampleAllocatorCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoSampleAllocatorCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoSampleAllocatorCallback *This); + + /*** IMFVideoSampleAllocatorCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *SetCallback)( + IMFVideoSampleAllocatorCallback *This, + IMFVideoSampleAllocatorNotify *pNotify); + + HRESULT (STDMETHODCALLTYPE *GetFreeSampleCount)( + IMFVideoSampleAllocatorCallback *This, + LONG *plSamples); + + END_INTERFACE +} IMFVideoSampleAllocatorCallbackVtbl; + +interface IMFVideoSampleAllocatorCallback { + CONST_VTBL IMFVideoSampleAllocatorCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoSampleAllocatorCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoSampleAllocatorCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoSampleAllocatorCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoSampleAllocatorCallback methods ***/ +#define IMFVideoSampleAllocatorCallback_SetCallback(This,pNotify) (This)->lpVtbl->SetCallback(This,pNotify) +#define IMFVideoSampleAllocatorCallback_GetFreeSampleCount(This,plSamples) (This)->lpVtbl->GetFreeSampleCount(This,plSamples) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorCallback_QueryInterface(IMFVideoSampleAllocatorCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorCallback_AddRef(IMFVideoSampleAllocatorCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorCallback_Release(IMFVideoSampleAllocatorCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoSampleAllocatorCallback methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorCallback_SetCallback(IMFVideoSampleAllocatorCallback* This,IMFVideoSampleAllocatorNotify *pNotify) { + return This->lpVtbl->SetCallback(This,pNotify); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocatorCallback_GetFreeSampleCount(IMFVideoSampleAllocatorCallback* This,LONG *plSamples) { + return This->lpVtbl->GetFreeSampleCount(This,plSamples); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoSampleAllocatorCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IMFVideoSampleAllocatorEx interface + */ +#ifndef __IMFVideoSampleAllocatorEx_INTERFACE_DEFINED__ +#define __IMFVideoSampleAllocatorEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoSampleAllocatorEx, 0x545b3a48, 0x3283, 0x4f62, 0x86,0x6f, 0xa6,0x2d,0x8f,0x59,0x8f,0x9f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("545b3a48-3283-4f62-866f-a62d8f598f9f") +IMFVideoSampleAllocatorEx : public IMFVideoSampleAllocator +{ + virtual HRESULT STDMETHODCALLTYPE InitializeSampleAllocatorEx( + DWORD cInitialSamples, + DWORD cMaximumSamples, + IMFAttributes *pAttributes, + IMFMediaType *pMediaType) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoSampleAllocatorEx, 0x545b3a48, 0x3283, 0x4f62, 0x86,0x6f, 0xa6,0x2d,0x8f,0x59,0x8f,0x9f) +#endif +#else +typedef struct IMFVideoSampleAllocatorExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoSampleAllocatorEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoSampleAllocatorEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoSampleAllocatorEx *This); + + /*** IMFVideoSampleAllocator methods ***/ + HRESULT (STDMETHODCALLTYPE *SetDirectXManager)( + IMFVideoSampleAllocatorEx *This, + IUnknown *pManager); + + HRESULT (STDMETHODCALLTYPE *UninitializeSampleAllocator)( + IMFVideoSampleAllocatorEx *This); + + HRESULT (STDMETHODCALLTYPE *InitializeSampleAllocator)( + IMFVideoSampleAllocatorEx *This, + DWORD cRequestedFrames, + IMFMediaType *pMediaType); + + HRESULT (STDMETHODCALLTYPE *AllocateSample)( + IMFVideoSampleAllocatorEx *This, + IMFSample **ppSample); + + /*** IMFVideoSampleAllocatorEx methods ***/ + HRESULT (STDMETHODCALLTYPE *InitializeSampleAllocatorEx)( + IMFVideoSampleAllocatorEx *This, + DWORD cInitialSamples, + DWORD cMaximumSamples, + IMFAttributes *pAttributes, + IMFMediaType *pMediaType); + + END_INTERFACE +} IMFVideoSampleAllocatorExVtbl; + +interface IMFVideoSampleAllocatorEx { + CONST_VTBL IMFVideoSampleAllocatorExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoSampleAllocatorEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoSampleAllocatorEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoSampleAllocatorEx_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoSampleAllocator methods ***/ +#define IMFVideoSampleAllocatorEx_SetDirectXManager(This,pManager) (This)->lpVtbl->SetDirectXManager(This,pManager) +#define IMFVideoSampleAllocatorEx_UninitializeSampleAllocator(This) (This)->lpVtbl->UninitializeSampleAllocator(This) +#define IMFVideoSampleAllocatorEx_InitializeSampleAllocator(This,cRequestedFrames,pMediaType) (This)->lpVtbl->InitializeSampleAllocator(This,cRequestedFrames,pMediaType) +#define IMFVideoSampleAllocatorEx_AllocateSample(This,ppSample) (This)->lpVtbl->AllocateSample(This,ppSample) +/*** IMFVideoSampleAllocatorEx methods ***/ +#define IMFVideoSampleAllocatorEx_InitializeSampleAllocatorEx(This,cInitialSamples,cMaximumSamples,pAttributes,pMediaType) (This)->lpVtbl->InitializeSampleAllocatorEx(This,cInitialSamples,cMaximumSamples,pAttributes,pMediaType) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_QueryInterface(IMFVideoSampleAllocatorEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorEx_AddRef(IMFVideoSampleAllocatorEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoSampleAllocatorEx_Release(IMFVideoSampleAllocatorEx* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoSampleAllocator methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_SetDirectXManager(IMFVideoSampleAllocatorEx* This,IUnknown *pManager) { + return This->lpVtbl->SetDirectXManager(This,pManager); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_UninitializeSampleAllocator(IMFVideoSampleAllocatorEx* This) { + return This->lpVtbl->UninitializeSampleAllocator(This); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_InitializeSampleAllocator(IMFVideoSampleAllocatorEx* This,DWORD cRequestedFrames,IMFMediaType *pMediaType) { + return This->lpVtbl->InitializeSampleAllocator(This,cRequestedFrames,pMediaType); +} +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_AllocateSample(IMFVideoSampleAllocatorEx* This,IMFSample **ppSample) { + return This->lpVtbl->AllocateSample(This,ppSample); +} +/*** IMFVideoSampleAllocatorEx methods ***/ +static FORCEINLINE HRESULT IMFVideoSampleAllocatorEx_InitializeSampleAllocatorEx(IMFVideoSampleAllocatorEx* This,DWORD cInitialSamples,DWORD cMaximumSamples,IMFAttributes *pAttributes,IMFMediaType *pMediaType) { + return This->lpVtbl->InitializeSampleAllocatorEx(This,cInitialSamples,cMaximumSamples,pAttributes,pMediaType); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoSampleAllocatorEx_INTERFACE_DEFINED__ */ + +#endif /* WINVER >= _WIN32_WINNT_WIN7 */ +#if WINVER >= _WIN32_WINNT_WIN8 +typedef enum _MF_VIDEO_PROCESSOR_ROTATION { + ROTATION_NONE = 0, + ROTATION_NORMAL = 1 +} MF_VIDEO_PROCESSOR_ROTATION; +typedef enum _MF_VIDEO_PROCESSOR_MIRROR { + MIRROR_NONE = 0, + MIRROR_HORIZONTAL = 1, + MIRROR_VERTICAL = 2 +} MF_VIDEO_PROCESSOR_MIRROR; +/***************************************************************************** + * IMFVideoProcessorControl interface + */ +#ifndef __IMFVideoProcessorControl_INTERFACE_DEFINED__ +#define __IMFVideoProcessorControl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoProcessorControl, 0xa3f675d5, 0x6119, 0x4f7f, 0xa1,0x00, 0x1d,0x8b,0x28,0x0f,0x0e,0xfb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a3f675d5-6119-4f7f-a100-1d8b280f0efb") +IMFVideoProcessorControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetBorderColor( + MFARGB *pBorderColor) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSourceRectangle( + RECT *pSrcRect) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDestinationRectangle( + RECT *pDstRect) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMirror( + MF_VIDEO_PROCESSOR_MIRROR eMirror) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRotation( + MF_VIDEO_PROCESSOR_ROTATION eRotation) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetConstrictionSize( + SIZE *pConstrictionSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoProcessorControl, 0xa3f675d5, 0x6119, 0x4f7f, 0xa1,0x00, 0x1d,0x8b,0x28,0x0f,0x0e,0xfb) +#endif +#else +typedef struct IMFVideoProcessorControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoProcessorControl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoProcessorControl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoProcessorControl *This); + + /*** IMFVideoProcessorControl methods ***/ + HRESULT (STDMETHODCALLTYPE *SetBorderColor)( + IMFVideoProcessorControl *This, + MFARGB *pBorderColor); + + HRESULT (STDMETHODCALLTYPE *SetSourceRectangle)( + IMFVideoProcessorControl *This, + RECT *pSrcRect); + + HRESULT (STDMETHODCALLTYPE *SetDestinationRectangle)( + IMFVideoProcessorControl *This, + RECT *pDstRect); + + HRESULT (STDMETHODCALLTYPE *SetMirror)( + IMFVideoProcessorControl *This, + MF_VIDEO_PROCESSOR_MIRROR eMirror); + + HRESULT (STDMETHODCALLTYPE *SetRotation)( + IMFVideoProcessorControl *This, + MF_VIDEO_PROCESSOR_ROTATION eRotation); + + HRESULT (STDMETHODCALLTYPE *SetConstrictionSize)( + IMFVideoProcessorControl *This, + SIZE *pConstrictionSize); + + END_INTERFACE +} IMFVideoProcessorControlVtbl; + +interface IMFVideoProcessorControl { + CONST_VTBL IMFVideoProcessorControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoProcessorControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoProcessorControl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoProcessorControl_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoProcessorControl methods ***/ +#define IMFVideoProcessorControl_SetBorderColor(This,pBorderColor) (This)->lpVtbl->SetBorderColor(This,pBorderColor) +#define IMFVideoProcessorControl_SetSourceRectangle(This,pSrcRect) (This)->lpVtbl->SetSourceRectangle(This,pSrcRect) +#define IMFVideoProcessorControl_SetDestinationRectangle(This,pDstRect) (This)->lpVtbl->SetDestinationRectangle(This,pDstRect) +#define IMFVideoProcessorControl_SetMirror(This,eMirror) (This)->lpVtbl->SetMirror(This,eMirror) +#define IMFVideoProcessorControl_SetRotation(This,eRotation) (This)->lpVtbl->SetRotation(This,eRotation) +#define IMFVideoProcessorControl_SetConstrictionSize(This,pConstrictionSize) (This)->lpVtbl->SetConstrictionSize(This,pConstrictionSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl_QueryInterface(IMFVideoProcessorControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoProcessorControl_AddRef(IMFVideoProcessorControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoProcessorControl_Release(IMFVideoProcessorControl* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoProcessorControl methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetBorderColor(IMFVideoProcessorControl* This,MFARGB *pBorderColor) { + return This->lpVtbl->SetBorderColor(This,pBorderColor); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetSourceRectangle(IMFVideoProcessorControl* This,RECT *pSrcRect) { + return This->lpVtbl->SetSourceRectangle(This,pSrcRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetDestinationRectangle(IMFVideoProcessorControl* This,RECT *pDstRect) { + return This->lpVtbl->SetDestinationRectangle(This,pDstRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetMirror(IMFVideoProcessorControl* This,MF_VIDEO_PROCESSOR_MIRROR eMirror) { + return This->lpVtbl->SetMirror(This,eMirror); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetRotation(IMFVideoProcessorControl* This,MF_VIDEO_PROCESSOR_ROTATION eRotation) { + return This->lpVtbl->SetRotation(This,eRotation); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl_SetConstrictionSize(IMFVideoProcessorControl* This,SIZE *pConstrictionSize) { + return This->lpVtbl->SetConstrictionSize(This,pConstrictionSize); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoProcessorControl_INTERFACE_DEFINED__ */ + +#if WINVER >= _WIN32_WINNT_WINBLUE +/***************************************************************************** + * IMFVideoProcessorControl2 interface + */ +#ifndef __IMFVideoProcessorControl2_INTERFACE_DEFINED__ +#define __IMFVideoProcessorControl2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoProcessorControl2, 0xbde633d3, 0xe1dc, 0x4a7f, 0xa6,0x93, 0xbb,0xae,0x39,0x9c,0x4a,0x20); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("bde633d3-e1dc-4a7f-a693-bbae399c4a20") +IMFVideoProcessorControl2 : public IMFVideoProcessorControl +{ + virtual HRESULT STDMETHODCALLTYPE SetRotationOverride( + UINT uiRotation) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableHardwareEffects( + WINBOOL fEnabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSupportedHardwareEffects( + UINT *puiSupport) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoProcessorControl2, 0xbde633d3, 0xe1dc, 0x4a7f, 0xa6,0x93, 0xbb,0xae,0x39,0x9c,0x4a,0x20) +#endif +#else +typedef struct IMFVideoProcessorControl2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoProcessorControl2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoProcessorControl2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoProcessorControl2 *This); + + /*** IMFVideoProcessorControl methods ***/ + HRESULT (STDMETHODCALLTYPE *SetBorderColor)( + IMFVideoProcessorControl2 *This, + MFARGB *pBorderColor); + + HRESULT (STDMETHODCALLTYPE *SetSourceRectangle)( + IMFVideoProcessorControl2 *This, + RECT *pSrcRect); + + HRESULT (STDMETHODCALLTYPE *SetDestinationRectangle)( + IMFVideoProcessorControl2 *This, + RECT *pDstRect); + + HRESULT (STDMETHODCALLTYPE *SetMirror)( + IMFVideoProcessorControl2 *This, + MF_VIDEO_PROCESSOR_MIRROR eMirror); + + HRESULT (STDMETHODCALLTYPE *SetRotation)( + IMFVideoProcessorControl2 *This, + MF_VIDEO_PROCESSOR_ROTATION eRotation); + + HRESULT (STDMETHODCALLTYPE *SetConstrictionSize)( + IMFVideoProcessorControl2 *This, + SIZE *pConstrictionSize); + + /*** IMFVideoProcessorControl2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetRotationOverride)( + IMFVideoProcessorControl2 *This, + UINT uiRotation); + + HRESULT (STDMETHODCALLTYPE *EnableHardwareEffects)( + IMFVideoProcessorControl2 *This, + WINBOOL fEnabled); + + HRESULT (STDMETHODCALLTYPE *GetSupportedHardwareEffects)( + IMFVideoProcessorControl2 *This, + UINT *puiSupport); + + END_INTERFACE +} IMFVideoProcessorControl2Vtbl; + +interface IMFVideoProcessorControl2 { + CONST_VTBL IMFVideoProcessorControl2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoProcessorControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoProcessorControl2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoProcessorControl2_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoProcessorControl methods ***/ +#define IMFVideoProcessorControl2_SetBorderColor(This,pBorderColor) (This)->lpVtbl->SetBorderColor(This,pBorderColor) +#define IMFVideoProcessorControl2_SetSourceRectangle(This,pSrcRect) (This)->lpVtbl->SetSourceRectangle(This,pSrcRect) +#define IMFVideoProcessorControl2_SetDestinationRectangle(This,pDstRect) (This)->lpVtbl->SetDestinationRectangle(This,pDstRect) +#define IMFVideoProcessorControl2_SetMirror(This,eMirror) (This)->lpVtbl->SetMirror(This,eMirror) +#define IMFVideoProcessorControl2_SetRotation(This,eRotation) (This)->lpVtbl->SetRotation(This,eRotation) +#define IMFVideoProcessorControl2_SetConstrictionSize(This,pConstrictionSize) (This)->lpVtbl->SetConstrictionSize(This,pConstrictionSize) +/*** IMFVideoProcessorControl2 methods ***/ +#define IMFVideoProcessorControl2_SetRotationOverride(This,uiRotation) (This)->lpVtbl->SetRotationOverride(This,uiRotation) +#define IMFVideoProcessorControl2_EnableHardwareEffects(This,fEnabled) (This)->lpVtbl->EnableHardwareEffects(This,fEnabled) +#define IMFVideoProcessorControl2_GetSupportedHardwareEffects(This,puiSupport) (This)->lpVtbl->GetSupportedHardwareEffects(This,puiSupport) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl2_QueryInterface(IMFVideoProcessorControl2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoProcessorControl2_AddRef(IMFVideoProcessorControl2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoProcessorControl2_Release(IMFVideoProcessorControl2* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoProcessorControl methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetBorderColor(IMFVideoProcessorControl2* This,MFARGB *pBorderColor) { + return This->lpVtbl->SetBorderColor(This,pBorderColor); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetSourceRectangle(IMFVideoProcessorControl2* This,RECT *pSrcRect) { + return This->lpVtbl->SetSourceRectangle(This,pSrcRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetDestinationRectangle(IMFVideoProcessorControl2* This,RECT *pDstRect) { + return This->lpVtbl->SetDestinationRectangle(This,pDstRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetMirror(IMFVideoProcessorControl2* This,MF_VIDEO_PROCESSOR_MIRROR eMirror) { + return This->lpVtbl->SetMirror(This,eMirror); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetRotation(IMFVideoProcessorControl2* This,MF_VIDEO_PROCESSOR_ROTATION eRotation) { + return This->lpVtbl->SetRotation(This,eRotation); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetConstrictionSize(IMFVideoProcessorControl2* This,SIZE *pConstrictionSize) { + return This->lpVtbl->SetConstrictionSize(This,pConstrictionSize); +} +/*** IMFVideoProcessorControl2 methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl2_SetRotationOverride(IMFVideoProcessorControl2* This,UINT uiRotation) { + return This->lpVtbl->SetRotationOverride(This,uiRotation); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_EnableHardwareEffects(IMFVideoProcessorControl2* This,WINBOOL fEnabled) { + return This->lpVtbl->EnableHardwareEffects(This,fEnabled); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl2_GetSupportedHardwareEffects(IMFVideoProcessorControl2* This,UINT *puiSupport) { + return This->lpVtbl->GetSupportedHardwareEffects(This,puiSupport); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoProcessorControl2_INTERFACE_DEFINED__ */ + +#if WINVER >= _WIN32_WINNT_WIN10 +typedef enum _MFVideoSphericalFormat { + MFVideoSphericalFormat_Unsupported = 0, + MFVideoSphericalFormat_Equirectangular = 1, + MFVideoSphericalFormat_CubeMap = 2, + MFVideoSphericalFormat_3DMesh = 3 +} MFVideoSphericalFormat; +#endif /* WINVER >= _WIN32_WINNT_WIN10 */ +#if NTDDI_VERSION >= NTDDI_WIN10_RS3 +EXTERN_GUID(MF_XVP_SAMPLE_LOCK_TIMEOUT, 0xaa4ddb29, 0x5134, 0x4363, 0xac, 0x72, 0x83, 0xec, 0x4b, 0xc1, 0x4, 0x26); +typedef enum MFVideoSphericalProjectionMode { + MFVideoSphericalProjectionMode_Spherical = 0, + MFVideoSphericalProjectionMode_Flat = 1 +} MFVideoSphericalProjectionMode; +/***************************************************************************** + * IMFVideoProcessorControl3 interface + */ +#ifndef __IMFVideoProcessorControl3_INTERFACE_DEFINED__ +#define __IMFVideoProcessorControl3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoProcessorControl3, 0x2424b3f2, 0xeb23, 0x40f1, 0x91,0xaa, 0x74,0xbd,0xde,0xea,0x08,0x83); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2424b3f2-eb23-40f1-91aa-74bddeea0883") +IMFVideoProcessorControl3 : public IMFVideoProcessorControl2 +{ + virtual HRESULT STDMETHODCALLTYPE GetNaturalOutputType( + IMFMediaType **ppType) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableSphericalVideoProcessing( + WINBOOL fEnable, + MFVideoSphericalFormat eFormat, + MFVideoSphericalProjectionMode eProjectionMode) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSphericalVideoProperties( + float X, + float Y, + float Z, + float W, + float fieldOfView) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOutputDevice( + IUnknown *pOutputDevice) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoProcessorControl3, 0x2424b3f2, 0xeb23, 0x40f1, 0x91,0xaa, 0x74,0xbd,0xde,0xea,0x08,0x83) +#endif +#else +typedef struct IMFVideoProcessorControl3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoProcessorControl3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoProcessorControl3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoProcessorControl3 *This); + + /*** IMFVideoProcessorControl methods ***/ + HRESULT (STDMETHODCALLTYPE *SetBorderColor)( + IMFVideoProcessorControl3 *This, + MFARGB *pBorderColor); + + HRESULT (STDMETHODCALLTYPE *SetSourceRectangle)( + IMFVideoProcessorControl3 *This, + RECT *pSrcRect); + + HRESULT (STDMETHODCALLTYPE *SetDestinationRectangle)( + IMFVideoProcessorControl3 *This, + RECT *pDstRect); + + HRESULT (STDMETHODCALLTYPE *SetMirror)( + IMFVideoProcessorControl3 *This, + MF_VIDEO_PROCESSOR_MIRROR eMirror); + + HRESULT (STDMETHODCALLTYPE *SetRotation)( + IMFVideoProcessorControl3 *This, + MF_VIDEO_PROCESSOR_ROTATION eRotation); + + HRESULT (STDMETHODCALLTYPE *SetConstrictionSize)( + IMFVideoProcessorControl3 *This, + SIZE *pConstrictionSize); + + /*** IMFVideoProcessorControl2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetRotationOverride)( + IMFVideoProcessorControl3 *This, + UINT uiRotation); + + HRESULT (STDMETHODCALLTYPE *EnableHardwareEffects)( + IMFVideoProcessorControl3 *This, + WINBOOL fEnabled); + + HRESULT (STDMETHODCALLTYPE *GetSupportedHardwareEffects)( + IMFVideoProcessorControl3 *This, + UINT *puiSupport); + + /*** IMFVideoProcessorControl3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetNaturalOutputType)( + IMFVideoProcessorControl3 *This, + IMFMediaType **ppType); + + HRESULT (STDMETHODCALLTYPE *EnableSphericalVideoProcessing)( + IMFVideoProcessorControl3 *This, + WINBOOL fEnable, + MFVideoSphericalFormat eFormat, + MFVideoSphericalProjectionMode eProjectionMode); + + HRESULT (STDMETHODCALLTYPE *SetSphericalVideoProperties)( + IMFVideoProcessorControl3 *This, + float X, + float Y, + float Z, + float W, + float fieldOfView); + + HRESULT (STDMETHODCALLTYPE *SetOutputDevice)( + IMFVideoProcessorControl3 *This, + IUnknown *pOutputDevice); + + END_INTERFACE +} IMFVideoProcessorControl3Vtbl; + +interface IMFVideoProcessorControl3 { + CONST_VTBL IMFVideoProcessorControl3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoProcessorControl3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoProcessorControl3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoProcessorControl3_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoProcessorControl methods ***/ +#define IMFVideoProcessorControl3_SetBorderColor(This,pBorderColor) (This)->lpVtbl->SetBorderColor(This,pBorderColor) +#define IMFVideoProcessorControl3_SetSourceRectangle(This,pSrcRect) (This)->lpVtbl->SetSourceRectangle(This,pSrcRect) +#define IMFVideoProcessorControl3_SetDestinationRectangle(This,pDstRect) (This)->lpVtbl->SetDestinationRectangle(This,pDstRect) +#define IMFVideoProcessorControl3_SetMirror(This,eMirror) (This)->lpVtbl->SetMirror(This,eMirror) +#define IMFVideoProcessorControl3_SetRotation(This,eRotation) (This)->lpVtbl->SetRotation(This,eRotation) +#define IMFVideoProcessorControl3_SetConstrictionSize(This,pConstrictionSize) (This)->lpVtbl->SetConstrictionSize(This,pConstrictionSize) +/*** IMFVideoProcessorControl2 methods ***/ +#define IMFVideoProcessorControl3_SetRotationOverride(This,uiRotation) (This)->lpVtbl->SetRotationOverride(This,uiRotation) +#define IMFVideoProcessorControl3_EnableHardwareEffects(This,fEnabled) (This)->lpVtbl->EnableHardwareEffects(This,fEnabled) +#define IMFVideoProcessorControl3_GetSupportedHardwareEffects(This,puiSupport) (This)->lpVtbl->GetSupportedHardwareEffects(This,puiSupport) +/*** IMFVideoProcessorControl3 methods ***/ +#define IMFVideoProcessorControl3_GetNaturalOutputType(This,ppType) (This)->lpVtbl->GetNaturalOutputType(This,ppType) +#define IMFVideoProcessorControl3_EnableSphericalVideoProcessing(This,fEnable,eFormat,eProjectionMode) (This)->lpVtbl->EnableSphericalVideoProcessing(This,fEnable,eFormat,eProjectionMode) +#define IMFVideoProcessorControl3_SetSphericalVideoProperties(This,X,Y,Z,W,fieldOfView) (This)->lpVtbl->SetSphericalVideoProperties(This,X,Y,Z,W,fieldOfView) +#define IMFVideoProcessorControl3_SetOutputDevice(This,pOutputDevice) (This)->lpVtbl->SetOutputDevice(This,pOutputDevice) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl3_QueryInterface(IMFVideoProcessorControl3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoProcessorControl3_AddRef(IMFVideoProcessorControl3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoProcessorControl3_Release(IMFVideoProcessorControl3* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoProcessorControl methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetBorderColor(IMFVideoProcessorControl3* This,MFARGB *pBorderColor) { + return This->lpVtbl->SetBorderColor(This,pBorderColor); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetSourceRectangle(IMFVideoProcessorControl3* This,RECT *pSrcRect) { + return This->lpVtbl->SetSourceRectangle(This,pSrcRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetDestinationRectangle(IMFVideoProcessorControl3* This,RECT *pDstRect) { + return This->lpVtbl->SetDestinationRectangle(This,pDstRect); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetMirror(IMFVideoProcessorControl3* This,MF_VIDEO_PROCESSOR_MIRROR eMirror) { + return This->lpVtbl->SetMirror(This,eMirror); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetRotation(IMFVideoProcessorControl3* This,MF_VIDEO_PROCESSOR_ROTATION eRotation) { + return This->lpVtbl->SetRotation(This,eRotation); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetConstrictionSize(IMFVideoProcessorControl3* This,SIZE *pConstrictionSize) { + return This->lpVtbl->SetConstrictionSize(This,pConstrictionSize); +} +/*** IMFVideoProcessorControl2 methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetRotationOverride(IMFVideoProcessorControl3* This,UINT uiRotation) { + return This->lpVtbl->SetRotationOverride(This,uiRotation); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_EnableHardwareEffects(IMFVideoProcessorControl3* This,WINBOOL fEnabled) { + return This->lpVtbl->EnableHardwareEffects(This,fEnabled); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_GetSupportedHardwareEffects(IMFVideoProcessorControl3* This,UINT *puiSupport) { + return This->lpVtbl->GetSupportedHardwareEffects(This,puiSupport); +} +/*** IMFVideoProcessorControl3 methods ***/ +static FORCEINLINE HRESULT IMFVideoProcessorControl3_GetNaturalOutputType(IMFVideoProcessorControl3* This,IMFMediaType **ppType) { + return This->lpVtbl->GetNaturalOutputType(This,ppType); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_EnableSphericalVideoProcessing(IMFVideoProcessorControl3* This,WINBOOL fEnable,MFVideoSphericalFormat eFormat,MFVideoSphericalProjectionMode eProjectionMode) { + return This->lpVtbl->EnableSphericalVideoProcessing(This,fEnable,eFormat,eProjectionMode); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetSphericalVideoProperties(IMFVideoProcessorControl3* This,float X,float Y,float Z,float W,float fieldOfView) { + return This->lpVtbl->SetSphericalVideoProperties(This,X,Y,Z,W,fieldOfView); +} +static FORCEINLINE HRESULT IMFVideoProcessorControl3_SetOutputDevice(IMFVideoProcessorControl3* This,IUnknown *pOutputDevice) { + return This->lpVtbl->SetOutputDevice(This,pOutputDevice); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoProcessorControl3_INTERFACE_DEFINED__ */ + +#endif /* NTDDI_VERSION >= NTDDI_WIN10_RS3 */ +#endif /* WINVER >= _WIN32_WINNT_WINBLUE */ +#if NTDDI_VERSION >= NTDDI_WIN10_VB +/***************************************************************************** + * IMFVideoRendererEffectControl interface + */ +#ifndef __IMFVideoRendererEffectControl_INTERFACE_DEFINED__ +#define __IMFVideoRendererEffectControl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IMFVideoRendererEffectControl, 0x604d33d7, 0xcf23, 0x41d5, 0x82,0x24, 0x5b,0xbb,0xb1,0xa8,0x74,0x75); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("604d33d7-cf23-41d5-8224-5bbbb1a87475") +IMFVideoRendererEffectControl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnAppServiceConnectionEstablished( + IUnknown *pAppServiceConnection) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IMFVideoRendererEffectControl, 0x604d33d7, 0xcf23, 0x41d5, 0x82,0x24, 0x5b,0xbb,0xb1,0xa8,0x74,0x75) +#endif +#else +typedef struct IMFVideoRendererEffectControlVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IMFVideoRendererEffectControl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IMFVideoRendererEffectControl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IMFVideoRendererEffectControl *This); + + /*** IMFVideoRendererEffectControl methods ***/ + HRESULT (STDMETHODCALLTYPE *OnAppServiceConnectionEstablished)( + IMFVideoRendererEffectControl *This, + IUnknown *pAppServiceConnection); + + END_INTERFACE +} IMFVideoRendererEffectControlVtbl; + +interface IMFVideoRendererEffectControl { + CONST_VTBL IMFVideoRendererEffectControlVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IMFVideoRendererEffectControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IMFVideoRendererEffectControl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IMFVideoRendererEffectControl_Release(This) (This)->lpVtbl->Release(This) +/*** IMFVideoRendererEffectControl methods ***/ +#define IMFVideoRendererEffectControl_OnAppServiceConnectionEstablished(This,pAppServiceConnection) (This)->lpVtbl->OnAppServiceConnectionEstablished(This,pAppServiceConnection) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IMFVideoRendererEffectControl_QueryInterface(IMFVideoRendererEffectControl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IMFVideoRendererEffectControl_AddRef(IMFVideoRendererEffectControl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IMFVideoRendererEffectControl_Release(IMFVideoRendererEffectControl* This) { + return This->lpVtbl->Release(This); +} +/*** IMFVideoRendererEffectControl methods ***/ +static FORCEINLINE HRESULT IMFVideoRendererEffectControl_OnAppServiceConnectionEstablished(IMFVideoRendererEffectControl* This,IUnknown *pAppServiceConnection) { + return This->lpVtbl->OnAppServiceConnectionEstablished(This,pAppServiceConnection); +} +#endif +#endif + +#endif + + +#endif /* __IMFVideoRendererEffectControl_INTERFACE_DEFINED__ */ + +#endif /* WINVER >= NTDDI_WIN10_VB */ +#endif /* WINVER >= _WIN32_WINNT_WIN8 */ +HRESULT WINAPI MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); +HRESULT WINAPI MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource); HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer); HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo); @@ -5610,6 +7289,7 @@ HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescr HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter); HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *pAudioAttributes, IMFMediaSink **ppSink); HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **ppActivate); +HRESULT WINAPI MFCreateDeviceSource(IMFAttributes *pAttributes,IMFMediaSource **ppSource); HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS); HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink); HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink); @@ -5666,6 +7346,7 @@ EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE, 0x6ba644ff, 0x27c5, 0x4d0 EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY, 0xa9770471, 0x92ec, 0x4df4, 0x94, 0xfe, 0x81, 0xc3, 0x6f, 0xc, 0x3a, 0x7a); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_GUID, 0x14dd9a1c, 0x7cff, 0x41be, 0xb1, 0xb9, 0xba, 0x1a, 0xc6, 0xec, 0xb5, 0x71); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e); @@ -5674,10 +7355,20 @@ EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3); EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_SYMBOLIC_LINK, 0x98d24b5e, 0x5930, 0x4614, 0xb5, 0xa1, 0xf6, 0x0, 0xf9, 0x35, 0x5a, 0x78); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_PROVIDER_DEVICE_ID, 0x36689d42, 0xa06c, 0x40ae, 0x84, 0xcf, 0xf5, 0xa0, 0x34, 0x6, 0x7c, 0xc4); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_XADDRESS, 0xbca0be52, 0xc327, 0x44c7, 0x9b, 0x7d, 0x7f, 0xa8, 0xd9, 0xb5, 0xbc, 0xda); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_STREAM_URL, 0x9d7b40d2, 0x3617, 0x4043, 0x93, 0xe3, 0x8d, 0x6d, 0xa9, 0xbb, 0x34, 0x92); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_USERNAME,0x5d01add, 0x949f, 0x46eb, 0xbc, 0x8e, 0x8b, 0xd, 0x2b, 0x32, 0xd7, 0x9d); +EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_PASSWORD, 0xa0fd7e16, 0x42d9, 0x49df, 0x84, 0xc0, 0xe8, 0x2c, 0x5e, 0xab, 0x88, 0x74); EXTERN_GUID(MF_METADATA_PROVIDER_SERVICE, 0xdb214084, 0x58a4, 0x4d2e, 0xb8, 0x4f, 0x6f, 0x75, 0x5b, 0x2f, 0x7a, 0xd); EXTERN_GUID(MF_PROPERTY_HANDLER_SERVICE, 0xa3face02, 0x32b8, 0x41dd, 0x90, 0xe7, 0x5f, 0xef, 0x7c, 0x89, 0x91, 0xb5); EXTERN_GUID(MF_RATE_CONTROL_SERVICE, 0x866fa297, 0xb802, 0x4bf8, 0x9d, 0xc9, 0x5e, 0x3b, 0x6a, 0x9f, 0x53, 0xc9); EXTERN_GUID(MF_SAMPLEGRABBERSINK_IGNORE_CLOCK, 0x0efda2c0, 0x2b69, 0x4e2e, 0xab, 0x8d, 0x46, 0xdc, 0xbf, 0xf7, 0xd2, 0x5d); +EXTERN_GUID(MF_SD_LANGUAGE, 0xaf2180, 0xbdc2, 0x423c, 0xab, 0xca, 0xf5, 0x3, 0x59, 0x3b, 0xc1, 0x21); +EXTERN_GUID(MF_SD_PROTECTED, 0xaf2181, 0xbdc2, 0x423c, 0xab, 0xca, 0xf5, 0x3, 0x59, 0x3b, 0xc1, 0x21); +EXTERN_GUID(MF_SD_STREAM_NAME, 0x4f1b099d, 0xd314, 0x41e5, 0xa7, 0x81, 0x7f, 0xef, 0xaa, 0x4c, 0x50, 0x1f); +EXTERN_GUID(MF_SD_MUTUALLY_EXCLUSIVE, 0x23ef79c, 0x388d, 0x487f, 0xac, 0x17, 0x69, 0x6c, 0xd6, 0xe3, 0xc6, 0xf5); EXTERN_GUID(MF_TOPONODE_DRAIN, 0x494bbce9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); EXTERN_GUID(MF_TOPONODE_D3DAWARE, 0x494bbced, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); EXTERN_GUID(MF_TOPOLOGY_RESOLUTION_STATUS, 0x494bbcde, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc); @@ -5708,6 +7399,15 @@ EXTERN_GUID(MF_TOPONODE_NOSHUTDOWN_ON_REMOVE, 0x14932f9c, 0x9087, 0x4bb4, 0x84, EXTERN_GUID(MF_TOPONODE_RATELESS, 0x14932f9d, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); EXTERN_GUID(MF_TOPONODE_DISABLE_PREROLL, 0x14932f9e, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04); EXTERN_GUID(MF_TOPONODE_PRIMARYOUTPUT, 0x6304ef99, 0x16b2, 0x4ebe, 0x9d, 0x67, 0xe4, 0xc5, 0x39, 0xb3, 0xa2, 0x59); +EXTERN_GUID(MF_TRANSCODE_SKIP_METADATA_TRANSFER, 0x4e4469ef, 0xb571, 0x4959, 0x8f, 0x83, 0x3d, 0xcf, 0xba, 0x33, 0xa3, 0x93); +EXTERN_GUID(MF_TRANSCODE_TOPOLOGYMODE, 0x3e3df610, 0x394a, 0x40b2, 0x9d, 0xea, 0x3b, 0xab, 0x65, 0xb, 0xeb, 0xf2); +EXTERN_GUID(MF_TRANSCODE_ADJUST_PROFILE, 0x9c37c21b, 0x60f, 0x487c, 0xa6, 0x90, 0x80, 0xd7, 0xf5, 0xd, 0x1c, 0x72); +EXTERN_GUID(MF_TRANSCODE_ENCODINGPROFILE, 0x6947787c, 0xf508, 0x4ea9, 0xb1, 0xe9, 0xa1, 0xfe, 0x3a, 0x49, 0xfb, 0xc9); +EXTERN_GUID(MF_TRANSCODE_QUALITYVSSPEED, 0x98332df8, 0x03cd, 0x476b, 0x89, 0xfa, 0x3f, 0x9e, 0x44, 0x2d, 0xec, 0x9f); +EXTERN_GUID(MF_TRANSCODE_DONOT_INSERT_ENCODER, 0xf45aa7ce, 0xab24, 0x4012, 0xa1, 0x1b, 0xdc, 0x82, 0x20, 0x20, 0x14, 0x10); +EXTERN_GUID(MR_AUDIO_POLICY_SERVICE, 0x911fd737, 0x6775, 0x4ab0, 0xa6, 0x14, 0x29, 0x78, 0x62, 0xfd, 0xac, 0x88); +EXTERN_GUID(MR_CAPTURE_POLICY_VOLUME_SERVICE, 0x24030acd, 0x107a, 0x4265, 0x97, 0x5c, 0x41, 0x4e, 0x33, 0xe6, 0x5f, 0x2a); +EXTERN_GUID(MR_POLICY_VOLUME_SERVICE, 0x1abaa2ac, 0x9d3b, 0x47c6, 0xab, 0x48, 0xc5, 0x95, 0x6, 0xde, 0x78, 0x4d); EXTERN_GUID(MR_STREAM_VOLUME_SERVICE, 0xf8b5fa2f, 0x32ef, 0x46f5, 0xb1, 0x72, 0x13, 0x21, 0x21, 0x2f, 0xb2, 0xc4); /* Begin additional prototypes for all interfaces */ diff --git a/lib/libc/include/any-windows-any/mfmediacapture.h b/lib/libc/include/any-windows-any/mfmediacapture.h new file mode 100644 index 0000000000..15876327c4 --- /dev/null +++ b/lib/libc/include/any-windows-any/mfmediacapture.h @@ -0,0 +1,298 @@ +/*** Autogenerated by WIDL 7.0 from include/mfmediacapture.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __mfmediacapture_h__ +#define __mfmediacapture_h__ + +/* Forward declarations */ + +#ifndef __IAdvancedMediaCaptureInitializationSettings_FWD_DEFINED__ +#define __IAdvancedMediaCaptureInitializationSettings_FWD_DEFINED__ +typedef interface IAdvancedMediaCaptureInitializationSettings IAdvancedMediaCaptureInitializationSettings; +#ifdef __cplusplus +interface IAdvancedMediaCaptureInitializationSettings; +#endif /* __cplusplus */ +#endif + +#ifndef __IAdvancedMediaCaptureSettings_FWD_DEFINED__ +#define __IAdvancedMediaCaptureSettings_FWD_DEFINED__ +typedef interface IAdvancedMediaCaptureSettings IAdvancedMediaCaptureSettings; +#ifdef __cplusplus +interface IAdvancedMediaCaptureSettings; +#endif /* __cplusplus */ +#endif + +#ifndef __IAdvancedMediaCapture_FWD_DEFINED__ +#define __IAdvancedMediaCapture_FWD_DEFINED__ +typedef interface IAdvancedMediaCapture IAdvancedMediaCapture; +#ifdef __cplusplus +interface IAdvancedMediaCapture; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <mfobjects.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if NTDDI_VERSION >= NTDDI_WIN8 +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +/***************************************************************************** + * IAdvancedMediaCaptureInitializationSettings interface + */ +#ifndef __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__ +#define __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAdvancedMediaCaptureInitializationSettings, 0x3de21209, 0x8ba6, 0x4f2a, 0xa5,0x77, 0x28,0x19,0xb5,0x6f,0xf1,0x4d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3de21209-8ba6-4f2a-a577-2819b56ff14d") +IAdvancedMediaCaptureInitializationSettings : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetDirectxDeviceManager( + IMFDXGIDeviceManager *pManager) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IAdvancedMediaCaptureInitializationSettings, 0x3de21209, 0x8ba6, 0x4f2a, 0xa5,0x77, 0x28,0x19,0xb5,0x6f,0xf1,0x4d) +#endif +#else +typedef struct IAdvancedMediaCaptureInitializationSettingsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAdvancedMediaCaptureInitializationSettings *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAdvancedMediaCaptureInitializationSettings *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAdvancedMediaCaptureInitializationSettings *This); + + /*** IAdvancedMediaCaptureInitializationSettings methods ***/ + HRESULT (STDMETHODCALLTYPE *SetDirectxDeviceManager)( + IAdvancedMediaCaptureInitializationSettings *This, + IMFDXGIDeviceManager *pManager); + + END_INTERFACE +} IAdvancedMediaCaptureInitializationSettingsVtbl; + +interface IAdvancedMediaCaptureInitializationSettings { + CONST_VTBL IAdvancedMediaCaptureInitializationSettingsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IAdvancedMediaCaptureInitializationSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAdvancedMediaCaptureInitializationSettings_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAdvancedMediaCaptureInitializationSettings_Release(This) (This)->lpVtbl->Release(This) +/*** IAdvancedMediaCaptureInitializationSettings methods ***/ +#define IAdvancedMediaCaptureInitializationSettings_SetDirectxDeviceManager(This,pManager) (This)->lpVtbl->SetDirectxDeviceManager(This,pManager) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCaptureInitializationSettings_QueryInterface(IAdvancedMediaCaptureInitializationSettings* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IAdvancedMediaCaptureInitializationSettings_AddRef(IAdvancedMediaCaptureInitializationSettings* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IAdvancedMediaCaptureInitializationSettings_Release(IAdvancedMediaCaptureInitializationSettings* This) { + return This->lpVtbl->Release(This); +} +/*** IAdvancedMediaCaptureInitializationSettings methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCaptureInitializationSettings_SetDirectxDeviceManager(IAdvancedMediaCaptureInitializationSettings* This,IMFDXGIDeviceManager *pManager) { + return This->lpVtbl->SetDirectxDeviceManager(This,pManager); +} +#endif +#endif + +#endif + + +#endif /* __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAdvancedMediaCaptureSettings interface + */ +#ifndef __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__ +#define __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAdvancedMediaCaptureSettings, 0x24e0485f, 0xa33e, 0x4aa1, 0xb5,0x64, 0x60,0x19,0xb1,0xd1,0x4f,0x65); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("24e0485f-a33e-4aa1-b564-6019b1d14f65") +IAdvancedMediaCaptureSettings : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetDirectxDeviceManager( + IMFDXGIDeviceManager **ppManager) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IAdvancedMediaCaptureSettings, 0x24e0485f, 0xa33e, 0x4aa1, 0xb5,0x64, 0x60,0x19,0xb1,0xd1,0x4f,0x65) +#endif +#else +typedef struct IAdvancedMediaCaptureSettingsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAdvancedMediaCaptureSettings *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAdvancedMediaCaptureSettings *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAdvancedMediaCaptureSettings *This); + + /*** IAdvancedMediaCaptureSettings methods ***/ + HRESULT (STDMETHODCALLTYPE *GetDirectxDeviceManager)( + IAdvancedMediaCaptureSettings *This, + IMFDXGIDeviceManager **ppManager); + + END_INTERFACE +} IAdvancedMediaCaptureSettingsVtbl; + +interface IAdvancedMediaCaptureSettings { + CONST_VTBL IAdvancedMediaCaptureSettingsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IAdvancedMediaCaptureSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAdvancedMediaCaptureSettings_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAdvancedMediaCaptureSettings_Release(This) (This)->lpVtbl->Release(This) +/*** IAdvancedMediaCaptureSettings methods ***/ +#define IAdvancedMediaCaptureSettings_GetDirectxDeviceManager(This,ppManager) (This)->lpVtbl->GetDirectxDeviceManager(This,ppManager) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCaptureSettings_QueryInterface(IAdvancedMediaCaptureSettings* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IAdvancedMediaCaptureSettings_AddRef(IAdvancedMediaCaptureSettings* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IAdvancedMediaCaptureSettings_Release(IAdvancedMediaCaptureSettings* This) { + return This->lpVtbl->Release(This); +} +/*** IAdvancedMediaCaptureSettings methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCaptureSettings_GetDirectxDeviceManager(IAdvancedMediaCaptureSettings* This,IMFDXGIDeviceManager **ppManager) { + return This->lpVtbl->GetDirectxDeviceManager(This,ppManager); +} +#endif +#endif + +#endif + + +#endif /* __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAdvancedMediaCapture interface + */ +#ifndef __IAdvancedMediaCapture_INTERFACE_DEFINED__ +#define __IAdvancedMediaCapture_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IAdvancedMediaCapture, 0xd0751585, 0xd216, 0x4344, 0xb5,0xbf, 0x46,0x3b,0x68,0xf9,0x77,0xbb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d0751585-d216-4344-b5bf-463b68f977bb") +IAdvancedMediaCapture : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAdvancedMediaCaptureSettings( + IAdvancedMediaCaptureSettings **ppSettings) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IAdvancedMediaCapture, 0xd0751585, 0xd216, 0x4344, 0xb5,0xbf, 0x46,0x3b,0x68,0xf9,0x77,0xbb) +#endif +#else +typedef struct IAdvancedMediaCaptureVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IAdvancedMediaCapture *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IAdvancedMediaCapture *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IAdvancedMediaCapture *This); + + /*** IAdvancedMediaCapture methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAdvancedMediaCaptureSettings)( + IAdvancedMediaCapture *This, + IAdvancedMediaCaptureSettings **ppSettings); + + END_INTERFACE +} IAdvancedMediaCaptureVtbl; + +interface IAdvancedMediaCapture { + CONST_VTBL IAdvancedMediaCaptureVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IAdvancedMediaCapture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IAdvancedMediaCapture_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IAdvancedMediaCapture_Release(This) (This)->lpVtbl->Release(This) +/*** IAdvancedMediaCapture methods ***/ +#define IAdvancedMediaCapture_GetAdvancedMediaCaptureSettings(This,ppSettings) (This)->lpVtbl->GetAdvancedMediaCaptureSettings(This,ppSettings) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCapture_QueryInterface(IAdvancedMediaCapture* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IAdvancedMediaCapture_AddRef(IAdvancedMediaCapture* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IAdvancedMediaCapture_Release(IAdvancedMediaCapture* This) { + return This->lpVtbl->Release(This); +} +/*** IAdvancedMediaCapture methods ***/ +static FORCEINLINE HRESULT IAdvancedMediaCapture_GetAdvancedMediaCaptureSettings(IAdvancedMediaCapture* This,IAdvancedMediaCaptureSettings **ppSettings) { + return This->lpVtbl->GetAdvancedMediaCaptureSettings(This,ppSettings); +} +#endif +#endif + +#endif + + +#endif /* __IAdvancedMediaCapture_INTERFACE_DEFINED__ */ + +#endif /* WINAPI_PARTITION_APP */ +#endif /* NTDDI >= NTDDI_WIN8 */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __mfmediacapture_h__ */ diff --git a/lib/libc/include/any-windows-any/mfobjects.h b/lib/libc/include/any-windows-any/mfobjects.h index 68e70f6219..07eaae7bb8 100644 --- a/lib/libc/include/any-windows-any/mfobjects.h +++ b/lib/libc/include/any-windows-any/mfobjects.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mfobjects.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mfobjects.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mfplay.h b/lib/libc/include/any-windows-any/mfplay.h index 783917710e..b9294b15dd 100644 --- a/lib/libc/include/any-windows-any/mfplay.h +++ b/lib/libc/include/any-windows-any/mfplay.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mfplay.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mfplay.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mfreadwrite.h b/lib/libc/include/any-windows-any/mfreadwrite.h index ad876da281..516504309c 100644 --- a/lib/libc/include/any-windows-any/mfreadwrite.h +++ b/lib/libc/include/any-windows-any/mfreadwrite.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mfreadwrite.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mfreadwrite.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mftransform.h b/lib/libc/include/any-windows-any/mftransform.h index 3c3e4b2715..799e1a98e6 100644 --- a/lib/libc/include/any-windows-any/mftransform.h +++ b/lib/libc/include/any-windows-any/mftransform.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mftransform.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mftransform.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mmdeviceapi.h b/lib/libc/include/any-windows-any/mmdeviceapi.h index 8ac7c8ca55..dc2a8dcaa2 100644 --- a/lib/libc/include/any-windows-any/mmdeviceapi.h +++ b/lib/libc/include/any-windows-any/mmdeviceapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mmdeviceapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mmdeviceapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mmreg.h b/lib/libc/include/any-windows-any/mmreg.h index c7ddc892e2..092a052008 100644 --- a/lib/libc/include/any-windows-any/mmreg.h +++ b/lib/libc/include/any-windows-any/mmreg.h @@ -2008,6 +2008,7 @@ extern "C" { #define WAVE_FORMAT_LEAD_SPEECH 0x434c #define WAVE_FORMAT_LEAD_VORBIS 0x564c #define WAVE_FORMAT_WAVPACK_AUDIO 0x5756 +#define WAVE_FORMAT_ALAC 0x6c61 #define WAVE_FORMAT_OGG_VORBIS_MODE_1 0x674f #define WAVE_FORMAT_OGG_VORBIS_MODE_2 0x6750 #define WAVE_FORMAT_OGG_VORBIS_MODE_3 0x6751 @@ -2015,7 +2016,11 @@ extern "C" { #define WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS 0x6770 #define WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS 0x6771 #define WAVE_FORMAT_3COM_NBX 0x7000 +#define WAVE_FORMAT_OPUS 0x704f #define WAVE_FORMAT_FAAD_AAC 0x706d +#define WAVE_FORMAT_AMR_NB 0x7361 +#define WAVE_FORMAT_AMR_WB 0x7362 +#define WAVE_FORMAT_AMR_WP 0x7363 #define WAVE_FORMAT_GSM_AMR_CBR 0x7a21 #define WAVE_FORMAT_GSM_AMR_VBR_SID 0x7a22 #define WAVE_FORMAT_COMVERSE_INFOSYS_G723_1 0xa100 @@ -2055,6 +2060,7 @@ extern "C" { #define WAVE_FORMAT_NICE_G728 0xa122 #define WAVE_FORMAT_FRACE_TELECOM_G729 0xa123 #define WAVE_FORMAT_CODIAN 0xa124 +#define WAVE_FORMAT_DOLBY_AC4 0xac40 #define WAVE_FORMAT_FLAC 0xf1ac #if !defined (WAVE_FORMAT_EXTENSIBLE) diff --git a/lib/libc/include/any-windows-any/mmstream.h b/lib/libc/include/any-windows-any/mmstream.h index f2d2c5c49a..1a8313a7f3 100644 --- a/lib/libc/include/any-windows-any/mmstream.h +++ b/lib/libc/include/any-windows-any/mmstream.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mmstream.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mmstream.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mmsystem.h b/lib/libc/include/any-windows-any/mmsystem.h index c021d54a7a..7ec2e8bc0c 100644 --- a/lib/libc/include/any-windows-any/mmsystem.h +++ b/lib/libc/include/any-windows-any/mmsystem.h @@ -302,6 +302,7 @@ extern "C" { #define WAVE_MAPPED 0x0004 #define WAVE_FORMAT_DIRECT 0x0008 #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT) +#define WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE 0x0010 typedef struct wavehdr_tag { LPSTR lpData; diff --git a/lib/libc/include/any-windows-any/mscoree.h b/lib/libc/include/any-windows-any/mscoree.h index bf0fa9ca13..7a48cae924 100644 --- a/lib/libc/include/any-windows-any/mscoree.h +++ b/lib/libc/include/any-windows-any/mscoree.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mscoree.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mscoree.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/msctf.h b/lib/libc/include/any-windows-any/msctf.h index 7be5801309..80ea3ee180 100644 --- a/lib/libc/include/any-windows-any/msctf.h +++ b/lib/libc/include/any-windows-any/msctf.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/msctf.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/msctf.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mshtmhst.h b/lib/libc/include/any-windows-any/mshtmhst.h index 058297b40c..1784e94784 100644 --- a/lib/libc/include/any-windows-any/mshtmhst.h +++ b/lib/libc/include/any-windows-any/mshtmhst.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mshtmhst.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mshtmhst.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mshtml.h b/lib/libc/include/any-windows-any/mshtml.h index 95e0cbcb97..a3e0501a90 100644 --- a/lib/libc/include/any-windows-any/mshtml.h +++ b/lib/libc/include/any-windows-any/mshtml.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/mshtml.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/mshtml.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/msinkaut.h b/lib/libc/include/any-windows-any/msinkaut.h index 4d4dffccd6..b59d2a449c 100644 --- a/lib/libc/include/any-windows-any/msinkaut.h +++ b/lib/libc/include/any-windows-any/msinkaut.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/msinkaut.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/msinkaut.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/msinkaut_i.c b/lib/libc/include/any-windows-any/msinkaut_i.c index 1394188f71..c27ee73f05 100644 --- a/lib/libc/include/any-windows-any/msinkaut_i.c +++ b/lib/libc/include/any-windows-any/msinkaut_i.c @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/msinkaut.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/msinkaut.idl - Do not edit ***/ #include <rpc.h> #include <rpcndr.h> diff --git a/lib/libc/include/any-windows-any/msopc.h b/lib/libc/include/any-windows-any/msopc.h index e18fd9d8ea..ddd77c3643 100644 --- a/lib/libc/include/any-windows-any/msopc.h +++ b/lib/libc/include/any-windows-any/msopc.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/msopc.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/msopc.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/mstcpip.h b/lib/libc/include/any-windows-any/mstcpip.h index b040ba739b..1e1bc24e71 100644 --- a/lib/libc/include/any-windows-any/mstcpip.h +++ b/lib/libc/include/any-windows-any/mstcpip.h @@ -15,12 +15,68 @@ #define u_long __ms_u_long #endif +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 +typedef enum _TCPSTATE { + TCPSTATE_CLOSED, + TCPSTATE_LISTEN, + TCPSTATE_SYN_SENT, + TCPSTATE_SYN_RCVD, + TCPSTATE_ESTABLISHED, + TCPSTATE_FIN_WAIT_1, + TCPSTATE_FIN_WAIT_2, + TCPSTATE_CLOSE_WAIT, + TCPSTATE_CLOSING, + TCPSTATE_LAST_ACK, + TCPSTATE_TIME_WAIT, + TCPSTATE_MAX +} TCPSTATE; +#endif + +#ifndef _TRANSPORT_SETTING_COMMON_ +#define _TRANSPORT_SETTING_COMMON_ +typedef struct TRANSPORT_SETTING_ID { + GUID Guid; +} TRANSPORT_SETTING_ID, *PTRANSPORT_SETTING_ID; +#endif + struct tcp_keepalive { u_long onoff; u_long keepalivetime; u_long keepaliveinterval; }; +typedef enum { + CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0, + CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1, + CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2, + CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3, + CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4, + CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5, + CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6 +} CONTROL_CHANNEL_TRIGGER_STATUS, *PCONTROL_CHANNEL_TRIGGER_STATUS; + +#define CONTROL_CHANNEL_TRIGGER_STATUS_MAX CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR + +typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT { + TRANSPORT_SETTING_ID TransportSettingId; + GUID BrokerEventGuid; +} REAL_TIME_NOTIFICATION_SETTING_INPUT, *PREAL_TIME_NOTIFICATION_SETTING_INPUT; + +typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT_EX { + TRANSPORT_SETTING_ID TransportSettingId; + GUID BrokerEventGuid; + BOOLEAN Unmark; +} REAL_TIME_NOTIFICATION_SETTING_INPUT_EX, *PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX; + +typedef struct _REAL_TIME_NOTIFICATION_SETTING_OUTPUT { + CONTROL_CHANNEL_TRIGGER_STATUS ChannelStatus; +} REAL_TIME_NOTIFICATION_SETTING_OUTPUT, *PREAL_TIME_NOTIFICATION_SETTING_OUTPUT; + +typedef struct _ASSOCIATE_NAMERES_CONTEXT_INPUT { + TRANSPORT_SETTING_ID TransportSettingId; + UINT64 Handle; +} ASSOCIATE_NAMERES_CONTEXT_INPUT, *PASSOCIATE_NAMERES_CONTEXT_INPUT; + #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) #define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2) #define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3) @@ -32,11 +88,188 @@ struct tcp_keepalive { #define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9) #define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10) #define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11) +#define SIO_RCVALL_MCAST_IF _WSAIOW(IOC_VENDOR,13) +#define SIO_RCVALL_IF _WSAIOW(IOC_VENDOR,14) +#define SIO_LOOPBACK_FAST_PATH _WSAIOW(IOC_VENDOR,16) +#define SIO_TCP_INITIAL_RTO _WSAIOW(IOC_VENDOR,17) +#define SIO_APPLY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,19) +#define SIO_QUERY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,20) +#define SIO_TCP_SET_ICW _WSAIOW(IOC_VENDOR,22) +#define SIO_TCP_SET_ACK_FREQUENCY _WSAIOW(IOC_VENDOR,23) +#if NTDDI_VERSION >= NTDDI_WIN10_RS3 +#define SIO_SET_PRIORITY_HINT _WSAIOW(IOC_VENDOR,24) +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_FE +#define SIO_PRIORITY_HINT SIO_SET_PRIORITY_HINT +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 +#define SIO_TCP_INFO _WSAIORW(IOC_VENDOR,39) +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_VB +#define SIO_CPU_AFFINITY _WSAIOW(IOC_VENDOR,21) +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_FE + +#define SIO_TIMESTAMPING _WSAIOW(IOC_VENDOR, 235) + +typedef struct _TIMESTAMPING_CONFIG { + ULONG Flags; + USHORT TxTimestampsBuffered; +} TIMESTAMPING_CONFIG, *PTIMESTAMPING_CONFIG; + +#define TIMESTAMPING_FLAG_RX 0x1 +#define TIMESTAMPING_FLAG_TX 0x2 + +#define SO_TIMESTAMP 0x300A + +#define SO_TIMESTAMP_ID 0x300B + +#define SIO_GET_TX_TIMESTAMP _WSAIOW(IOC_VENDOR, 234) + +typedef enum { + SocketPriorityHintVeryLow = 0, + SocketPriorityHintLow, + SocketPriorityHintNormal, + SocketMaximumPriorityHintType +} SOCKET_PRIORITY_HINT, *PSOCKET_PRIORITY_HINT; + +typedef struct _PRIORITY_STATUS { + SOCKET_PRIORITY_HINT Sender; + SOCKET_PRIORITY_HINT Receiver; +} PRIORITY_STATUS, *PPRIORITY_STATUS; +#endif /* NTDDI_WIN10_FE */ + +typedef enum { + RCVALL_OFF = 0, + RCVALL_ON = 1, + RCVALL_SOCKETLEVELONLY = 2, + RCVALL_IPLEVEL = 3 +} RCVALL_VALUE, *PRCVALL_VALUE; + +#define RCVALL_MAX RCVALL_IPLEVEL + +typedef struct { + RCVALL_VALUE Mode; + ULONG Interface; +} RCVALL_IF, *PRCVALL_IF; + +#define TCP_INITIAL_RTO_UNSPECIFIED_RTT ((USHORT) -1) +#define TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS ((UCHAR) -1) + +#define TCP_INITIAL_RTO_DEFAULT_RTT (0) +#define TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS (0) +#define TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS ((UCHAR) -2) + +typedef struct _TCP_INITIAL_RTO_PARAMETERS { + USHORT Rtt; + UCHAR MaxSynRetransmissions; +} TCP_INITIAL_RTO_PARAMETERS, *PTCP_INITIAL_RTO_PARAMETERS; + +typedef enum { + TCP_ICW_LEVEL_DEFAULT = 0, + TCP_ICW_LEVEL_HIGH = 1, + TCP_ICW_LEVEL_VERY_HIGH = 2, + TCP_ICW_LEVEL_AGGRESSIVE = 3, + TCP_ICW_LEVEL_EXPERIMENTAL = 4, + TCP_ICW_LEVEL_COMPAT = 254, + TCP_ICW_LEVEL_MAX = 255 +} TCP_ICW_LEVEL, *PTCP_ICW_LEVEL; + +typedef struct _TCP_ICW_PARAMETERS { + TCP_ICW_LEVEL Level; +} TCP_ICW_PARAMETERS, *PTCP_ICW_PARAMETERS; + +typedef struct _TCP_ACK_FREQUENCY_PARAMETERS { + UCHAR TcpDelayedAckFrequency; +} TCP_ACK_FREQUENCY_PARAMETERS, *PTCP_ACK_FREQUENCY_PARAMETERS; + +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 +typedef struct _TCP_INFO_v0 { + TCPSTATE State; + ULONG Mss; + ULONG64 ConnectionTimeMs; + BOOLEAN TimestampsEnabled; + ULONG RttUs; + ULONG MinRttUs; + ULONG BytesInFlight; + ULONG Cwnd; + ULONG SndWnd; + ULONG RcvWnd; + ULONG RcvBuf; + ULONG64 BytesOut; + ULONG64 BytesIn; + ULONG BytesReordered; + ULONG BytesRetrans; + ULONG FastRetrans; + ULONG DupAcksIn; + ULONG TimeoutEpisodes; + UCHAR SynRetrans; +} TCP_INFO_v0, *PTCP_INFO_v0; +#endif + +#if NTDDI_VERSION >= NTDDI_WIN10_RS5 +typedef struct _TCP_INFO_v1 { + TCPSTATE State; + ULONG Mss; + ULONG64 ConnectionTimeMs; + BOOLEAN TimestampsEnabled; + ULONG RttUs; + ULONG MinRttUs; + ULONG BytesInFlight; + ULONG Cwnd; + ULONG SndWnd; + ULONG RcvWnd; + ULONG RcvBuf; + ULONG64 BytesOut; + ULONG64 BytesIn; + ULONG BytesReordered; + ULONG BytesRetrans; + ULONG FastRetrans; + ULONG DupAcksIn; + ULONG TimeoutEpisodes; + UCHAR SynRetrans; + ULONG SndLimTransRwin; + ULONG SndLimTimeRwin; + ULONG64 SndLimBytesRwin; + ULONG SndLimTransCwnd; + ULONG SndLimTimeCwnd; + ULONG64 SndLimBytesCwnd; + ULONG SndLimTransSnd; + ULONG SndLimTimeSnd; + ULONG64 SndLimBytesSnd; +} TCP_INFO_v1, *PTCP_INFO_v1; +#endif + +#define SIO_ACQUIRE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 100) +#define SIO_RELEASE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 101) +#define SIO_ASSOCIATE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 102) + +typedef struct _INET_PORT_RANGE { + USHORT StartPort; + USHORT NumberOfPorts; +} INET_PORT_RANGE, *PINET_PORT_RANGE; + +typedef struct _INET_PORT_RANGE INET_PORT_RESERVATION, *PINET_PORT_RESERVATION; + +typedef struct { + ULONG64 Token; +} INET_PORT_RESERVATION_TOKEN, *PINET_PORT_RESERVATION_TOKEN; + +#define INVALID_PORT_RESERVATION_TOKEN ((ULONG64)0) + +typedef struct { +#ifdef __cplusplus + INET_PORT_RESERVATION Reservation; + INET_PORT_RESERVATION_TOKEN Token; +#else + INET_PORT_RESERVATION; + INET_PORT_RESERVATION_TOKEN; +#endif +} INET_PORT_RESERVATION_INSTANCE, *PINET_PORT_RESERVATION_INSTANCE; -#define RCVALL_OFF 0 -#define RCVALL_ON 1 -#define RCVALL_SOCKETLEVELONLY 2 -#define RCVALL_IPLEVEL 3 +typedef struct { + ULONG OwningPid; +} INET_PORT_RESERVATION_INFORMATION, *PINET_PORT_RESERVATION_INFORMATION; #if (_WIN32_WINNT >= 0x0502) typedef enum _SOCKET_SECURITY_PROTOCOL { diff --git a/lib/libc/include/any-windows-any/msxml.h b/lib/libc/include/any-windows-any/msxml.h index a5e8998edb..54281c231e 100644 --- a/lib/libc/include/any-windows-any/msxml.h +++ b/lib/libc/include/any-windows-any/msxml.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/msxml.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/msxml.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napcertrelyingparty.h b/lib/libc/include/any-windows-any/napcertrelyingparty.h index ced669e687..dfc61d122e 100644 --- a/lib/libc/include/any-windows-any/napcertrelyingparty.h +++ b/lib/libc/include/any-windows-any/napcertrelyingparty.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napcertrelyingparty.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napcertrelyingparty.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napcommon.h b/lib/libc/include/any-windows-any/napcommon.h index 79ba5afc9b..8f57316415 100644 --- a/lib/libc/include/any-windows-any/napcommon.h +++ b/lib/libc/include/any-windows-any/napcommon.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napcommon.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napcommon.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napenforcementclient.h b/lib/libc/include/any-windows-any/napenforcementclient.h index dac6ae0704..f7998ef8eb 100644 --- a/lib/libc/include/any-windows-any/napenforcementclient.h +++ b/lib/libc/include/any-windows-any/napenforcementclient.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napenforcementclient.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napenforcementclient.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napmanagement.h b/lib/libc/include/any-windows-any/napmanagement.h index c961deab0e..2cd8941ee6 100644 --- a/lib/libc/include/any-windows-any/napmanagement.h +++ b/lib/libc/include/any-windows-any/napmanagement.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napmanagement.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napmanagement.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napprotocol.h b/lib/libc/include/any-windows-any/napprotocol.h index 79202b4eea..bd2072ce3b 100644 --- a/lib/libc/include/any-windows-any/napprotocol.h +++ b/lib/libc/include/any-windows-any/napprotocol.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napprotocol.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napprotocol.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napservermanagement.h b/lib/libc/include/any-windows-any/napservermanagement.h index a8f630747e..468786fad8 100644 --- a/lib/libc/include/any-windows-any/napservermanagement.h +++ b/lib/libc/include/any-windows-any/napservermanagement.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napservermanagement.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napservermanagement.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napsystemhealthagent.h b/lib/libc/include/any-windows-any/napsystemhealthagent.h index b57143334f..a5c139e74d 100644 --- a/lib/libc/include/any-windows-any/napsystemhealthagent.h +++ b/lib/libc/include/any-windows-any/napsystemhealthagent.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napsystemhealthagent.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napsystemhealthagent.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/napsystemhealthvalidator.h b/lib/libc/include/any-windows-any/napsystemhealthvalidator.h index df785c94a7..923f060621 100644 --- a/lib/libc/include/any-windows-any/napsystemhealthvalidator.h +++ b/lib/libc/include/any-windows-any/napsystemhealthvalidator.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/napsystemhealthvalidator.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/napsystemhealthvalidator.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/naptypes.h b/lib/libc/include/any-windows-any/naptypes.h index d00d4f520a..7f2f2ab8a0 100644 --- a/lib/libc/include/any-windows-any/naptypes.h +++ b/lib/libc/include/any-windows-any/naptypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/naptypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/naptypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/netcfgn.h b/lib/libc/include/any-windows-any/netcfgn.h index 25204e4f2d..96adc6cf4a 100644 --- a/lib/libc/include/any-windows-any/netcfgn.h +++ b/lib/libc/include/any-windows-any/netcfgn.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/netcfgn.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/netcfgn.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/netcfgx.h b/lib/libc/include/any-windows-any/netcfgx.h index fe50972633..a4fe148940 100644 --- a/lib/libc/include/any-windows-any/netcfgx.h +++ b/lib/libc/include/any-windows-any/netcfgx.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/netcfgx.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/netcfgx.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/netfw.h b/lib/libc/include/any-windows-any/netfw.h index df2f18ec4c..52802f8a75 100644 --- a/lib/libc/include/any-windows-any/netfw.h +++ b/lib/libc/include/any-windows-any/netfw.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/netfw.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/netfw.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/netlistmgr.h b/lib/libc/include/any-windows-any/netlistmgr.h index 00ebcebc0c..d2e67b292e 100644 --- a/lib/libc/include/any-windows-any/netlistmgr.h +++ b/lib/libc/include/any-windows-any/netlistmgr.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/netlistmgr.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/netlistmgr.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/ntdddisk.h b/lib/libc/include/any-windows-any/ntdddisk.h index fa0b7865e2..ed03237038 100644 --- a/lib/libc/include/any-windows-any/ntdddisk.h +++ b/lib/libc/include/any-windows-any/ntdddisk.h @@ -366,6 +366,9 @@ typedef struct _PARTITION_INFORMATION_MBR { BOOLEAN BootIndicator; BOOLEAN RecognizedPartition; ULONG HiddenSectors; +#if NTDDI_VERSION > NTDDI_WINBLUE + GUID PartitionId; +#endif } PARTITION_INFORMATION_MBR, *PPARTITION_INFORMATION_MBR; typedef struct _PARTITION_INFORMATION_EX { @@ -374,6 +377,9 @@ typedef struct _PARTITION_INFORMATION_EX { LARGE_INTEGER PartitionLength; ULONG PartitionNumber; BOOLEAN RewritePartition; +#if NTDDI_VERSION >= NTDDI_WIN10_RS3 + BOOLEAN IsServicePartition; +#endif _ANONYMOUS_UNION union { PARTITION_INFORMATION_MBR Mbr; PARTITION_INFORMATION_GPT Gpt; diff --git a/lib/libc/include/any-windows-any/ntioring_x.h b/lib/libc/include/any-windows-any/ntioring_x.h new file mode 100644 index 0000000000..2fe02aabb4 --- /dev/null +++ b/lib/libc/include/any-windows-any/ntioring_x.h @@ -0,0 +1,54 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _NTIORINGX_H_ +#define _NTIORINGX_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#if NTDDI_VERSION >= NTDDI_WIN10_CO + +typedef enum IORING_VERSION { + IORING_VERSION_INVALID = 0, + IORING_VERSION_1 +} IORING_VERSION; + +typedef enum IORING_FEATURE_FLAGS { + IORING_FEATURE_FLAGS_NONE = 0, + IORING_FEATURE_UM_EMULATION = 0x00000001, + IORING_FEATURE_SET_COMPLETION_EVENT = 0x00000002 +} IORING_FEATURE_FLAGS; +DEFINE_ENUM_FLAG_OPERATORS(IORING_FEATURE_FLAGS) + +typedef enum IORING_OP_CODE { + IORING_OP_NOP, + IORING_OP_READ, + IORING_OP_REGISTER_FILES, + IORING_OP_REGISTER_BUFFERS, + IORING_OP_CANCEL +} IORING_OP_CODE; + +typedef struct IORING_BUFFER_INFO { + void* Address; + UINT32 Length; +} IORING_BUFFER_INFO; + +typedef struct IORING_REGISTERED_BUFFER { + UINT32 BufferIndex; + UINT32 Offset; +} IORING_REGISTERED_BUFFER; + +#define IORING_SUBMIT_WAIT_ALL MAXUINT32 + +#endif /* NTDDI_WIN10_CO */ + +#ifdef __cplusplus +} +#endif + +#endif /* _NTIORINGX_H_ */ diff --git a/lib/libc/include/any-windows-any/ntsecapi.h b/lib/libc/include/any-windows-any/ntsecapi.h index 2d4f141b14..f5dba11a09 100644 --- a/lib/libc/include/any-windows-any/ntsecapi.h +++ b/lib/libc/include/any-windows-any/ntsecapi.h @@ -3,6 +3,485 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ + +#ifdef DEFINE_GUID + +#if !defined(INITGUID) || !defined(Audit_System_SecurityStateChange_defined) +DEFINE_GUID(Audit_System_SecurityStateChange, 0x0cce9210, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_SecurityStateChange_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_System_SecuritySubsystemExtension_defined) +DEFINE_GUID(Audit_System_SecuritySubsystemExtension, 0x0cce9211, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_SecuritySubsystemExtension_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_System_Integrity_defined) +DEFINE_GUID(Audit_System_Integrity, 0x0cce9212, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_Integrity_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_System_IPSecDriverEvents_defined) +DEFINE_GUID(Audit_System_IPSecDriverEvents, 0x0cce9213, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_IPSecDriverEvents_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_System_Others_defined) +DEFINE_GUID(Audit_System_Others, 0x0cce9214, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_Logon_defined) +DEFINE_GUID(Audit_Logon_Logon, 0x0cce9215, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_Logon_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_Logoff_defined) +DEFINE_GUID(Audit_Logon_Logoff, 0x0cce9216, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_Logoff_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_AccountLockout_defined) +DEFINE_GUID(Audit_Logon_AccountLockout, 0x0cce9217, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_AccountLockout_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_IPSecMainMode_defined) +DEFINE_GUID(Audit_Logon_IPSecMainMode, 0x0cce9218, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_IPSecMainMode_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_IPSecQuickMode_defined) +DEFINE_GUID(Audit_Logon_IPSecQuickMode, 0x0cce9219, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_IPSecQuickMode_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_IPSecUserMode_defined) +DEFINE_GUID(Audit_Logon_IPSecUserMode, 0x0cce921a, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_IPSecUserMode_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_SpecialLogon_defined) +DEFINE_GUID(Audit_Logon_SpecialLogon, 0x0cce921b, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_SpecialLogon_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_Others_defined) +DEFINE_GUID(Audit_Logon_Others, 0x0cce921c, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_FileSystem_defined) +DEFINE_GUID(Audit_ObjectAccess_FileSystem, 0x0cce921d, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_FileSystem_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Registry_defined) +DEFINE_GUID(Audit_ObjectAccess_Registry, 0x0cce921e, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Registry_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Kernel_defined) +DEFINE_GUID(Audit_ObjectAccess_Kernel, 0x0cce921f, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Kernel_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Sam_defined) +DEFINE_GUID(Audit_ObjectAccess_Sam, 0x0cce9220, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Sam_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_CertificationServices_defined) +DEFINE_GUID(Audit_ObjectAccess_CertificationServices, 0x0cce9221, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_CertificationServices_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_ApplicationGenerated_defined) +DEFINE_GUID(Audit_ObjectAccess_ApplicationGenerated, 0x0cce9222, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_ApplicationGenerated_defined +#endif +#endif +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Handle_defined) +DEFINE_GUID(Audit_ObjectAccess_Handle, 0x0cce9223, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Handle_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Share_defined) +DEFINE_GUID(Audit_ObjectAccess_Share, 0x0cce9224, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Share_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_FirewallPacketDrops_defined) +DEFINE_GUID(Audit_ObjectAccess_FirewallPacketDrops, 0x0cce9225, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_FirewallPacketDrops_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_FirewallConnection_defined) +DEFINE_GUID(Audit_ObjectAccess_FirewallConnection, 0x0cce9226, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_FirewallConnection_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_Other_defined) +DEFINE_GUID(Audit_ObjectAccess_Other, 0x0cce9227, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_Other_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PrivilegeUse_Sensitive_defined) +DEFINE_GUID(Audit_PrivilegeUse_Sensitive, 0x0cce9228, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PrivilegeUse_Sensitive_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PrivilegeUse_NonSensitive_defined) +DEFINE_GUID(Audit_PrivilegeUse_NonSensitive, 0x0cce9229, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PrivilegeUse_NonSensitive_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PrivilegeUse_Others_defined) +DEFINE_GUID(Audit_PrivilegeUse_Others, 0x0cce922a, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PrivilegeUse_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_ProcessCreation_defined) +DEFINE_GUID(Audit_DetailedTracking_ProcessCreation, 0x0cce922b, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_ProcessCreation_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_ProcessTermination_defined) +DEFINE_GUID(Audit_DetailedTracking_ProcessTermination, 0x0cce922c, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_ProcessTermination_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_DpapiActivity_defined) +DEFINE_GUID(Audit_DetailedTracking_DpapiActivity, 0x0cce922d, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_DpapiActivity_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_RpcCall_defined) +DEFINE_GUID(Audit_DetailedTracking_RpcCall, 0x0cce922e, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_RpcCall_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_AuditPolicy_defined) +DEFINE_GUID(Audit_PolicyChange_AuditPolicy, 0x0cce922f, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_AuditPolicy_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_AuthenticationPolicy_defined) +DEFINE_GUID(Audit_PolicyChange_AuthenticationPolicy, 0x0cce9230, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_AuthenticationPolicy_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_AuthorizationPolicy_defined) +DEFINE_GUID(Audit_PolicyChange_AuthorizationPolicy, 0x0cce9231, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_AuthorizationPolicy_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_MpsscvRulePolicy_defined) +DEFINE_GUID(Audit_PolicyChange_MpsscvRulePolicy, 0x0cce9232, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_MpsscvRulePolicy_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_WfpIPSecPolicy_defined) +DEFINE_GUID(Audit_PolicyChange_WfpIPSecPolicy, 0x0cce9233, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_WfpIPSecPolicy_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_Others_defined) +DEFINE_GUID(Audit_PolicyChange_Others, 0x0cce9234, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_UserAccount_defined) +DEFINE_GUID(Audit_AccountManagement_UserAccount, 0x0cce9235, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_UserAccount_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_ComputerAccount_defined) +DEFINE_GUID(Audit_AccountManagement_ComputerAccount, 0x0cce9236, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_ComputerAccount_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_SecurityGroup_defined) +DEFINE_GUID(Audit_AccountManagement_SecurityGroup, 0x0cce9237, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_SecurityGroup_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_DistributionGroup_defined) +DEFINE_GUID(Audit_AccountManagement_DistributionGroup, 0x0cce9238, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_DistributionGroup_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_ApplicationGroup_defined) +DEFINE_GUID(Audit_AccountManagement_ApplicationGroup, 0x0cce9239, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_ApplicationGroup_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_Others_defined) +DEFINE_GUID(Audit_AccountManagement_Others, 0x0cce923a, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DSAccess_DSAccess_defined) +DEFINE_GUID(Audit_DSAccess_DSAccess, 0x0cce923b, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DSAccess_DSAccess_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DsAccess_AdAuditChanges_defined) +DEFINE_GUID(Audit_DsAccess_AdAuditChanges, 0x0cce923c, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DsAccess_AdAuditChanges_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Ds_Replication_defined) +DEFINE_GUID(Audit_Ds_Replication, 0x0cce923d, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Ds_Replication_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Ds_DetailedReplication_defined) +DEFINE_GUID(Audit_Ds_DetailedReplication, 0x0cce923e, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Ds_DetailedReplication_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountLogon_CredentialValidation_defined) +DEFINE_GUID(Audit_AccountLogon_CredentialValidation, 0x0cce923f, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountLogon_CredentialValidation_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountLogon_Kerberos_defined) +DEFINE_GUID(Audit_AccountLogon_Kerberos, 0x0cce9240, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountLogon_Kerberos_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountLogon_Others_defined) +DEFINE_GUID(Audit_AccountLogon_Others, 0x0cce9241, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountLogon_Others_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountLogon_KerbCredentialValidation_defined) +DEFINE_GUID(Audit_AccountLogon_KerbCredentialValidation, 0x0cce9242, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountLogon_KerbCredentialValidation_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_NPS_defined) +DEFINE_GUID(Audit_Logon_NPS, 0x0cce9243, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_NPS_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_DetailedFileShare_defined) +DEFINE_GUID(Audit_ObjectAccess_DetailedFileShare, 0x0cce9244, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_DetailedFileShare_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_RemovableStorage_defined) +DEFINE_GUID(Audit_ObjectAccess_RemovableStorage, 0x0cce9245, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_RemovableStorage_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_CbacStaging_defined) +DEFINE_GUID(Audit_ObjectAccess_CbacStaging, 0x0cce9246, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_CbacStaging_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_Claims_defined) +DEFINE_GUID(Audit_Logon_Claims, 0x0cce9247, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_Claims_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_PnpActivity_defined) +DEFINE_GUID(Audit_DetailedTracking_PnpActivity, 0x0cce9248, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_PnpActivity_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_Groups_defined) +DEFINE_GUID(Audit_Logon_Groups, 0x0cce9249, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_Groups_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_TokenRightAdjusted_defined) +DEFINE_GUID(Audit_DetailedTracking_TokenRightAdjusted, 0x0cce924a, 0x69ae, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_TokenRightAdjusted_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_System_defined) +DEFINE_GUID(Audit_System, 0x69979848, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_System_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_Logon_defined) +DEFINE_GUID(Audit_Logon, 0x69979849, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_Logon_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_ObjectAccess_defined) +DEFINE_GUID(Audit_ObjectAccess, 0x6997984a, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_ObjectAccess_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PrivilegeUse_defined) +DEFINE_GUID(Audit_PrivilegeUse, 0x6997984b, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PrivilegeUse_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DetailedTracking_defined) +DEFINE_GUID(Audit_DetailedTracking, 0x6997984c, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DetailedTracking_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_PolicyChange_defined) +DEFINE_GUID(Audit_PolicyChange, 0x6997984d, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_PolicyChange_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountManagement_defined) +DEFINE_GUID(Audit_AccountManagement, 0x6997984e, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountManagement_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_DirectoryServiceAccess_defined) +DEFINE_GUID(Audit_DirectoryServiceAccess, 0x6997984f, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_DirectoryServiceAccess_defined +#endif +#endif + +#if !defined(INITGUID) || !defined(Audit_AccountLogon_defined) +DEFINE_GUID(Audit_AccountLogon, 0x69979850, 0x797a, 0x11d9, 0xbe, 0xd3, 0x50, 0x50, 0x54, 0x50, 0x30, 0x30); +#ifdef INITGUID +#define Audit_AccountLogon_defined +#endif +#endif +#endif + #ifndef _NTSECAPI_ #define _NTSECAPI_ @@ -414,9 +893,19 @@ typedef enum _SE_ADT_PARAMETER_TYPE { typedef PVOID LSA_HANDLE,*PLSA_HANDLE; typedef enum _TRUSTED_INFORMATION_CLASS { - TrustedDomainNameInformation = 1,TrustedControllersInformation,TrustedPosixOffsetInformation,TrustedPasswordInformation, - TrustedDomainInformationBasic,TrustedDomainInformationEx,TrustedDomainAuthInformation,TrustedDomainFullInformation, - TrustedDomainAuthInformationInternal,TrustedDomainFullInformationInternal,TrustedDomainInformationEx2Internal,TrustedDomainFullInformation2Internal + TrustedDomainNameInformation = 1, + TrustedControllersInformation, + TrustedPosixOffsetInformation, + TrustedPasswordInformation, + TrustedDomainInformationBasic, + TrustedDomainInformationEx, + TrustedDomainAuthInformation, + TrustedDomainFullInformation, + TrustedDomainAuthInformationInternal, + TrustedDomainFullInformationInternal, + TrustedDomainInformationEx2Internal, + TrustedDomainFullInformation2Internal, + TrustedDomainSupportedEncryptionTypes } TRUSTED_INFORMATION_CLASS,*PTRUSTED_INFORMATION_CLASS; typedef struct _TRUSTED_DOMAIN_NAME_INFO { @@ -456,7 +945,20 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define TRUST_ATTRIBUTE_CROSS_ORGANIZATION 0x00000010 #define TRUST_ATTRIBUTE_WITHIN_FOREST 0x00000020 #define TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL 0x00000040 + +#if _WIN32_WINNT >= 0x0600 #define TRUST_ATTRIBUTE_TRUST_USES_RC4_ENCRYPTION 0x00000080 +#define TRUST_ATTRIBUTE_TRUST_USES_AES_KEYS 0x00000100 +#endif + +#if _WIN32_WINNT >= 0x0602 +#define TRUST_ATTRIBUTE_CROSS_ORGANIZATION_NO_TGT_DELEGATION 0x00000200 +#define TRUST_ATTRIBUTE_PIM_TRUST 0x00000400 +#endif + +#if _WIN32_WINNT >= 0x0603 +#define TRUST_ATTRIBUTE_CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION 0x00000800 +#endif #define TRUST_ATTRIBUTES_VALID 0xFF03FFFF #define TRUST_ATTRIBUTES_USER 0xFF000000 @@ -514,6 +1016,10 @@ typedef enum _SE_ADT_PARAMETER_TYPE { TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; } TRUSTED_DOMAIN_FULL_INFORMATION2,*PTRUSTED_DOMAIN_FULL_INFORMATION2; + typedef struct _TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES { + ULONG SupportedEncryptionTypes; + } TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES,*PTRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES; + typedef enum { ForestTrustTopLevelName,ForestTrustTopLevelNameEx,ForestTrustDomainInfo,ForestTrustRecordTypeLast = ForestTrustDomainInfo } LSA_FOREST_TRUST_RECORD_TYPE; @@ -592,7 +1098,7 @@ typedef enum _SE_ADT_PARAMETER_TYPE { ULONG FailedAttemptCountSinceLastSuccessfulLogon; } LSA_LAST_INTER_LOGON_INFO,*PLSA_LAST_INTER_LOGON_INFO; #endif - + typedef struct _SECURITY_LOGON_SESSION_DATA { ULONG Size; LUID LogonId; @@ -634,6 +1140,52 @@ typedef enum _SE_ADT_PARAMETER_TYPE { NTSTATUS NTAPI LsaLookupNames(LSA_HANDLE PolicyHandle,ULONG Count,PLSA_UNICODE_STRING Names,PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,PLSA_TRANSLATED_SID *Sids); NTSTATUS NTAPI LsaLookupNames2(LSA_HANDLE PolicyHandle,ULONG Flags,ULONG Count,PLSA_UNICODE_STRING Names,PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,PLSA_TRANSLATED_SID2 *Sids); NTSTATUS NTAPI LsaLookupSids(LSA_HANDLE PolicyHandle,ULONG Count,PSID *Sids,PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,PLSA_TRANSLATED_NAME *Names); + NTSTATUS NTAPI LsaLookupSids2(LSA_HANDLE PolicyHandle,ULONG LookupOptions,ULONG Count,PSID *Sids,PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,PLSA_TRANSLATED_NAME *Names); + NTSTATUS NTAPI LsaSetCAPs(PLSA_UNICODE_STRING CAPDNs,ULONG CAPDNCount,ULONG Flags); + NTSTATUS NTAPI LsaGetAppliedCAPIDs(PLSA_UNICODE_STRING SystemName,PSID **CAPIDs,PULONG CAPIDCount); + + #define MAXIMUM_CAPES_PER_CAP 0x7f + + #define CENTRAL_ACCESS_POLICY_OWNER_RIGHTS_PRESENT_FLAG 0x00000001 + #define CENTRAL_ACCESS_POLICY_STAGED_OWNER_RIGHTS_PRESENT_FLAG 0x00000100 + #define CENTRAL_ACCESS_POLICY_STAGED_FLAG 0x00010000 + #define STAGING_FLAG(Effective) ((Effective & 0xf) << 8) + + #define CENTRAL_ACCESS_POLICY_VALID_FLAG_MASK (CENTRAL_ACCESS_POLICY_OWNER_RIGHTS_PRESENT_FLAG | \ + CENTRAL_ACCESS_POLICY_STAGED_OWNER_RIGHTS_PRESENT_FLAG | \ + CENTRAL_ACCESS_POLICY_STAGED_FLAG) + + #define LSASETCAPS_RELOAD_FLAG 0x00000001 + #define LSASETCAPS_VALID_FLAG_MASK LSASETCAPS_RELOAD_FLAG + + typedef struct _CENTRAL_ACCESS_POLICY_ENTRY { + LSA_UNICODE_STRING Name; + LSA_UNICODE_STRING Description; + LSA_UNICODE_STRING ChangeId; + ULONG LengthAppliesTo; + PUCHAR AppliesTo; + ULONG LengthSD; + PSECURITY_DESCRIPTOR SD; + ULONG LengthStagedSD; + PSECURITY_DESCRIPTOR StagedSD; + ULONG Flags; + } CENTRAL_ACCESS_POLICY_ENTRY, *PCENTRAL_ACCESS_POLICY_ENTRY; + + typedef const CENTRAL_ACCESS_POLICY_ENTRY *PCCENTRAL_ACCESS_POLICY_ENTRY; + + typedef struct _CENTRAL_ACCESS_POLICY { + PSID CAPID; + LSA_UNICODE_STRING Name; + LSA_UNICODE_STRING Description; + LSA_UNICODE_STRING ChangeId; + ULONG Flags; + ULONG CAPECount; + PCENTRAL_ACCESS_POLICY_ENTRY *CAPEs; + } CENTRAL_ACCESS_POLICY, *PCENTRAL_ACCESS_POLICY; + + typedef const CENTRAL_ACCESS_POLICY *PCCENTRAL_ACCESS_POLICY; + + NTSTATUS NTAPI LsaQueryCAPs(PSID *CAPIDs,ULONG CAPIDCount,PCENTRAL_ACCESS_POLICY *CAPs,PULONG CAPCount); #define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight") #define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight") @@ -674,7 +1226,11 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #endif enum NEGOTIATE_MESSAGES { - NegEnumPackagePrefixes = 0,NegGetCallerName = 1,NegCallPackageMax + NegEnumPackagePrefixes = 0, + NegGetCallerName = 1, + NegTransferCredentials = 2, + NegMsgReserved1 = 3, + NegCallPackageMax }; #define NEGOTIATE_MAX_PREFIX 32 @@ -733,6 +1289,10 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define DOMAIN_PASSWORD_STORE_CLEARTEXT __MSABI_LONG(0x00000010) #define DOMAIN_REFUSE_PASSWORD_CHANGE __MSABI_LONG(0x00000020) +#if _WIN32_WINNT >= 0x0502 +#define DOMAIN_NO_LM_OWF_CHANGE __MSABI_LONG(0x00000040) +#endif + #ifndef _PASSWORD_NOTIFICATION_DEFINED #define _PASSWORD_NOTIFICATION_DEFINED typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE)(PUNICODE_STRING UserName,ULONG RelativeId,PUNICODE_STRING NewPassword); @@ -755,7 +1315,15 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth" typedef enum _MSV1_0_LOGON_SUBMIT_TYPE { - MsV1_0InteractiveLogon = 2,MsV1_0Lm20Logon,MsV1_0NetworkLogon,MsV1_0SubAuthLogon,MsV1_0WorkstationUnlockLogon = 7 + MsV1_0InteractiveLogon = 2, + MsV1_0Lm20Logon, + MsV1_0NetworkLogon, + MsV1_0SubAuthLogon, + MsV1_0WorkstationUnlockLogon = 7, + MsV1_0S4ULogon = 12, + MsV1_0VirtualLogon = 82, + MsV1_0NoElevationLogon, + MsV1_0LuidLogon } MSV1_0_LOGON_SUBMIT_TYPE,*PMSV1_0_LOGON_SUBMIT_TYPE; typedef enum _MSV1_0_PROFILE_BUFFER_TYPE { @@ -811,6 +1379,15 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000 #define MSV1_0_ALLOW_MSVCHAPV2 0x00010000 +#if _WIN32_WINNT >= 0x0600 +#define MSV1_0_S4U2SELF 0x00020000 +#define MSV1_0_CHECK_LOGONHOURS_FOR_S4U 0x00040000 +#endif + +#if _WIN32_WINNT >= 0x0602 +#define MSV1_0_INTERNET_DOMAIN 0x00080000 +#endif + #define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24 #define MSV1_0_MNS_LOGON 0x01000000 @@ -841,6 +1418,19 @@ typedef enum _SE_ADT_PARAMETER_TYPE { ULONG SubAuthPackageId; } MSV1_0_SUBAUTH_LOGON,*PMSV1_0_SUBAUTH_LOGON; +#if _WIN32_WINNT >= 0x0600 + +#define MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 + + typedef struct _MSV1_0_S4U_LOGON { + MSV1_0_LOGON_SUBMIT_TYPE MessageType; + ULONG Flags; + UNICODE_STRING UserPrincipalName; + UNICODE_STRING DomainName; + } MSV1_0_S4U_LOGON, *PMSV1_0_S4U_LOGON; + +#endif + #define LOGON_GUEST 0x01 #define LOGON_NOENCRYPTION 0x02 #define LOGON_CACHED_ACCOUNT 0x04 @@ -851,6 +1441,21 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define LOGON_NTLMV2_ENABLED 0x100 #define LOGON_RESOURCE_GROUPS 0x200 #define LOGON_PROFILE_PATH_RETURNED 0x400 +#define LOGON_NT_V2 0x800 +#define LOGON_LM_V2 0x1000 +#define LOGON_NTLM_V2 0x2000 + +#if _WIN32_WINNT >= 0x0600 +#define LOGON_OPTIMIZED 0x4000 +#define LOGON_WINLOGON 0x8000 +#define LOGON_PKINIT 0x10000 +#define LOGON_NO_OPTIMIZED 0x20000 +#endif + +#if _WIN32_WINNT >= 0x0602 +#define LOGON_NO_ELEVATION 0x40000 +#define LOGON_MANAGED_SERVICE 0x80000 +#endif #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000 @@ -869,9 +1474,34 @@ typedef enum _SE_ADT_PARAMETER_TYPE { } MSV1_0_LM20_LOGON_PROFILE,*PMSV1_0_LM20_LOGON_PROFILE; #define MSV1_0_OWF_PASSWORD_LENGTH 16 +#define MSV1_0_SHA_PASSWORD_LENGTH 20 +#define MSV1_0_CREDENTIAL_KEY_LENGTH 20 #define MSV1_0_CRED_LM_PRESENT 0x1 #define MSV1_0_CRED_NT_PRESENT 0x2 +#define MSV1_0_CRED_REMOVED 0x4 +#define MSV1_0_CRED_CREDKEY_PRESENT 0x8 +#define MSV1_0_CRED_SHA_PRESENT 0x10 + #define MSV1_0_CRED_VERSION 0 +#define MSV1_0_CRED_VERSION_V2 2 +#define MSV1_0_CRED_VERSION_V3 4 +#define MSV1_0_CRED_VERSION_IUM 0xffff0001 +#define MSV1_0_CRED_VERSION_REMOTE 0xffff0002 +#define MSV1_0_CRED_VERSION_ARSO 0xffff0003 +#define MSV1_0_CRED_VERSION_RESERVED_1 0xfffffffe +#define MSV1_0_CRED_VERSION_INVALID 0xffffffff + + typedef enum _MSV1_0_CREDENTIAL_KEY_TYPE { + InvalidCredKey, + DeprecatedIUMCredKey, + DomainUserCredKey, + LocalUserCredKey, + ExternallySuppliedCredKey + } MSV1_0_CREDENTIAL_KEY_TYPE; + + typedef struct _MSV1_0_CREDENTIAL_KEY { + UCHAR Data[MSV1_0_CREDENTIAL_KEY_LENGTH]; + } MSV1_0_CREDENTIAL_KEY, *PMSV1_0_CREDENTIAL_KEY; typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL { ULONG Version; @@ -880,6 +1510,40 @@ typedef enum _SE_ADT_PARAMETER_TYPE { UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH]; } MSV1_0_SUPPLEMENTAL_CREDENTIAL,*PMSV1_0_SUPPLEMENTAL_CREDENTIAL; + typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2 { + ULONG Version; + ULONG Flags; + UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH]; + MSV1_0_CREDENTIAL_KEY CredentialKey; + } MSV1_0_SUPPLEMENTAL_CREDENTIAL_V2, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL_V2; + + typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL_V3 { + ULONG Version; + ULONG Flags; + MSV1_0_CREDENTIAL_KEY_TYPE CredentialKeyType; + UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH]; + MSV1_0_CREDENTIAL_KEY CredentialKey; + UCHAR ShaPassword[MSV1_0_SHA_PASSWORD_LENGTH]; + } MSV1_0_SUPPLEMENTAL_CREDENTIAL_V3, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL_V3; + + typedef struct _MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL { + ULONG Version; + ULONG EncryptedCredsSize; + UCHAR EncryptedCreds[1]; + } MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL; + +#define MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL_SIZE(Creds) \ + (FIELD_OFFSET(MSV1_0_IUM_SUPPLEMENTAL_CREDENTIAL, EncryptedCreds) + (Creds)->EncryptedCredsSize) + + typedef struct _MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL { + ULONG Version; + ULONG Flags; + MSV1_0_CREDENTIAL_KEY CredentialKey; + MSV1_0_CREDENTIAL_KEY_TYPE CredentialKeyType; + ULONG EncryptedCredsSize; + UCHAR EncryptedCreds[1]; + } MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL; + #define MSV1_0_NTLM3_RESPONSE_LENGTH 16 #define MSV1_0_NTLM3_OWF_LENGTH 16 @@ -888,6 +1552,14 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001 +#if _WIN32_WINNT >= 0x0600 +#define MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES 0x00000002 +#endif + +#if _WIN32_WINNT >= 0x0601 +#define MSV1_0_AV_FLAG_UNVERIFIED_TARGET 0x00000004 +#endif + typedef struct _MSV1_0_NTLM3_RESPONSE { UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH]; UCHAR RespType; @@ -903,6 +1575,7 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_RESPONSE_LENGTH) #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM3_RESPONSE,AvPairsOff) +/* MsvAvSingleHost present in MS-NLMP specifications but not in WinSDK */ typedef enum { MsvAvEOL, MsvAvNbComputerName, @@ -915,6 +1588,7 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #if _WIN32_WINNT >= 0x0600 ,MsvAvTimestamp ,MsvAvRestrictions + ,MsvAvSingleHost = MsvAvRestrictions ,MsvAvTargetName ,MsvAvChannelBindings #endif @@ -924,13 +1598,44 @@ typedef enum _SE_ADT_PARAMETER_TYPE { typedef struct _MSV1_0_AV_PAIR { USHORT AvId; USHORT AvLen; - } MSV1_0_AV_PAIR,*PMSV1_0_AV_PAIR; typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE { - MsV1_0Lm20ChallengeRequest = 0,MsV1_0Lm20GetChallengeResponse,MsV1_0EnumerateUsers,MsV1_0GetUserInfo,MsV1_0ReLogonUsers,MsV1_0ChangePassword, - MsV1_0ChangeCachedPassword,MsV1_0GenericPassthrough,MsV1_0CacheLogon,MsV1_0SubAuth,MsV1_0DeriveCredential,MsV1_0CacheLookup, - MsV1_0SetProcessOption + MsV1_0Lm20ChallengeRequest = 0, + MsV1_0Lm20GetChallengeResponse, + MsV1_0EnumerateUsers, + MsV1_0GetUserInfo, + MsV1_0ReLogonUsers, + MsV1_0ChangePassword, + MsV1_0ChangeCachedPassword, + MsV1_0GenericPassthrough, + MsV1_0CacheLogon, + MsV1_0SubAuth, + MsV1_0DeriveCredential, + MsV1_0CacheLookup, +#if _WIN32_WINNT >= 0x0501 + MsV1_0SetProcessOption, +#endif +#if _WIN32_WINNT >= 0x0600 + MsV1_0ConfigLocalAliases, + MsV1_0ClearCachedCredentials, +#endif +#if _WIN32_WINNT >= 0x0601 + MsV1_0LookupToken, +#endif +#if _WIN32_WINNT >= 0x0602 + MsV1_0ValidateAuth, + MsV1_0CacheLookupEx, + MsV1_0GetCredentialKey, + MsV1_0SetThreadOption, +#endif +#if _WIN32_WINNT >= 0x0A00 + MsV1_0DecryptDpapiMasterKey, + MsV1_0GetStrongCredentialKey, + MsV1_0TransferCred, + MsV1_0ProvisionTbal, + MsV1_0DeleteTbalSecrets +#endif } MSV1_0_PROTOCOL_MESSAGE_TYPE,*PMSV1_0_PROTOCOL_MESSAGE_TYPE; typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST { @@ -986,6 +1691,7 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define RTL_ENCRYPT_MEMORY_SIZE 8 #define RTL_ENCRYPT_OPTION_CROSS_PROCESS 0x01 #define RTL_ENCRYPT_OPTION_SAME_LOGON 0x02 +#define RTL_ENCRYPT_OPTION_FOR_SYSTEM 0x04 NTSTATUS WINAPI RtlEncryptMemory(PVOID Memory,ULONG MemorySize,ULONG OptionFlags); NTSTATUS WINAPI RtlDecryptMemory(PVOID Memory,ULONG MemorySize,ULONG OptionFlags); @@ -997,6 +1703,8 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_ETYPE_DES_CBC_CRC 1 #define KERB_ETYPE_DES_CBC_MD4 2 #define KERB_ETYPE_DES_CBC_MD5 3 +#define KERB_ETYPE_AES128_CTS_HMAC_SHA1_96 17 +#define KERB_ETYPE_AES256_CTS_HMAC_SHA1_96 18 #define KERB_ETYPE_RC4_MD4 -128 #define KERB_ETYPE_RC4_PLAIN2 -129 @@ -1009,6 +1717,8 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_ETYPE_RC4_PLAIN_OLD_EXP -136 #define KERB_ETYPE_RC4_PLAIN -140 #define KERB_ETYPE_RC4_PLAIN_EXP -141 +#define KERB_ETYPE_AES128_CTS_HMAC_SHA1_96_PLAIN -148 +#define KERB_ETYPE_AES256_CTS_HMAC_SHA1_96_PLAIN -149 #define KERB_ETYPE_DSA_SHA1_CMS 9 #define KERB_ETYPE_RSA_MD5_CMS 10 @@ -1040,6 +1750,9 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_CHECKSUM_KRB_DES_MAC_K 5 #define KERB_CHECKSUM_MD5 7 #define KERB_CHECKSUM_MD5_DES 8 +#define KERB_CHECKSUM_SHA1_NEW 14 +#define KERB_CHECKSUM_HMAC_SHA1_96_AES128 15 +#define KERB_CHECKSUM_HMAC_SHA1_96_AES256 16 #define KERB_CHECKSUM_LM -130 #define KERB_CHECKSUM_SHA1 -131 @@ -1050,6 +1763,8 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_CHECKSUM_RC4_MD5 -136 #define KERB_CHECKSUM_MD5_HMAC -137 #define KERB_CHECKSUM_HMAC_MD5 -138 +#define KERB_CHECKSUM_HMAC_SHA1_96_AES128_Ki -150 +#define KERB_CHECKSUM_HMAC_SHA1_96_AES256_Ki -151 #define AUTH_REQ_ALLOW_FORWARDABLE 0x00000001 #define AUTH_REQ_ALLOW_PROXIABLE 0x00000002 @@ -1080,6 +1795,10 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_TICKET_FLAGS_hw_authent 0x00100000 #define KERB_TICKET_FLAGS_ok_as_delegate 0x00040000 #define KERB_TICKET_FLAGS_name_canonicalize 0x00010000 +#if _WIN32_WINNT == 0x0501 +#define KERB_TICKET_FLAGS_cname_in_pa_data 0x00040000 +#endif +#define KERB_TICKET_FLAGS_enc_pa_rep 0x00010000 #define KERB_TICKET_FLAGS_reserved1 0x00000001 #define KRB_NT_UNKNOWN 0 @@ -1091,12 +1810,21 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KRB_NT_SRV_XHST 4 #define KRB_NT_UID 5 #define KRB_NT_ENTERPRISE_PRINCIPAL 10 +#define KRB_NT_WELLKNOWN 11 +#define KRB_NT_MS_BRANCH_ID -133 #define KRB_NT_ENT_PRINCIPAL_AND_ID -130 #define KRB_NT_MS_PRINCIPAL -128 #define KRB_NT_MS_PRINCIPAL_AND_ID -129 #define KERB_IS_MS_PRINCIPAL(_x_) (((_x_) <= KRB_NT_MS_PRINCIPAL) || ((_x_) >= KRB_NT_ENTERPRISE_PRINCIPAL)) +#if _WIN32_WINNT >= 0x0600 +#define KRB_NT_X500_PRINCIPAL 6 +#endif + +#define KRB_WELLKNOWN_STRING L"WELLKNOWN" +#define KRB_ANONYMOUS_STRING L"ANONYMOUS" + #ifndef MICROSOFT_KERBEROS_NAME_A #define MICROSOFT_KERBEROS_NAME_A "Kerberos" @@ -1111,12 +1839,22 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_WRAP_NO_ENCRYPT 0x80000001 typedef enum _KERB_LOGON_SUBMIT_TYPE { - KerbInteractiveLogon = 2,KerbSmartCardLogon = 6,KerbWorkstationUnlockLogon = 7,KerbSmartCardUnlockLogon = 8,KerbProxyLogon = 9, - KerbTicketLogon = 10,KerbTicketUnlockLogon = 11,KerbS4ULogon = 12 + KerbInteractiveLogon = 2, + KerbSmartCardLogon = 6, + KerbWorkstationUnlockLogon = 7, + KerbSmartCardUnlockLogon = 8, + KerbProxyLogon = 9, + KerbTicketLogon = 10, + KerbTicketUnlockLogon = 11, + KerbS4ULogon = 12, #if (_WIN32_WINNT >= 0x0600) - ,KerbCertificateLogon = 13, - KerbCertificateS4ULogon = 14, - KerbCertificateUnlockLogon = 15 + KerbCertificateLogon = 13, + KerbCertificateS4ULogon = 14, + KerbCertificateUnlockLogon = 15, +#endif +#if (_WIN32_WINNT >= 0x0602) + KerbNoElevationLogon = 83, + KerbLuidLogon = 84 #endif } KERB_LOGON_SUBMIT_TYPE,*PKERB_LOGON_SUBMIT_TYPE; @@ -1154,12 +1892,18 @@ typedef enum _SE_ADT_PARAMETER_TYPE { } KERB_TICKET_LOGON,*PKERB_TICKET_LOGON; #define KERB_LOGON_FLAG_ALLOW_EXPIRED_TICKET 0x1 +#define KERB_LOGON_FLAG_REDIRECTED 0x2 typedef struct _KERB_TICKET_UNLOCK_LOGON { KERB_TICKET_LOGON Logon; LUID LogonId; } KERB_TICKET_UNLOCK_LOGON,*PKERB_TICKET_UNLOCK_LOGON; +#if _WIN32_WINNT >= 0x0600 +#define KERB_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 +#define KERB_S4U_LOGON_FLAG_IDENTIFY 0x8 +#endif + typedef struct _KERB_S4U_LOGON { KERB_LOGON_SUBMIT_TYPE MessageType; ULONG Flags; @@ -1202,17 +1946,63 @@ typedef enum _SE_ADT_PARAMETER_TYPE { PUCHAR Value; } KERB_CRYPTO_KEY,*PKERB_CRYPTO_KEY; + typedef struct KERB_CRYPTO_KEY32 { + LONG KeyType; + ULONG Length; + ULONG Offset; + } KERB_CRYPTO_KEY32,*PKERB_CRYPTO_KEY32; + typedef struct _KERB_TICKET_PROFILE { KERB_INTERACTIVE_PROFILE Profile; KERB_CRYPTO_KEY SessionKey; } KERB_TICKET_PROFILE,*PKERB_TICKET_PROFILE; typedef enum _KERB_PROTOCOL_MESSAGE_TYPE { - KerbDebugRequestMessage = 0,KerbQueryTicketCacheMessage,KerbChangeMachinePasswordMessage,KerbVerifyPacMessage,KerbRetrieveTicketMessage, - KerbUpdateAddressesMessage,KerbPurgeTicketCacheMessage,KerbChangePasswordMessage,KerbRetrieveEncodedTicketMessage,KerbDecryptDataMessage, - KerbAddBindingCacheEntryMessage,KerbSetPasswordMessage,KerbSetPasswordExMessage,KerbVerifyCredentialsMessage,KerbQueryTicketCacheExMessage, - KerbPurgeTicketCacheExMessage,KerbRefreshSmartcardCredentialsMessage,KerbAddExtraCredentialsMessage,KerbQuerySupplementalCredentialsMessage, - KerbTransferCredentialsMessage,KerbQueryTicketCacheEx2Message + KerbDebugRequestMessage = 0, + KerbQueryTicketCacheMessage, + KerbChangeMachinePasswordMessage, + KerbVerifyPacMessage, + KerbRetrieveTicketMessage, + KerbUpdateAddressesMessage, + KerbPurgeTicketCacheMessage, + KerbChangePasswordMessage, + KerbRetrieveEncodedTicketMessage, + KerbDecryptDataMessage, + KerbAddBindingCacheEntryMessage, + KerbSetPasswordMessage, + KerbSetPasswordExMessage, +#if _WIN32_WINNT >= 0x0501 + KerbVerifyCredentialsMessage, + KerbQueryTicketCacheExMessage, + KerbPurgeTicketCacheExMessage, +#endif +#if _WIN32_WINNT >= 0x0502 + KerbRefreshSmartcardCredentialsMessage, + KerbAddExtraCredentialsMessage, + KerbQuerySupplementalCredentialsMessage, +#endif +#if _WIN32_WINNT >= 0x0600 + KerbTransferCredentialsMessage, + KerbQueryTicketCacheEx2Message, + KerbSubmitTicketMessage, + KerbAddExtraCredentialsExMessage, +#endif +#if _WIN32_WINNT >= 0x0602 + KerbQueryKdcProxyCacheMessage, + KerbPurgeKdcProxyCacheMessage, + KerbQueryTicketCacheEx3Message, + KerbCleanupMachinePkinitCredsMessage, + KerbAddBindingCacheEntryExMessage, + KerbQueryBindingCacheMessage, + KerbPurgeBindingCacheMessage, + KerbPinKdcMessage, + KerbUnpinAllKdcsMessage, + KerbQueryDomainExtendedPoliciesMessage, + KerbQueryS4U2ProxyCacheMessage, +#endif +#if _WIN32_WINNT >= 0x0A00 + KerbRetrieveKeyTabMessage +#endif } KERB_PROTOCOL_MESSAGE_TYPE,*PKERB_PROTOCOL_MESSAGE_TYPE; typedef struct _KERB_QUERY_TKT_CACHE_REQUEST { @@ -1255,6 +2045,24 @@ typedef enum _SE_ADT_PARAMETER_TYPE { ULONG SessionKeyType; } KERB_TICKET_CACHE_INFO_EX2,*PKERB_TICKET_CACHE_INFO_EX2; +#if _WIN32_WINNT >= 0x0602 + typedef struct _KERB_TICKET_CACHE_INFO_EX3 { + UNICODE_STRING ClientName; + UNICODE_STRING ClientRealm; + UNICODE_STRING ServerName; + UNICODE_STRING ServerRealm; + LARGE_INTEGER StartTime; + LARGE_INTEGER EndTime; + LARGE_INTEGER RenewTime; + LONG EncryptionType; + ULONG TicketFlags; + ULONG SessionKeyType; + ULONG BranchId; + ULONG CacheFlags; + UNICODE_STRING KdcCalled; + } KERB_TICKET_CACHE_INFO_EX3, *PKERB_TICKET_CACHE_INFO_EX3; +#endif + typedef struct _KERB_QUERY_TKT_CACHE_RESPONSE { KERB_PROTOCOL_MESSAGE_TYPE MessageType; ULONG CountOfTickets; @@ -1273,6 +2081,14 @@ typedef enum _SE_ADT_PARAMETER_TYPE { KERB_TICKET_CACHE_INFO_EX2 Tickets[ANYSIZE_ARRAY]; } KERB_QUERY_TKT_CACHE_EX2_RESPONSE,*PKERB_QUERY_TKT_CACHE_EX2_RESPONSE; +#if _WIN32_WINNT >= 0x0602 + typedef struct _KERB_QUERY_TKT_CACHE_EX3_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG CountOfTickets; + KERB_TICKET_CACHE_INFO_EX3 Tickets[ANYSIZE_ARRAY]; + } KERB_QUERY_TKT_CACHE_EX3_RESPONSE, *PKERB_QUERY_TKT_CACHE_EX3_RESPONSE; +#endif + #ifndef __SECHANDLE_DEFINED__ typedef struct _SecHandle { ULONG_PTR dwLower; @@ -1290,7 +2106,14 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_RETRIEVE_TICKET_USE_CREDHANDLE 0x4 #define KERB_RETRIEVE_TICKET_AS_KERB_CRED 0x8 #define KERB_RETRIEVE_TICKET_WITH_SEC_CRED 0x10 + +#if _WIN32_WINNT >= 0x0600 #define KERB_RETRIEVE_TICKET_CACHE_TICKET 0x20 +#endif + +#if _WIN32_WINNT >= 0x0601 +#define KERB_RETRIEVE_TICKET_MAX_LIFETIME 0x40 +#endif #define KERB_ETYPE_DEFAULT 0x0 @@ -1366,6 +2189,105 @@ typedef enum _SE_ADT_PARAMETER_TYPE { KERB_TICKET_CACHE_INFO_EX TicketTemplate; } KERB_PURGE_TKT_CACHE_EX_REQUEST,*PKERB_PURGE_TKT_CACHE_EX_REQUEST; + typedef struct _KERB_SUBMIT_TKT_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + LUID LogonId; + ULONG Flags; + KERB_CRYPTO_KEY32 Key; + ULONG KerbCredSize; + ULONG KerbCredOffset; + } KERB_SUBMIT_TKT_REQUEST, *PKERB_SUBMIT_TKT_REQUEST; + +#if _WIN32_WINNT >= 0x0602 + + typedef struct _KERB_QUERY_KDC_PROXY_CACHE_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + LUID LogonId; + } KERB_QUERY_KDC_PROXY_CACHE_REQUEST, *PKERB_QUERY_KDC_PROXY_CACHE_REQUEST; + + typedef struct _KDC_PROXY_CACHE_ENTRY_DATA { + ULONG64 SinceLastUsed; + UNICODE_STRING DomainName; + UNICODE_STRING ProxyServerName; + UNICODE_STRING ProxyServerVdir; + USHORT ProxyServerPort; + LUID LogonId; + UNICODE_STRING CredUserName; + UNICODE_STRING CredDomainName; + BOOLEAN GlobalCache; + } KDC_PROXY_CACHE_ENTRY_DATA, *PKDC_PROXY_CACHE_ENTRY_DATA; + + typedef struct _KERB_QUERY_KDC_PROXY_CACHE_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG CountOfEntries; + PKDC_PROXY_CACHE_ENTRY_DATA Entries; + } KERB_QUERY_KDC_PROXY_CACHE_RESPONSE, *PKERB_QUERY_KDC_PROXY_CACHE_RESPONSE; + + typedef struct _KERB_PURGE_KDC_PROXY_CACHE_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + LUID LogonId; + } KERB_PURGE_KDC_PROXY_CACHE_REQUEST, *PKERB_PURGE_KDC_PROXY_CACHE_REQUEST; + + typedef struct _KERB_PURGE_KDC_PROXY_CACHE_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG CountOfPurged; + } KERB_PURGE_KDC_PROXY_CACHE_RESPONSE, *PKERB_PURGE_KDC_PROXY_CACHE_RESPONSE; + +#define KERB_S4U2PROXY_CACHE_ENTRY_INFO_FLAG_NEGATIVE 0x1 + + typedef struct _KERB_S4U2PROXY_CACHE_ENTRY_INFO { + UNICODE_STRING ServerName; + ULONG Flags; + NTSTATUS LastStatus; + LARGE_INTEGER Expiry; + } KERB_S4U2PROXY_CACHE_ENTRY_INFO, *PKERB_S4U2PROXY_CACHE_ENTRY_INFO; + +#define KERB_S4U2PROXY_CRED_FLAG_NEGATIVE 0x1 + + typedef struct _KERB_S4U2PROXY_CRED { + UNICODE_STRING UserName; + UNICODE_STRING DomainName; + ULONG Flags; + NTSTATUS LastStatus; + LARGE_INTEGER Expiry; + ULONG CountOfEntries; + PKERB_S4U2PROXY_CACHE_ENTRY_INFO Entries; + } KERB_S4U2PROXY_CRED, *PKERB_S4U2PROXY_CRED; + + typedef struct _KERB_QUERY_S4U2PROXY_CACHE_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + LUID LogonId; + } KERB_QUERY_S4U2PROXY_CACHE_REQUEST, *PKERB_QUERY_S4U2PROXY_CACHE_REQUEST; + + typedef struct _KERB_QUERY_S4U2PROXY_CACHE_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG CountOfCreds; + PKERB_S4U2PROXY_CRED Creds; + } KERB_QUERY_S4U2PROXY_CACHE_RESPONSE, *PKERB_QUERY_S4U2PROXY_CACHE_RESPONSE; + +#endif + +#if _WIN32_WINNT >= 0x0A00 + + typedef struct _KERB_RETRIEVE_KEY_TAB_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + UNICODE_STRING UserName; + UNICODE_STRING DomainName; + UNICODE_STRING Password; + } KERB_RETRIEVE_KEY_TAB_REQUEST, *PKERB_RETRIEVE_KEY_TAB_REQUEST; + + typedef struct _KERB_RETRIEVE_KEY_TAB_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG KeyTabLength; + PUCHAR KeyTab; + } KERB_RETRIEVE_KEY_TAB_RESPONSE, *PKERB_RETRIEVE_KEY_TAB_RESPONSE; + +#endif + typedef struct _KERB_CHANGEPASSWORD_REQUEST { KERB_PROTOCOL_MESSAGE_TYPE MessageType; UNICODE_STRING DomainName; @@ -1453,6 +2375,16 @@ typedef enum _SE_ADT_PARAMETER_TYPE { #define KERB_REQUEST_REPLACE_CREDENTIAL 2 #define KERB_REQUEST_REMOVE_CREDENTIAL 4 +#if _WIN32_WINNT >= 0x0600 + + typedef struct _KERB_ADD_CREDENTIALS_REQUEST_EX { + KERB_ADD_CREDENTIALS_REQUEST Credentials; + ULONG PrincipalNameCount; + UNICODE_STRING PrincipalNames[1]; + } KERB_ADD_CREDENTIALS_REQUEST_EX, *PKERB_ADD_CREDENTIALS_REQUEST_EX; + +#endif + typedef struct _KERB_TRANSFER_CRED_REQUEST { KERB_PROTOCOL_MESSAGE_TYPE MessageType; LUID OriginLogonId; @@ -1460,7 +2392,79 @@ typedef enum _SE_ADT_PARAMETER_TYPE { ULONG Flags; } KERB_TRANSFER_CRED_REQUEST,*PKERB_TRANSFER_CRED_REQUEST; -#if (_WIN32_WINNT >= 0x0600) +#define KERB_TRANSFER_CRED_WITH_TICKETS 1 +#define KERB_TRANSFER_CRED_CLEANUP_CREDENTIALS 2 + +#if _WIN32_WINNT >= 0x0602 + + typedef struct _KERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + LUID LogonId; + } KERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST, *PKERB_CLEANUP_MACHINE_PKINIT_CREDS_REQUEST; + + typedef struct _KERB_BINDING_CACHE_ENTRY_DATA { + ULONG64 DiscoveryTime; + UNICODE_STRING RealmName; + UNICODE_STRING KdcAddress; + ULONG AddressType; + ULONG Flags; + ULONG DcFlags; + ULONG CacheFlags; + UNICODE_STRING KdcName; + } KERB_BINDING_CACHE_ENTRY_DATA, *PKERB_BINDING_CACHE_ENTRY_DATA; + + typedef struct _KERB_QUERY_BINDING_CACHE_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG CountOfEntries; + PKERB_BINDING_CACHE_ENTRY_DATA Entries; + } KERB_QUERY_BINDING_CACHE_RESPONSE, *PKERB_QUERY_BINDING_CACHE_RESPONSE; + + typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + UNICODE_STRING RealmName; + UNICODE_STRING KdcAddress; + ULONG AddressType; + ULONG DcFlags; + } KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST; + + typedef struct _KERB_QUERY_BINDING_CACHE_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + } KERB_QUERY_BINDING_CACHE_REQUEST, *PKERB_QUERY_BINDING_CACHE_REQUEST; + + typedef struct _KERB_PURGE_BINDING_CACHE_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + } KERB_PURGE_BINDING_CACHE_REQUEST, *PKERB_PURGE_BINDING_CACHE_REQUEST; + + typedef struct _KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + UNICODE_STRING DomainName; + } KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST, *PKERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST; + +#define KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED 1 + + typedef struct _KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE { + KERB_PROTOCOL_MESSAGE_TYPE MessageType; + ULONG Flags; + ULONG ExtendedPolicies; + ULONG DsFlags; + } KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE, *PKERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE; + + typedef enum _KERB_CERTIFICATE_INFO_TYPE { + CertHashInfo = 1, + } KERB_CERTIFICATE_INFO_TYPE, *PKERB_CERTIFICATE_INFO_TYPE; + + typedef struct _KERB_CERTIFICATE_HASHINFO { + USHORT StoreNameLength; + USHORT HashLength; + } KERB_CERTIFICATE_HASHINFO, *PKERB_CERTIFICATE_HASHINFO; + + typedef struct _KERB_CERTIFICATE_INFO { + ULONG CertInfoSize; + ULONG InfoType; + } KERB_CERTIFICATE_INFO, *PKERB_CERTIFICATE_INFO; + +#endif #define PER_USER_POLICY_UNCHANGED 0x00 #define PER_USER_AUDIT_SUCCESS_INCLUDE 0x01 @@ -1478,11 +2482,36 @@ typedef enum _SE_ADT_PARAMETER_TYPE { } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION; typedef const PAUDIT_POLICY_INFORMATION PCAUDIT_POLICY_INFORMATION, LPCAUDIT_POLICY_INFORMATION; +#define AUDIT_SET_SYSTEM_POLICY 0x0001 +#define AUDIT_QUERY_SYSTEM_POLICY 0x0002 +#define AUDIT_SET_USER_POLICY 0x0004 +#define AUDIT_QUERY_USER_POLICY 0x0008 +#define AUDIT_ENUMERATE_USERS 0x0010 +#define AUDIT_SET_MISC_POLICY 0x0020 +#define AUDIT_QUERY_MISC_POLICY 0x0040 + +#define AUDIT_GENERIC_ALL (STANDARD_RIGHTS_REQUIRED | AUDIT_SET_SYSTEM_POLICY | AUDIT_QUERY_SYSTEM_POLICY | \ + AUDIT_SET_USER_POLICY | AUDIT_QUERY_USER_POLICY | AUDIT_ENUMERATE_USERS | \ + AUDIT_SET_MISC_POLICY | AUDIT_QUERY_MISC_POLICY) + +#define AUDIT_GENERIC_READ (STANDARD_RIGHTS_READ | AUDIT_QUERY_SYSTEM_POLICY | AUDIT_QUERY_USER_POLICY | \ + AUDIT_ENUMERATE_USERS | AUDIT_QUERY_MISC_POLICY) + +#define AUDIT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE | AUDIT_SET_USER_POLICY | AUDIT_SET_MISC_POLICY | \ + AUDIT_SET_SYSTEM_POLICY) + +#define AUDIT_GENERIC_EXECUTE STANDARD_RIGHTS_EXECUTE + typedef struct _POLICY_AUDIT_SID_ARRAY { ULONG UsersCount; PSID *UserSidArray; } POLICY_AUDIT_SID_ARRAY, *PPOLICY_AUDIT_SID_ARRAY; +#if _WIN32_WINNT >= 0x0600 + +#define KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES 0x1 +#define KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO 0x2 + typedef struct _KERB_CERTIFICATE_LOGON { KERB_LOGON_SUBMIT_TYPE MessageType; UNICODE_STRING DomainName; @@ -1498,6 +2527,20 @@ typedef enum _SE_ADT_PARAMETER_TYPE { LUID LogonId; } KERB_CERTIFICATE_UNLOCK_LOGON, *PKERB_CERTIFICATE_UNLOCK_LOGON; +#define KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_DUPLICATES 0x1 +#define KERB_CERTIFICATE_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2 +#define KERB_CERTIFICATE_S4U_LOGON_FLAG_FAIL_IF_NT_AUTH_POLICY_REQUIRED 0x4 +#define KERB_CERTIFICATE_S4U_LOGON_FLAG_IDENTIFY 0x8 + + typedef struct _KERB_CERTIFICATE_S4U_LOGON { + KERB_LOGON_SUBMIT_TYPE MessageType; + ULONG Flags; + UNICODE_STRING UserPrincipalName; + UNICODE_STRING DomainName; + ULONG CertificateLength; + PUCHAR Certificate; + } KERB_CERTIFICATE_S4U_LOGON, *PKERB_CERTIFICATE_S4U_LOGON; + typedef struct _KERB_SMARTCARD_CSP_INFO { DWORD dwCspInfoLen; DWORD MessageType; @@ -1514,6 +2557,8 @@ typedef enum _SE_ADT_PARAMETER_TYPE { TCHAR bBuffer; } KERB_SMARTCARD_CSP_INFO, *PKERB_SMARTCARD_CSP_INFO; +#endif + BOOLEAN WINAPI AuditComputeEffectivePolicyBySid( const PSID pSid, const GUID *pSubCategoryGuids, @@ -1615,7 +2660,65 @@ typedef enum _SE_ADT_PARAMETER_TYPE { PSECURITY_DESCRIPTOR pSecurityDescriptor ); -#endif /*(_WIN32_WINNT >= 0x0600)*/ + BOOLEAN NTAPI AuditSetGlobalSaclW( + PCWSTR ObjectTypeName, + PACL Acl + ); + + BOOLEAN NTAPI AuditSetGlobalSaclA( + PCSTR ObjectTypeName, + PACL Acl + ); + +#define AuditSetGlobalSacl __MINGW_NAME_AW(AuditSetGlobalSacl) + + BOOLEAN NTAPI AuditQueryGlobalSaclW( + PCWSTR ObjectTypeName, + PACL *Acl + ); + + BOOLEAN NTAPI AuditQueryGlobalSaclA( + PCSTR ObjectTypeName, + PACL *Acl + ); + +#define AuditQueryGlobalSacl __MINGW_NAME_AW(AuditQueryGlobalSacl) + +#if _WIN32_WINNT >= 0x0601 + +#define PKU2U_PACKAGE_NAME_A "pku2u" +#define PKU2U_PACKAGE_NAME L"pku2u" +#define PKU2U_PACKAGE_NAME_W PKU2U_PACKAGE_NAME + + typedef struct _PKU2U_CERT_BLOB { + ULONG CertOffset; + USHORT CertLength; + } PKU2U_CERT_BLOB, *PPKU2U_CERT_BLOB; + +#define PKU2U_CREDUI_CONTEXT_VERSION 0x4154414454524543 + + typedef struct _PKU2U_CREDUI_CONTEXT { + ULONG64 Version; + USHORT cbHeaderLength; + ULONG cbStructureLength; + USHORT CertArrayCount; + ULONG CertArrayOffset; + } PKU2U_CREDUI_CONTEXT, *PPKU2U_CREDUI_CONTEXT; + + typedef enum _PKU2U_LOGON_SUBMIT_TYPE { + Pku2uCertificateS4ULogon = 14, + } PKU2U_LOGON_SUBMIT_TYPE, *PPKU2U_LOGON_SUBMIT_TYPE; + + typedef struct _PKU2U_CERTIFICATE_S4U_LOGON { + PKU2U_LOGON_SUBMIT_TYPE MessageType; + ULONG Flags; + UNICODE_STRING UserPrincipalName; + UNICODE_STRING DomainName; + ULONG CertificateLength; + PUCHAR Certificate; + } PKU2U_CERTIFICATE_S4U_LOGON, *PPKU2U_CERTIFICATE_S4U_LOGON; + +#endif #ifdef __cplusplus } diff --git a/lib/libc/include/any-windows-any/ntstatus.h b/lib/libc/include/any-windows-any/ntstatus.h index eace03e9f8..c511d2e9c8 100644 --- a/lib/libc/include/any-windows-any/ntstatus.h +++ b/lib/libc/include/any-windows-any/ntstatus.h @@ -1002,6 +1002,7 @@ #define STATUS_SYSTEM_DEVICE_NOT_FOUND ((NTSTATUS)0xC0000452) #define STATUS_RESTART_BOOT_APPLICATION ((NTSTATUS)0xC0000453) #define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS)0xC0000454) +#define STATUS_CASE_DIFFERING_NAMES_IN_DIR ((NTSTATUS)0xC00004B3) #define STATUS_INVALID_TASK_NAME ((NTSTATUS)0xC0000500) #define STATUS_INVALID_TASK_INDEX ((NTSTATUS)0xC0000501) #define STATUS_THREAD_ALREADY_IN_TASK ((NTSTATUS)0xC0000502) diff --git a/lib/libc/include/any-windows-any/nvme.h b/lib/libc/include/any-windows-any/nvme.h new file mode 100644 index 0000000000..5787768ccb --- /dev/null +++ b/lib/libc/include/any-windows-any/nvme.h @@ -0,0 +1,2835 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef NVME_INCLUDED +#define NVME_INCLUDED + +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +typedef enum { + NVME_AMS_ROUND_ROBIN = 0, + NVME_AMS_WEIGHTED_ROUND_ROBIN_URGENT = 1 +} NVME_AMS_OPTION; + +typedef union { + __C89_NAMELESS struct { + ULONGLONG MQES : 16; + ULONGLONG CQR : 1; + ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1; + ULONGLONG AMS_VendorSpecific : 1; + ULONGLONG Reserved0 : 5; + ULONGLONG TO : 8; + ULONGLONG DSTRD : 4; + ULONGLONG NSSRS : 1; + ULONGLONG CSS_NVM : 1; + ULONGLONG CSS_Reserved0 : 1; + ULONGLONG CSS_Reserved1 : 1; + ULONGLONG CSS_Reserved2 : 1; + ULONGLONG CSS_Reserved3 : 1; + ULONGLONG CSS_Reserved4 : 1; + ULONGLONG CSS_MultipleIo : 1; + ULONGLONG CSS_AdminOnly : 1; + ULONGLONG Reserved2 : 3; + ULONGLONG MPSMIN : 4; + ULONGLONG MPSMAX : 4; + ULONGLONG Reserved3 : 8; + }; + ULONGLONG AsUlonglong; +} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES; + +typedef union { + __C89_NAMELESS struct { + ULONG TER : 8; + ULONG MNR : 8; + ULONG MJR : 16; + }; + ULONG AsUlong; +} NVME_VERSION, *PNVME_VERSION; + +typedef enum { + NVME_CC_SHN_NO_NOTIFICATION = 0, + NVME_CC_SHN_NORMAL_SHUTDOWN = 1, + NVME_CC_SHN_ABRUPT_SHUTDOWN = 2 +} NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS; + +typedef enum { + NVME_CSS_NVM_COMMAND_SET = 0, + NVME_CSS_ALL_SUPPORTED_IO_COMMAND_SET = 6, + NVME_CSS_ADMIN_COMMAND_SET_ONLY = 7 +} NVME_CSS_COMMAND_SETS; + +typedef union { + __C89_NAMELESS struct { + ULONG EN : 1; + ULONG Reserved0 : 3; + ULONG CSS : 3; + ULONG MPS : 4; + ULONG AMS : 3; + ULONG SHN : 2; + ULONG IOSQES : 4; + ULONG IOCQES : 4; + ULONG Reserved1 : 8; + }; + ULONG AsUlong; +} NVME_CONTROLLER_CONFIGURATION, *PNVME_CONTROLLER_CONFIGURATION; + +typedef enum { + NVME_CSTS_SHST_NO_SHUTDOWN = 0, + NVME_CSTS_SHST_SHUTDOWN_IN_PROCESS = 1, + NVME_CSTS_SHST_SHUTDOWN_COMPLETED = 2 +} NVME_CSTS_SHST_SHUTDOWN_STATUS; + +typedef union { + __C89_NAMELESS struct { + ULONG RDY : 1; + ULONG CFS : 1; + ULONG SHST : 2; + ULONG NSSRO : 1; + ULONG PP : 1; + ULONG Reserved0 : 26; + }; + ULONG AsUlong; +} NVME_CONTROLLER_STATUS, *PNVME_CONTROLLER_STATUS; + +typedef struct _NVME_NVM_SUBSYSTEM_RESET { + ULONG NSSRC; +} NVME_NVM_SUBSYSTEM_RESET, *PNVME_NVM_SUBSYSTEM_RESET; + +typedef union { + __C89_NAMELESS struct { + ULONG ASQS : 12; + ULONG Reserved0 : 4; + ULONG ACQS : 12; + ULONG Reserved1 : 4; + }; + ULONG AsUlong; +} NVME_ADMIN_QUEUE_ATTRIBUTES, *PNVME_ADMIN_QUEUE_ATTRIBUTES; + +typedef union { + __C89_NAMELESS struct { + ULONGLONG Reserved0 : 12; + ULONGLONG ASQB : 52; + }; + ULONGLONG AsUlonglong; +} NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS, *PNVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS; + +typedef union { + __C89_NAMELESS struct { + ULONGLONG Reserved0 : 12; + ULONGLONG ACQB : 52; + }; + ULONGLONG AsUlonglong; +} NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS, *PNVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS; + +typedef union { + __C89_NAMELESS struct { + ULONG BIR : 3; + ULONG Reserved : 9; + ULONG OFST : 20; + }; + ULONG AsUlong; +} NVME_CONTROLLER_MEMORY_BUFFER_LOCATION, *PNVME_CONTROLLER_MEMORY_BUFFER_LOCATION; + +typedef enum { + NVME_CMBSZ_SIZE_UNITS_4KB = 0, + NVME_CMBSZ_SIZE_UNITS_64KB = 1, + NVME_CMBSZ_SIZE_UNITS_1MB = 2, + NVME_CMBSZ_SIZE_UNITS_16MB = 3, + NVME_CMBSZ_SIZE_UNITS_256MB = 4, + NVME_CMBSZ_SIZE_UNITS_4GB = 5, + NVME_CMBSZ_SIZE_UNITS_64GB = 6 +} NVME_CMBSZ_SIZE_UNITS; + +typedef union { + __C89_NAMELESS struct { + ULONG SQS : 1; + ULONG CQS : 1; + ULONG LISTS : 1; + ULONG RDS : 1; + ULONG WDS : 1; + ULONG Reserved : 3; + ULONG SZU : 4; + ULONG SZ : 20; + }; + ULONG AsUlong; +} NVME_CONTROLLER_MEMORY_BUFFER_SIZE, *PNVME_CONTROLLER_MEMORY_BUFFER_SIZE; + +typedef union { + __C89_NAMELESS struct { + ULONG SQT : 16; + ULONG Reserved0 : 16; + }; + ULONG AsUlong; +} NVME_SUBMISSION_QUEUE_TAIL_DOORBELL, *PNVME_SUBMISSION_QUEUE_TAIL_DOORBELL; + +typedef union { + __C89_NAMELESS struct { + ULONG CQH : 16; + ULONG Reserved0 : 16; + }; + ULONG AsUlong; +} NVME_COMPLETION_QUEUE_HEAD_DOORBELL, *PNVME_COMPLETION_QUEUE_HEAD_DOORBELL; + +typedef struct { + NVME_CONTROLLER_CAPABILITIES CAP; + NVME_VERSION VS; + ULONG INTMS; + ULONG INTMC; + NVME_CONTROLLER_CONFIGURATION CC; + ULONG Reserved0; + NVME_CONTROLLER_STATUS CSTS; + NVME_NVM_SUBSYSTEM_RESET NSSR; + NVME_ADMIN_QUEUE_ATTRIBUTES AQA; + NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS ASQ; + NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS ACQ; + NVME_CONTROLLER_MEMORY_BUFFER_LOCATION CMBLOC; + NVME_CONTROLLER_MEMORY_BUFFER_SIZE CMBSZ; + ULONG Reserved2[944]; + ULONG Reserved3[64]; + ULONG Doorbells[0]; +} NVME_CONTROLLER_REGISTERS, *PNVME_CONTROLLER_REGISTERS; + +typedef union { + __C89_NAMELESS struct { + USHORT P : 1; + USHORT SC : 8; + USHORT SCT : 3; + USHORT Reserved : 2; + USHORT M : 1; + USHORT DNR : 1; + }; + USHORT AsUshort; +} NVME_COMMAND_STATUS, *PNVME_COMMAND_STATUS; + +typedef struct { + ULONG DW0; + ULONG DW1; + union { + __C89_NAMELESS struct { + USHORT SQHD; + USHORT SQID; + }; + ULONG AsUlong; + } DW2; + union { + __C89_NAMELESS struct { + USHORT CID; + NVME_COMMAND_STATUS Status; + }; + ULONG AsUlong; + } DW3; +} NVME_COMPLETION_ENTRY, *PNVME_COMPLETION_ENTRY; + +typedef enum { + NVME_ASYNC_EVENT_TYPE_ERROR_STATUS = 0, + NVME_ASYNC_EVENT_TYPE_HEALTH_STATUS = 1, + NVME_ASYNC_EVENT_TYPE_NOTICE = 2, + NVME_ASYNC_EVENT_TYPE_IO_COMMAND_SET_STATUS = 6, + NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC = 7 +} NVME_ASYNC_EVENT_TYPES; + +typedef enum { + NVME_ASYNC_ERROR_INVALID_SUBMISSION_QUEUE = 0, + NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1, + NVME_ASYNC_ERROR_DIAG_FAILURE = 2, + NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3, + NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4, + NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5 +} NVME_ASYNC_EVENT_ERROR_STATUS_CODES; + +typedef enum { + NVME_ASYNC_HEALTH_NVM_SUBSYSTEM_RELIABILITY = 0, + NVME_ASYNC_HEALTH_TEMPERATURE_THRESHOLD = 1, + NVME_ASYNC_HEALTH_SPARE_BELOW_THRESHOLD = 2 +} NVME_ASYNC_EVENT_HEALTH_STATUS_CODES; + +typedef enum { + NVME_ASYNC_NOTICE_NAMESPACE_ATTRIBUTE_CHANGED = 0, + NVME_ASYNC_NOTICE_FIRMWARE_ACTIVATION_STARTING = 1, + NVME_ASYNC_NOTICE_TELEMETRY_LOG_CHANGED = 2, + NVME_ASYNC_NOTICE_ASYMMETRIC_ACCESS_CHANGE = 3, + NVME_ASYNC_NOTICE_PREDICTABLE_LATENCY_EVENT_AGGREGATE_LOG_CHANGE = 4, + NVME_ASYNC_NOTICE_LBA_STATUS_INFORMATION_ALERT = 5, + NVME_ASYNC_NOTICE_ENDURANCE_GROUP_EVENT_AGGREGATE_LOG_CHANGE = 6, + NVME_ASYNC_NOTICE_ZONE_DESCRIPTOR_CHANGED = 0xEF +} NVME_ASYNC_EVENT_NOTICE_CODES; + +typedef enum { + NVME_ASYNC_IO_CMD_SET_RESERVATION_LOG_PAGE_AVAILABLE = 0, + NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED = 1, + NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED_WITH_UNEXPECTED_DEALLOCATION = 2 +} NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES; + +typedef struct { + ULONG AsyncEventType : 3; + ULONG Reserved0 : 5; + ULONG AsyncEventInfo : 8; + ULONG LogPage : 8; + ULONG Reserved1 : 8; +} NVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST, *PNVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST; + +typedef enum { + NVME_STATUS_TYPE_GENERIC_COMMAND = 0, + NVME_STATUS_TYPE_COMMAND_SPECIFIC = 1, + NVME_STATUS_TYPE_MEDIA_ERROR = 2, + NVME_STATUS_TYPE_VENDOR_SPECIFIC = 7 +} NVME_STATUS_TYPES; + +typedef enum { + NVME_STATUS_SUCCESS_COMPLETION = 0x00, + NVME_STATUS_INVALID_COMMAND_OPCODE = 0x01, + NVME_STATUS_INVALID_FIELD_IN_COMMAND = 0x02, + NVME_STATUS_COMMAND_ID_CONFLICT = 0x03, + NVME_STATUS_DATA_TRANSFER_ERROR = 0x04, + NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION = 0x05, + NVME_STATUS_INTERNAL_DEVICE_ERROR = 0x06, + NVME_STATUS_COMMAND_ABORT_REQUESTED = 0x07, + NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION = 0x08, + NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND = 0x09, + NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND = 0x0A, + NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT = 0x0B, + NVME_STATUS_COMMAND_SEQUENCE_ERROR = 0x0C, + NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR = 0x0D, + NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR = 0x0E, + NVME_STATUS_DATA_SGL_LENGTH_INVALID = 0x0F, + NVME_STATUS_METADATA_SGL_LENGTH_INVALID = 0x10, + NVME_STATUS_SGL_DESCR_TYPE_INVALID = 0x11, + NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER = 0x12, + NVME_STATUS_PRP_OFFSET_INVALID = 0x13, + NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED = 0x14, + NVME_STATUS_OPERATION_DENIED = 0x15, + NVME_STATUS_SGL_OFFSET_INVALID = 0x16, + NVME_STATUS_RESERVED = 0x17, + NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT = 0x18, + NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED = 0x19, + NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID = 0x1A, + NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT = 0x1B, + NVME_STATUS_SANITIZE_FAILED = 0x1C, + NVME_STATUS_SANITIZE_IN_PROGRESS = 0x1D, + NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID = 0x1E, + NVME_STATUS_DIRECTIVE_TYPE_INVALID = 0x70, + NVME_STATUS_DIRECTIVE_ID_INVALID = 0x71, + NVME_STATUS_NVM_LBA_OUT_OF_RANGE = 0x80, + NVME_STATUS_NVM_CAPACITY_EXCEEDED = 0x81, + NVME_STATUS_NVM_NAMESPACE_NOT_READY = 0x82, + NVME_STATUS_NVM_RESERVATION_CONFLICT = 0x83, + NVME_STATUS_FORMAT_IN_PROGRESS = 0x84 +} NVME_STATUS_GENERIC_COMMAND_CODES; + +typedef enum { + NVME_STATUS_COMPLETION_QUEUE_INVALID = 0x00, + NVME_STATUS_INVALID_QUEUE_IDENTIFIER = 0x01, + NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED = 0x02, + NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED = 0x03, + NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED = 0x05, + NVME_STATUS_INVALID_FIRMWARE_SLOT = 0x06, + NVME_STATUS_INVALID_FIRMWARE_IMAGE = 0x07, + NVME_STATUS_INVALID_INTERRUPT_VECTOR = 0x08, + NVME_STATUS_INVALID_LOG_PAGE = 0x09, + NVME_STATUS_INVALID_FORMAT = 0x0A, + NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET = 0x0B, + NVME_STATUS_INVALID_QUEUE_DELETION = 0x0C, + NVME_STATUS_FEATURE_ID_NOT_SAVEABLE = 0x0D, + NVME_STATUS_FEATURE_NOT_CHANGEABLE = 0x0E, + NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC = 0x0F, + NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET = 0x10, + NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET = 0x11, + NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION = 0x12, + NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED = 0x13, + NVME_STATUS_OVERLAPPING_RANGE = 0x14, + NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY = 0x15, + NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE = 0x16, + NVME_STATUS_NAMESPACE_ALREADY_ATTACHED = 0x18, + NVME_STATUS_NAMESPACE_IS_PRIVATE = 0x19, + NVME_STATUS_NAMESPACE_NOT_ATTACHED = 0x1A, + NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED = 0x1B, + NVME_STATUS_CONTROLLER_LIST_INVALID = 0x1C, + NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS = 0x1D, + NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED = 0x1E, + NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER = 0x1F, + NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE = 0x20, + NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES = 0x21, + NVME_STATUS_INVALID_RESOURCE_IDENTIFIER = 0x22, + NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY = 0x23, + NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER = 0x24, + NVME_STATUS_ANA_ATTACH_FAILED = 0x25, + NVME_IO_COMMAND_SET_NOT_SUPPORTED = 0x29, + NVME_IO_COMMAND_SET_NOT_ENABLED = 0x2A, + NVME_IO_COMMAND_SET_COMBINATION_REJECTED = 0x2B, + NVME_IO_COMMAND_SET_INVALID = 0x2C, + NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED = 0x7F, + NVME_STATUS_ZONE_INVALID_FORMAT = 0x7F, + NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES = 0x80, + NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION = 0x81, + NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE = 0x82, + NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED = 0x83, + NVME_STATUS_ZONE_BOUNDARY_ERROR = 0xB8, + NVME_STATUS_ZONE_FULL = 0xB9, + NVME_STATUS_ZONE_READ_ONLY = 0xBA, + NVME_STATUS_ZONE_OFFLINE = 0xBB, + NVME_STATUS_ZONE_INVALID_WRITE = 0xBC, + NVME_STATUS_ZONE_TOO_MANY_ACTIVE = 0xBD, + NVME_STATUS_ZONE_TOO_MANY_OPEN = 0xBE, + NVME_STATUS_ZONE_INVALID_STATE_TRANSITION = 0xBF +} NVME_STATUS_COMMAND_SPECIFIC_CODES; + +typedef enum { + NVME_STATUS_NVM_WRITE_FAULT = 0x80, + NVME_STATUS_NVM_UNRECOVERED_READ_ERROR = 0x81, + NVME_STATUS_NVM_END_TO_END_GUARD_CHECK_ERROR = 0x82, + NVME_STATUS_NVM_END_TO_END_APPLICATION_TAG_CHECK_ERROR = 0x83, + NVME_STATUS_NVM_END_TO_END_REFERENCE_TAG_CHECK_ERROR = 0x84, + NVME_STATUS_NVM_COMPARE_FAILURE = 0x85, + NVME_STATUS_NVM_ACCESS_DENIED = 0x86, + NVME_STATUS_NVM_DEALLOCATED_OR_UNWRITTEN_LOGICAL_BLOCK = 0x87 +} NVME_STATUS_MEDIA_ERROR_CODES; + +typedef enum { + NVME_ADMIN_COMMAND_DELETE_IO_SQ = 0x00, + NVME_ADMIN_COMMAND_CREATE_IO_SQ = 0x01, + NVME_ADMIN_COMMAND_GET_LOG_PAGE = 0x02, + NVME_ADMIN_COMMAND_DELETE_IO_CQ = 0x04, + NVME_ADMIN_COMMAND_CREATE_IO_CQ = 0x05, + NVME_ADMIN_COMMAND_IDENTIFY = 0x06, + NVME_ADMIN_COMMAND_ABORT = 0x08, + NVME_ADMIN_COMMAND_SET_FEATURES = 0x09, + NVME_ADMIN_COMMAND_GET_FEATURES = 0x0A, + NVME_ADMIN_COMMAND_ASYNC_EVENT_REQUEST = 0x0C, + NVME_ADMIN_COMMAND_NAMESPACE_MANAGEMENT = 0x0D, + NVME_ADMIN_COMMAND_FIRMWARE_ACTIVATE = 0x10, + NVME_ADMIN_COMMAND_FIRMWARE_COMMIT = 0x10, + NVME_ADMIN_COMMAND_FIRMWARE_IMAGE_DOWNLOAD = 0x11, + NVME_ADMIN_COMMAND_DEVICE_SELF_TEST = 0x14, + NVME_ADMIN_COMMAND_NAMESPACE_ATTACHMENT = 0x15, + NVME_ADMIN_COMMAND_DIRECTIVE_SEND = 0x19, + NVME_ADMIN_COMMAND_DIRECTIVE_RECEIVE = 0x1A, + NVME_ADMIN_COMMAND_VIRTUALIZATION_MANAGEMENT = 0x1C, + NVME_ADMIN_COMMAND_NVME_MI_SEND = 0x1D, + NVME_ADMIN_COMMAND_NVME_MI_RECEIVE = 0x1E, + NVME_ADMIN_COMMAND_DOORBELL_BUFFER_CONFIG = 0x7C, + NVME_ADMIN_COMMAND_FORMAT_NVM = 0x80, + NVME_ADMIN_COMMAND_SECURITY_SEND = 0x81, + NVME_ADMIN_COMMAND_SECURITY_RECEIVE = 0x82, + NVME_ADMIN_COMMAND_SANITIZE = 0x84, + NVME_ADMIN_COMMAND_GET_LBA_STATUS = 0x86 +} NVME_ADMIN_COMMANDS; + +typedef enum { + NVME_FEATURE_ARBITRATION = 0x01, + NVME_FEATURE_POWER_MANAGEMENT = 0x02, + NVME_FEATURE_LBA_RANGE_TYPE = 0x03, + NVME_FEATURE_TEMPERATURE_THRESHOLD = 0x04, + NVME_FEATURE_ERROR_RECOVERY = 0x05, + NVME_FEATURE_VOLATILE_WRITE_CACHE = 0x06, + NVME_FEATURE_NUMBER_OF_QUEUES = 0x07, + NVME_FEATURE_INTERRUPT_COALESCING = 0x08, + NVME_FEATURE_INTERRUPT_VECTOR_CONFIG = 0x09, + NVME_FEATURE_WRITE_ATOMICITY = 0x0A, + NVME_FEATURE_ASYNC_EVENT_CONFIG = 0x0B, + NVME_FEATURE_AUTONOMOUS_POWER_STATE_TRANSITION = 0x0C, + NVME_FEATURE_HOST_MEMORY_BUFFER = 0x0D, + NVME_FEATURE_TIMESTAMP = 0x0E, + NVME_FEATURE_KEEP_ALIVE = 0x0F, + NVME_FEATURE_HOST_CONTROLLED_THERMAL_MANAGEMENT = 0x10, + NVME_FEATURE_NONOPERATIONAL_POWER_STATE = 0x11, + NVME_FEATURE_READ_RECOVERY_LEVEL_CONFIG = 0x12, + NVME_FEATURE_PREDICTABLE_LATENCY_MODE_CONFIG = 0x13, + NVME_FEATURE_PREDICTABLE_LATENCY_MODE_WINDOW = 0x14, + NVME_FEATURE_LBA_STATUS_INFORMATION_REPORT_INTERVAL = 0x15, + NVME_FEATURE_HOST_BEHAVIOR_SUPPORT = 0x16, + NVME_FEATURE_SANITIZE_CONFIG = 0x17, + NVME_FEATURE_ENDURANCE_GROUP_EVENT_CONFIG = 0x18, + NVME_FEATURE_IO_COMMAND_SET_PROFILE = 0x19, + NVME_FEATURE_ENHANCED_CONTROLLER_METADATA = 0x7D, + NVME_FEATURE_CONTROLLER_METADATA = 0x7E, + NVME_FEATURE_NAMESPACE_METADATA = 0x7F, + NVME_FEATURE_NVM_SOFTWARE_PROGRESS_MARKER = 0x80, + NVME_FEATURE_NVM_HOST_IDENTIFIER = 0x81, + NVME_FEATURE_NVM_RESERVATION_NOTIFICATION_MASK = 0x82, + NVME_FEATURE_NVM_RESERVATION_PERSISTANCE = 0x83, + NVME_FEATURE_NVM_NAMESPACE_WRITE_PROTECTION_CONFIG = 0x84, + NVME_FEATURE_ERROR_INJECTION = 0xC0, + NVME_FEATURE_CLEAR_FW_UPDATE_HISTORY = 0xC1, + NVME_FEATURE_READONLY_WRITETHROUGH_MODE = 0xC2, + NVME_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS = 0xC3, + NVME_FEATURE_ENABLE_IEEE1667_SILO = 0xC4, + NVME_FEATURE_PLP_HEALTH_MONITOR = 0xC5 +} NVME_FEATURES; + +typedef union { + __C89_NAMELESS struct { + ULONG SQID : 8; + ULONG CID : 16; + }; + ULONG AsUlong; +} NVME_CDW10_ABORT, *PNVME_CDW10_ABORT; + +typedef enum { + NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE = 0x0, + NVME_IDENTIFY_CNS_CONTROLLER = 0x1, + NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES = 0x2, + NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE = 0x3, + NVME_IDENTIFY_CNS_NVM_SET = 0x4, + NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE_IO_COMMAND_SET = 0x5, + NVME_IDENTIFY_CNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET = 0x6, + NVME_IDENTIFY_CNS_ACTIVE_NAMESPACE_LIST_IO_COMMAND_SET = 0x7, + NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_LIST = 0x10, + NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE = 0x11, + NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NSID = 0x12, + NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NVM_SUBSYSTEM = 0x13, + NVME_IDENTIFY_CNS_PRIMARY_CONTROLLER_CAPABILITIES = 0x14, + NVME_IDENTIFY_CNS_SECONDARY_CONTROLLER_LIST = 0x15, + NVME_IDENTIFY_CNS_NAMESPACE_GRANULARITY_LIST = 0x16, + NVME_IDENTIFY_CNS_UUID_LIST = 0x17, + NVME_IDENTIFY_CNS_DOMAIN_LIST = 0x18, + NVME_IDENTIFY_CNS_ENDURANCE_GROUP_LIST = 0x19, + NVME_IDENTIFY_CNS_ALLOCATED_NAMSPACE_LIST_IO_COMMAND_SET = 0x1A, + NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_IO_COMMAND_SET = 0x1B, + NVME_IDENTIFY_CNS_IO_COMMAND_SET = 0x1C +} NVME_IDENTIFY_CNS_CODES; + +typedef enum { + NVME_COMMAND_SET_NVM = 0x0, + NVME_COMMAND_SET_KEY_VALUE = 0x1, + NVME_COMMAND_SET_ZONED_NAMESPACE = 0x2 +} NVME_COMMAND_SET_IDENTIFIERS; + +typedef union { + __C89_NAMELESS struct { + ULONG CNS : 8; + ULONG Reserved : 8; + ULONG CNTID : 16; + }; + ULONG AsUlong; +} NVME_CDW10_IDENTIFY, *PNVME_CDW10_IDENTIFY; + +typedef union { + __C89_NAMELESS struct { + USHORT NVMSETID; + USHORT Reserved; + }; + __C89_NAMELESS struct { + ULONG CNSID : 16; + ULONG Reserved2 : 8; + ULONG CSI : 8; + }; + ULONG AsUlong; +} NVME_CDW11_IDENTIFY, *PNVME_CDW11_IDENTIFY; + +typedef union { + __C89_NAMELESS struct { + USHORT MS; + UCHAR LBADS; + UCHAR RP : 2; + UCHAR Reserved0 : 6; + }; + ULONG AsUlong; +} NVME_LBA_FORMAT, *PNVME_LBA_FORMAT; + +typedef union { + __C89_NAMELESS struct { + UCHAR PersistThroughPowerLoss : 1; + UCHAR WriteExclusiveReservation : 1; + UCHAR ExclusiveAccessReservation : 1; + UCHAR WriteExclusiveRegistrantsOnlyReservation : 1; + UCHAR ExclusiveAccessRegistrantsOnlyReservation : 1; + UCHAR WriteExclusiveAllRegistrantsReservation : 1; + UCHAR ExclusiveAccessAllRegistrantsReservation : 1; + UCHAR Reserved : 1; + }; + UCHAR AsUchar; +} NVM_RESERVATION_CAPABILITIES, *PNVME_RESERVATION_CAPABILITIES; + +typedef struct { + ULONGLONG NSZE; + ULONGLONG NCAP; + ULONGLONG NUSE; + struct { + UCHAR ThinProvisioning : 1; + UCHAR NameSpaceAtomicWriteUnit : 1; + UCHAR DeallocatedOrUnwrittenError : 1; + UCHAR SkipReuseUI : 1; + UCHAR NameSpaceIoOptimization : 1; + UCHAR Reserved : 3; + } NSFEAT; + UCHAR NLBAF; + struct { + UCHAR LbaFormatIndex : 4; + UCHAR MetadataInExtendedDataLBA : 1; + UCHAR Reserved : 3; + } FLBAS; + struct { + UCHAR MetadataInExtendedDataLBA : 1; + UCHAR MetadataInSeparateBuffer : 1; + UCHAR Reserved : 6; + } MC; + struct { + UCHAR ProtectionInfoType1 : 1; + UCHAR ProtectionInfoType2 : 1; + UCHAR ProtectionInfoType3 : 1; + UCHAR InfoAtBeginningOfMetadata : 1; + UCHAR InfoAtEndOfMetadata : 1; + UCHAR Reserved : 3; + } DPC; + struct { + UCHAR ProtectionInfoTypeEnabled : 3; + UCHAR InfoAtBeginningOfMetadata : 1; + UCHAR Reserved : 4; + } DPS; + struct { + UCHAR SharedNameSpace : 1; + UCHAR Reserved : 7; + } NMIC; + NVM_RESERVATION_CAPABILITIES RESCAP; + struct { + UCHAR PercentageRemained : 7; + UCHAR Supported : 1; + } FPI; + struct { + UCHAR ReadBehavior : 3; + UCHAR WriteZeroes : 1; + UCHAR GuardFieldWithCRC : 1; + UCHAR Reserved : 3; + } DLFEAT; + USHORT NAWUN; + USHORT NAWUPF; + USHORT NACWU; + USHORT NABSN; + USHORT NABO; + USHORT NABSPF; + USHORT NOIOB; + UCHAR NVMCAP[16]; + USHORT NPWG; + USHORT NPWA; + USHORT NPDG; + USHORT NPDA; + USHORT NOWS; + USHORT MSSRL; + ULONG MCL; + UCHAR MSRC; + UCHAR Reserved2[11]; + ULONG ANAGRPID; + UCHAR Reserved3[3]; + struct { + UCHAR WriteProtected : 1; + UCHAR Reserved : 7; + } NSATTR; + USHORT NVMSETID; + USHORT ENDGID; + UCHAR NGUID[16]; + UCHAR EUI64[8]; + NVME_LBA_FORMAT LBAF[16]; + UCHAR Reserved4[192]; + UCHAR VS[3712]; +} NVME_IDENTIFY_NAMESPACE_DATA, *PNVME_IDENTIFY_NAMESPACE_DATA; + +typedef struct { + USHORT MP; + UCHAR Reserved0; + UCHAR MPS : 1; + UCHAR NOPS : 1; + UCHAR Reserved1 : 6; + ULONG ENLAT; + ULONG EXLAT; + UCHAR RRT : 5; + UCHAR Reserved2 : 3; + UCHAR RRL : 5; + UCHAR Reserved3 : 3; + UCHAR RWT : 5; + UCHAR Reserved4 : 3; + UCHAR RWL : 5; + UCHAR Reserved5 : 3; + USHORT IDLP; + UCHAR Reserved6 : 6; + UCHAR IPS : 2; + UCHAR Reserved7; + USHORT ACTP; + UCHAR APW : 3; + UCHAR Reserved8 : 3; + UCHAR APS : 2; + UCHAR Reserved9[9]; +} NVME_POWER_STATE_DESC, *PNVME_POWER_STATE_DESC; + +typedef struct { + USHORT VID; + USHORT SSVID; + UCHAR SN[20]; + UCHAR MN[40]; + UCHAR FR[8]; + UCHAR RAB; + UCHAR IEEE[3]; + struct { + UCHAR MultiPCIePorts : 1; + UCHAR MultiControllers : 1; + UCHAR SRIOV : 1; + UCHAR Reserved : 5; + } CMIC; + UCHAR MDTS; + USHORT CNTLID; + ULONG VER; + ULONG RTD3R; + ULONG RTD3E; + struct { + ULONG Reserved0 : 8; + ULONG NamespaceAttributeChanged : 1; + ULONG FirmwareActivation : 1; + ULONG Reserved1 : 1; + ULONG AsymmetricAccessChanged : 1; + ULONG PredictableLatencyAggregateLogChanged : 1; + ULONG LbaStatusChanged : 1; + ULONG EnduranceGroupAggregateLogChanged : 1; + ULONG Reserved2 : 12; + ULONG ZoneInformation : 1; + ULONG Reserved3 : 4; + } OAES; + struct { + ULONG HostIdentifier128Bit : 1; + ULONG NOPSPMode : 1; + ULONG NVMSets : 1; + ULONG ReadRecoveryLevels : 1; + ULONG EnduranceGroups : 1; + ULONG PredictableLatencyMode : 1; + ULONG TBKAS : 1; + ULONG NamespaceGranularity : 1; + ULONG SQAssociations : 1; + ULONG UUIDList : 1; + ULONG Reserved0 : 22; + } CTRATT; + struct { + USHORT ReadRecoveryLevel0 : 1; + USHORT ReadRecoveryLevel1 : 1; + USHORT ReadRecoveryLevel2 : 1; + USHORT ReadRecoveryLevel3 : 1; + USHORT ReadRecoveryLevel4 : 1; + USHORT ReadRecoveryLevel5 : 1; + USHORT ReadRecoveryLevel6 : 1; + USHORT ReadRecoveryLevel7 : 1; + USHORT ReadRecoveryLevel8 : 1; + USHORT ReadRecoveryLevel9 : 1; + USHORT ReadRecoveryLevel10 : 1; + USHORT ReadRecoveryLevel11 : 1; + USHORT ReadRecoveryLevel12 : 1; + USHORT ReadRecoveryLevel13 : 1; + USHORT ReadRecoveryLevel14 : 1; + USHORT ReadRecoveryLevel15 : 1; + } RRLS; + UCHAR Reserved0[9]; + UCHAR CNTRLTYPE; + UCHAR FGUID[16]; + USHORT CRDT1; + USHORT CRDT2; + USHORT CRDT3; + UCHAR Reserved0_1[106]; + UCHAR ReservedForManagement[16]; + struct { + USHORT SecurityCommands : 1; + USHORT FormatNVM : 1; + USHORT FirmwareCommands : 1; + USHORT NamespaceCommands : 1; + USHORT DeviceSelfTest : 1; + USHORT Directives : 1; + USHORT NVMeMICommands : 1; + USHORT VirtualizationMgmt : 1; + USHORT DoorBellBufferConfig: 1; + USHORT GetLBAStatus : 1; + USHORT Reserved : 6; + } OACS; + UCHAR ACL; + UCHAR AERL; + struct { + UCHAR Slot1ReadOnly : 1; + UCHAR SlotCount : 3; + UCHAR ActivationWithoutReset : 1; + UCHAR Reserved : 3; + } FRMW; + struct { + UCHAR SmartPagePerNamespace : 1; + UCHAR CommandEffectsLog : 1; + UCHAR LogPageExtendedData : 1; + UCHAR TelemetrySupport : 1; + UCHAR PersistentEventLog : 1; + UCHAR Reserved0 : 1; + UCHAR TelemetryDataArea4 : 1; + UCHAR Reserved1 : 1; + } LPA; + UCHAR ELPE; + UCHAR NPSS; + struct { + UCHAR CommandFormatInSpec : 1; + UCHAR Reserved : 7; + } AVSCC; + struct { + UCHAR Supported : 1; + UCHAR Reserved : 7; + } APSTA; + USHORT WCTEMP; + USHORT CCTEMP; + USHORT MTFA; + ULONG HMPRE; + ULONG HMMIN; + UCHAR TNVMCAP[16]; + UCHAR UNVMCAP[16]; + struct { + ULONG RPMBUnitCount : 3; + ULONG AuthenticationMethod : 3; + ULONG Reserved0 : 10; + ULONG TotalSize : 8; + ULONG AccessSize : 8; + } RPMBS; + USHORT EDSTT; + UCHAR DSTO; + UCHAR FWUG; + USHORT KAS; + struct { + USHORT Supported : 1; + USHORT Reserved : 15; + } HCTMA; + USHORT MNTMT; + USHORT MXTMT; + struct { + ULONG CryptoErase : 1; + ULONG BlockErase : 1; + ULONG Overwrite : 1; + ULONG Reserved : 26; + ULONG NDI : 1; + ULONG NODMMAS : 2; + } SANICAP; + ULONG HMMINDS; + USHORT HMMAXD; + USHORT NSETIDMAX; + USHORT ENDGIDMAX; + UCHAR ANATT; + struct { + UCHAR OptimizedState : 1; + UCHAR NonOptimizedState : 1; + UCHAR InaccessibleState : 1; + UCHAR PersistentLossState : 1; + UCHAR ChangeState : 1; + UCHAR Reserved : 1; + UCHAR StaticANAGRPID : 1; + UCHAR SupportNonZeroANAGRPID : 1; + } ANACAP; + ULONG ANAGRPMAX; + ULONG NANAGRPID; + ULONG PELS; + UCHAR Reserved1[156]; + struct { + UCHAR RequiredEntrySize : 4; + UCHAR MaxEntrySize : 4; + } SQES; + struct { + UCHAR RequiredEntrySize : 4; + UCHAR MaxEntrySize : 4; + } CQES; + USHORT MAXCMD; + ULONG NN; + struct { + USHORT Compare : 1; + USHORT WriteUncorrectable : 1; + USHORT DatasetManagement : 1; + USHORT WriteZeroes : 1; + USHORT FeatureField : 1; + USHORT Reservations : 1; + USHORT Timestamp : 1; + USHORT Verify : 1; + USHORT Reserved : 8; + } ONCS; + struct { + USHORT CompareAndWrite : 1; + USHORT Reserved : 15; + } FUSES; + struct { + UCHAR FormatApplyToAll : 1; + UCHAR SecureEraseApplyToAll : 1; + UCHAR CryptographicEraseSupported : 1; + UCHAR FormatSupportNSIDAllF : 1; + UCHAR Reserved : 4; + } FNA; + struct { + UCHAR Present : 1; + UCHAR FlushBehavior : 2; + UCHAR Reserved : 5; + } VWC; + USHORT AWUN; + USHORT AWUPF; + struct { + UCHAR CommandFormatInSpec : 1; + UCHAR Reserved : 7; + } NVSCC; + struct { + UCHAR WriteProtect : 1; + UCHAR UntilPowerCycle : 1; + UCHAR Permanent : 1; + UCHAR Reserved : 5; + } NWPC; + USHORT ACWU; + UCHAR Reserved4[2]; + struct { + ULONG SGLSupported : 2; + ULONG KeyedSGLData : 1; + ULONG Reserved0 : 13; + ULONG BitBucketDescrSupported : 1; + ULONG ByteAlignedContiguousPhysicalBuffer : 1; + ULONG SGLLengthLargerThanDataLength : 1; + ULONG MPTRSGLDescriptor : 1; + ULONG AddressFieldSGLDataBlock: 1; + ULONG TransportSGLData : 1; + ULONG Reserved1 : 10; + } SGLS; + ULONG MNAN; + UCHAR Reserved6[224]; + UCHAR SUBNQN[256]; + UCHAR Reserved7[768]; + UCHAR Reserved8[256]; + NVME_POWER_STATE_DESC PDS[32]; + UCHAR VS[1024]; +} NVME_IDENTIFY_CONTROLLER_DATA, *PNVME_IDENTIFY_CONTROLLER_DATA; + +typedef enum { + NVME_IDENTIFIER_TYPE_EUI64 = 0x1, + NVME_IDENTIFIER_TYPE_NGUID = 0x2, + NVME_IDENTIFIER_TYPE_UUID = 0x3, + NVME_IDENTIFIER_TYPE_CSI = 0x4 +} NVME_IDENTIFIER_TYPE; + +typedef enum { + NVME_IDENTIFIER_TYPE_EUI64_LENGTH = 0x8, + NVME_IDENTIFIER_TYPE_NGUID_LENGTH = 0x10, + NVME_IDENTIFIER_TYPE_UUID_LENGTH = 0x10, + NVME_IDENTIFIER_TYPE_CSI_LENGTH = 0x1 +} NVME_IDENTIFIER_TYPE_LENGTH; + +#define NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE_SIZE 0x1000 + +typedef struct { + UCHAR NIDT; + UCHAR NIDL; + UCHAR Reserved[2]; + UCHAR NID[ANYSIZE_ARRAY]; +} NVME_IDENTIFY_NAMESPACE_DESCRIPTOR, *PNVME_IDENTIFY_NAMESPACE_DESCRIPTOR; + +typedef struct { + USHORT Identifier; + USHORT ENDGID; + ULONG Reserved1; + ULONG Random4KBReadTypical; + ULONG OptimalWriteSize; + UCHAR TotalCapacity[16]; + UCHAR UnallocatedCapacity[16]; + UCHAR Reserved2[80]; +} NVME_SET_ATTRIBUTES_ENTRY, *PNVME_SET_ATTRIBUTES_ENTRY; + +typedef struct { + UCHAR IdentifierCount; + UCHAR Reserved[127]; + NVME_SET_ATTRIBUTES_ENTRY Entry[ANYSIZE_ARRAY]; +} NVM_SET_LIST, *PNVM_SET_LIST; + +typedef struct { + ULONGLONG ZoneSize; + UCHAR ZDES; + UCHAR Reserved[7]; +} NVME_LBA_ZONE_FORMAT, *PNVME_LBA_ZONE_FORMAT; + +typedef struct { + struct { + USHORT VariableZoneCapacity : 1; + USHORT ZoneExcursions : 1; + USHORT Reserved : 14; + } ZOC; + struct { + USHORT ReadAcrossZoneBoundaries : 1; + USHORT Reserved : 15; + } OZCS; + ULONG MAR; + ULONG MOR; + ULONG RRL; + ULONG FRL; + UCHAR Reserved0[2796]; + NVME_LBA_ZONE_FORMAT LBAEF[16]; + UCHAR Reserved1[768]; + UCHAR VS[256]; +} NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET, *PNVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET; + +typedef struct { + UCHAR VSL; + UCHAR WZSL; + UCHAR WUSL; + UCHAR DMRL; + ULONG DMRSL; + ULONGLONG DMSL; + UCHAR Reserved[4080]; +} NVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET, *PNVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET; + +typedef struct { + UCHAR ZASL; + UCHAR Reserved[4095]; +} NVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET, *PNVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET; + +typedef struct { + USHORT NumberOfIdentifiers; + USHORT ControllerID[2047]; +} NVME_CONTROLLER_LIST, *PNVME_CONTROLLER_LIST; + +typedef struct { + ULONGLONG IOCommandSetVector[512]; +} NVME_IDENTIFY_IO_COMMAND_SET, *PNVME_IDENTIFY_IO_COMMAND_SET; + +typedef enum { + NVME_LBA_RANGE_TYPE_RESERVED = 0, + NVME_LBA_RANGE_TYPE_FILESYSTEM = 1, + NVME_LBA_RANGE_TYPE_RAID = 2, + NVME_LBA_RANGE_TYPE_CACHE = 3, + NVME_LBA_RANGE_TYPE_PAGE_SWAP_FILE = 4 +} NVME_LBA_RANGE_TYPES; + +typedef struct { + UCHAR Type; + struct { + UCHAR MayOverwritten : 1; + UCHAR Hidden : 1; + UCHAR Reserved : 6; + } Attributes; + UCHAR Reserved0[14]; + ULONGLONG SLBA; + ULONGLONG NLB; + UCHAR GUID[16]; + UCHAR Reserved1[16]; +} NVME_LBA_RANGET_TYPE_ENTRY, *PNVME_LBA_RANGET_TYPE_ENTRY; + +typedef enum { + NVME_LOG_PAGE_WCS_DEVICE_SMART_ATTRIBUTES = 0xC0, + NVME_LOG_PAGE_WCS_DEVICE_ERROR_RECOVERY = 0xC1 +} NVME_VENDOR_LOG_PAGES; + +#define GUID_WCS_DEVICE_SMART_ATTRIBUTESGuid { 0x2810AFC5, 0xBFEA, 0xA4F2, { 0x9C, 0x4F, 0x6F, 0x7C, 0xC9, 0x14, 0xD5, 0xAF} } +DEFINE_GUID(GUID_WCS_DEVICE_SMART_ATTRIBUTES, 0x2810AFC5, 0xBFEA, 0xA4F2, 0x9C, 0x4F, 0x6F, 0x7C, 0xC9, 0x14, 0xD5, 0xAF); + +#define GUID_WCS_DEVICE_ERROR_RECOVERYGuid { 0x2131D944, 0x30FE, 0xAE34, {0xAB, 0x4D, 0xFD, 0x3D, 0xBA, 0x83, 0x19, 0x5A} } +DEFINE_GUID(GUID_WCS_DEVICE_ERROR_RECOVERY, 0x2131D944, 0x30FE, 0xAE34, 0xAB, 0x4D, 0xFD, 0x3D, 0xBA, 0x83, 0x19, 0x5A); + +typedef enum { + NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_RESERVED = 0, + NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_DEVICE_PANIC = 1 +} NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_CODES; + +typedef struct _NVME_WCS_DEVICE_RESET_ACTION { + union { + __C89_NAMELESS struct { + UCHAR ControllerReset : 1; + UCHAR NVMeSubsystemReset : 1; + UCHAR PCIeFLR : 1; + UCHAR PERST : 1; + UCHAR PowerCycle : 1; + UCHAR PCIeConventionalHotReset : 1; + UCHAR Reserved : 2; + }; + UCHAR AsUCHAR; + }; +} NVME_WCS_DEVICE_RESET_ACTION, *PNVME_WCS_DEVICE_RESET_ACTION; + +typedef struct _NVME_WCS_DEVICE_CAPABILITIES { + union { + __C89_NAMELESS struct { + ULONG PanicAEN : 1; + ULONG PanicCFS : 1; + ULONG Reserved : 30; + }; + ULONG AsULONG; + }; +} NVME_WCS_DEVICE_CAPABILITIES, *PNVME_WCS_DEVICE_CAPABILITIES; + +typedef enum _NVME_WCS_DEVICE_RECOVERY_ACTION { + NVMeDeviceRecoveryNoAction = 0, + NVMeDeviceRecoveryFormatNVM, + NVMeDeviceRecoveryVendorSpecificCommand, + NVMeDeviceRecoveryVendorAnalysis, + NVMeDeviceRecoveryDeviceReplacement, + NVMeDeviceRecoverySanitize, + NVMeDeviceRecoveryMax = 15 +} NVME_WCS_DEVICE_RECOVERY_ACTION, *PNVME_WCS_DEVICE_RECOVERY_ACTION; + +#pragma pack(push, 1) + +typedef struct _NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG { + UCHAR VersionSpecificData[494]; + USHORT LogPageVersionNumber; + GUID LogPageGUID; +} NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG, *PNVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG; + +C_ASSERT(sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG) == 512); + +#define NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_VERSION_2 0x0002 + +typedef struct _NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2 { + UCHAR MediaUnitsWritten[16]; + UCHAR MediaUnitsRead[16]; + struct { + UCHAR RawCount[6]; + UCHAR Normalized[2]; + } BadUserNANDBlockCount; + struct { + UCHAR RawCount[6]; + UCHAR Normalized[2]; + } BadSystemNANDBlockCount; + ULONGLONG XORRecoveryCount; + ULONGLONG UnrecoverableReadErrorCount; + ULONGLONG SoftECCErrorCount; + struct { + ULONG DetectedCounts; + ULONG CorrectedCounts; + } EndToEndCorrectionCounts; + UCHAR PercentageSystemDataUsed; + UCHAR RefreshCount[7]; + struct { + ULONG MaximumCount; + ULONG MinimumCount; + } UserDataEraseCounts; + struct { + UCHAR EventCount; + UCHAR Status; + } ThermalThrottling; + UCHAR Reserved0[6]; + ULONGLONG PCIeCorrectableErrorCount; + ULONG IncompleteShutdownCount; + ULONG Reserved1; + UCHAR PercentageFreeBlocks; + UCHAR Reserved2[7]; + USHORT CapacitorHealth; + UCHAR Reserved3[6]; + ULONGLONG UnalignedIOCount; + ULONGLONG SecurityVersionNumber; + ULONGLONG NUSE; + UCHAR PLPStartCount[16]; + UCHAR EnduranceEstimate[16]; + UCHAR Reserved4[302]; + USHORT LogPageVersionNumber; + GUID LogPageGUID; +} NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2, *PNVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2; + +C_ASSERT(sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2) == sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG)); + +typedef struct _NVME_WCS_DEVICE_ERROR_RECOVERY_LOG { + USHORT PanicResetWaitTime; + NVME_WCS_DEVICE_RESET_ACTION PanicResetAction; + UCHAR DriveRecoveryAction; + ULONGLONG PanicId; + NVME_WCS_DEVICE_CAPABILITIES DeviceCapabilities; + UCHAR VendorSpecificRecoveryCode; + UCHAR Reserved0[3]; + ULONG VendorSpecificCommandCDW12; + ULONG VendorSpecificCommandCDW13; + UCHAR Reserved1[466]; + USHORT LogPageVersionNumber; + GUID LogPageGUID; +} NVME_WCS_DEVICE_ERROR_RECOVERY_LOG, *PNVME_WCS_DEVICE_ERROR_RECOVERY_LOG; + +C_ASSERT(sizeof(NVME_WCS_DEVICE_ERROR_RECOVERY_LOG) == 512); + +#pragma pack(pop) + +typedef union { + __C89_NAMELESS struct { + ULONG QID : 16; + ULONG QSIZE : 16; + }; + ULONG AsUlong; +} NVME_CDW10_CREATE_IO_QUEUE, *PNVME_CDW10_CREATE_IO_QUEUE; + +typedef union { + __C89_NAMELESS struct { + ULONG PC : 1; + ULONG IEN : 1; + ULONG Reserved0 : 14; + ULONG IV : 16; + }; + ULONG AsUlong; +} NVME_CDW11_CREATE_IO_CQ, *PNVME_CDW11_CREATE_IO_CQ; + +typedef enum { + NVME_NVM_QUEUE_PRIORITY_URGENT = 0, + NVME_NVM_QUEUE_PRIORITY_HIGH = 1, + NVME_NVM_QUEUE_PRIORITY_MEDIUM = 2, + NVME_NVM_QUEUE_PRIORITY_LOW = 3 +} NVME_NVM_QUEUE_PRIORITIES; + +typedef union { + __C89_NAMELESS struct { + ULONG PC : 1; + ULONG QPRIO : 2; + ULONG Reserved0 : 13; + ULONG CQID : 16; + }; + ULONG AsUlong; +} NVME_CDW11_CREATE_IO_SQ, *PNVME_CDW11_CREATE_IO_SQ; + +typedef enum { + NVME_FEATURE_VALUE_CURRENT = 0, + NVME_FEATURE_VALUE_DEFAULT = 1, + NVME_FEATURE_VALUE_SAVED = 2, + NVME_FEATURE_VALUE_SUPPORTED_CAPABILITIES = 3 +} NVME_FEATURE_VALUE_CODES; + +typedef union { + __C89_NAMELESS struct { + ULONG FID : 8; + ULONG SEL : 3; + ULONG Reserved0 : 21; + }; + ULONG AsUlong; +} NVME_CDW10_GET_FEATURES, *PNVME_CDW10_GET_FEATURES; + +typedef union { + __C89_NAMELESS struct { + ULONG FID : 8; + ULONG Reserved0 : 23; + ULONG SV : 1; + }; + ULONG AsUlong; +} NVME_CDW10_SET_FEATURES, *PNVME_CDW10_SET_FEATURES; + +typedef union { + __C89_NAMELESS struct { + ULONG NSQ : 16; + ULONG NCQ : 16; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_NUMBER_OF_QUEUES, *PNVME_CDW11_FEATURE_NUMBER_OF_QUEUES; + +typedef union { + __C89_NAMELESS struct { + ULONG THR : 8; + ULONG TIME : 8; + ULONG Reserved0 : 16; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_INTERRUPT_COALESCING, *PNVME_CDW11_FEATURE_INTERRUPT_COALESCING; + +typedef union { + __C89_NAMELESS struct { + ULONG IV : 16; + ULONG CD : 1; + ULONG Reserved0 : 15; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG, *PNVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG; + +typedef union { + __C89_NAMELESS struct { + ULONG DN : 1; + ULONG Reserved0 : 31; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL, *PNVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL; + +typedef union { + __C89_NAMELESS struct { + ULONG NOPPME : 1; + ULONG Reserved0 : 31; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE, *PNVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE; + +typedef union { + __C89_NAMELESS struct { + ULONG NUM : 6; + ULONG Reserved0 : 26; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_LBA_RANGE_TYPE, *PNVME_CDW11_FEATURE_LBA_RANGE_TYPE; + +typedef union { + __C89_NAMELESS struct { + ULONG AB : 3; + ULONG Reserved0 : 5; + ULONG LPW : 8; + ULONG MPW : 8; + ULONG HPW : 8; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_ARBITRATION, *PNVME_CDW11_FEATURE_ARBITRATION; + +typedef union { + __C89_NAMELESS struct { + ULONG WCE : 1; + ULONG Reserved0 : 31; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE, *PNVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE; + +typedef union { + __C89_NAMELESS struct { + ULONG SAVE : 1; + ULONG NSS : 1; + ULONG MOD : 1; + ULONG Reserved0 : 29; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY, *PNVME_CDW11_FEATURE_SUPPORTED_CAPABILITY; + +typedef union { + __C89_NAMELESS struct { + ULONG CriticalWarnings : 8; + ULONG NsAttributeNotices : 1; + ULONG FwActivationNotices : 1; + ULONG TelemetryLogNotices : 1; + ULONG ANAChangeNotices : 1; + ULONG PredictableLogChangeNotices : 1; + ULONG LBAStatusNotices : 1; + ULONG EnduranceEventNotices : 1; + ULONG Reserved0 : 12; + ULONG ZoneDescriptorNotices : 1; + ULONG Reserved1 : 4; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG, *PNVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG; + +typedef union { + __C89_NAMELESS struct { + ULONG PS : 5; + ULONG Reserved0 : 27; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_POWER_MANAGEMENT, *PNVME_CDW11_FEATURE_POWER_MANAGEMENT; + +typedef union { + __C89_NAMELESS struct { + ULONG APSTE : 1; + ULONG Reserved0 : 31; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION, *PNVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION; + +typedef struct { + ULONG Reserved0 : 3; + ULONG IdleTransitionPowerState : 5; + ULONG IdleTimePriorToTransition : 24; + ULONG Reserved1; +} NVME_AUTO_POWER_STATE_TRANSITION_ENTRY, *PNVME_AUTO_POWER_STATE_TRANSITION_ENTRY; + +typedef enum { + NVME_TEMPERATURE_OVER_THRESHOLD = 0, + NVME_TEMPERATURE_UNDER_THRESHOLD = 1 +} NVME_TEMPERATURE_THRESHOLD_TYPES; + +typedef union { + __C89_NAMELESS struct { + ULONG TMPTH : 16; + ULONG TMPSEL : 4; + ULONG THSEL : 2; + ULONG Reserved0 : 10; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD, *PNVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD; + +typedef union { + __C89_NAMELESS struct { + ULONG TLER : 16; + ULONG DULBE : 1; + ULONG Reserved0 : 15; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_ERROR_RECOVERY, *PNVME_CDW11_FEATURE_ERROR_RECOVERY; + +typedef union { + __C89_NAMELESS struct { + ULONG EHM : 1; + ULONG MR : 1; + ULONG Reserved : 30; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW11_FEATURE_HOST_MEMORY_BUFFER; + +typedef union { + __C89_NAMELESS struct { + ULONG HSIZE; + }; + ULONG AsUlong; +} NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW12_FEATURE_HOST_MEMORY_BUFFER; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved : 4; + ULONG HMDLLA : 28; + }; + ULONG AsUlong; +} NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW13_FEATURE_HOST_MEMORY_BUFFER; + +typedef union { + __C89_NAMELESS struct { + ULONG HMDLUA; + }; + ULONG AsUlong; +} NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW14_FEATURE_HOST_MEMORY_BUFFER; + +typedef union { + __C89_NAMELESS struct { + ULONG HMDLEC; + }; + ULONG AsUlong; +} NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW15_FEATURE_HOST_MEMORY_BUFFER; + +typedef struct { + ULONGLONG BADD; + ULONG BSIZE; + ULONG Reserved; +} NVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY, *PNVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY; + +typedef union { + __C89_NAMELESS struct { + ULONG IOCSCI : 8; + ULONG Reserved : 24; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE, *PNVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE; + +typedef union { + __C89_NAMELESS struct { + ULONG GDHM : 1; + ULONG Reserved : 31; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_GET_HOST_METADATA, *PNVME_CDW11_FEATURE_GET_HOST_METADATA; + +typedef enum { + NVME_HOST_METADATA_ADD_REPLACE_ENTRY = 0, + NVME_HOST_METADATA_DELETE_ENTRY_MULTIPLE = 1, + NVME_HOST_METADATA_ADD_ENTRY_MULTIPLE = 2 +} NVME_HOST_METADATA_ELEMENT_ACTIONS; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 13; + ULONG EA : 2; + ULONG Reserved1 : 17; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_SET_HOST_METADATA, *PNVME_CDW11_FEATURE_SET_HOST_METADATA; + +typedef enum { + NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_CONTROLLER_NAME = 0x1, + NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_NAME = 0x2, + NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_VERSION = 0x3, + NVME_CONTROLLER_METADATA_PREBOOT_CONTROLLER_NAME = 0x4, + NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_NAME = 0x5, + NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_VERSION = 0x6, + NVME_CONTROLLER_METADATA_SYSTEM_PROCESSOR_MODEL = 0x7, + NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_NAME = 0x8, + NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_VERSION = 0x9, + NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_NAME_AND_BUILD = 0xA, + NVME_CONTROLLER_METADATA_SYSTEM_PRODUCT_NAME = 0xB, + NVME_CONTROLLER_METADATA_FIRMWARE_VERSION = 0xC, + NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_FILENAME = 0xD, + NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_NAME = 0xE, + NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_VERSION = 0xF, + NVME_CONTROLLER_METADATA_HOST_DETERMINED_FAILURE_RECORD = 0x10 +} NVME_CONTROLLER_METADATA_ELEMENT_TYPES; + +typedef enum { + NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME = 0x1, + NVME_NAMESPACE_METADATA_PREBOOT_NAMESPACE_NAME = 0x2, + NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_1 = 0x3, + NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_2 = 0x4 +} NVME_NAMESPACE_METADATA_ELEMENT_TYPES; + +typedef struct { + ULONG ET : 6; + ULONG Reserved0 : 2; + ULONG ER : 4; + ULONG Reserved1 : 4; + ULONG ELEN : 16; + UCHAR EVAL[ANYSIZE_ARRAY]; +} NVME_HOST_METADATA_ELEMENT_DESCRIPTOR, *PNVME_HOST_METADATA_ELEMENT_DESCRIPTOR; + +typedef struct { + UCHAR NumberOfMetadataElementDescriptors; + UCHAR Reserved0; + UCHAR MetadataElementDescriptors[4094]; +} NVME_FEATURE_HOST_METADATA_DATA, *PNVME_FEATURE_HOST_METADATA_DATA; + +typedef union { + __C89_NAMELESS struct { + ULONG NUM : 7; + ULONG Reserved0 : 25; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_ERROR_INJECTION, *PNVME_CDW11_FEATURE_ERROR_INJECTION; + +typedef NVME_CDW11_FEATURE_ERROR_INJECTION NVME_CDW0_FEATURE_ERROR_INJECTION, *PNVME_CDW0_FEATURE_ERROR_INJECTION; + +typedef struct { + union { + __C89_NAMELESS struct { + UCHAR Enable : 1; + UCHAR SingleInstance : 1; + UCHAR Reserved0 : 6; + }; + UCHAR AsUchar; + } Flags; + UCHAR Reserved1; + USHORT ErrorInjectionType; + UCHAR ErrorInjectionTypeSpecific[28]; +} NVME_ERROR_INJECTION_ENTRY, *PNVME_ERROR_INJECTION_ENTRY; + +typedef enum { + NVME_ERROR_INJECTION_TYPE_RESERVED0 = 0, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_CPU_CONTROLLER_HANG, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_HANG, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_PLP_DEFECT, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_LOGICAL_FW_ERROR, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_CRITICAL, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_NONCRITICAL, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_CORRUPTION, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_SRAM_CORRUPTION, + NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_HW_MALFUNCTION, + NVME_ERROR_INJECTION_TYPE_RESERVED1, + NVME_ERROR_INJECTION_TYPE_MAX = 0xFFFF +} NVME_ERROR_INJECTION_TYPES; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 31; + ULONG Clear : 1; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY, *PNVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 30; + ULONG EOLBehavior : 2; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE, *PNVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE; + +typedef union { + __C89_NAMELESS struct { + ULONG EOLBehavior : 3; + ULONG Reserved0 : 29; + }; + ULONG AsUlong; +} NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE, *PNVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 31; + ULONG Clear : 1; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS, *PNVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 31; + ULONG Enable : 1; + }; + ULONG AsUlong; +} NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO, *PNVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO; + +typedef union { + __C89_NAMELESS struct { + ULONG Enabled : 3; + ULONG Reserved0 : 29; + }; + ULONG AsUlong; +} NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO, *PNVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO; + +#define NVME_MAX_HOST_IDENTIFIER_SIZE 16 +#define NVME_HOST_IDENTIFIER_SIZE 8 +#define NVME_EXTENDED_HOST_IDENTIFIER_SIZE 16 + +typedef struct { + ULONG EXHID : 1; + ULONG Reserved : 31; +} NVME_CDW11_FEATURE_HOST_IDENTIFIER, *PNVME_CDW11_FEATURE_HOST_IDENTIFIER; + +typedef struct { + UCHAR HOSTID[NVME_MAX_HOST_IDENTIFIER_SIZE]; +} NVME_FEATURE_HOST_IDENTIFIER_DATA, *PNVME_FEATURE_HOST_IDENTIFIER_DATA; + +typedef struct { + ULONG PTPL : 1; + ULONG Reserved : 31; +} NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE, *PNVME_CDW11_FEATURE_RESERVATION_PERSISTENCE; + +typedef struct { + ULONG Reserved : 1; + ULONG REGPRE : 1; + ULONG RESREL : 1; + ULONG RESPRE : 1; + ULONG Reserved1 : 28; +} NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK, *PNVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK; + +typedef union { + NVME_CDW11_FEATURE_NUMBER_OF_QUEUES NumberOfQueues; + NVME_CDW11_FEATURE_INTERRUPT_COALESCING InterruptCoalescing; + NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG InterruptVectorConfig; + NVME_CDW11_FEATURE_LBA_RANGE_TYPE LbaRangeType; + NVME_CDW11_FEATURE_ARBITRATION Arbitration; + NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE VolatileWriteCache; + NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG AsyncEventConfig; + NVME_CDW11_FEATURE_POWER_MANAGEMENT PowerManagement; + NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION AutoPowerStateTransition; + NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD TemperatureThreshold; + NVME_CDW11_FEATURE_ERROR_RECOVERY ErrorRecovery; + NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer; + NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL WriteAtomicityNormal; + NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE NonOperationalPowerState; + NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE IoCommandSetProfile; + NVME_CDW11_FEATURE_ERROR_INJECTION ErrorInjection; + NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier; + NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence; + NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask; + NVME_CDW11_FEATURE_GET_HOST_METADATA GetHostMetadata; + NVME_CDW11_FEATURE_SET_HOST_METADATA SetHostMetadata; + ULONG AsUlong; +} NVME_CDW11_FEATURES, *PNVME_CDW11_FEATURES; + +typedef union { + NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer; + ULONG AsUlong; +} NVME_CDW12_FEATURES, *PNVME_CDW12_FEATURES; + +typedef union { + NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer; + ULONG AsUlong; +} NVME_CDW13_FEATURES, *PNVME_CDW13_FEATURES; + +typedef union { + NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer; + ULONG AsUlong; +} NVME_CDW14_FEATURES, *PNVME_CDW14_FEATURES; + +typedef union { + NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer; + ULONG AsUlong; +} NVME_CDW15_FEATURES, *PNVME_CDW15_FEATURES; + +#define NVME_MAX_LOG_SIZE 0x1000 + +typedef enum { + NVME_LOG_PAGE_ERROR_INFO = 0x01, + NVME_LOG_PAGE_HEALTH_INFO = 0x02, + NVME_LOG_PAGE_FIRMWARE_SLOT_INFO = 0x03, + NVME_LOG_PAGE_CHANGED_NAMESPACE_LIST = 0x04, + NVME_LOG_PAGE_COMMAND_EFFECTS = 0x05, + NVME_LOG_PAGE_DEVICE_SELF_TEST = 0x06, + NVME_LOG_PAGE_TELEMETRY_HOST_INITIATED = 0x07, + NVME_LOG_PAGE_TELEMETRY_CTLR_INITIATED = 0x08, + NVME_LOG_PAGE_ENDURANCE_GROUP_INFORMATION = 0x09, + NVME_LOG_PAGE_PREDICTABLE_LATENCY_NVM_SET = 0x0A, + NVME_LOG_PAGE_PREDICTABLE_LATENCY_EVENT_AGGREGATE = 0x0B, + NVME_LOG_PAGE_ASYMMETRIC_NAMESPACE_ACCESS = 0x0C, + NVME_LOG_PAGE_PERSISTENT_EVENT_LOG = 0x0D, + NVME_LOG_PAGE_LBA_STATUS_INFORMATION = 0x0E, + NVME_LOG_PAGE_ENDURANCE_GROUP_EVENT_AGGREGATE = 0x0F, + NVME_LOG_PAGE_RESERVATION_NOTIFICATION = 0x80, + NVME_LOG_PAGE_SANITIZE_STATUS = 0x81, + NVME_LOG_PAGE_CHANGED_ZONE_LIST = 0xBF +} NVME_LOG_PAGES; + +typedef union { + __C89_NAMELESS struct { + ULONG LID : 8; + ULONG Reserved0 : 8; + ULONG NUMD : 12; + ULONG Reserved1 : 4; + }; + ULONG AsUlong; +} NVME_CDW10_GET_LOG_PAGE, *PNVME_CDW10_GET_LOG_PAGE; + +typedef union { + __C89_NAMELESS struct { + ULONG LID : 8; + ULONG LSP : 4; + ULONG Reserved0 : 3; + ULONG RAE : 1; + ULONG NUMDL : 16; + }; + ULONG AsUlong; +} NVME_CDW10_GET_LOG_PAGE_V13, *PNVME_CDW10_GET_LOG_PAGE_V13; + +typedef union { + __C89_NAMELESS struct { + ULONG NUMDU : 16; + ULONG LogSpecificIdentifier : 16; + }; + ULONG AsUlong; +} NVME_CDW11_GET_LOG_PAGE, *PNVME_CDW11_GET_LOG_PAGE; + +typedef struct { + ULONG LPOL; +} NVME_CDW12_GET_LOG_PAGE, *PNVME_CDW12_GET_LOG_PAGE; + +typedef struct { + ULONG LPOU; +} NVME_CDW13_GET_LOG_PAGE, *PNVME_CDW13_GET_LOG_PAGE; + +typedef union { + __C89_NAMELESS struct { + ULONG UUIDIndex : 7; + ULONG Reserved : 17; + ULONG CommandSetIdentifier : 8; + }; + ULONG AsUlong; +} NVME_CDW14_GET_LOG_PAGE, *PNVME_CDW14_GET_LOG_PAGE; + +typedef struct { + ULONGLONG ErrorCount; + USHORT SQID; + USHORT CMDID; + NVME_COMMAND_STATUS Status; + struct { + USHORT Byte : 8; + USHORT Bit : 3; + USHORT Reserved : 5; + } ParameterErrorLocation; + ULONGLONG Lba; + ULONG NameSpace; + UCHAR VendorInfoAvailable; + UCHAR Reserved0[3]; + ULONGLONG CommandSpecificInfo; + UCHAR Reserved1[24]; +} NVME_ERROR_INFO_LOG, *PNVME_ERROR_INFO_LOG; + +typedef struct { + union { + __C89_NAMELESS struct { + UCHAR AvailableSpaceLow : 1; + UCHAR TemperatureThreshold : 1; + UCHAR ReliabilityDegraded : 1; + UCHAR ReadOnly : 1; + UCHAR VolatileMemoryBackupDeviceFailed : 1; + UCHAR Reserved : 3; + }; + UCHAR AsUchar; + } CriticalWarning; + UCHAR Temperature[2]; + UCHAR AvailableSpare; + UCHAR AvailableSpareThreshold; + UCHAR PercentageUsed; + UCHAR Reserved0[26]; + UCHAR DataUnitRead[16]; + UCHAR DataUnitWritten[16]; + UCHAR HostReadCommands[16]; + UCHAR HostWrittenCommands[16]; + UCHAR ControllerBusyTime[16]; + UCHAR PowerCycle[16]; + UCHAR PowerOnHours[16]; + UCHAR UnsafeShutdowns[16]; + UCHAR MediaErrors[16]; + UCHAR ErrorInfoLogEntryCount[16]; + ULONG WarningCompositeTemperatureTime; + ULONG CriticalCompositeTemperatureTime; + USHORT TemperatureSensor1; + USHORT TemperatureSensor2; + USHORT TemperatureSensor3; + USHORT TemperatureSensor4; + USHORT TemperatureSensor5; + USHORT TemperatureSensor6; + USHORT TemperatureSensor7; + USHORT TemperatureSensor8; + UCHAR Reserved1[296]; +} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG; + +#define NVME_TELEMETRY_DATA_BLOCK_SIZE 0x200 + +typedef struct _NVME_TELEMETRY_HOST_INITIATED_LOG { + UCHAR LogIdentifier; + UCHAR Reserved0[4]; + UCHAR OrganizationID[3]; + USHORT Area1LastBlock; + USHORT Area2LastBlock; + USHORT Area3LastBlock; + UCHAR Reserved1[2]; + ULONG Area4LastBlock; + UCHAR Reserved2[361]; + UCHAR HostInitiatedDataGenerationNumber; + UCHAR ControllerInitiatedDataAvailable; + UCHAR ControllerInitiatedDataGenerationNumber; + UCHAR ReasonIdentifier[128]; +} NVME_TELEMETRY_HOST_INITIATED_LOG, *PNVME_TELEMETRY_HOST_INITIATED_LOG; + +typedef struct _NVME_TELEMETRY_CONTROLLER_INITIATED_LOG { + UCHAR LogIdentifier; + UCHAR Reserved0[4]; + UCHAR OrganizationID[3]; + USHORT Area1LastBlock; + USHORT Area2LastBlock; + USHORT Area3LastBlock; + UCHAR Reserved1[2]; + ULONG Area4LastBlock; + UCHAR Reserved2[362]; + UCHAR ControllerInitiatedDataAvailable; + UCHAR ControllerInitiatedDataGenerationNumber; + UCHAR ReasonIdentifier[128]; +} NVME_TELEMETRY_CONTROLLER_INITIATED_LOG, *PNVME_TELEMETRY_CONTROLLER_INITIATED_LOG; + +typedef struct { + struct { + UCHAR ActiveSlot : 3; + UCHAR Reserved0 : 1; + UCHAR PendingActivateSlot : 3; + UCHAR Reserved1 : 1; + } AFI; + UCHAR Reserved0[7]; + ULONGLONG FRS[7]; + UCHAR Reserved1[448]; +} NVME_FIRMWARE_SLOT_INFO_LOG, *PNVME_FIRMWARE_SLOT_INFO_LOG; + +typedef struct { + ULONG NSID[1024]; +} NVME_CHANGED_NAMESPACE_LIST_LOG, *PNVME_CHANGED_NAMESPACE_LIST_LOG; + +typedef struct { + USHORT ZoneIdentifiersCount; + UCHAR Reserved[6]; + ULONGLONG ZoneIdentifier[511]; +} NVME_CHANGED_ZONE_LIST_LOG, *PNVME_CHANGED_ZONE_LIST_LOG; + +typedef enum { + NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_NONE = 0, + NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_NAMESPACE = 1, + NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_CONTROLLER = 2 +} NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS; + +typedef union { + __C89_NAMELESS struct { + ULONG CSUPP : 1; + ULONG LBCC : 1; + ULONG NCC : 1; + ULONG NIC : 1; + ULONG CCC : 1; + ULONG Reserved0 : 11; + ULONG CSE : 3; + ULONG Reserved1 : 13; + }; + ULONG AsUlong; +} NVME_COMMAND_EFFECTS_DATA, *PNVME_COMMAND_EFFECTS_DATA; + +typedef struct { + NVME_COMMAND_EFFECTS_DATA ACS[256]; + NVME_COMMAND_EFFECTS_DATA IOCS[256]; + UCHAR Reserved[2048]; +} NVME_COMMAND_EFFECTS_LOG, *PNVME_COMMAND_EFFECTS_LOG; + +#pragma pack(push, 1) +typedef struct { + struct { + UCHAR Result : 4; + UCHAR CodeValue : 4; + } Status; + UCHAR SegmentNumber; + struct { + UCHAR NSIDValid : 1; + UCHAR FLBAValid : 1; + UCHAR SCTValid : 1; + UCHAR SCValid : 1; + UCHAR Reserved : 4; + } ValidDiagnostics; + UCHAR Reserved; + ULONGLONG POH; + ULONG NSID; + ULONGLONG FailingLBA; + struct { + UCHAR AdditionalInfo : 3; + UCHAR Reserved : 5; + } StatusCodeType; + UCHAR StatusCode; + USHORT VendorSpecific; +} NVME_DEVICE_SELF_TEST_RESULT_DATA, *PNVME_DEVICE_SELF_TEST_RESULT_DATA; + +typedef struct { + struct { + UCHAR Status : 4; + UCHAR Reserved : 4; + } CurrentOperation; + struct { + UCHAR CompletePercent : 7; + UCHAR Reserved : 1; + } CurrentCompletion; + UCHAR Reserved[2]; + NVME_DEVICE_SELF_TEST_RESULT_DATA ResultData[20]; +} NVME_DEVICE_SELF_TEST_LOG, *PNVME_DEVICE_SELF_TEST_LOG; + +typedef struct { + ULONG Reserved0; + UCHAR AvailableSpareThreshold; + UCHAR PercentageUsed; + UCHAR Reserved1[26]; + UCHAR EnduranceEstimate[16]; + UCHAR DataUnitsRead[16]; + UCHAR DataUnitsWritten[16]; + UCHAR MediaUnitsWritten[16]; + UCHAR Reserved2[416]; +} NVME_ENDURANCE_GROUP_LOG, *PNVME_ENDURANCE_GROUP_LOG; + +typedef struct { + UCHAR LogIdentifier; + UCHAR Reserved0[3]; + ULONG TotalNumberOfEvents; + ULONGLONG TotalLogLength; + UCHAR LogRevision; + UCHAR Reserved1; + USHORT LogHeaderLength; + ULONGLONG Timestamp; + UCHAR PowerOnHours[16]; + ULONGLONG PowerCycleCount; + USHORT PciVendorId; + USHORT PciSubsystemVendorId; + UCHAR SerialNumber[20]; + UCHAR ModelNumber[40]; + UCHAR NVMSubsystemNVMeQualifiedName[256]; + UCHAR Reserved[108]; + UCHAR SupportedEventsBitmap[32]; +} NVME_PERSISTENT_EVENT_LOG_HEADER, *PNVME_PERSISTENT_EVENT_LOG_HEADER; + +typedef struct { + UCHAR EventType; + UCHAR EventTypeRevision; + UCHAR EventHeaderLength; + UCHAR Reserved0; + USHORT ControllerIdentifier; + ULONGLONG EventTimestamp; + UCHAR Reserved1[6]; + USHORT VendorSpecificInformationLength; + USHORT EventLength; +} NVME_PERSISTENT_EVENT_LOG_EVENT_HEADER, *PNVME_PERSISTENT_EVENT_LOG_EVENT_HEADER; + +typedef enum { + NVME_PERSISTENT_EVENT_TYPE_RESERVED0 = 0x00, + NVME_PERSISTENT_EVENT_TYPE_SMART_HEALTH_LOG_SNAPSHOT = 0x01, + NVME_PERSISTENT_EVENT_TYPE_FIRMWARE_COMMIT = 0x02, + NVME_PERSISTENT_EVENT_TYPE_TIMESTAMP_CHANGE = 0x03, + NVME_PERSISTENT_EVENT_TYPE_POWER_ON_OR_RESET = 0x04, + NVME_PERSISTENT_EVENT_TYPE_NVM_SUBSYSTEM_HARDWARE_ERROR = 0x05, + NVME_PERSISTENT_EVENT_TYPE_CHANGE_NAMESPACE = 0x06, + NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_START = 0x07, + NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_COMPLETION = 0x08, + NVME_PERSISTENT_EVENT_TYPE_SANITIZE_START = 0x09, + NVME_PERSISTENT_EVENT_TYPE_SANITIZE_COMPLETION = 0x0A, + NVME_PERSISTENT_EVENT_TYPE_SET_FEATURE = 0x0B, + NVME_PERSISTENT_EVENT_TYPE_TELEMETRY_LOG_CREATED = 0x0C, + NVME_PERSISTENT_EVENT_TYPE_THERMAL_EXCURSION = 0x0D, + NVME_PERSISTENT_EVENT_TYPE_RESERVED1_BEGIN = 0x0E, + NVME_PERSISTENT_EVENT_TYPE_RESERVED1_END = 0xDD, + NVME_PERSISTENT_EVENT_TYPE_VENDOR_SPECIFIC_EVENT = 0xDE, + NVME_PERSISTENT_EVENT_TYPE_TCG_DEFINED = 0xDF, + NVME_PERSISTENT_EVENT_TYPE_RESERVED2_BEGIN = 0xE0, + NVME_PERSISTENT_EVENT_TYPE_RESERVED2_END = 0xFF, + NVME_PERSISTENT_EVENT_TYPE_MAX = 0xFF +} NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES; + +#pragma pack(pop) + +typedef enum { + NVME_RESERVATION_NOTIFICATION_TYPE_EMPTY_LOG_PAGE = 0, + NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_PREEMPTED = 1, + NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_RELEASED = 2, + NVME_RESERVATION_NOTIFICATION_TYPE_RESERVATION_PREEPMPTED = 3 +} NVME_RESERVATION_NOTIFICATION_TYPES; + +typedef struct { + ULONGLONG LogPageCount; + UCHAR LogPageType; + UCHAR AvailableLogPageCount; + UCHAR Reserved0[2]; + ULONG NameSpaceId; + UCHAR Reserved1[48]; +} NVME_RESERVATION_NOTIFICATION_LOG, *PNVME_RESERVATION_NOTIFICATION_LOG; + +typedef enum { + NVME_SANITIZE_OPERATION_NONE = 0, + NVME_SANITIZE_OPERATION_SUCCEEDED = 1, + NVME_SANITIZE_OPERATION_IN_PROGRESS = 2, + NVME_SANITIZE_OPERATION_FAILED = 3, + NVME_SANITIZE_OPERATION_SUCCEEDED_WITH_FORCED_DEALLOCATION = 4 +} NVME_SANITIZE_OPERATION_STATUS, *PNVME_SANITIZE_OPERATION_STATUS; + +typedef struct { + USHORT MostRecentSanitizeOperationStatus : 3; + USHORT NumberCompletedPassesOfOverwrite : 4; + USHORT GlobalDataErased : 1; + USHORT Reserved : 8; +} NVME_SANITIZE_STATUS, *PNVME_SANITIZE_STATUS; + +typedef struct { + USHORT SPROG; + NVME_SANITIZE_STATUS SSTAT; + ULONG SCDW10; + ULONG EstimatedTimeForOverwrite; + ULONG EstimatedTimeForBlockErase; + ULONG EstimatedTimeForCryptoErase; + ULONG EstimatedTimeForOverwriteWithNoDeallocateMediaModification; + ULONG EstimatedTimeForBlockEraseWithNoDeallocateMediaModification; + ULONG EstimatedTimeForCryptoEraseWithNoDeallocateMediaModification; + UCHAR Reserved[480]; +} NVME_SANITIZE_STATUS_LOG, *PNVME_SANITIZE_STATUS_LOG; + +typedef struct { + ULONG NUMD; +} NVME_CDW10_FIRMWARE_DOWNLOAD, *PNVME_CDW10_FIRMWARE_DOWNLOAD; + +typedef struct { + ULONG OFST; +} NVME_CDW11_FIRMWARE_DOWNLOAD, *PNVME_CDW11_FIRMWARE_DOWNLOAD; + +typedef enum { + NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT = 0, + NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE = 1, + NVME_FIRMWARE_ACTIVATE_ACTION_ACTIVATE = 2, + NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE_IMMEDIATE = 3 +} NVME_FIRMWARE_ACTIVATE_ACTIONS; + +typedef union { + __C89_NAMELESS struct { + ULONG FS : 3; + ULONG AA : 2; + ULONG Reserved : 27; + }; + ULONG AsUlong; +} NVME_CDW10_FIRMWARE_ACTIVATE, *PNVME_CDW10_FIRMWARE_ACTIVATE; + +typedef enum { + NVME_PROTECTION_INFORMATION_NOT_ENABLED = 0, + NVME_PROTECTION_INFORMATION_TYPE1 = 1, + NVME_PROTECTION_INFORMATION_TYPE2 = 2, + NVME_PROTECTION_INFORMATION_TYPE3 = 3 +} NVME_PROTECTION_INFORMATION_TYPES; + +typedef enum { + NVME_SECURE_ERASE_NONE = 0, + NVME_SECURE_ERASE_USER_DATA = 1, + NVME_SECURE_ERASE_CRYPTOGRAPHIC = 2 +} NVME_SECURE_ERASE_SETTINGS; + +typedef union { + __C89_NAMELESS struct { + ULONG LBAF : 4; + ULONG MS : 1; + ULONG PI : 3; + ULONG PIL : 1; + ULONG SES : 3; + ULONG ZF : 2; + ULONG Reserved : 18; + }; + ULONG AsUlong; +} NVME_CDW10_FORMAT_NVM, *PNVME_CDW10_FORMAT_NVM; + +typedef enum { + NVME_MEDIA_ADDITIONALLY_MODIFIED_AFTER_SANITIZE_NOT_DEFINED = 0, + NVME_MEDIA_NOT_ADDITIONALLY_MODIFIED_AFTER_SANITIZE = 1, + NVME_MEDIA_ADDITIONALLY_MOFIDIED_AFTER_SANITIZE = 2 +} NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE, *PNVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE; + +typedef enum { + NVME_SANITIZE_ACTION_RESERVED = 0, + NVME_SANITIZE_ACTION_EXIT_FAILURE_MODE = 1, + NVME_SANITIZE_ACTION_START_BLOCK_ERASE_SANITIZE = 2, + NVME_SANITIZE_ACTION_START_OVERWRITE_SANITIZE = 3, + NVME_SANITIZE_ACTION_START_CRYPTO_ERASE_SANITIZE = 4 +} NVME_SANITIZE_ACTION, *PNVME_SANITIZE_ACTION; + +typedef union { + __C89_NAMELESS struct { + ULONG SANACT : 3; + ULONG AUSE : 1; + ULONG OWPASS : 4; + ULONG OIPBP : 1; + ULONG NDAS : 1; + ULONG Reserved : 22; + }; + ULONG AsUlong; +} NVME_CDW10_SANITIZE, *PNVME_CDW10_SANITIZE; + +typedef union { + __C89_NAMELESS struct { + ULONG OVRPAT; + }; + ULONG AsUlong; +} NVME_CDW11_SANITIZE; + +typedef enum { + NVME_RESERVATION_TYPE_RESERVED = 0, + NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE = 1, + NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS = 2, + NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS_ONLY = 3, + NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY = 4, + NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_ALL_REGISTRANTS = 5, + NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_ALL_REGISTRANTS = 6 +} NVME_RESERVATION_TYPES; + +typedef enum { + NVME_RESERVATION_ACQUIRE_ACTION_ACQUIRE = 0, + NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT = 1, + NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT_AND_ABORT = 2 +} NVME_RESERVATION_ACQUIRE_ACTIONS; + +typedef struct { + ULONG PTPL : 1; + ULONG Reserved : 31; +} NVME_CDW0_RESERVATION_PERSISTENCE, *PNVME_CDW0_RESERVATION_PERSISTENCE; + +typedef union { + __C89_NAMELESS struct { + ULONG RACQA : 3; + ULONG IEKEY : 1; + ULONG Reserved : 4; + ULONG RTYPE : 8; + ULONG Reserved1 : 16; + }; + ULONG AsUlong; +} NVME_CDW10_RESERVATION_ACQUIRE, *PNVME_CDW10_RESERVATION_ACQUIRE; + +typedef struct { + ULONGLONG CRKEY; + ULONGLONG PRKEY; +} NVME_RESERVATION_ACQUIRE_DATA_STRUCTURE, *PNVME_RESERVATION_ACQUIRE_DATA_STRUCTURE; + +typedef enum { + NVME_RESERVATION_REGISTER_ACTION_REGISTER = 0, + NVME_RESERVATION_REGISTER_ACTION_UNREGISTER = 1, + NVME_RESERVATION_REGISTER_ACTION_REPLACE = 2 +} NVME_RESERVATION_REGISTER_ACTIONS; + +typedef enum { + NVME_RESERVATION_REGISTER_PTPL_STATE_NO_CHANGE = 0, + NVME_RESERVATION_REGISTER_PTPL_STATE_RESERVED = 1, + NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_0 = 2, + NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_1 = 3 +} NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES; + +typedef union { + __C89_NAMELESS struct { + ULONG RREGA : 3; + ULONG IEKEY : 1; + ULONG Reserved : 26; + ULONG CPTPL : 2; + }; + ULONG AsUlong; +} NVME_CDW10_RESERVATION_REGISTER, *PNVME_CDW10_RESERVATION_REGISTER; + +typedef struct { + ULONGLONG CRKEY; + ULONGLONG NRKEY; +} NVME_RESERVATION_REGISTER_DATA_STRUCTURE, *PNVME_RESERVATION_REGISTER_DATA_STRUCTURE; + +typedef enum { + NVME_RESERVATION_RELEASE_ACTION_RELEASE = 0, + NVME_RESERVATION_RELEASE_ACTION_CLEAR = 1 +} NVME_RESERVATION_RELEASE_ACTIONS; + +typedef union { + struct { + ULONG RRELA : 3; + ULONG IEKEY : 1; + ULONG Reserved : 4; + ULONG RTYPE : 8; + ULONG Reserved1 : 16; + }; + ULONG AsUlong; +} NVME_CDW10_RESERVATION_RELEASE, *PNVME_CDW10_RESERVATION_RELEASE; + +typedef struct { + ULONGLONG CRKEY; +} NVME_RESERVATION_RELEASE_DATA_STRUCTURE, *PNVME_RESERVATION_RELEASE_DATA_STRUCTURE; + +typedef union { + __C89_NAMELESS struct { + ULONG NUMD; + }; + ULONG AsUlong; +} NVME_CDW10_RESERVATION_REPORT, *PNVME_CDW10_RESERVATION_REPORT; + +typedef union { + __C89_NAMELESS struct { + ULONG EDS : 1; + ULONG Reserved : 31; + }; + ULONG AsUlong; +} NVME_CDW11_RESERVATION_REPORT, *PNVME_CDW11_RESERVATION_REPORT; + +#pragma pack(push, 1) +typedef struct { + ULONG GEN; + UCHAR RTYPE; + USHORT REGCTL; + UCHAR Reserved[2]; + UCHAR PTPLS; + UCHAR Reserved1[14]; +} NVME_RESERVATION_REPORT_STATUS_HEADER, *PNVME_RESERVATION_REPORT_STATUS_HEADER; +#pragma pack(pop) + +C_ASSERT(sizeof(NVME_RESERVATION_REPORT_STATUS_HEADER) == 24); + +typedef struct { + USHORT CNTLID; + struct { + UCHAR HoldReservation : 1; + UCHAR Reserved : 7; + } RCSTS; + UCHAR Reserved[5]; + UCHAR HOSTID[8]; + ULONGLONG RKEY; +} NVME_REGISTERED_CONTROLLER_DATA, *PNVME_REGISTERED_CONTROLLER_DATA; + +C_ASSERT(sizeof(NVME_REGISTERED_CONTROLLER_DATA) == 24); + +typedef struct { + NVME_RESERVATION_REPORT_STATUS_HEADER Header; + NVME_REGISTERED_CONTROLLER_DATA RegisteredControllersData[ANYSIZE_ARRAY]; +} NVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE, *PNVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE; + +typedef struct { + USHORT CNTLID; + struct { + UCHAR HoldReservation : 1; + UCHAR Reserved : 7; + } RCSTS; + UCHAR Reserved[5]; + ULONGLONG RKEY; + UCHAR HOSTID[16]; + UCHAR Reserved1[32]; +} NVME_REGISTERED_CONTROLLER_EXTENDED_DATA, *PNVME_REGISTERED_CONTROLLER_EXTENDED_DATA; + +C_ASSERT(sizeof(NVME_REGISTERED_CONTROLLER_EXTENDED_DATA) == 64); + +typedef struct { + NVME_RESERVATION_REPORT_STATUS_HEADER Header; + UCHAR Reserved1[40]; + NVME_REGISTERED_CONTROLLER_EXTENDED_DATA RegisteredControllersExtendedData[ANYSIZE_ARRAY]; +} NVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE, *PNVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE; + +typedef enum { + NVME_DIRECTIVE_TYPE_IDENTIFY = 0x00, + NVME_DIRECTIVE_TYPE_STREAMS = 0x01 +} NVME_DIRECTIVE_TYPES; + +#define NVME_STREAMS_ID_MIN 1 +#define NVME_STREAMS_ID_MAX 0xFFFF + +typedef struct { + ULONG NUMD; +} NVME_CDW10_DIRECTIVE_RECEIVE, *PNVME_CDW10_DIRECTIVE_RECEIVE; + +typedef union { + __C89_NAMELESS struct { + ULONG DOPER : 8; + ULONG DTYPE : 8; + ULONG DSPEC : 16; + }; + ULONG AsUlong; +} NVME_CDW11_DIRECTIVE_RECEIVE, *PNVME_CDW11_DIRECTIVE_RECEIVE; + +typedef struct { + ULONG NUMD; +} NVME_CDW10_DIRECTIVE_SEND, *PNVME_CDW10_DIRECTIVE_SEND; + +typedef union { + __C89_NAMELESS struct { + ULONG DOPER : 8; + ULONG DTYPE : 8; + ULONG DSPEC : 16; + }; + ULONG AsUlong; +} NVME_CDW11_DIRECTIVE_SEND, *PNVME_CDW11_DIRECTIVE_SEND; + +typedef enum { + NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATION_RETURN_PARAMETERS = 1 +} NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATIONS; + +typedef enum { + NVME_DIRECTIVE_SEND_IDENTIFY_OPERATION_ENABLE_DIRECTIVE = 1 +} NVME_DIRECTIVE_SEND_IDENTIFY_OPERATIONS; + +typedef struct { + UCHAR Identify : 1; + UCHAR Streams : 1; + UCHAR Reserved0 : 6; + UCHAR Reserved1[31]; +} NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR, *PNVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR; + +typedef struct { + NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR DirectivesSupported; + NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR DirectivesEnabled; +} NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS, *PNVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS; + +typedef union { + __C89_NAMELESS struct { + ULONG ENDIR : 1; + ULONG Reserved0 : 7; + ULONG DTYPE : 8; + ULONG Reserved1 : 16; + }; + ULONG AsUlong; +} NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE, *PNVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE; + +typedef enum { + NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_RETURN_PARAMETERS = 1, + NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_GET_STATUS = 2, + NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_ALLOCATE_RESOURCES = 3 +} NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS; + +typedef enum { + NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_IDENTIFIER = 1, + NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_RESOURCES = 2 +} NVME_DIRECTIVE_SEND_STREAMS_OPERATIONS; + +typedef struct { + USHORT MSL; + USHORT NSSA; + USHORT NSSO; + UCHAR Reserved0[10]; + ULONG SWS; + USHORT SGS; + USHORT NSA; + USHORT NSO; + UCHAR Reserved1[6]; +} NVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS, *PNVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS; + +#define NVME_STREAMS_GET_STATUS_MAX_IDS 65535 + +typedef struct { + USHORT OpenStreamCount; + USHORT StreamIdentifiers[NVME_STREAMS_GET_STATUS_MAX_IDS]; +} NVME_DIRECTIVE_STREAMS_GET_STATUS_DATA, *PNVME_DIRECTIVE_STREAMS_GET_STATUS_DATA; + +typedef union { + __C89_NAMELESS struct { + ULONG NSR : 16; + ULONG Reserved : 16; + }; + ULONG AsUlong; +} NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES, *PNVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES; + +typedef struct { + __C89_NAMELESS struct { + ULONG NSA : 16; + ULONG Reserved : 16; + }; + ULONG AsUlong; +} NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES, *PNVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES; + +typedef union { + NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE EnableDirective; + ULONG AsUlong; +} NVME_CDW12_DIRECTIVE_SEND; + +typedef union { + NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES AllocateResources; + ULONG AsUlong; +} NVME_CDW12_DIRECTIVE_RECEIVE; + +typedef union { + __C89_NAMELESS struct { + ULONG Reserved0 : 8; + ULONG SPSP : 16; + ULONG SECP : 8; + }; + ULONG AsUlong; +} NVME_CDW10_SECURITY_SEND_RECEIVE, *PNVME_CDW10_SECURITY_SEND_RECEIVE; + +typedef struct { + ULONG TL; +} NVME_CDW11_SECURITY_SEND, *PNVME_CDW11_SECURITY_SEND; + +typedef struct { + ULONG AL; +} NVME_CDW11_SECURITY_RECEIVE, *PNVME_CDW11_SECURITY_RECEIVE; + +typedef enum { + NVME_NVM_COMMAND_FLUSH = 0x00, + NVME_NVM_COMMAND_WRITE = 0x01, + NVME_NVM_COMMAND_READ = 0x02, + NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 0x04, + NVME_NVM_COMMAND_COMPARE = 0x05, + NVME_NVM_COMMAND_WRITE_ZEROES = 0x08, + NVME_NVM_COMMAND_DATASET_MANAGEMENT = 0x09, + NVME_NVM_COMMAND_VERIFY = 0x0C, + NVME_NVM_COMMAND_RESERVATION_REGISTER = 0x0D, + NVME_NVM_COMMAND_RESERVATION_REPORT = 0x0E, + NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 0x11, + NVME_NVM_COMMAND_RESERVATION_RELEASE = 0x15, + NVME_NVM_COMMAND_COPY = 0x19, + NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 0x79, + NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 0x7A, + NVME_NVM_COMMAND_ZONE_APPEND = 0x7D +} NVME_NVM_COMMANDS; + +typedef union { + __C89_NAMELESS struct { + ULONG NLB : 16; + ULONG Reserved0 : 4; + ULONG DTYPE : 4; + ULONG Reserved1 : 2; + ULONG PRINFO : 4; + ULONG FUA : 1; + ULONG LR : 1; + }; + ULONG AsUlong; +} NVME_CDW12_READ_WRITE, *PNVME_CDW12_READ_WRITE; + +typedef enum { + NVME_ACCESS_FREQUENCY_NONE = 0, + NVME_ACCESS_FREQUENCY_TYPICAL = 1, + NVME_ACCESS_FREQUENCY_INFR_WRITE_INFR_READ = 2, + NVME_ACCESS_FREQUENCY_INFR_WRITE_FR_READ = 3, + NVME_ACCESS_FREQUENCY_FR_WRITE_INFR_READ = 4, + NVME_ACCESS_FREQUENCY_FR_WRITE_FR_READ = 5, + NVME_ACCESS_FREQUENCY_ONE_TIME_READ = 6, + NVME_ACCESS_FREQUENCY_SPECULATIVE_READ = 7, + NVME_ACCESS_FREQUENCY_WILL_BE_OVERWRITTEN = 8 +} NVME_ACCESS_FREQUENCIES; + +typedef enum { + NVME_ACCESS_LATENCY_NONE = 0, + NVME_ACCESS_LATENCY_IDLE = 1, + NVME_ACCESS_LATENCY_NORMAL = 2, + NVME_ACCESS_LATENCY_LOW = 3 +} NVME_ACCESS_LATENCIES; + +typedef union { + __C89_NAMELESS struct { + struct { + UCHAR AccessFrequency : 4; + UCHAR AccessLatency : 2; + UCHAR SequentialRequest : 1; + UCHAR Incompressible : 1; + } DSM; + UCHAR Reserved; + USHORT DSPEC; + }; + ULONG AsUlong; +} NVME_CDW13_READ_WRITE, *PNVME_CDW13_READ_WRITE; + +typedef union { + __C89_NAMELESS struct { + ULONG ELBAT : 16; + ULONG ELBATM : 16; + }; + ULONG AsUlong; +} NVME_CDW15_READ_WRITE, *PNVME_CDW15_READ_WRITE; + +typedef union { + __C89_NAMELESS struct { + ULONG AccessFrequency : 4; + ULONG AccessLatency : 2; + ULONG Reserved0 : 2; + ULONG SequentialReadRange : 1; + ULONG SequentialWriteRange : 1; + ULONG WritePrepare : 1; + ULONG Reserved1 : 13; + ULONG CommandAccessSize : 8; + }; + ULONG AsUlong; +} NVME_CONTEXT_ATTRIBUTES, *PNVME_CONTEXT_ATTRIBUTES; + +typedef struct { + NVME_CONTEXT_ATTRIBUTES Attributes; + ULONG LogicalBlockCount; + ULONGLONG StartingLBA; +} NVME_LBA_RANGE, *PNVME_LBA_RANGE; + +typedef union { + __C89_NAMELESS struct { + ULONG NR : 8; + ULONG Reserved : 24; + }; + ULONG AsUlong; +} NVME_CDW10_DATASET_MANAGEMENT, *PNVME_CDW10_DATASET_MANAGEMENT; + +typedef union { + __C89_NAMELESS struct { + ULONG IDR : 1; + ULONG IDW : 1; + ULONG AD : 1; + ULONG Reserved : 29; + }; + ULONG AsUlong; +} NVME_CDW11_DATASET_MANAGEMENT, *PNVME_CDW11_DATASET_MANAGEMENT; + +typedef struct { + __C89_NAMELESS struct { + UCHAR ZT : 4; + UCHAR Reserved1 : 4; + }; + __C89_NAMELESS struct { + UCHAR Reserved2 : 4; + UCHAR ZS : 4; + }; + struct { + UCHAR ZFC : 1; + UCHAR FZR : 1; + UCHAR RZR : 1; + UCHAR Reserved : 4; + UCHAR ZDEV : 1; + } ZA; + UCHAR Reserved3[5]; + ULONGLONG ZCAP; + ULONGLONG ZSLBA; + ULONGLONG WritePointer; + UCHAR Reserved4[32]; +} NVME_ZONE_DESCRIPTOR, *PNVME_ZONE_DESCRIPTOR; + +typedef enum { + NVME_STATE_ZSE = 0x1, + NVME_STATE_ZSIO = 0x2, + NVME_STATE_ZSEO = 0x3, + NVME_STATE_ZSC = 0x4, + NVME_STATE_ZSRO = 0xD, + NVME_STATE_ZSF = 0xE, + NVME_STATE_ZSO = 0xF +} ZONE_STATE; + +typedef enum { + NVME_ZONE_SEND_CLOSE = 1, + NVME_ZONE_SEND_FINISH = 2, + NVME_ZONE_SEND_OPEN = 3, + NVME_ZONE_SEND_RESET = 4, + NVME_ZONE_SEND_OFFLINE = 5, + NVME_ZONE_SEND_SET_ZONE_DESCRIPTOR = 0x10 +} NVME_ZONE_SEND_ACTION; + +typedef struct { + ULONGLONG SLBA; +} NVME_CDW10_ZONE_MANAGEMENT_SEND, *PNVME_CDW10_ZONE_MANAGEMENT_SEND; + +typedef union { + __C89_NAMELESS struct { + ULONG ZSA : 8; + ULONG SelectAll : 1; + ULONG Reserved : 23; + }; + ULONG AsUlong; +} NVME_CDW13_ZONE_MANAGEMENT_SEND, *PNVME_CDW13_ZONE_MANAGEMENT_SEND; + +typedef struct { + ULONGLONG ZoneCount; + ULONGLONG Reserved[7]; + NVME_ZONE_DESCRIPTOR ZoneDescriptor[ANYSIZE_ARRAY]; +} NVME_REPORT_ZONE_INFO, *PNVME_REPORT_ZONE_INFO; + +typedef struct{ + UCHAR ZoneDescriptorExtensionInfo[64]; +} NVME_ZONE_DESCRIPTOR_EXTENSION, *PNVME_ZONE_DESCRIPTOR_EXTENSION; + +typedef struct { + NVME_ZONE_DESCRIPTOR ZoneDescriptor; + NVME_ZONE_DESCRIPTOR_EXTENSION ZoneDescriptorExtension[ANYSIZE_ARRAY]; +} NVME_ZONE_EXTENDED_REPORT_ZONE_DESC, *PNVME_ZONE_EXTENDED_REPORT_ZONE_DESC; + +typedef struct { + ULONGLONG ZoneCount; + ULONGLONG Reserved[7]; + NVME_ZONE_EXTENDED_REPORT_ZONE_DESC Desc[ANYSIZE_ARRAY]; +} NVME_EXTENDED_REPORT_ZONE_INFO, *PNVME_EXTENDED_REPORT_ZONE_INFO; + +typedef enum { + NVME_ZONE_RECEIVE_REPORT_ZONES = 0, + NVME_ZONE_RECEIVE_EXTENDED_REPORT_ZONES = 1 +} NVME_ZONE_RECEIVE_ACTION; + +typedef enum { + NVME_ZRA_ALL_ZONES = 0, + NVME_ZRA_EMPTY_STATE_ZONES = 1, + NVME_ZRA_IO_STATE_ZONES = 2, + NVME_ZRA_EO_STATE_ZONES = 3, + NVME_ZRA_CLOSED_STATE_ZONES = 4, + NVME_ZRA_FULL_STATE_ZONES = 5, + NVME_ZRA_RO_STATE_ZONES = 6, + NVME_ZRA_OFFLINE_STATE_ZONES = 7 +} NVME_ZONE_RECEIVE_ACTION_SPECIFIC; + +typedef struct { + ULONGLONG SLBA; +} NVME_CDW10_ZONE_MANAGEMENT_RECEIVE, *PNVME_CDW10_ZONE_MANAGEMENT_RECEIVE; + +typedef union { + __C89_NAMELESS struct { + ULONG ZRA : 8; + ULONG ZRASpecific : 8; + ULONG Partial : 1; + ULONG Reserved : 15; + }; + ULONG AsUlong; +} NVME_CDW13_ZONE_MANAGEMENT_RECEIVE, *PNVME_CDW13_ZONE_MANAGEMENT_RECEIVE; + +typedef struct { + ULONGLONG SLBA; +} NVME_CDW10_ZONE_APPEND, *PNVME_CDW10_ZONE_APPEND; + +typedef union { + __C89_NAMELESS struct { + ULONG NLB : 16; + ULONG Reserved : 9; + ULONG PIREMAP : 1; + ULONG PRINFO : 4; + ULONG FUA : 1; + ULONG LR : 1; + }; + ULONG AsUlong; +} NVME_CDW12_ZONE_APPEND, *PNVME_CDW12_ZONE_APPEND; + +typedef union { + __C89_NAMELESS struct { + ULONG LBAT : 16; + ULONG LBATM : 16; + }; + ULONG AsUlong; +} NVME_CDW15_ZONE_APPEND, *PNVME_CDW15_ZONE_APPEND; + +typedef union { + __C89_NAMELESS struct { + ULONG OPC : 8; + ULONG FUSE : 2; + ULONG Reserved0 : 5; + ULONG PSDT : 1; + ULONG CID : 16; + }; + ULONG AsUlong; +} NVME_COMMAND_DWORD0, *PNVME_COMMAND_DWORD0; + +typedef enum { + NVME_FUSED_OPERATION_NORMAL = 0, + NVME_FUSED_OPERATION_FIRST_CMD = 1, + NVME_FUSED_OPERATION_SECOND_CMD = 2 +} NVME_FUSED_OPERATION_CODES; + +typedef union { + __C89_NAMELESS struct { + ULONGLONG Reserved0 : 2; + ULONGLONG PBAO : 62; + }; + ULONGLONG AsUlonglong; +} NVME_PRP_ENTRY, *PNVME_PRP_ENTRY; + +#define NVME_NAMESPACE_ALL 0xFFFFFFFF + +typedef struct { + NVME_COMMAND_DWORD0 CDW0; + ULONG NSID; + ULONG Reserved0[2]; + ULONGLONG MPTR; + ULONGLONG PRP1; + ULONGLONG PRP2; + union { + struct { + ULONG CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } GENERAL; + struct { + NVME_CDW10_IDENTIFY CDW10; + NVME_CDW11_IDENTIFY CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } IDENTIFY; + struct { + NVME_CDW10_ABORT CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } ABORT; + struct { + NVME_CDW10_GET_FEATURES CDW10; + NVME_CDW11_FEATURES CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } GETFEATURES; + struct { + NVME_CDW10_SET_FEATURES CDW10; + NVME_CDW11_FEATURES CDW11; + NVME_CDW12_FEATURES CDW12; + NVME_CDW13_FEATURES CDW13; + NVME_CDW14_FEATURES CDW14; + NVME_CDW15_FEATURES CDW15; + } SETFEATURES; + struct { + union { + NVME_CDW10_GET_LOG_PAGE CDW10; + NVME_CDW10_GET_LOG_PAGE_V13 CDW10_V13; + }; + NVME_CDW11_GET_LOG_PAGE CDW11; + NVME_CDW12_GET_LOG_PAGE CDW12; + NVME_CDW13_GET_LOG_PAGE CDW13; + NVME_CDW14_GET_LOG_PAGE CDW14; + ULONG CDW15; + } GETLOGPAGE; + struct { + NVME_CDW10_CREATE_IO_QUEUE CDW10; + NVME_CDW11_CREATE_IO_CQ CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } CREATEIOCQ; + struct { + NVME_CDW10_CREATE_IO_QUEUE CDW10; + NVME_CDW11_CREATE_IO_SQ CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } CREATEIOSQ; + struct { + NVME_CDW10_DATASET_MANAGEMENT CDW10; + NVME_CDW11_DATASET_MANAGEMENT CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } DATASETMANAGEMENT; + struct { + NVME_CDW10_SECURITY_SEND_RECEIVE CDW10; + NVME_CDW11_SECURITY_SEND CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } SECURITYSEND; + struct { + NVME_CDW10_SECURITY_SEND_RECEIVE CDW10; + NVME_CDW11_SECURITY_RECEIVE CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } SECURITYRECEIVE; + struct { + NVME_CDW10_FIRMWARE_DOWNLOAD CDW10; + NVME_CDW11_FIRMWARE_DOWNLOAD CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } FIRMWAREDOWNLOAD; + struct { + NVME_CDW10_FIRMWARE_ACTIVATE CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } FIRMWAREACTIVATE; + struct { + NVME_CDW10_FORMAT_NVM CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } FORMATNVM; + struct { + NVME_CDW10_DIRECTIVE_RECEIVE CDW10; + NVME_CDW11_DIRECTIVE_RECEIVE CDW11; + NVME_CDW12_DIRECTIVE_RECEIVE CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } DIRECTIVERECEIVE; + struct { + NVME_CDW10_DIRECTIVE_SEND CDW10; + NVME_CDW11_DIRECTIVE_SEND CDW11; + NVME_CDW12_DIRECTIVE_SEND CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } DIRECTIVESEND; + struct { + NVME_CDW10_SANITIZE CDW10; + NVME_CDW11_SANITIZE CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } SANITIZE; + struct { + ULONG LBALOW; + ULONG LBAHIGH; + NVME_CDW12_READ_WRITE CDW12; + NVME_CDW13_READ_WRITE CDW13; + ULONG CDW14; + NVME_CDW15_READ_WRITE CDW15; + } READWRITE; + struct { + NVME_CDW10_RESERVATION_ACQUIRE CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } RESERVATIONACQUIRE; + struct { + NVME_CDW10_RESERVATION_REGISTER CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } RESERVATIONREGISTER; + struct { + NVME_CDW10_RESERVATION_RELEASE CDW10; + ULONG CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } RESERVATIONRELEASE; + struct { + NVME_CDW10_RESERVATION_REPORT CDW10; + NVME_CDW11_RESERVATION_REPORT CDW11; + ULONG CDW12; + ULONG CDW13; + ULONG CDW14; + ULONG CDW15; + } RESERVATIONREPORT; + struct { + NVME_CDW10_ZONE_MANAGEMENT_SEND CDW1011; + ULONG CDW12; + NVME_CDW13_ZONE_MANAGEMENT_SEND CDW13; + ULONG CDW14; + ULONG CDW15; + } ZONEMANAGEMENTSEND; + struct { + NVME_CDW10_ZONE_MANAGEMENT_RECEIVE CDW1011; + ULONG DWORDCOUNT; + NVME_CDW13_ZONE_MANAGEMENT_RECEIVE CDW13; + ULONG CDW14; + ULONG CDW15; + } ZONEMANAGEMENTRECEIVE; + struct { + NVME_CDW10_ZONE_APPEND CDW1011; + NVME_CDW12_ZONE_APPEND CDW12; + ULONG CDW13; + ULONG ILBRT; + NVME_CDW15_ZONE_APPEND CDW15; + } ZONEAPPEND; + } u; +} NVME_COMMAND, *PNVME_COMMAND; + +C_ASSERT(sizeof(NVME_COMMAND) == 64); + +typedef struct { + CHAR PCIVendorID[4]; + CHAR ModelNumber[40]; + CHAR NamespaceID[4]; + CHAR SerialNumber[20]; +} NVME_SCSI_NAME_STRING, *PNVME_SCSI_NAME_STRING; + +#endif /* WINAPI_PARTITION_DESKTOP */ + +#endif /* NVME_INCLUDED */ diff --git a/lib/libc/include/any-windows-any/oaidl.h b/lib/libc/include/any-windows-any/oaidl.h index d4a4673dfe..92d525d225 100644 --- a/lib/libc/include/any-windows-any/oaidl.h +++ b/lib/libc/include/any-windows-any/oaidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/oaidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/oaidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/objectarray.h b/lib/libc/include/any-windows-any/objectarray.h index 1c980bcc20..7ed55460cc 100644 --- a/lib/libc/include/any-windows-any/objectarray.h +++ b/lib/libc/include/any-windows-any/objectarray.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/objectarray.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/objectarray.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/objidl.h b/lib/libc/include/any-windows-any/objidl.h index 6d6f32c868..70ba62486e 100644 --- a/lib/libc/include/any-windows-any/objidl.h +++ b/lib/libc/include/any-windows-any/objidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/objidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/objidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/objidlbase.h b/lib/libc/include/any-windows-any/objidlbase.h index 388af0083a..cb6e6dc59b 100644 --- a/lib/libc/include/any-windows-any/objidlbase.h +++ b/lib/libc/include/any-windows-any/objidlbase.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/objidlbase.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/objidlbase.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/ocidl.h b/lib/libc/include/any-windows-any/ocidl.h index 1e5024dead..09f89d7be7 100644 --- a/lib/libc/include/any-windows-any/ocidl.h +++ b/lib/libc/include/any-windows-any/ocidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/ocidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/ocidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/oleacc.h b/lib/libc/include/any-windows-any/oleacc.h index d0e4c90a87..aa5906db4e 100644 --- a/lib/libc/include/any-windows-any/oleacc.h +++ b/lib/libc/include/any-windows-any/oleacc.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/oleacc.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/oleacc.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/oleidl.h b/lib/libc/include/any-windows-any/oleidl.h index 999024db1a..ab263c7bf8 100644 --- a/lib/libc/include/any-windows-any/oleidl.h +++ b/lib/libc/include/any-windows-any/oleidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/oleidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/oleidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/optary.h b/lib/libc/include/any-windows-any/optary.h index 7b77570bfd..0b38f903a1 100644 --- a/lib/libc/include/any-windows-any/optary.h +++ b/lib/libc/include/any-windows-any/optary.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/optary.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/optary.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/pchannel.h b/lib/libc/include/any-windows-any/pchannel.h index 021219ca33..1eb7899f28 100644 --- a/lib/libc/include/any-windows-any/pchannel.h +++ b/lib/libc/include/any-windows-any/pchannel.h @@ -3,10 +3,18 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ + #ifndef _H_PCHANNEL #define _H_PCHANNEL +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#if NTDDI_VERSION >= NTDDI_XP + #define CHANNEL_CHUNK_LENGTH 1600 +#define CHANNEL_BUFFER_SIZE 65535 #define CHANNEL_PDU_LENGTH (CHANNEL_CHUNK_LENGTH + sizeof(CHANNEL_PDU_HEADER)) @@ -29,6 +37,7 @@ #define CHANNEL_OPTION_COMPRESS_RDP 0x00800000 #define CHANNEL_OPTION_COMPRESS 0x00400000 #define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000 +#define CHANNEL_OPTION_REMOTE_CONTROL_PERSISTENT 0x00100000 #define CHANNEL_MAX_COUNT 30 #define CHANNEL_NAME_LEN 7 @@ -42,4 +51,9 @@ typedef struct tagCHANNEL_PDU_HEADER { UINT32 length; UINT32 flags; } CHANNEL_PDU_HEADER,*PCHANNEL_PDU_HEADER; -#endif + +#endif /* (NTDDI_VERSION >= NTDDI_XP) */ + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ + +#endif /* _H_PCHANNEL */ diff --git a/lib/libc/include/any-windows-any/portabledevicetypes.h b/lib/libc/include/any-windows-any/portabledevicetypes.h index 62108fb82b..a562c6dabb 100644 --- a/lib/libc/include/any-windows-any/portabledevicetypes.h +++ b/lib/libc/include/any-windows-any/portabledevicetypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/portabledevicetypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/portabledevicetypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/processthreadsapi.h b/lib/libc/include/any-windows-any/processthreadsapi.h index 888915101b..fe71aa80e5 100644 --- a/lib/libc/include/any-windows-any/processthreadsapi.h +++ b/lib/libc/include/any-windows-any/processthreadsapi.h @@ -99,8 +99,92 @@ extern "C" { DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; + + typedef enum _PROCESS_INFORMATION_CLASS { + ProcessMemoryPriority, + ProcessMemoryExhaustionInfo, + ProcessAppMemoryInfo, + ProcessInPrivateInfo, + ProcessPowerThrottling, + ProcessReservedValue1, + ProcessTelemetryCoverageInfo, + ProcessProtectionLevelInfo, + ProcessLeapSecondInfo, + ProcessMachineTypeInfo, + ProcessInformationClassMax + } PROCESS_INFORMATION_CLASS; + + typedef struct _APP_MEMORY_INFORMATION { + ULONG64 AvailableCommit; + ULONG64 PrivateCommitUsage; + ULONG64 PeakPrivateCommitUsage; + ULONG64 TotalCommitUsage; + } APP_MEMORY_INFORMATION, *PAPP_MEMORY_INFORMATION; + + typedef enum _MACHINE_ATTRIBUTES { + UserEnabled = 0x00000001, + KernelEnabled = 0x00000002, + Wow64Container = 0x00000004 + } MACHINE_ATTRIBUTES; +#ifndef __WIDL__ +DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES); +#endif + + typedef struct _PROCESS_MACHINE_INFORMATION { + USHORT ProcessMachine; + USHORT Res0; + MACHINE_ATTRIBUTES MachineAttributes; + } PROCESS_MACHINE_INFORMATION; + +#define PME_CURRENT_VERSION 1 + + typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE { + PMETypeFailFastOnCommitFailure, + PMETypeMax + } PROCESS_MEMORY_EXHAUSTION_TYPE, *PPROCESS_MEMORY_EXHAUSTION_TYPE; + +#define PME_FAILFAST_ON_COMMIT_FAIL_DISABLE 0x0 +#define PME_FAILFAST_ON_COMMIT_FAIL_ENABLE 0x1 + + typedef struct _PROCESS_MEMORY_EXHAUSTION_INFO { + USHORT Version; + USHORT Reserved; + PROCESS_MEMORY_EXHAUSTION_TYPE Type; + ULONG_PTR Value; + } PROCESS_MEMORY_EXHAUSTION_INFO, *PPROCESS_MEMORY_EXHAUSTION_INFO; + +#define PROCESS_POWER_THROTTLING_CURRENT_VERSION 1 + +#define PROCESS_POWER_THROTTLING_EXECUTION_SPEED 0x1 +#define PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION 0x4 + +#define PROCESS_POWER_THROTTLING_VALID_FLAGS (PROCESS_POWER_THROTTLING_EXECUTION_SPEED | PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION) + + typedef struct _PROCESS_POWER_THROTTLING_STATE { + ULONG Version; + ULONG ControlMask; + ULONG StateMask; + } PROCESS_POWER_THROTTLING_STATE, *PPROCESS_POWER_THROTTLING_STATE; + + typedef struct PROCESS_PROTECTION_LEVEL_INFORMATION { + DWORD ProtectionLevel; + } PROCESS_PROTECTION_LEVEL_INFORMATION; + +#define PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND 0x1 +#define PROCESS_LEAP_SECOND_INFO_VALID_FLAGS PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND + + typedef struct _PROCESS_LEAP_SECOND_INFO { + ULONG Flags; + ULONG Reserved; + } PROCESS_LEAP_SECOND_INFO, *PPROCESS_LEAP_SECOND_INFO; + +#if _WIN32_WINNT >= 0x0602 + WINBASEAPI WINBOOL WINAPI GetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); + WINBASEAPI WINBOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); #endif +#endif /* WINAPI_PARTITION_APP */ + #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; @@ -210,6 +294,19 @@ extern "C" { #if _WIN32_WINNT >= 0x0601 WINBASEAPI WINBOOL WINAPI SetThreadIdealProcessorEx (HANDLE hThread, PPROCESSOR_NUMBER lpIdealProcessor, PPROCESSOR_NUMBER lpPreviousIdealProcessor); #endif +#if NTDDI_VERSION >= NTDDI_WIN10_VB + WINBASEAPI WINBOOL WINAPI SetProcessDynamicEHContinuationTargets (HANDLE Process, USHORT NumberOfTargets, PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets); +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_MN + typedef enum _QUEUE_USER_APC_FLAGS { + QUEUE_USER_APC_FLAGS_NONE = 0x0, + QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x1 + } QUEUE_USER_APC_FLAGS; + WINBASEAPI WINBOOL WINAPI QueueUserAPC2 (PAPCFUNC ApcRoutine, HANDLE Thread, ULONG_PTR Data, QUEUE_USER_APC_FLAGS Flags); +#endif +#if NTDDI_VERSION >= NTDDI_WIN10_FE + WINBASEAPI WINBOOL WINAPI SetProcessDynamicEnforcedCetCompatibleRanges (HANDLE Process, USHORT NumberOfRanges, PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges); +#endif #endif diff --git a/lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h b/lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h new file mode 100644 index 0000000000..348e09b7b3 --- /dev/null +++ b/lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h @@ -0,0 +1,173 @@ +/*** Autogenerated by WIDL 7.0 from include/proofofpossessioncookieinfo.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __proofofpossessioncookieinfo_h__ +#define __proofofpossessioncookieinfo_h__ + +/* Forward declarations */ + +#ifndef __IProofOfPossessionCookieInfoManager_FWD_DEFINED__ +#define __IProofOfPossessionCookieInfoManager_FWD_DEFINED__ +typedef interface IProofOfPossessionCookieInfoManager IProofOfPossessionCookieInfoManager; +#ifdef __cplusplus +interface IProofOfPossessionCookieInfoManager; +#endif /* __cplusplus */ +#endif + +#ifndef __ProofOfPossessionCookieInfoManager_FWD_DEFINED__ +#define __ProofOfPossessionCookieInfoManager_FWD_DEFINED__ +#ifdef __cplusplus +typedef class ProofOfPossessionCookieInfoManager ProofOfPossessionCookieInfoManager; +#else +typedef struct ProofOfPossessionCookieInfoManager ProofOfPossessionCookieInfoManager; +#endif /* defined __cplusplus */ +#endif /* defined __ProofOfPossessionCookieInfoManager_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ProofOfPossessionCookieInfo { + LPWSTR name; + LPWSTR data; + DWORD flags; + LPWSTR p3pHeader; +} ProofOfPossessionCookieInfo; +static inline void FreeProofOfPossessionCookieInfoArray(ProofOfPossessionCookieInfo *cookie_info, DWORD count) +{ + unsigned int i; + for (i = 0; i < count; i++) + { + CoTaskMemFree(cookie_info[i].name); + CoTaskMemFree(cookie_info[i].data); + CoTaskMemFree(cookie_info[i].p3pHeader); + } + CoTaskMemFree(cookie_info); +} +/***************************************************************************** + * IProofOfPossessionCookieInfoManager interface + */ +#ifndef __IProofOfPossessionCookieInfoManager_INTERFACE_DEFINED__ +#define __IProofOfPossessionCookieInfoManager_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IProofOfPossessionCookieInfoManager, 0xcdaece56, 0x4edf, 0x43df, 0xb1,0x13, 0x88,0xe4,0x55,0x6f,0xa1,0xbb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cdaece56-4edf-43df-b113-88e4556fa1bb") +IProofOfPossessionCookieInfoManager : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetCookieInfoForUri( + LPCWSTR uri, + DWORD *cookieInfoCount, + ProofOfPossessionCookieInfo **cookieInfo) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IProofOfPossessionCookieInfoManager, 0xcdaece56, 0x4edf, 0x43df, 0xb1,0x13, 0x88,0xe4,0x55,0x6f,0xa1,0xbb) +#endif +#else +typedef struct IProofOfPossessionCookieInfoManagerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IProofOfPossessionCookieInfoManager *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IProofOfPossessionCookieInfoManager *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IProofOfPossessionCookieInfoManager *This); + + /*** IProofOfPossessionCookieInfoManager methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCookieInfoForUri)( + IProofOfPossessionCookieInfoManager *This, + LPCWSTR uri, + DWORD *cookieInfoCount, + ProofOfPossessionCookieInfo **cookieInfo); + + END_INTERFACE +} IProofOfPossessionCookieInfoManagerVtbl; + +interface IProofOfPossessionCookieInfoManager { + CONST_VTBL IProofOfPossessionCookieInfoManagerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IProofOfPossessionCookieInfoManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IProofOfPossessionCookieInfoManager_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IProofOfPossessionCookieInfoManager_Release(This) (This)->lpVtbl->Release(This) +/*** IProofOfPossessionCookieInfoManager methods ***/ +#define IProofOfPossessionCookieInfoManager_GetCookieInfoForUri(This,uri,cookieInfoCount,cookieInfo) (This)->lpVtbl->GetCookieInfoForUri(This,uri,cookieInfoCount,cookieInfo) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IProofOfPossessionCookieInfoManager_QueryInterface(IProofOfPossessionCookieInfoManager* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IProofOfPossessionCookieInfoManager_AddRef(IProofOfPossessionCookieInfoManager* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IProofOfPossessionCookieInfoManager_Release(IProofOfPossessionCookieInfoManager* This) { + return This->lpVtbl->Release(This); +} +/*** IProofOfPossessionCookieInfoManager methods ***/ +static FORCEINLINE HRESULT IProofOfPossessionCookieInfoManager_GetCookieInfoForUri(IProofOfPossessionCookieInfoManager* This,LPCWSTR uri,DWORD *cookieInfoCount,ProofOfPossessionCookieInfo **cookieInfo) { + return This->lpVtbl->GetCookieInfoForUri(This,uri,cookieInfoCount,cookieInfo); +} +#endif +#endif + +#endif + + +#endif /* __IProofOfPossessionCookieInfoManager_INTERFACE_DEFINED__ */ + +#ifndef __ProofOfPossessionCookieInfoManagerLib_LIBRARY_DEFINED__ +#define __ProofOfPossessionCookieInfoManagerLib_LIBRARY_DEFINED__ + +DEFINE_GUID(LIBID_ProofOfPossessionCookieInfoManagerLib, 0x7681a019, 0x8f51, 0x4594, 0x95,0x07, 0xf2,0x70,0x40,0xf7,0x1f,0x01); + +/***************************************************************************** + * ProofOfPossessionCookieInfoManager coclass + */ + +DEFINE_GUID(CLSID_ProofOfPossessionCookieInfoManager, 0xa9927f85, 0xa304, 0x4390, 0x8b,0x23, 0xa7,0x5f,0x1c,0x66,0x86,0x00); + +#ifdef __cplusplus +class DECLSPEC_UUID("a9927f85-a304-4390-8b23-a75f1c668600") ProofOfPossessionCookieInfoManager; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(ProofOfPossessionCookieInfoManager, 0xa9927f85, 0xa304, 0x4390, 0x8b,0x23, 0xa7,0x5f,0x1c,0x66,0x86,0x00) +#endif +#endif + +#endif /* __ProofOfPossessionCookieInfoManagerLib_LIBRARY_DEFINED__ */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __proofofpossessioncookieinfo_h__ */ diff --git a/lib/libc/include/any-windows-any/propidl.h b/lib/libc/include/any-windows-any/propidl.h index 8f51c7bb15..cad573498a 100644 --- a/lib/libc/include/any-windows-any/propidl.h +++ b/lib/libc/include/any-windows-any/propidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/propidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/propidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/propsys.h b/lib/libc/include/any-windows-any/propsys.h index 2f67c14c02..c2667c92a3 100644 --- a/lib/libc/include/any-windows-any/propsys.h +++ b/lib/libc/include/any-windows-any/propsys.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/propsys.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/propsys.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/propvarutil.h b/lib/libc/include/any-windows-any/propvarutil.h index 5be1e1d1e1..b88580b90e 100644 --- a/lib/libc/include/any-windows-any/propvarutil.h +++ b/lib/libc/include/any-windows-any/propvarutil.h @@ -22,9 +22,13 @@ #include <shtypes.h> #include <shlwapi.h> -#if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK) -#define _NTSTATUS_PSDK -typedef LONG NTSTATUS, *PNTSTATUS; +#ifndef WINE_NTSTATUS_DECLARED +#define WINE_NTSTATUS_DECLARED +typedef LONG NTSTATUS; +#endif + +#ifdef __cplusplus +extern "C" { #endif enum tagPROPVAR_CHANGE_FLAGS @@ -69,26 +73,42 @@ HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT p HRESULT WINAPI InitPropVariantFromGUIDAsString(REFGUID guid, PROPVARIANT *ppropvar); HRESULT WINAPI InitVariantFromGUIDAsString(REFGUID guid, VARIANT *pvar); HRESULT WINAPI InitPropVariantFromBuffer(const VOID *pv, UINT cb, PROPVARIANT *ppropvar); +HRESULT WINAPI InitPropVariantFromCLSID(REFCLSID clsid, PROPVARIANT *ppropvar); HRESULT WINAPI InitVariantFromBuffer(const VOID *pv, UINT cb, VARIANT *pvar); HRESULT WINAPI PropVariantToGUID(const PROPVARIANT *ppropvar, GUID *guid); HRESULT WINAPI VariantToGUID(const VARIANT *pvar, GUID *guid); INT WINAPI PropVariantCompareEx(REFPROPVARIANT propvar1, REFPROPVARIANT propvar2, PROPVAR_COMPARE_UNIT uint, PROPVAR_COMPARE_FLAGS flags); +HRESULT WINAPI InitPropVariantFromFileTime(const FILETIME *pftIn, PROPVARIANT *ppropvar); +HRESULT WINAPI PropVariantToDouble(REFPROPVARIANT propvarIn, double *ret); HRESULT WINAPI PropVariantToInt16(REFPROPVARIANT propvarIn, SHORT *ret); HRESULT WINAPI PropVariantToInt32(REFPROPVARIANT propvarIn, LONG *ret); HRESULT WINAPI PropVariantToInt64(REFPROPVARIANT propvarIn, LONGLONG *ret); HRESULT WINAPI PropVariantToUInt16(REFPROPVARIANT propvarIn, USHORT *ret); HRESULT WINAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret); HRESULT WINAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret); +HRESULT WINAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret); +HRESULT WINAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb); +HRESULT WINAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch); +PCWSTR WINAPI PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault); HRESULT WINAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret); #ifdef __cplusplus HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar); -HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromInt16(SHORT nVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromUInt16(USHORT uiVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromInt32(LONG lVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromUInt32(ULONG ulVal, PROPVARIANT *ppropvar); HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromUInt64(ULONGLONG ullVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromDouble(DOUBLE dblVal, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar); +HRESULT InitPropVariantFromGUIDAsBuffer(REFGUID guid, PROPVARIANT *ppropvar); +WINBOOL IsPropVariantVector(REFPROPVARIANT propvar); +WINBOOL IsPropVariantString(REFPROPVARIANT propvar); #ifndef NO_PROPVAR_INLINES @@ -99,6 +119,55 @@ inline HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar) return S_OK; } +inline HRESULT InitPropVariantFromInt16(SHORT nVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_I2; + ppropvar->iVal = nVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromUInt16(USHORT uiVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_UI2; + ppropvar->uiVal = uiVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromInt32(LONG lVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_I4; + ppropvar->lVal = lVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromUInt32(ULONG ulVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_UI4; + ppropvar->ulVal = ulVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_I8; + ppropvar->hVal.QuadPart = llVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromUInt64(ULONGLONG ullVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_UI8; + ppropvar->uhVal.QuadPart = ullVal; + return S_OK; +} + +inline HRESULT InitPropVariantFromDouble(DOUBLE dblVal, PROPVARIANT *ppropvar) +{ + ppropvar->vt = VT_R8; + ppropvar->dblVal = dblVal; + return S_OK; +} + inline HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar) { HRESULT hres; @@ -112,14 +181,31 @@ inline HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar) return hres; } -inline HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar) +inline HRESULT InitPropVariantFromGUIDAsBuffer(REFGUID guid, PROPVARIANT *ppropvar) { - ppropvar->vt = VT_I8; - ppropvar->hVal.QuadPart = llVal; - return S_OK; +#ifdef __cplusplus + return InitPropVariantFromBuffer(&guid, sizeof(GUID), ppropvar); +#else + return InitPropVariantFromBuffer(guid, sizeof(GUID), ppropvar); +#endif } -#endif +inline WINBOOL IsPropVariantVector(REFPROPVARIANT propvar) +{ + return (propvar.vt & (VT_ARRAY | VT_VECTOR)); +} + +inline WINBOOL IsPropVariantString(REFPROPVARIANT propvar) +{ + return (PropVariantToStringWithDefault(propvar, NULL) != NULL); +} + +#endif /* NO_PROPVAR_INLINES */ +#endif /* __cplusplus */ + + +#ifdef __cplusplus +} #endif #endif /* __WINE_PROPVARUTIL_H */ diff --git a/lib/libc/include/any-windows-any/psdk_inc/_dbg_common.h b/lib/libc/include/any-windows-any/psdk_inc/_dbg_common.h index 48f2b9d7dd..f11d3c9e8f 100644 --- a/lib/libc/include/any-windows-any/psdk_inc/_dbg_common.h +++ b/lib/libc/include/any-windows-any/psdk_inc/_dbg_common.h @@ -192,7 +192,12 @@ extern "C" { DWORD64 KiUserExceptionDispatcher; DWORD64 StackBase; DWORD64 StackLimit; - DWORD64 Reserved[5]; + DWORD BuildVersion; + DWORD RetpolineStubFunctionTableSize; + DWORD64 RetpolineStubFunctionTable; + DWORD RetpolineStubOffset; + DWORD RetpolineStubSize; + DWORD64 Reserved0[2]; } KDHELP64,*PKDHELP64; #ifdef _IMAGEHLP64 @@ -242,6 +247,25 @@ extern "C" { KDHELP64 KdHelp; } STACKFRAME64,*LPSTACKFRAME64; +#define INLINE_FRAME_CONTEXT_INIT 0 +#define INLINE_FRAME_CONTEXT_IGNORE 0xFFFFFFFF + + typedef struct _tagSTACKFRAME_EX { + ADDRESS64 AddrPC; + ADDRESS64 AddrReturn; + ADDRESS64 AddrFrame; + ADDRESS64 AddrStack; + ADDRESS64 AddrBStore; + PVOID FuncTableEntry; + DWORD64 Params[4]; + WINBOOL Far; + WINBOOL Virtual; + DWORD64 Reserved[3]; + KDHELP64 KdHelp; + DWORD StackFrameSize; + DWORD InlineFrameContext; + } STACKFRAME_EX,*LPSTACKFRAME_EX; + #ifdef _IMAGEHLP64 #define STACKFRAME STACKFRAME64 #define LPSTACKFRAME LPSTACKFRAME64 @@ -336,6 +360,18 @@ GetModuleBaseRoutine,PTRANSLATE_ADDRESS_ROUTINE TranslateAddress); #define SYMFLAG_VIRTUAL 0x00001000 #define SYMFLAG_THUNK 0x00002000 #define SYMFLAG_TLSREL 0x00004000 +#define SYMFLAG_SLOT 0x00008000 +#define SYMFLAG_ILREL 0x00010000 +#define SYMFLAG_METADATA 0x00020000 +#define SYMFLAG_CLR_TOKEN 0x00040000 +#define SYMFLAG_NULL 0x00080000 +#define SYMFLAG_FUNC_NO_RETURN 0x00100000 +#define SYMFLAG_SYNTHETIC_ZEROBASE 0x00200000 +#define SYMFLAG_PUBLIC_CODE 0x00400000 +#define SYMFLAG_REGREL_ALIASINDIR 0x00800000 +#define SYMFLAG_FIXUP_ARM64X 0x01000000 +#define SYMFLAG_GLOBAL 0x02000000 +#define SYMFLAG_RESET 0x80000000 typedef enum { SymNone = 0, @@ -411,8 +447,15 @@ GetModuleBaseRoutine,PTRANSLATE_ADDRESS_ROUTINE TranslateAddress); WINBOOL TypeInfo; WINBOOL SourceIndexed; WINBOOL Publics; + DWORD MachineType; + DWORD Reserved; } IMAGEHLP_MODULE64,*PIMAGEHLP_MODULE64; + typedef struct _IMAGEHLP_MODULE64_EX { + IMAGEHLP_MODULE64 Module; + DWORD RegionFlags; + } IMAGEHLP_MODULE64_EX,*PIMAGEHLP_MODULE64_EX; + typedef struct _IMAGEHLP_MODULE64W { DWORD SizeOfStruct; DWORD64 BaseOfImage; @@ -437,8 +480,15 @@ GetModuleBaseRoutine,PTRANSLATE_ADDRESS_ROUTINE TranslateAddress); WINBOOL TypeInfo; WINBOOL SourceIndexed; WINBOOL Publics; + DWORD MachineType; + DWORD Reserved; } IMAGEHLP_MODULEW64,*PIMAGEHLP_MODULEW64; + typedef struct _IMAGEHLP_MODULEW64_EX { + IMAGEHLP_MODULEW64 Module; + DWORD RegionFlags; + } IMAGEHLP_MODULEW64_EX,*PIMAGEHLP_MODULEW64_EX; + #ifdef _IMAGEHLP64 #define IMAGEHLP_MODULE IMAGEHLP_MODULE64 #define PIMAGEHLP_MODULE PIMAGEHLP_MODULE64 @@ -1137,6 +1187,11 @@ typedef struct _SYMSRV_INDEX_INFOW { ThreadInfoListStream = 17, HandleOperationListStream = 18, TokenStream = 19, + JavaScriptDataStream = 20, + SystemMemoryInfoStream = 21, + ProcessVmCountersStream = 22, + IptTraceStream = 23, + ThreadNamesStream = 24, ceStreamNull = 0x8000, ceStreamSystemInfo = 0x8001, ceStreamException = 0x8002, @@ -1283,6 +1338,25 @@ typedef struct _SYMSRV_INDEX_INFOW { WINBOOL ClientPointers; } MINIDUMP_EXCEPTION_INFORMATION64,*PMINIDUMP_EXCEPTION_INFORMATION64; + typedef enum _MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE { + MiniHandleObjectInformationNone, + MiniThreadInformation1, + MiniMutantInformation1, + MiniMutantInformation2, + MiniProcessInformation1, + MiniProcessInformation2, + MiniEventInformation1, + MiniSectionInformation1, + MiniSemaphoreInformation1, + MiniHandleObjectInformationTypeMax + } MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE; + + typedef struct _MINIDUMP_HANDLE_OBJECT_INFORMATION { + RVA NextInfoRva; + ULONG32 InfoType; + ULONG32 SizeOfInfo; + } MINIDUMP_HANDLE_OBJECT_INFORMATION; + typedef struct _MINIDUMP_HANDLE_DESCRIPTOR { ULONG64 Handle; RVA TypeNameRva; @@ -1376,12 +1450,20 @@ typedef struct _SYMSRV_INDEX_INFOW { IoWriteAllCallback, IoFinishCallback, ReadMemoryFailureCallback, - SecondaryFlagsCallback + SecondaryFlagsCallback, + IsProcessSnapshotCallback, + VmStartCallback, + VmQueryCallback, + VmPreReadCallback, + VmPostReadCallback } MINIDUMP_CALLBACK_TYPE; typedef struct _MINIDUMP_THREAD_CALLBACK { ULONG ThreadId; HANDLE ThreadHandle; +#if defined(__aarch64__) + ULONG Pad; +#endif CONTEXT Context; ULONG SizeOfContext; ULONG64 StackBase; @@ -1391,6 +1473,9 @@ typedef struct _SYMSRV_INDEX_INFOW { typedef struct _MINIDUMP_THREAD_EX_CALLBACK { ULONG ThreadId; HANDLE ThreadHandle; +#if defined(__aarch64__) + ULONG Pad; +#endif CONTEXT Context; ULONG SizeOfContext; ULONG64 StackBase; @@ -1531,7 +1616,13 @@ typedef struct _MINIDUMP_MEMORY_INFO_LIST { MiniDumpWithFullAuxiliaryState = 0x00008000, MiniDumpWithPrivateWriteCopyMemory = 0x00010000, MiniDumpIgnoreInaccessibleMemory = 0x00020000, - MiniDumpWithTokenInformation = 0x00040000 + MiniDumpWithTokenInformation = 0x00040000, + MiniDumpWithModuleHeaders = 0x00080000, + MiniDumpFilterTriage = 0x00100000, + MiniDumpWithAvxXStateContext = 0x00200000, + MiniDumpWithIptTrace = 0x00400000, + MiniDumpScanInaccessiblePartialPages = 0x00800000, + MiniDumpValidTypeFlags = 0x00ffffff } MINIDUMP_TYPE; #define MINIDUMP_THREAD_INFO_ERROR_THREAD 0x00000001 diff --git a/lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h b/lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h index 5ca7bb3861..1840ecb3b5 100644 --- a/lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h +++ b/lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h @@ -4,9 +4,18 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ +/* + * Shared data types between winsock and winsock2 + */ + #ifndef _MINGW_IP_MREQ1_H #define _MINGW_IP_MREQ1_H #include <inaddr.h> +typedef struct ip_mreq { + struct in_addr imr_multiaddr; + struct in_addr imr_interface; +} IP_MREQ, *PIP_MREQ; + #endif /* _MINGW_IP_MREQ1_H */ diff --git a/lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h b/lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h index 27cc26acbe..3ee404d6af 100644 --- a/lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h +++ b/lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h @@ -1424,6 +1424,123 @@ unsigned char _BitScanReverse64(unsigned __LONG32 *Index, unsigned __int64 Mask) #endif /* __INTRINSIC_PROLOG */ #endif /* defined(__aarch64__) || define(_ARM64_) */ + +#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) + +#if __INTRINSIC_PROLOG(_bittest) +unsigned char _bittest(const __LONG32 *__a, __LONG32 __b); +#if !__has_builtin(_bittest) +__INTRINSICS_USEINLINE +unsigned char _bittest(const __LONG32 *__a, __LONG32 __b) +{ + return (*__a >> __b) & 1; +} +#endif +#define __INTRINSIC_DEFINED__bittest +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandset) +unsigned char _bittestandset(__LONG32 *__a, __LONG32 __b); +#if !__has_builtin(_bittestandset) +__INTRINSICS_USEINLINE +unsigned char _bittestandset(__LONG32 *__a, __LONG32 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a |= 1UL << __b; + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandset +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandreset) +unsigned char _bittestandreset(__LONG32 *__a, __LONG32 __b); +#if !__has_builtin(_bittestandreset) +__INTRINSICS_USEINLINE +unsigned char _bittestandreset(__LONG32 *__a, __LONG32 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a &= ~(1UL << __b); + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandreset +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandcomplement) +unsigned char _bittestandcomplement(__LONG32 *a, __LONG32 b); +#if !__has_builtin(_bittestandcomplement) +__INTRINSICS_USEINLINE +unsigned char _bittestandcomplement(__LONG32 *__a, __LONG32 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a ^= 1UL << __b; + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandcomplement +#endif /* __INTRINSIC_PROLOG */ + +#endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */ + +#if defined(__aarch64__) || defined(_ARM64_) + +#if __INTRINSIC_PROLOG(_bittest64) +unsigned char _bittest64(const __int64 *__a, __int64 __b); +#if !__has_builtin(_bittest64) +__INTRINSICS_USEINLINE +unsigned char _bittest64(const __int64 *__a, __int64 __b) +{ + return (*__a >> __b) & 1; +} +#endif +#define __INTRINSIC_DEFINED__bittest64 +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandset64) +unsigned char _bittestandset64(__int64 *__a, __int64 __b); +#if !__has_builtin(_bittestandset64) +__INTRINSICS_USEINLINE +unsigned char _bittestandset64(__int64 *__a, __int64 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a |= 1ULL << __b; + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandset64 +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandreset64) +unsigned char _bittestandreset64(__int64 *__a, __int64 __b); +#if !__has_builtin(_bittestandreset64) +__INTRINSICS_USEINLINE +unsigned char _bittestandreset64(__int64 *__a, __int64 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a &= ~(1ULL << __b); + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandreset64 +#endif /* __INTRINSIC_PROLOG */ + +#if __INTRINSIC_PROLOG(_bittestandcomplement64) +unsigned char _bittestandcomplement64(__int64 *a, __int64 b); +#if !__has_builtin(_bittestandcomplement64) +__INTRINSICS_USEINLINE +unsigned char _bittestandcomplement64(__int64 *__a, __int64 __b) +{ + unsigned char __v = (*__a >> __b) & 1; + *__a ^= 1ULL << __b; + return __v; +} +#endif +#define __INTRINSIC_DEFINED__bittestandcomplement64 +#endif /* __INTRINSIC_PROLOG */ + +#endif /* defined(__aarch64__) || define(_ARM64_) */ + /* ***************************************************** */ #if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) @@ -1906,6 +2023,7 @@ void __cpuid(int CPUInfo[4], int InfoType) { #define __INTRINSIC_DEFINED___cpuid #endif /* __INTRINSIC_PROLOG */ +#if (!defined(__GNUC__) || __GNUC__ < 11) #if __INTRINSIC_PROLOG(__cpuidex) void __cpuidex(int CPUInfo[4], int, int); #if !__has_builtin(__cpuidex) @@ -1919,6 +2037,7 @@ void __cpuidex(int CPUInfo[4], int function_id, int subfunction_id) { #endif #define __INTRINSIC_DEFINED___cpuidex #endif /* __INTRINSIC_PROLOG */ +#endif /* __GNUC__ < 11 */ #if __INTRINSIC_PROLOG(__readmsr) __MINGW_EXTENSION unsigned __int64 __readmsr(unsigned __LONG32); diff --git a/lib/libc/include/any-windows-any/qedit.h b/lib/libc/include/any-windows-any/qedit.h index 17cf22f558..7c113a6a8d 100644 --- a/lib/libc/include/any-windows-any/qedit.h +++ b/lib/libc/include/any-windows-any/qedit.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/qedit.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/qedit.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/qnetwork.h b/lib/libc/include/any-windows-any/qnetwork.h index 9a59e93bcf..0347335171 100644 --- a/lib/libc/include/any-windows-any/qnetwork.h +++ b/lib/libc/include/any-windows-any/qnetwork.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/qnetwork.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/qnetwork.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/rdpencomapi.h b/lib/libc/include/any-windows-any/rdpencomapi.h index 1241fd3dbd..bc0c3ca600 100644 --- a/lib/libc/include/any-windows-any/rdpencomapi.h +++ b/lib/libc/include/any-windows-any/rdpencomapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/rdpencomapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/rdpencomapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/regbag.h b/lib/libc/include/any-windows-any/regbag.h index e51b862a49..51cbd27ea4 100644 --- a/lib/libc/include/any-windows-any/regbag.h +++ b/lib/libc/include/any-windows-any/regbag.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/regbag.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/regbag.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/relogger.h b/lib/libc/include/any-windows-any/relogger.h index ea671e8a15..5888f0887c 100644 --- a/lib/libc/include/any-windows-any/relogger.h +++ b/lib/libc/include/any-windows-any/relogger.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/relogger.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/relogger.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/rtworkq.h b/lib/libc/include/any-windows-any/rtworkq.h index b55a84fcc5..06704ebd94 100644 --- a/lib/libc/include/any-windows-any/rtworkq.h +++ b/lib/libc/include/any-windows-any/rtworkq.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/rtworkq.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/rtworkq.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/sal.h b/lib/libc/include/any-windows-any/sal.h index de4938fba5..4848a768c7 100644 --- a/lib/libc/include/any-windows-any/sal.h +++ b/lib/libc/include/any-windows-any/sal.h @@ -295,6 +295,10 @@ #define _Deref_out_range_(low, hi) #define _Deref_inout_range_(low, hi) #define _Struct_size_bytes_(size) +#define _Deref_out_ +#define _Deref_out_opt_ +#define _Deref_opt_out_ +#define _Deref_opt_out_opt_ /* Function annotations */ #define _Called_from_function_class_(name) diff --git a/lib/libc/include/any-windows-any/sapi51.h b/lib/libc/include/any-windows-any/sapi51.h index 8052ccf5b0..23497a6ab9 100644 --- a/lib/libc/include/any-windows-any/sapi51.h +++ b/lib/libc/include/any-windows-any/sapi51.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/sapi51.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/sapi51.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/sapi53.h b/lib/libc/include/any-windows-any/sapi53.h index c4f1bfdf8a..bcbbc75240 100644 --- a/lib/libc/include/any-windows-any/sapi53.h +++ b/lib/libc/include/any-windows-any/sapi53.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/sapi53.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/sapi53.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/sapi54.h b/lib/libc/include/any-windows-any/sapi54.h index dfcaa6a4b7..39d8e71f6b 100644 --- a/lib/libc/include/any-windows-any/sapi54.h +++ b/lib/libc/include/any-windows-any/sapi54.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/sapi54.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/sapi54.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/sdkddkver.h b/lib/libc/include/any-windows-any/sdkddkver.h index 44b5fb2f15..2c214b2d35 100644 --- a/lib/libc/include/any-windows-any/sdkddkver.h +++ b/lib/libc/include/any-windows-any/sdkddkver.h @@ -144,8 +144,9 @@ #define NTDDI_WIN10_VB 0x0A000008 #define NTDDI_WIN10_MN 0x0A000009 #define NTDDI_WIN10_FE 0x0A00000A +#define NTDDI_WIN10_CO 0x0A00000B -#define WDK_NTDDI_VERSION NTDDI_WIN10_FE +#define WDK_NTDDI_VERSION NTDDI_WIN10_CO /* Version Fields in NTDDI_VERSION */ #define OSVERSION_MASK 0xFFFF0000U diff --git a/lib/libc/include/any-windows-any/sensorsapi.h b/lib/libc/include/any-windows-any/sensorsapi.h index c13957aecc..f3fd74a17c 100644 --- a/lib/libc/include/any-windows-any/sensorsapi.h +++ b/lib/libc/include/any-windows-any/sensorsapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/sensorsapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/sensorsapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/servprov.h b/lib/libc/include/any-windows-any/servprov.h index 612702918f..79726f4982 100644 --- a/lib/libc/include/any-windows-any/servprov.h +++ b/lib/libc/include/any-windows-any/servprov.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/servprov.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/servprov.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/setjmp.h b/lib/libc/include/any-windows-any/setjmp.h index eb772a34b3..3869c0870a 100644 --- a/lib/libc/include/any-windows-any/setjmp.h +++ b/lib/libc/include/any-windows-any/setjmp.h @@ -128,7 +128,9 @@ extern "C" { __MINGW_EXTENSION unsigned __int64 R14; __MINGW_EXTENSION unsigned __int64 R15; __MINGW_EXTENSION unsigned __int64 Rip; - __MINGW_EXTENSION unsigned __int64 Spare; + unsigned long MxCsr; + unsigned short FpCsr; + unsigned short Spare; SETJMP_FLOAT128 Xmm6; SETJMP_FLOAT128 Xmm7; SETJMP_FLOAT128 Xmm8; @@ -231,7 +233,7 @@ void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp (void); # elif defined(__SEH__) # if defined(__aarch64__) || defined(_ARM64_) # define setjmp(BUF) _setjmp((BUF), __builtin_sponentry()) -# elif (__MINGW_GCC_VERSION < 40702) +# elif (__MINGW_GCC_VERSION < 40702) && !defined(__clang__) # define setjmp(BUF) _setjmp((BUF), mingw_getsp()) # else # define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0)) @@ -244,7 +246,7 @@ void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp (void); # else # undef setjmp # ifdef __SEH__ -# if (__MINGW_GCC_VERSION < 40702) +# if (__MINGW_GCC_VERSION < 40702) && !defined(__clang__) # define setjmp(BUF) _setjmpex((BUF), mingw_getsp()) # define setjmpex(BUF) _setjmpex((BUF), mingw_getsp()) # else diff --git a/lib/libc/include/any-windows-any/shldisp.h b/lib/libc/include/any-windows-any/shldisp.h index 0cf8d98451..8b934df91f 100644 --- a/lib/libc/include/any-windows-any/shldisp.h +++ b/lib/libc/include/any-windows-any/shldisp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/shldisp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/shldisp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/shobjidl.h b/lib/libc/include/any-windows-any/shobjidl.h index bd1633aeb9..87b57bcc26 100644 --- a/lib/libc/include/any-windows-any/shobjidl.h +++ b/lib/libc/include/any-windows-any/shobjidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/shobjidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/shobjidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -1562,6 +1562,14 @@ interface IDesktopGadget; #endif /* __cplusplus */ #endif +#ifndef __IVirtualDesktopManager_FWD_DEFINED__ +#define __IVirtualDesktopManager_FWD_DEFINED__ +typedef interface IVirtualDesktopManager IVirtualDesktopManager; +#ifdef __cplusplus +interface IVirtualDesktopManager; +#endif /* __cplusplus */ +#endif + #ifndef __IDesktopWallpaper_FWD_DEFINED__ #define __IDesktopWallpaper_FWD_DEFINED__ typedef interface IDesktopWallpaper IDesktopWallpaper; @@ -2246,6 +2254,15 @@ typedef struct ExecuteFolder ExecuteFolder; #endif /* defined __cplusplus */ #endif /* defined __ExecuteFolder_FWD_DEFINED__ */ +#ifndef __VirtualDesktopManager_FWD_DEFINED__ +#define __VirtualDesktopManager_FWD_DEFINED__ +#ifdef __cplusplus +typedef class VirtualDesktopManager VirtualDesktopManager; +#else +typedef struct VirtualDesktopManager VirtualDesktopManager; +#endif /* defined __cplusplus */ +#endif /* defined __VirtualDesktopManager_FWD_DEFINED__ */ + #ifndef __IAssocHandlerInvoker_FWD_DEFINED__ #define __IAssocHandlerInvoker_FWD_DEFINED__ typedef interface IAssocHandlerInvoker IAssocHandlerInvoker; @@ -30555,6 +30572,114 @@ static FORCEINLINE HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR #endif /* __IDesktopGadget_INTERFACE_DEFINED__ */ +#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) +/***************************************************************************** + * IVirtualDesktopManager interface + */ +#ifndef __IVirtualDesktopManager_INTERFACE_DEFINED__ +#define __IVirtualDesktopManager_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a5cd92ff-29be-454c-8d04-d82879fb3f1b") +IVirtualDesktopManager : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsWindowOnCurrentVirtualDesktop( + HWND topLevelWindow, + WINBOOL *onCurrentDesktop) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWindowDesktopId( + HWND topLevelWindow, + GUID *desktopId) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveWindowToDesktop( + HWND topLevelWindow, + REFGUID desktopId) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b) +#endif +#else +typedef struct IVirtualDesktopManagerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVirtualDesktopManager *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVirtualDesktopManager *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVirtualDesktopManager *This); + + /*** IVirtualDesktopManager methods ***/ + HRESULT (STDMETHODCALLTYPE *IsWindowOnCurrentVirtualDesktop)( + IVirtualDesktopManager *This, + HWND topLevelWindow, + WINBOOL *onCurrentDesktop); + + HRESULT (STDMETHODCALLTYPE *GetWindowDesktopId)( + IVirtualDesktopManager *This, + HWND topLevelWindow, + GUID *desktopId); + + HRESULT (STDMETHODCALLTYPE *MoveWindowToDesktop)( + IVirtualDesktopManager *This, + HWND topLevelWindow, + REFGUID desktopId); + + END_INTERFACE +} IVirtualDesktopManagerVtbl; + +interface IVirtualDesktopManager { + CONST_VTBL IVirtualDesktopManagerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVirtualDesktopManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVirtualDesktopManager_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVirtualDesktopManager_Release(This) (This)->lpVtbl->Release(This) +/*** IVirtualDesktopManager methods ***/ +#define IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop) (This)->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop) +#define IVirtualDesktopManager_GetWindowDesktopId(This,topLevelWindow,desktopId) (This)->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId) +#define IVirtualDesktopManager_MoveWindowToDesktop(This,topLevelWindow,desktopId) (This)->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVirtualDesktopManager_QueryInterface(IVirtualDesktopManager* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVirtualDesktopManager_AddRef(IVirtualDesktopManager* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVirtualDesktopManager_Release(IVirtualDesktopManager* This) { + return This->lpVtbl->Release(This); +} +/*** IVirtualDesktopManager methods ***/ +static FORCEINLINE HRESULT IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,WINBOOL *onCurrentDesktop) { + return This->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop); +} +static FORCEINLINE HRESULT IVirtualDesktopManager_GetWindowDesktopId(IVirtualDesktopManager* This,HWND topLevelWindow,GUID *desktopId) { + return This->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId); +} +static FORCEINLINE HRESULT IVirtualDesktopManager_MoveWindowToDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,REFGUID desktopId) { + return This->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId); +} +#endif +#endif + +#endif + + +#endif /* __IVirtualDesktopManager_INTERFACE_DEFINED__ */ + +#endif + #if NTDDI_VERSION >= NTDDI_WIN8 /***************************************************************************** * IDesktopWallpaper interface @@ -32797,6 +32922,19 @@ __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46, #endif #endif +/***************************************************************************** + * VirtualDesktopManager coclass + */ + +DEFINE_GUID(CLSID_VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a); + +#ifdef __cplusplus +class DECLSPEC_UUID("aa509086-5ca9-4c25-8f95-589d3c07b48a") VirtualDesktopManager; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a) +#endif +#endif + #endif /* __ShellObjects_LIBRARY_DEFINED__ */ #if NTDDI_VERSION >= NTDDI_VISTA diff --git a/lib/libc/include/any-windows-any/shtypes.h b/lib/libc/include/any-windows-any/shtypes.h index 1e98d7be15..5a79f283f3 100644 --- a/lib/libc/include/any-windows-any/shtypes.h +++ b/lib/libc/include/any-windows-any/shtypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/shtypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/shtypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/spatialaudioclient.h b/lib/libc/include/any-windows-any/spatialaudioclient.h index 1bb13b43bd..55433a39a6 100644 --- a/lib/libc/include/any-windows-any/spatialaudioclient.h +++ b/lib/libc/include/any-windows-any/spatialaudioclient.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/spatialaudioclient.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/spatialaudioclient.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/spellcheck.h b/lib/libc/include/any-windows-any/spellcheck.h index 31d01b97fa..3fb4ddfaf0 100644 --- a/lib/libc/include/any-windows-any/spellcheck.h +++ b/lib/libc/include/any-windows-any/spellcheck.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/spellcheck.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/spellcheck.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/stdio.h b/lib/libc/include/any-windows-any/stdio.h index 0769e1e55c..76fffa177b 100644 --- a/lib/libc/include/any-windows-any/stdio.h +++ b/lib/libc/include/any-windows-any/stdio.h @@ -720,6 +720,8 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li int __cdecl setvbuf(FILE * __restrict__ _File,char * __restrict__ _Buf,int _Mode,size_t _Size); #ifdef _UCRT __mingw_ovr + __MINGW_ATTRIB_PURE + __attribute__((__format__ (__MINGW_PRINTF_FORMAT, 1, 2))) __MINGW_ATTRIB_NONNULL(1) int __cdecl _scprintf(const char * __restrict__ _Format,...) { __builtin_va_list __ap; @@ -730,6 +732,7 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li return __ret; } __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN + __attribute__((__format__ (__MINGW_SCANF_FORMAT, 3, 4))) __MINGW_ATTRIB_NONNULL(3) int __cdecl _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...) { __builtin_va_list __ap; @@ -740,9 +743,15 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li return __ret; } #else + __MINGW_ATTRIB_PURE + __attribute__((__format__ (ms_printf, 1, 2))) __MINGW_ATTRIB_NONNULL(1) _CRTIMP int __cdecl _scprintf(const char * __restrict__ _Format,...); + __attribute__((__format__ (ms_scanf, 3, 4))) __MINGW_ATTRIB_NONNULL(3) _CRTIMP int __cdecl _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; #endif + __MINGW_ATTRIB_PURE + __attribute__((__format__ (ms_printf, 1, 0))) __MINGW_ATTRIB_NONNULL(1) + _CRTIMP int __cdecl _vscprintf(const char * __restrict__ _Format,va_list _ArgList); FILE *__cdecl tmpfile(void) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; char *__cdecl tmpnam(char *_Buffer); int __cdecl ungetc(int _Ch,FILE *_File); @@ -844,6 +853,8 @@ char * tmpnam(char * __dst) #if __MINGW_FORTIFY_LEVEL > 0 __mingw_bos_ptr_chk_warn(__stream, __n, 1); #endif + if (__builtin_constant_p(__n) && __n == 0) + return _vscprintf(__format, __local_argv); return __ms_vsnprintf (__stream, __n, __format, __local_argv); } @@ -858,6 +869,8 @@ __attribute__((__format__ (ms_printf, 3, 4))) __MINGW_ATTRIB_NONNULL(3) int snprintf (char * __restrict__ __stream, size_t __n, const char * __restrict__ __format, ...) { __mingw_bos_ptr_chk_warn(__stream, __n, 1); + if (__builtin_constant_p(__n) && __n == 0) + return _scprintf(__format, __builtin_va_arg_pack()); return __ms_snprintf(__stream, __n, __format, __builtin_va_arg_pack()); } @@ -869,7 +882,10 @@ int snprintf (char * __restrict__ __stream, size_t __n, const char * __restrict_ { int __retval; __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); - __retval = __ms_vsnprintf (__stream, __n, __format, __local_argv); + if (__builtin_constant_p(__n) && __n == 0) + __retval = _vscprintf(__format, __local_argv); + else + __retval = __ms_vsnprintf (__stream, __n, __format, __local_argv); __builtin_va_end( __local_argv ); return __retval; } @@ -921,8 +937,6 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format, #endif /* _UCRT */ #endif /* __USE_MINGW_ANSI_STDIO */ - _CRTIMP int __cdecl _vscprintf(const char * __restrict__ _Format,va_list _ArgList); - _CRTIMP int __cdecl _set_printf_count_output(int _Value); _CRTIMP int __cdecl _get_printf_count_output(void); diff --git a/lib/libc/include/any-windows-any/strmif.h b/lib/libc/include/any-windows-any/strmif.h index 40a0867620..f90ab258be 100644 --- a/lib/libc/include/any-windows-any/strmif.h +++ b/lib/libc/include/any-windows-any/strmif.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/strmif.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/strmif.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/structuredquerycondition.h b/lib/libc/include/any-windows-any/structuredquerycondition.h index c3309b8b0d..bfd9440e25 100644 --- a/lib/libc/include/any-windows-any/structuredquerycondition.h +++ b/lib/libc/include/any-windows-any/structuredquerycondition.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/structuredquerycondition.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/structuredquerycondition.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/sys/timeb.h b/lib/libc/include/any-windows-any/sys/timeb.h index 7bfe98e0c2..8f69a46482 100644 --- a/lib/libc/include/any-windows-any/sys/timeb.h +++ b/lib/libc/include/any-windows-any/sys/timeb.h @@ -86,6 +86,16 @@ extern "C" { #define _ftime _ftime32 #endif +struct _timespec32 { + __time32_t tv_sec; + long tv_nsec; +}; + +struct _timespec64 { + __time64_t tv_sec; + long tv_nsec; +}; + #ifndef _TIMESPEC_DEFINED #define _TIMESPEC_DEFINED struct timespec { diff --git a/lib/libc/include/any-windows-any/taskschd.h b/lib/libc/include/any-windows-any/taskschd.h index bb06396f75..7037998882 100644 --- a/lib/libc/include/any-windows-any/taskschd.h +++ b/lib/libc/include/any-windows-any/taskschd.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/taskschd.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/taskschd.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/textstor.h b/lib/libc/include/any-windows-any/textstor.h index 86959dffb2..536599b1a8 100644 --- a/lib/libc/include/any-windows-any/textstor.h +++ b/lib/libc/include/any-windows-any/textstor.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/textstor.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/textstor.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/thumbcache.h b/lib/libc/include/any-windows-any/thumbcache.h index 9003d93a39..355d30a497 100644 --- a/lib/libc/include/any-windows-any/thumbcache.h +++ b/lib/libc/include/any-windows-any/thumbcache.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/thumbcache.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/thumbcache.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/time.h b/lib/libc/include/any-windows-any/time.h index ad4d52d111..b2a1631e2e 100644 --- a/lib/libc/include/any-windows-any/time.h +++ b/lib/libc/include/any-windows-any/time.h @@ -21,6 +21,9 @@ #endif /* _SECIMP */ #endif /* defined(_CRTBLD) || defined(__LIBMSVCRT__) */ +/* Adding timespec definition. */ +#include <sys/timeb.h> + #pragma pack(push,_CRT_PACKING) #ifdef __cplusplus @@ -110,6 +113,10 @@ extern "C" { #define CLOCKS_PER_SEC 1000 #ifdef _UCRT +#define TIME_UTC 1 +#endif + +#ifdef _UCRT _CRTIMP int *__cdecl __daylight(void); _CRTIMP long *__cdecl __dstbias(void); _CRTIMP long *__cdecl __timezone(void); @@ -146,6 +153,9 @@ extern "C" { _CRTIMP char *__cdecl _strtime(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_SEC_WARN; _SECIMP errno_t __cdecl _strtime_s (char *_Buf ,size_t _SizeInBytes); _CRTIMP __time32_t __cdecl _time32(__time32_t *_Time); +#ifdef _UCRT + _CRTIMP int __cdecl _timespec32_get(struct _timespec32 *_Ts, int _Base); +#endif _CRTIMP __time32_t __cdecl _mktime32(struct tm *_Tm); _CRTIMP __time32_t __cdecl _mkgmtime32(struct tm *_Tm); @@ -169,6 +179,9 @@ extern "C" { _CRTIMP __time64_t __cdecl _mktime64(struct tm *_Tm); _CRTIMP __time64_t __cdecl _mkgmtime64(struct tm *_Tm); _CRTIMP __time64_t __cdecl _time64(__time64_t *_Time); +#ifdef _UCRT + _CRTIMP int __cdecl _timespec64_get(struct _timespec64 *_Ts, int _Base); +#endif unsigned __cdecl _getsystime(struct tm *_Tm); unsigned __cdecl _setsystime(struct tm *_Tm,unsigned _MilliSec); @@ -217,6 +230,9 @@ extern "C" { #ifdef _USE_32BIT_TIME_T static __inline time_t __CRTDECL time(time_t *_Time) { return _time32(_Time); } +#ifdef _UCRT +static __inline int __CRTDECL timespec_get(struct timespec* _Ts, int _Base) { return _timespec32_get((struct _timespec32*)_Ts, _Base); } +#endif static __inline double __CRTDECL difftime(time_t _Time1,time_t _Time2) { return _difftime32(_Time1,_Time2); } static __inline struct tm *__CRTDECL localtime(const time_t *_Time) { return _localtime32(_Time); } static __inline errno_t __CRTDECL localtime_s(struct tm *_Tm,const time_t *_Time) { return _localtime32_s(_Tm,_Time); } @@ -228,6 +244,9 @@ static __inline time_t __CRTDECL mktime(struct tm *_Tm) { return _mktime32(_Tm); static __inline time_t __CRTDECL _mkgmtime(struct tm *_Tm) { return _mkgmtime32(_Tm); } #else static __inline time_t __CRTDECL time(time_t *_Time) { return _time64(_Time); } +#ifdef _UCRT +static __inline int __CRTDECL timespec_get(struct timespec* _Ts, int _Base) { return _timespec64_get((struct _timespec64*)_Ts, _Base); } +#endif static __inline double __CRTDECL difftime(time_t _Time1,time_t _Time2) { return _difftime64(_Time1,_Time2); } static __inline struct tm *__CRTDECL localtime(const time_t *_Time) { return _localtime64(_Time); } static __inline errno_t __CRTDECL localtime_s(struct tm *_Tm,const time_t *_Time) { return _localtime64_s(_Tm,_Time); } @@ -296,9 +315,6 @@ __forceinline char *__CRTDECL asctime_r(const struct tm *_Tm, char * _Str) { } #endif -/* Adding timespec definition. */ -#include <sys/timeb.h> - /* POSIX 2008 says clock_gettime and timespec are defined in time.h header, but other systems - like Linux, Solaris, etc - tend to declare such recent extensions only if the following guards are met. */ diff --git a/lib/libc/include/any-windows-any/timeapi.h b/lib/libc/include/any-windows-any/timeapi.h new file mode 100644 index 0000000000..159532ad59 --- /dev/null +++ b/lib/libc/include/any-windows-any/timeapi.h @@ -0,0 +1,12 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#ifndef _INC_TIMEAPI +#define _INC_TIMEAPI + +/* timeBeginPeriod and al are defined in mmsystem.h */ +#include <mmsystem.h> + +#endif diff --git a/lib/libc/include/any-windows-any/tlbref.h b/lib/libc/include/any-windows-any/tlbref.h index c9b7f44522..414baa2848 100644 --- a/lib/libc/include/any-windows-any/tlbref.h +++ b/lib/libc/include/any-windows-any/tlbref.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/tlbref.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/tlbref.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/tlogstg.h b/lib/libc/include/any-windows-any/tlogstg.h index 89f12362ea..e5f34e1c22 100644 --- a/lib/libc/include/any-windows-any/tlogstg.h +++ b/lib/libc/include/any-windows-any/tlogstg.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/tlogstg.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/tlogstg.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/tpcshrd.h b/lib/libc/include/any-windows-any/tpcshrd.h index f8ea4612dc..d4d3ce3fc6 100644 --- a/lib/libc/include/any-windows-any/tpcshrd.h +++ b/lib/libc/include/any-windows-any/tpcshrd.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/tpcshrd.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/tpcshrd.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/tsvirtualchannels.h b/lib/libc/include/any-windows-any/tsvirtualchannels.h new file mode 100644 index 0000000000..3cd69b8ce1 --- /dev/null +++ b/lib/libc/include/any-windows-any/tsvirtualchannels.h @@ -0,0 +1,1060 @@ +/*** Autogenerated by WIDL 7.0 from include/tsvirtualchannels.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __tsvirtualchannels_h__ +#define __tsvirtualchannels_h__ + +/* Forward declarations */ + +#ifndef __IWTSPlugin_FWD_DEFINED__ +#define __IWTSPlugin_FWD_DEFINED__ +typedef interface IWTSPlugin IWTSPlugin; +#ifdef __cplusplus +interface IWTSPlugin; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSListener_FWD_DEFINED__ +#define __IWTSListener_FWD_DEFINED__ +typedef interface IWTSListener IWTSListener; +#ifdef __cplusplus +interface IWTSListener; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSListenerCallback_FWD_DEFINED__ +#define __IWTSListenerCallback_FWD_DEFINED__ +typedef interface IWTSListenerCallback IWTSListenerCallback; +#ifdef __cplusplus +interface IWTSListenerCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__ +#define __IWTSVirtualChannelCallback_FWD_DEFINED__ +typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback; +#ifdef __cplusplus +interface IWTSVirtualChannelCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__ +#define __IWTSVirtualChannelManager_FWD_DEFINED__ +typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager; +#ifdef __cplusplus +interface IWTSVirtualChannelManager; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannel_FWD_DEFINED__ +#define __IWTSVirtualChannel_FWD_DEFINED__ +typedef interface IWTSVirtualChannel IWTSVirtualChannel; +#ifdef __cplusplus +interface IWTSVirtualChannel; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSPluginServiceProvider_FWD_DEFINED__ +#define __IWTSPluginServiceProvider_FWD_DEFINED__ +typedef interface IWTSPluginServiceProvider IWTSPluginServiceProvider; +#ifdef __cplusplus +interface IWTSPluginServiceProvider; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSBitmapRenderer_FWD_DEFINED__ +#define __IWTSBitmapRenderer_FWD_DEFINED__ +typedef interface IWTSBitmapRenderer IWTSBitmapRenderer; +#ifdef __cplusplus +interface IWTSBitmapRenderer; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSBitmapRendererCallback_FWD_DEFINED__ +#define __IWTSBitmapRendererCallback_FWD_DEFINED__ +typedef interface IWTSBitmapRendererCallback IWTSBitmapRendererCallback; +#ifdef __cplusplus +interface IWTSBitmapRendererCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSBitmapRenderService_FWD_DEFINED__ +#define __IWTSBitmapRenderService_FWD_DEFINED__ +typedef interface IWTSBitmapRenderService IWTSBitmapRenderService; +#ifdef __cplusplus +interface IWTSBitmapRenderService; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <unknwn.h> +#include <oaidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#ifndef __IWTSPlugin_FWD_DEFINED__ +#define __IWTSPlugin_FWD_DEFINED__ +typedef interface IWTSPlugin IWTSPlugin; +#ifdef __cplusplus +interface IWTSPlugin; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSListener_FWD_DEFINED__ +#define __IWTSListener_FWD_DEFINED__ +typedef interface IWTSListener IWTSListener; +#ifdef __cplusplus +interface IWTSListener; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSListenerCallback_FWD_DEFINED__ +#define __IWTSListenerCallback_FWD_DEFINED__ +typedef interface IWTSListenerCallback IWTSListenerCallback; +#ifdef __cplusplus +interface IWTSListenerCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__ +#define __IWTSVirtualChannelCallback_FWD_DEFINED__ +typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback; +#ifdef __cplusplus +interface IWTSVirtualChannelCallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__ +#define __IWTSVirtualChannelManager_FWD_DEFINED__ +typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager; +#ifdef __cplusplus +interface IWTSVirtualChannelManager; +#endif /* __cplusplus */ +#endif + +#ifndef __IWTSVirtualChannel_FWD_DEFINED__ +#define __IWTSVirtualChannel_FWD_DEFINED__ +typedef interface IWTSVirtualChannel IWTSVirtualChannel; +#ifdef __cplusplus +interface IWTSVirtualChannel; +#endif /* __cplusplus */ +#endif + +#define WTS_PROPERTY_DEFAULT_CONFIG L"DefaultConfig" +#define E_MAPPEDRENDERER_SHUTDOWN HRESULT_FROM_WIN32(ERROR_INVALID_STATE) +#define E_DUPLICATE_WINDOW_HINT HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) +/***************************************************************************** + * IWTSPlugin interface + */ +#ifndef __IWTSPlugin_INTERFACE_DEFINED__ +#define __IWTSPlugin_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230201-1439-4e62-a414-190d0ac3d40e") +IWTSPlugin : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + IWTSVirtualChannelManager *pChannelMgr) = 0; + + virtual HRESULT STDMETHODCALLTYPE Connected( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Disconnected( + DWORD dwDisconnectCode) = 0; + + virtual HRESULT STDMETHODCALLTYPE Terminated( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e) +#endif +#else +typedef struct IWTSPluginVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSPlugin *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSPlugin *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSPlugin *This); + + /*** IWTSPlugin methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IWTSPlugin *This, + IWTSVirtualChannelManager *pChannelMgr); + + HRESULT (STDMETHODCALLTYPE *Connected)( + IWTSPlugin *This); + + HRESULT (STDMETHODCALLTYPE *Disconnected)( + IWTSPlugin *This, + DWORD dwDisconnectCode); + + HRESULT (STDMETHODCALLTYPE *Terminated)( + IWTSPlugin *This); + + END_INTERFACE +} IWTSPluginVtbl; + +interface IWTSPlugin { + CONST_VTBL IWTSPluginVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSPlugin_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSPlugin_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSPlugin methods ***/ +#define IWTSPlugin_Initialize(This,pChannelMgr) (This)->lpVtbl->Initialize(This,pChannelMgr) +#define IWTSPlugin_Connected(This) (This)->lpVtbl->Connected(This) +#define IWTSPlugin_Disconnected(This,dwDisconnectCode) (This)->lpVtbl->Disconnected(This,dwDisconnectCode) +#define IWTSPlugin_Terminated(This) (This)->lpVtbl->Terminated(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSPlugin_QueryInterface(IWTSPlugin* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSPlugin_AddRef(IWTSPlugin* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSPlugin_Release(IWTSPlugin* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSPlugin methods ***/ +static FORCEINLINE HRESULT IWTSPlugin_Initialize(IWTSPlugin* This,IWTSVirtualChannelManager *pChannelMgr) { + return This->lpVtbl->Initialize(This,pChannelMgr); +} +static FORCEINLINE HRESULT IWTSPlugin_Connected(IWTSPlugin* This) { + return This->lpVtbl->Connected(This); +} +static FORCEINLINE HRESULT IWTSPlugin_Disconnected(IWTSPlugin* This,DWORD dwDisconnectCode) { + return This->lpVtbl->Disconnected(This,dwDisconnectCode); +} +static FORCEINLINE HRESULT IWTSPlugin_Terminated(IWTSPlugin* This) { + return This->lpVtbl->Terminated(This); +} +#endif +#endif + +#endif + + +#endif /* __IWTSPlugin_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSListener interface + */ +#ifndef __IWTSListener_INTERFACE_DEFINED__ +#define __IWTSListener_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230206-9a39-4d58-8674-cdb4dff4e73b") +IWTSListener : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetConfiguration( + IPropertyBag **ppPropertyBag) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b) +#endif +#else +typedef struct IWTSListenerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSListener *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSListener *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSListener *This); + + /*** IWTSListener methods ***/ + HRESULT (STDMETHODCALLTYPE *GetConfiguration)( + IWTSListener *This, + IPropertyBag **ppPropertyBag); + + END_INTERFACE +} IWTSListenerVtbl; + +interface IWTSListener { + CONST_VTBL IWTSListenerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSListener_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSListener_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSListener methods ***/ +#define IWTSListener_GetConfiguration(This,ppPropertyBag) (This)->lpVtbl->GetConfiguration(This,ppPropertyBag) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSListener_QueryInterface(IWTSListener* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSListener_AddRef(IWTSListener* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSListener_Release(IWTSListener* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSListener methods ***/ +static FORCEINLINE HRESULT IWTSListener_GetConfiguration(IWTSListener* This,IPropertyBag **ppPropertyBag) { + return This->lpVtbl->GetConfiguration(This,ppPropertyBag); +} +#endif +#endif + +#endif + + +#endif /* __IWTSListener_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSListenerCallback interface + */ +#ifndef __IWTSListenerCallback_INTERFACE_DEFINED__ +#define __IWTSListenerCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230203-d6a7-11d8-b9fd-000bdbd1f198") +IWTSListenerCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnNewChannelConnection( + IWTSVirtualChannel *pChannel, + BSTR data, + WINBOOL *pbAccept, + IWTSVirtualChannelCallback **ppCallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98) +#endif +#else +typedef struct IWTSListenerCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSListenerCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSListenerCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSListenerCallback *This); + + /*** IWTSListenerCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnNewChannelConnection)( + IWTSListenerCallback *This, + IWTSVirtualChannel *pChannel, + BSTR data, + WINBOOL *pbAccept, + IWTSVirtualChannelCallback **ppCallback); + + END_INTERFACE +} IWTSListenerCallbackVtbl; + +interface IWTSListenerCallback { + CONST_VTBL IWTSListenerCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSListenerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSListenerCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSListenerCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSListenerCallback methods ***/ +#define IWTSListenerCallback_OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback) (This)->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSListenerCallback_QueryInterface(IWTSListenerCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSListenerCallback_AddRef(IWTSListenerCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSListenerCallback_Release(IWTSListenerCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSListenerCallback methods ***/ +static FORCEINLINE HRESULT IWTSListenerCallback_OnNewChannelConnection(IWTSListenerCallback* This,IWTSVirtualChannel *pChannel,BSTR data,WINBOOL *pbAccept,IWTSVirtualChannelCallback **ppCallback) { + return This->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback); +} +#endif +#endif + +#endif + + +#endif /* __IWTSListenerCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSVirtualChannelCallback interface + */ +#ifndef __IWTSVirtualChannelCallback_INTERFACE_DEFINED__ +#define __IWTSVirtualChannelCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230204-d6a7-11d8-b9fd-000bdbd1f198") +IWTSVirtualChannelCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnDataReceived( + ULONG cbSize, + BYTE *pBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnClose( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98) +#endif +#else +typedef struct IWTSVirtualChannelCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSVirtualChannelCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSVirtualChannelCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSVirtualChannelCallback *This); + + /*** IWTSVirtualChannelCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnDataReceived)( + IWTSVirtualChannelCallback *This, + ULONG cbSize, + BYTE *pBuffer); + + HRESULT (STDMETHODCALLTYPE *OnClose)( + IWTSVirtualChannelCallback *This); + + END_INTERFACE +} IWTSVirtualChannelCallbackVtbl; + +interface IWTSVirtualChannelCallback { + CONST_VTBL IWTSVirtualChannelCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSVirtualChannelCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSVirtualChannelCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSVirtualChannelCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSVirtualChannelCallback methods ***/ +#define IWTSVirtualChannelCallback_OnDataReceived(This,cbSize,pBuffer) (This)->lpVtbl->OnDataReceived(This,cbSize,pBuffer) +#define IWTSVirtualChannelCallback_OnClose(This) (This)->lpVtbl->OnClose(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannelCallback_QueryInterface(IWTSVirtualChannelCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSVirtualChannelCallback_AddRef(IWTSVirtualChannelCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSVirtualChannelCallback_Release(IWTSVirtualChannelCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSVirtualChannelCallback methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnDataReceived(IWTSVirtualChannelCallback* This,ULONG cbSize,BYTE *pBuffer) { + return This->lpVtbl->OnDataReceived(This,cbSize,pBuffer); +} +static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnClose(IWTSVirtualChannelCallback* This) { + return This->lpVtbl->OnClose(This); +} +#endif +#endif + +#endif + + +#endif /* __IWTSVirtualChannelCallback_INTERFACE_DEFINED__ */ + +#define TS_VC_LISTENER_STATIC_CHANNEL 0x00000001 +/***************************************************************************** + * IWTSVirtualChannelManager interface + */ +#ifndef __IWTSVirtualChannelManager_INTERFACE_DEFINED__ +#define __IWTSVirtualChannelManager_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230205-d6a7-11d8-b9fd-000bdbd1f198") +IWTSVirtualChannelManager : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateListener( + const char *pszChannelName, + ULONG uFlags, + IWTSListenerCallback *pListenerCallback, + IWTSListener **ppListener) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98) +#endif +#else +typedef struct IWTSVirtualChannelManagerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSVirtualChannelManager *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSVirtualChannelManager *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSVirtualChannelManager *This); + + /*** IWTSVirtualChannelManager methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateListener)( + IWTSVirtualChannelManager *This, + const char *pszChannelName, + ULONG uFlags, + IWTSListenerCallback *pListenerCallback, + IWTSListener **ppListener); + + END_INTERFACE +} IWTSVirtualChannelManagerVtbl; + +interface IWTSVirtualChannelManager { + CONST_VTBL IWTSVirtualChannelManagerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSVirtualChannelManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSVirtualChannelManager_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSVirtualChannelManager_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSVirtualChannelManager methods ***/ +#define IWTSVirtualChannelManager_CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener) (This)->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannelManager_QueryInterface(IWTSVirtualChannelManager* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSVirtualChannelManager_AddRef(IWTSVirtualChannelManager* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSVirtualChannelManager_Release(IWTSVirtualChannelManager* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSVirtualChannelManager methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannelManager_CreateListener(IWTSVirtualChannelManager* This,const char *pszChannelName,ULONG uFlags,IWTSListenerCallback *pListenerCallback,IWTSListener **ppListener) { + return This->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener); +} +#endif +#endif + +#endif + + +#endif /* __IWTSVirtualChannelManager_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSVirtualChannel interface + */ +#ifndef __IWTSVirtualChannel_INTERFACE_DEFINED__ +#define __IWTSVirtualChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a1230207-d6a7-11d8-b9fd-000bdbd1f198") +IWTSVirtualChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Write( + ULONG cbSize, + BYTE *pBuffer, + IUnknown *pReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE Close( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98) +#endif +#else +typedef struct IWTSVirtualChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSVirtualChannel *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSVirtualChannel *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSVirtualChannel *This); + + /*** IWTSVirtualChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *Write)( + IWTSVirtualChannel *This, + ULONG cbSize, + BYTE *pBuffer, + IUnknown *pReserved); + + HRESULT (STDMETHODCALLTYPE *Close)( + IWTSVirtualChannel *This); + + END_INTERFACE +} IWTSVirtualChannelVtbl; + +interface IWTSVirtualChannel { + CONST_VTBL IWTSVirtualChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSVirtualChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSVirtualChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSVirtualChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSVirtualChannel methods ***/ +#define IWTSVirtualChannel_Write(This,cbSize,pBuffer,pReserved) (This)->lpVtbl->Write(This,cbSize,pBuffer,pReserved) +#define IWTSVirtualChannel_Close(This) (This)->lpVtbl->Close(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannel_QueryInterface(IWTSVirtualChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSVirtualChannel_AddRef(IWTSVirtualChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSVirtualChannel_Release(IWTSVirtualChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSVirtualChannel methods ***/ +static FORCEINLINE HRESULT IWTSVirtualChannel_Write(IWTSVirtualChannel* This,ULONG cbSize,BYTE *pBuffer,IUnknown *pReserved) { + return This->lpVtbl->Write(This,cbSize,pBuffer,pReserved); +} +static FORCEINLINE HRESULT IWTSVirtualChannel_Close(IWTSVirtualChannel* This) { + return This->lpVtbl->Close(This); +} +#endif +#endif + +#endif + + +#endif /* __IWTSVirtualChannel_INTERFACE_DEFINED__ */ + +EXTERN_GUID( RDCLIENT_BITMAP_RENDER_SERVICE, 0xe4cc08cb, 0x942e, 0x4b19, 0x85, 0x4, 0xbd, 0x5a, 0x89, 0xa7, 0x47, 0xf5); +/***************************************************************************** + * IWTSPluginServiceProvider interface + */ +#ifndef __IWTSPluginServiceProvider_INTERFACE_DEFINED__ +#define __IWTSPluginServiceProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d3e07363-087c-476c-86a7-dbb15f46ddb4") +IWTSPluginServiceProvider : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetService( + GUID ServiceId, + IUnknown **ppunkObject) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4) +#endif +#else +typedef struct IWTSPluginServiceProviderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSPluginServiceProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSPluginServiceProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSPluginServiceProvider *This); + + /*** IWTSPluginServiceProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *GetService)( + IWTSPluginServiceProvider *This, + GUID ServiceId, + IUnknown **ppunkObject); + + END_INTERFACE +} IWTSPluginServiceProviderVtbl; + +interface IWTSPluginServiceProvider { + CONST_VTBL IWTSPluginServiceProviderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSPluginServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSPluginServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSPluginServiceProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSPluginServiceProvider methods ***/ +#define IWTSPluginServiceProvider_GetService(This,ServiceId,ppunkObject) (This)->lpVtbl->GetService(This,ServiceId,ppunkObject) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSPluginServiceProvider_QueryInterface(IWTSPluginServiceProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSPluginServiceProvider_AddRef(IWTSPluginServiceProvider* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSPluginServiceProvider_Release(IWTSPluginServiceProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSPluginServiceProvider methods ***/ +static FORCEINLINE HRESULT IWTSPluginServiceProvider_GetService(IWTSPluginServiceProvider* This,GUID ServiceId,IUnknown **ppunkObject) { + return This->lpVtbl->GetService(This,ServiceId,ppunkObject); +} +#endif +#endif + +#endif + + +#endif /* __IWTSPluginServiceProvider_INTERFACE_DEFINED__ */ + +typedef struct __BITMAP_RENDERER_STATISTICS { + DWORD dwFramesDelivered; + DWORD dwFramesDropped; +} BITMAP_RENDERER_STATISTICS; +typedef struct __BITMAP_RENDERER_STATISTICS *PBITMAP_RENDERER_STATISTICS; +/***************************************************************************** + * IWTSBitmapRenderer interface + */ +#ifndef __IWTSBitmapRenderer_INTERFACE_DEFINED__ +#define __IWTSBitmapRenderer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5b7acc97-f3c9-46f7-8c5b-fa685d3441b1") +IWTSBitmapRenderer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Render( + GUID imageFormat, + DWORD dwWidth, + DWORD dwHeight, + LONG cbStride, + DWORD cbImageBuffer, + BYTE *pImageBuffer) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRendererStatistics( + BITMAP_RENDERER_STATISTICS *pStatistics) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveMapping( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1) +#endif +#else +typedef struct IWTSBitmapRendererVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSBitmapRenderer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSBitmapRenderer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSBitmapRenderer *This); + + /*** IWTSBitmapRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *Render)( + IWTSBitmapRenderer *This, + GUID imageFormat, + DWORD dwWidth, + DWORD dwHeight, + LONG cbStride, + DWORD cbImageBuffer, + BYTE *pImageBuffer); + + HRESULT (STDMETHODCALLTYPE *GetRendererStatistics)( + IWTSBitmapRenderer *This, + BITMAP_RENDERER_STATISTICS *pStatistics); + + HRESULT (STDMETHODCALLTYPE *RemoveMapping)( + IWTSBitmapRenderer *This); + + END_INTERFACE +} IWTSBitmapRendererVtbl; + +interface IWTSBitmapRenderer { + CONST_VTBL IWTSBitmapRendererVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSBitmapRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSBitmapRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSBitmapRenderer_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSBitmapRenderer methods ***/ +#define IWTSBitmapRenderer_Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer) (This)->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer) +#define IWTSBitmapRenderer_GetRendererStatistics(This,pStatistics) (This)->lpVtbl->GetRendererStatistics(This,pStatistics) +#define IWTSBitmapRenderer_RemoveMapping(This) (This)->lpVtbl->RemoveMapping(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRenderer_QueryInterface(IWTSBitmapRenderer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSBitmapRenderer_AddRef(IWTSBitmapRenderer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSBitmapRenderer_Release(IWTSBitmapRenderer* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSBitmapRenderer methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRenderer_Render(IWTSBitmapRenderer* This,GUID imageFormat,DWORD dwWidth,DWORD dwHeight,LONG cbStride,DWORD cbImageBuffer,BYTE *pImageBuffer) { + return This->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer); +} +static FORCEINLINE HRESULT IWTSBitmapRenderer_GetRendererStatistics(IWTSBitmapRenderer* This,BITMAP_RENDERER_STATISTICS *pStatistics) { + return This->lpVtbl->GetRendererStatistics(This,pStatistics); +} +static FORCEINLINE HRESULT IWTSBitmapRenderer_RemoveMapping(IWTSBitmapRenderer* This) { + return This->lpVtbl->RemoveMapping(This); +} +#endif +#endif + +#endif + + +#endif /* __IWTSBitmapRenderer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSBitmapRendererCallback interface + */ +#ifndef __IWTSBitmapRendererCallback_INTERFACE_DEFINED__ +#define __IWTSBitmapRendererCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d782928e-fe4e-4e77-ae90-9cd0b3e3b353") +IWTSBitmapRendererCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnTargetSizeChanged( + RECT rcNewSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53) +#endif +#else +typedef struct IWTSBitmapRendererCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSBitmapRendererCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSBitmapRendererCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSBitmapRendererCallback *This); + + /*** IWTSBitmapRendererCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *OnTargetSizeChanged)( + IWTSBitmapRendererCallback *This, + RECT rcNewSize); + + END_INTERFACE +} IWTSBitmapRendererCallbackVtbl; + +interface IWTSBitmapRendererCallback { + CONST_VTBL IWTSBitmapRendererCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSBitmapRendererCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSBitmapRendererCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSBitmapRendererCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSBitmapRendererCallback methods ***/ +#define IWTSBitmapRendererCallback_OnTargetSizeChanged(This,rcNewSize) (This)->lpVtbl->OnTargetSizeChanged(This,rcNewSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRendererCallback_QueryInterface(IWTSBitmapRendererCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSBitmapRendererCallback_AddRef(IWTSBitmapRendererCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSBitmapRendererCallback_Release(IWTSBitmapRendererCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSBitmapRendererCallback methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRendererCallback_OnTargetSizeChanged(IWTSBitmapRendererCallback* This,RECT rcNewSize) { + return This->lpVtbl->OnTargetSizeChanged(This,rcNewSize); +} +#endif +#endif + +#endif + + +#endif /* __IWTSBitmapRendererCallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWTSBitmapRenderService interface + */ +#ifndef __IWTSBitmapRenderService_INTERFACE_DEFINED__ +#define __IWTSBitmapRenderService_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ea326091-05fe-40c1-b49c-3d2ef4626a0e") +IWTSBitmapRenderService : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetMappedRenderer( + UINT64 mappingId, + IWTSBitmapRendererCallback *pMappedRendererCallback, + IWTSBitmapRenderer **ppMappedRenderer) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e) +#endif +#else +typedef struct IWTSBitmapRenderServiceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWTSBitmapRenderService *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWTSBitmapRenderService *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWTSBitmapRenderService *This); + + /*** IWTSBitmapRenderService methods ***/ + HRESULT (STDMETHODCALLTYPE *GetMappedRenderer)( + IWTSBitmapRenderService *This, + UINT64 mappingId, + IWTSBitmapRendererCallback *pMappedRendererCallback, + IWTSBitmapRenderer **ppMappedRenderer); + + END_INTERFACE +} IWTSBitmapRenderServiceVtbl; + +interface IWTSBitmapRenderService { + CONST_VTBL IWTSBitmapRenderServiceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWTSBitmapRenderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWTSBitmapRenderService_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWTSBitmapRenderService_Release(This) (This)->lpVtbl->Release(This) +/*** IWTSBitmapRenderService methods ***/ +#define IWTSBitmapRenderService_GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer) (This)->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRenderService_QueryInterface(IWTSBitmapRenderService* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWTSBitmapRenderService_AddRef(IWTSBitmapRenderService* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWTSBitmapRenderService_Release(IWTSBitmapRenderService* This) { + return This->lpVtbl->Release(This); +} +/*** IWTSBitmapRenderService methods ***/ +static FORCEINLINE HRESULT IWTSBitmapRenderService_GetMappedRenderer(IWTSBitmapRenderService* This,UINT64 mappingId,IWTSBitmapRendererCallback *pMappedRendererCallback,IWTSBitmapRenderer **ppMappedRenderer) { + return This->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer); +} +#endif +#endif + +#endif + + +#endif /* __IWTSBitmapRenderService_INTERFACE_DEFINED__ */ + +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); +unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); +unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); +void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __tsvirtualchannels_h__ */ diff --git a/lib/libc/include/any-windows-any/tuner.h b/lib/libc/include/any-windows-any/tuner.h index f7a5e077fe..c9eb04b8fd 100644 --- a/lib/libc/include/any-windows-any/tuner.h +++ b/lib/libc/include/any-windows-any/tuner.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/tuner.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/tuner.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/uianimation.h b/lib/libc/include/any-windows-any/uianimation.h index 044376b308..9ce8afacee 100644 --- a/lib/libc/include/any-windows-any/uianimation.h +++ b/lib/libc/include/any-windows-any/uianimation.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/uianimation.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/uianimation.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/uiautomationclient.h b/lib/libc/include/any-windows-any/uiautomationclient.h index 26356eb60b..15fd9c3fec 100644 --- a/lib/libc/include/any-windows-any/uiautomationclient.h +++ b/lib/libc/include/any-windows-any/uiautomationclient.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/uiautomationclient.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/uiautomationclient.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -31,6 +31,74 @@ extern "C" { DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc4,0x77,0xac,0xb2,0xf8,0x97); +#define UIA_InvokePatternId (10000) + +#define UIA_SelectionPatternId (10001) + +#define UIA_ValuePatternId (10002) + +#define UIA_RangeValuePatternId (10003) + +#define UIA_ScrollPatternId (10004) + +#define UIA_ExpandCollapsePatternId (10005) + +#define UIA_GridPatternId (10006) + +#define UIA_GridItemPatternId (10007) + +#define UIA_MultipleViewPatternId (10008) + +#define UIA_WindowPatternId (10009) + +#define UIA_SelectionItemPatternId (10010) + +#define UIA_DockPatternId (10011) + +#define UIA_TablePatternId (10012) + +#define UIA_TableItemPatternId (10013) + +#define UIA_TextPatternId (10014) + +#define UIA_TogglePatternId (10015) + +#define UIA_TransformPatternId (10016) + +#define UIA_ScrollItemPatternId (10017) + +#define UIA_LegacyIAccessiblePatternId (10018) + +#define UIA_ItemContainerPatternId (10019) + +#define UIA_VirtualizedItemPatternId (10020) + +#define UIA_SynchronizedInputPatternId (10021) + +#define UIA_ObjectModelPatternId (10022) + +#define UIA_AnnotationPatternId (10023) + +#define UIA_TextPattern2Id (10024) + +#define UIA_StylesPatternId (10025) + +#define UIA_SpreadsheetPatternId (10026) + +#define UIA_SpreadsheetItemPatternId (10027) + +#define UIA_TransformPattern2Id (10028) + +#define UIA_TextChildPatternId (10029) + +#define UIA_DragPatternId (10030) + +#define UIA_DropTargetPatternId (10031) + +#define UIA_TextEditPatternId (10032) + +#define UIA_CustomNavigationPatternId (10033) + #define UIA_RuntimeIdPropertyId (30000) #define UIA_BoundingRectanglePropertyId (30001) @@ -253,6 +321,134 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc #define UIA_IsSynchronizedInputPatternAvailablePropertyId (30110) +#define UIA_OptimizeForVisualContentPropertyId (30111) + +#define UIA_IsObjectModelPatternAvailablePropertyId (30112) + +#define UIA_AnnotationAnnotationTypeIdPropertyId (30113) + +#define UIA_AnnotationAnnotationTypeNamePropertyId (30114) + +#define UIA_AnnotationAuthorPropertyId (30115) + +#define UIA_AnnotationDateTimePropertyId (30116) + +#define UIA_AnnotationTargetPropertyId (30117) + +#define UIA_IsAnnotationPatternAvailablePropertyId (30118) + +#define UIA_IsTextPattern2AvailablePropertyId (30119) + +#define UIA_StylesStyleIdPropertyId (30120) + +#define UIA_StylesStyleNamePropertyId (30121) + +#define UIA_StylesFillColorPropertyId (30122) + +#define UIA_StylesFillPatternStylePropertyId (30123) + +#define UIA_StylesShapePropertyId (30124) + +#define UIA_StylesFillPatternColorPropertyId (30125) + +#define UIA_StylesExtendedPropertiesPropertyId (30126) + +#define UIA_IsStylesPatternAvailablePropertyId (30127) + +#define UIA_IsSpreadsheetPatternAvailablePropertyId (30128) + +#define UIA_SpreadsheetItemFormulaPropertyId (30129) + +#define UIA_SpreadsheetItemAnnotationObjectsPropertyId (30130) + +#define UIA_SpreadsheetItemAnnotationTypesPropertyId (30131) + +#define UIA_IsSpreadsheetItemPatternAvailablePropertyId (30132) + +#define UIA_Transform2CanZoomPropertyId (30133) + +#define UIA_IsTransformPattern2AvailablePropertyId (30134) + +#define UIA_LiveSettingPropertyId (30135) + +#define UIA_IsTextChildPatternAvailablePropertyId (30136) + +#define UIA_IsDragPatternAvailablePropertyId (30137) + +#define UIA_DragIsGrabbedPropertyId (30138) + +#define UIA_DragDropEffectPropertyId (30139) + +#define UIA_DragDropEffectsPropertyId (30140) + +#define UIA_IsDropTargetPatternAvailablePropertyId (30141) + +#define UIA_DropTargetDropTargetEffectPropertyId (30142) + +#define UIA_DropTargetDropTargetEffectsPropertyId (30143) + +#define UIA_DragGrabbedItemsPropertyId (30144) + +#define UIA_Transform2ZoomLevelPropertyId (30145) + +#define UIA_Transform2ZoomMinimumPropertyId (30146) + +#define UIA_Transform2ZoomMaximumPropertyId (30147) + +#define UIA_FlowsFromPropertyId (30148) + +#define UIA_IsTextEditPatternAvailablePropertyId (30149) + +#define UIA_IsPeripheralPropertyId (30150) + +#define UIA_IsCustomNavigationPatternAvailablePropertyId (30151) + +#define UIA_PositionInSetPropertyId (30152) + +#define UIA_SizeOfSetPropertyId (30153) + +#define UIA_LevelPropertyId (30154) + +#define UIA_AnnotationTypesPropertyId (30155) + +#define UIA_AnnotationObjectsPropertyId (30156) + +#define UIA_LandmarkTypePropertyId (30157) + +#define UIA_LocalizedLandmarkTypePropertyId (30158) + +#define UIA_FullDescriptionPropertyId (30159) + +#define UIA_FillColorPropertyId (30160) + +#define UIA_OutlineColorPropertyId (30161) + +#define UIA_FillTypePropertyId (30162) + +#define UIA_VisualEffectsPropertyId (30163) + +#define UIA_OutlineThicknessPropertyId (30164) + +#define UIA_CenterPointPropertyId (30165) + +#define UIA_RotationPropertyId (30166) + +#define UIA_SizePropertyId (30167) + +#define UIA_IsSelectionPattern2AvailablePropertyId (30168) + +#define UIA_Selection2FirstSelectedItemPropertyId (30169) + +#define UIA_Selection2LastSelectedItemPropertyId (30170) + +#define UIA_Selection2CurrentSelectedItemPropertyId (30171) + +#define UIA_Selection2ItemCountPropertyId (30172) + +#define UIA_HeadingLevelPropertyId (30173) + +#define UIA_IsDialogPropertyId (30174) + #endif /* __UIAutomationClient_LIBRARY_DEFINED__ */ /* Begin additional prototypes for all interfaces */ diff --git a/lib/libc/include/any-windows-any/uiautomationcore.h b/lib/libc/include/any-windows-any/uiautomationcore.h index c06ca9c56f..6667fb7b20 100644 --- a/lib/libc/include/any-windows-any/uiautomationcore.h +++ b/lib/libc/include/any-windows-any/uiautomationcore.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/uiautomationcore.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/uiautomationcore.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -34,6 +34,22 @@ interface IAccessibleEx; #endif /* __cplusplus */ #endif +#ifndef __IRawElementProviderFragment_FWD_DEFINED__ +#define __IRawElementProviderFragment_FWD_DEFINED__ +typedef interface IRawElementProviderFragment IRawElementProviderFragment; +#ifdef __cplusplus +interface IRawElementProviderFragment; +#endif /* __cplusplus */ +#endif + +#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__ +#define __IRawElementProviderFragmentRoot_FWD_DEFINED__ +typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot; +#ifdef __cplusplus +interface IRawElementProviderFragmentRoot; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <oaidl.h> @@ -43,19 +59,35 @@ interface IAccessibleEx; extern "C" { #endif +enum NavigateDirection { + NavigateDirection_Parent = 0x0, + NavigateDirection_NextSibling = 0x1, + NavigateDirection_PreviousSibling = 0x2, + NavigateDirection_FirstChild = 0x3, + NavigateDirection_LastChild = 0x4 +}; enum ProviderOptions { ProviderOptions_ClientSideProvider = 0x1, ProviderOptions_ServerSideProvider = 0x2, ProviderOptions_NonClientAreaProvider = 0x4, ProviderOptions_OverrideProvider = 0x8, ProviderOptions_ProviderOwnsSetFocus = 0x10, - ProviderOptions_UseComThreading = 0x20 + ProviderOptions_UseComThreading = 0x20, + ProviderOptions_RefuseNonClientSupport = 0x40, + ProviderOptions_HasNativeIAccessible = 0x80, + ProviderOptions_UseClientCoordinates = 0x100 }; typedef int PROPERTYID; typedef int PATTERNID; typedef int EVENTID; typedef int TEXTATTRIBUTEID; typedef int CONTROLTYPEID; +struct UiaRect { + double left; + double top; + double width; + double height; +}; #ifndef __UIA_LIBRARY_DEFINED__ #define __UIA_LIBRARY_DEFINED__ @@ -291,6 +323,239 @@ static FORCEINLINE HRESULT IAccessibleEx_ConvertReturnedElement(IAccessibleEx* T #endif /* __IAccessibleEx_INTERFACE_DEFINED__ */ +#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__ +#define __IRawElementProviderFragmentRoot_FWD_DEFINED__ +typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot; +#ifdef __cplusplus +interface IRawElementProviderFragmentRoot; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IRawElementProviderFragment interface + */ +#ifndef __IRawElementProviderFragment_INTERFACE_DEFINED__ +#define __IRawElementProviderFragment_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f7063da8-8359-439c-9297-bbc5299a7d87") +IRawElementProviderFragment : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Navigate( + enum NavigateDirection direction, + IRawElementProviderFragment **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRuntimeId( + SAFEARRAY **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_BoundingRectangle( + struct UiaRect *pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots( + SAFEARRAY **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFocus( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_FragmentRoot( + IRawElementProviderFragmentRoot **pRetVal) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87) +#endif +#else +typedef struct IRawElementProviderFragmentVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IRawElementProviderFragment *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IRawElementProviderFragment *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IRawElementProviderFragment *This); + + /*** IRawElementProviderFragment methods ***/ + HRESULT (STDMETHODCALLTYPE *Navigate)( + IRawElementProviderFragment *This, + enum NavigateDirection direction, + IRawElementProviderFragment **pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeId)( + IRawElementProviderFragment *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_BoundingRectangle)( + IRawElementProviderFragment *This, + struct UiaRect *pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetEmbeddedFragmentRoots)( + IRawElementProviderFragment *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *SetFocus)( + IRawElementProviderFragment *This); + + HRESULT (STDMETHODCALLTYPE *get_FragmentRoot)( + IRawElementProviderFragment *This, + IRawElementProviderFragmentRoot **pRetVal); + + END_INTERFACE +} IRawElementProviderFragmentVtbl; + +interface IRawElementProviderFragment { + CONST_VTBL IRawElementProviderFragmentVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IRawElementProviderFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IRawElementProviderFragment_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IRawElementProviderFragment_Release(This) (This)->lpVtbl->Release(This) +/*** IRawElementProviderFragment methods ***/ +#define IRawElementProviderFragment_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal) +#define IRawElementProviderFragment_GetRuntimeId(This,pRetVal) (This)->lpVtbl->GetRuntimeId(This,pRetVal) +#define IRawElementProviderFragment_get_BoundingRectangle(This,pRetVal) (This)->lpVtbl->get_BoundingRectangle(This,pRetVal) +#define IRawElementProviderFragment_GetEmbeddedFragmentRoots(This,pRetVal) (This)->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal) +#define IRawElementProviderFragment_SetFocus(This) (This)->lpVtbl->SetFocus(This) +#define IRawElementProviderFragment_get_FragmentRoot(This,pRetVal) (This)->lpVtbl->get_FragmentRoot(This,pRetVal) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragment_QueryInterface(IRawElementProviderFragment* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IRawElementProviderFragment_AddRef(IRawElementProviderFragment* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IRawElementProviderFragment_Release(IRawElementProviderFragment* This) { + return This->lpVtbl->Release(This); +} +/*** IRawElementProviderFragment methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragment_Navigate(IRawElementProviderFragment* This,enum NavigateDirection direction,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->Navigate(This,direction,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_GetRuntimeId(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetRuntimeId(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_get_BoundingRectangle(IRawElementProviderFragment* This,struct UiaRect *pRetVal) { + return This->lpVtbl->get_BoundingRectangle(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_GetEmbeddedFragmentRoots(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_SetFocus(IRawElementProviderFragment* This) { + return This->lpVtbl->SetFocus(This); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_get_FragmentRoot(IRawElementProviderFragment* This,IRawElementProviderFragmentRoot **pRetVal) { + return This->lpVtbl->get_FragmentRoot(This,pRetVal); +} +#endif +#endif + +#endif + + +#endif /* __IRawElementProviderFragment_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IRawElementProviderFragmentRoot interface + */ +#ifndef __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ +#define __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("620ce2a5-ab8f-40a9-86cb-de3c75599b58") +IRawElementProviderFragmentRoot : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ElementProviderFromPoint( + double x, + double y, + IRawElementProviderFragment **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFocus( + IRawElementProviderFragment **pRetVal) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58) +#endif +#else +typedef struct IRawElementProviderFragmentRootVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IRawElementProviderFragmentRoot *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IRawElementProviderFragmentRoot *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IRawElementProviderFragmentRoot *This); + + /*** IRawElementProviderFragmentRoot methods ***/ + HRESULT (STDMETHODCALLTYPE *ElementProviderFromPoint)( + IRawElementProviderFragmentRoot *This, + double x, + double y, + IRawElementProviderFragment **pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetFocus)( + IRawElementProviderFragmentRoot *This, + IRawElementProviderFragment **pRetVal); + + END_INTERFACE +} IRawElementProviderFragmentRootVtbl; + +interface IRawElementProviderFragmentRoot { + CONST_VTBL IRawElementProviderFragmentRootVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IRawElementProviderFragmentRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IRawElementProviderFragmentRoot_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IRawElementProviderFragmentRoot_Release(This) (This)->lpVtbl->Release(This) +/*** IRawElementProviderFragmentRoot methods ***/ +#define IRawElementProviderFragmentRoot_ElementProviderFromPoint(This,x,y,pRetVal) (This)->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal) +#define IRawElementProviderFragmentRoot_GetFocus(This,pRetVal) (This)->lpVtbl->GetFocus(This,pRetVal) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_QueryInterface(IRawElementProviderFragmentRoot* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IRawElementProviderFragmentRoot_AddRef(IRawElementProviderFragmentRoot* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IRawElementProviderFragmentRoot_Release(IRawElementProviderFragmentRoot* This) { + return This->lpVtbl->Release(This); +} +/*** IRawElementProviderFragmentRoot methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_ElementProviderFromPoint(IRawElementProviderFragmentRoot* This,double x,double y,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_GetFocus(IRawElementProviderFragmentRoot* This,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->GetFocus(This,pRetVal); +} +#endif +#endif + +#endif + + +#endif /* __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ */ + #endif /* __UIA_LIBRARY_DEFINED__ */ /* Begin additional prototypes for all interfaces */ diff --git a/lib/libc/include/any-windows-any/uiautomationcoreapi.h b/lib/libc/include/any-windows-any/uiautomationcoreapi.h index 451ce4cd42..0c0bcb064a 100644 --- a/lib/libc/include/any-windows-any/uiautomationcoreapi.h +++ b/lib/libc/include/any-windows-any/uiautomationcoreapi.h @@ -66,6 +66,7 @@ HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value); int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid); WINBOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj); HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id); +HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT old, VARIANT new); void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *pCallback); LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam, LPARAM lParam, IRawElementProviderSimple *elprov); WINBOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj); diff --git a/lib/libc/include/any-windows-any/uiviewsettingsinterop.h b/lib/libc/include/any-windows-any/uiviewsettingsinterop.h index df2d34e9c5..ae3ab60155 100644 --- a/lib/libc/include/any-windows-any/uiviewsettingsinterop.h +++ b/lib/libc/include/any-windows-any/uiviewsettingsinterop.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/uiviewsettingsinterop.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/uiviewsettingsinterop.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/unknwn.h b/lib/libc/include/any-windows-any/unknwn.h index d8c309071d..d28f95ec3f 100644 --- a/lib/libc/include/any-windows-any/unknwn.h +++ b/lib/libc/include/any-windows-any/unknwn.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/unknwn.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/unknwn.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/unknwnbase.h b/lib/libc/include/any-windows-any/unknwnbase.h index 5119637514..62c38b5cdb 100644 --- a/lib/libc/include/any-windows-any/unknwnbase.h +++ b/lib/libc/include/any-windows-any/unknwnbase.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/unknwnbase.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/unknwnbase.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/urlhist.h b/lib/libc/include/any-windows-any/urlhist.h index 5283d58990..683a79bf77 100644 --- a/lib/libc/include/any-windows-any/urlhist.h +++ b/lib/libc/include/any-windows-any/urlhist.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/urlhist.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/urlhist.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/urlmon.h b/lib/libc/include/any-windows-any/urlmon.h index a676dd6a25..23cca081f4 100644 --- a/lib/libc/include/any-windows-any/urlmon.h +++ b/lib/libc/include/any-windows-any/urlmon.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/urlmon.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/urlmon.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/vdslun.h b/lib/libc/include/any-windows-any/vdslun.h index 2206b68a19..2394c123f4 100644 --- a/lib/libc/include/any-windows-any/vdslun.h +++ b/lib/libc/include/any-windows-any/vdslun.h @@ -1,32 +1,126 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VDSLUN -#define _INC_VDSLUN +/*** Autogenerated by WIDL 7.0 from include/vdslun.idl - Do not edit ***/ +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __vdslun_h__ +#define __vdslun_h__ + +/* Forward declarations */ + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET { + VDSStorageIdCodeSetReserved = 0, + VDSStorageIdCodeSetBinary = 1, + VDSStorageIdCodeSetAscii = 2, + VDSStorageIdCodeSetUtf8 = 3 +} VDS_STORAGE_IDENTIFIER_CODE_SET; +typedef enum _VDS_STORAGE_IDENTIFIER_TYPE { + VDSStorageIdTypeVendorSpecific = 0, + VDSStorageIdTypeVendorId = 1, + VDSStorageIdTypeEUI64 = 2, + VDSStorageIdTypeFCPHName = 3, + VDSStorageIdTypePortRelative = 4, + VDSStorageIdTypeTargetPortGroup = 5, + VDSStorageIdTypeLogicalUnitGroup = 6, + VDSStorageIdTypeMD5LogicalUnitIdentifier = 7, + VDSStorageIdTypeScsiNameString = 8 +} VDS_STORAGE_IDENTIFIER_TYPE; +typedef enum _VDS_STORAGE_BUS_TYPE { + VDSBusTypeUnknown = 0x0, + VDSBusTypeScsi = 0x1, + VDSBusTypeAtapi = 0x2, + VDSBusTypeAta = 0x3, + VDSBusType1394 = 0x4, + VDSBusTypeSsa = 0x5, + VDSBusTypeFibre = 0x6, + VDSBusTypeUsb = 0x7, + VDSBusTypeRAID = 0x8, + VDSBusTypeiScsi = 0x9, + VDSBusTypeSas = 0xa, + VDSBusTypeSata = 0xb, + VDSBusTypeSd = 0xc, + VDSBusTypeMmc = 0xd, + VDSBusTypeMax = 0xe, + VDSBusTypeVirtual = 0xe, + VDSBusTypeFileBackedVirtual = 0xf, + VDSBusTypeSpaces = 0x10, + VDSBusTypeNVMe = 0x11, + VDSBusTypeScm = 0x12, + VDSBusTypeUfs = 0x13, + VDSBusTypeMaxReserved = 0x7f +} VDS_STORAGE_BUS_TYPE; +typedef struct _VDS_STORAGE_IDENTIFIER { + VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet; + VDS_STORAGE_IDENTIFIER_TYPE m_Type; + ULONG m_cbIdentifier; + BYTE *m_rgbIdentifier; +} VDS_STORAGE_IDENTIFIER; +typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR { + ULONG m_version; + ULONG m_cIdentifiers; + VDS_STORAGE_IDENTIFIER *m_rgIdentifiers; +} VDS_STORAGE_DEVICE_ID_DESCRIPTOR; +typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE { + VDS_IA_UNKNOWN = 0, + VDS_IA_FCFS = 1, + VDS_IA_FCPH = 2, + VDS_IA_FCPH3 = 3, + VDS_IA_MAC = 4, + VDS_IA_SCSI = 5 +} VDS_INTERCONNECT_ADDRESS_TYPE; typedef struct _VDS_INTERCONNECT { - VDS_INTERCONNECT_ADDRESS_TYPE m_addressType; - ULONG m_cbPort; BYTE* m_pbPort; - ULONG m_cbAddress; - BYTE *m_pbAddress; + VDS_INTERCONNECT_ADDRESS_TYPE m_addressType; + ULONG m_cbPort; + BYTE *m_pbPort; + ULONG m_cbAddress; + BYTE *m_pbAddress; } VDS_INTERCONNECT; - typedef struct _VDS_LUN_INFORMATION { - ULONG m_version; - BYTE m_DeviceType; - BYTE m_DeviceTypeModifier; - WINBOOL m_bCommandQueueing; - VDS_STORAGE_BUS_TYPE m_BusType; - char* m_szVendorId; - char* m_szProductId; - char* m_szProductRevision; - char* m_szSerialNumber; - GUID m_diskSignature; - VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor; - ULONG m_cInterconnects; - VDS_INTERCONNECT *m_rgInterconnects; + ULONG m_version; + BYTE m_DeviceType; + BYTE m_DeviceTypeModifier; + WINBOOL m_bCommandQueueing; + VDS_STORAGE_BUS_TYPE m_BusType; + char *m_szVendorId; + char *m_szProductId; + char *m_szProductRevision; + char *m_szSerialNumber; + GUID m_diskSignature; + VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor; + ULONG m_cInterconnects; + VDS_INTERCONNECT *m_rgInterconnects; } VDS_LUN_INFORMATION; +#define VER_VDS_LUN_INFORMATION (1) + +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif -#endif /*_INC_VDSLUN*/ +#endif /* __vdslun_h__ */ diff --git a/lib/libc/include/any-windows-any/vmr9.h b/lib/libc/include/any-windows-any/vmr9.h index 644bbc0b4c..0254f08256 100644 --- a/lib/libc/include/any-windows-any/vmr9.h +++ b/lib/libc/include/any-windows-any/vmr9.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/vmr9.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/vmr9.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/vsadmin.h b/lib/libc/include/any-windows-any/vsadmin.h index 2f9c478484..b57d5cc978 100644 --- a/lib/libc/include/any-windows-any/vsadmin.h +++ b/lib/libc/include/any-windows-any/vsadmin.h @@ -1,45 +1,350 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VSADMIN -#define _INC_VSADMIN +/*** Autogenerated by WIDL 7.0 from include/vsadmin.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif +#ifndef __vsadmin_h__ +#define __vsadmin_h__ + +/* Forward declarations */ + +#ifndef __IVssAdmin_FWD_DEFINED__ +#define __IVssAdmin_FWD_DEFINED__ +typedef interface IVssAdmin IVssAdmin; +#ifdef __cplusplus +interface IVssAdmin; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssAdminEx_FWD_DEFINED__ +#define __IVssAdminEx_FWD_DEFINED__ +typedef interface IVssAdminEx IVssAdminEx; +#ifdef __cplusplus +interface IVssAdminEx; +#endif /* __cplusplus */ +#endif + +#ifndef __VSSCoordinator_FWD_DEFINED__ +#define __VSSCoordinator_FWD_DEFINED__ +#ifdef __cplusplus +typedef class VSSCoordinator VSSCoordinator; +#else +typedef struct VSSCoordinator VSSCoordinator; +#endif /* defined __cplusplus */ +#endif /* defined __VSSCoordinator_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> #include <vss.h> -#if (_WIN32_WINNT >= 0x600) -#undef INTERFACE -#define INTERFACE IVssAdmin -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssAdmin,IUnknown) + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +/***************************************************************************** + * IVssAdmin interface + */ +#ifndef __IVssAdmin_INTERFACE_DEFINED__ +#define __IVssAdmin_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssAdmin, 0x77ed5996, 0x2f63, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("77ed5996-2f63-11d3-8a39-00c04f72d8e3") +IVssAdmin : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE RegisterProvider( + VSS_ID pProviderId, + CLSID ClassId, + VSS_PWSZ pwszProviderName, + VSS_PROVIDER_TYPE eProviderType, + VSS_PWSZ pwszProviderVersion, + VSS_ID ProviderVersionId) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnregisterProvider( + VSS_ID ProviderId) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryProviders( + IVssEnumObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE AbortAllSnapshotsInProgress( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssAdmin, 0x77ed5996, 0x2f63, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3) +#endif +#else +typedef struct IVssAdminVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssAdmin *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssAdmin *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssAdmin *This); - /* IVssAdmin methods */ - STDMETHOD_(HRESULT,RegisterProvider)(THIS_ VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) PURE; - STDMETHOD_(HRESULT,UnregisterProvider)(THIS_ VSS_ID ProviderId) PURE; - STDMETHOD_(HRESULT,QueryProviders)(THIS_ IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,AbortAllSnapshotsInProgress)(THIS) PURE; + /*** IVssAdmin methods ***/ + HRESULT (STDMETHODCALLTYPE *RegisterProvider)( + IVssAdmin *This, + VSS_ID pProviderId, + CLSID ClassId, + VSS_PWSZ pwszProviderName, + VSS_PROVIDER_TYPE eProviderType, + VSS_PWSZ pwszProviderVersion, + VSS_ID ProviderVersionId); + + HRESULT (STDMETHODCALLTYPE *UnregisterProvider)( + IVssAdmin *This, + VSS_ID ProviderId); + + HRESULT (STDMETHODCALLTYPE *QueryProviders)( + IVssAdmin *This, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *AbortAllSnapshotsInProgress)( + IVssAdmin *This); END_INTERFACE +} IVssAdminVtbl; + +interface IVssAdmin { + CONST_VTBL IVssAdminVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssAdmin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssAdmin_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssAdmin_Release(This) (This)->lpVtbl->Release(This) +/*** IVssAdmin methods ***/ #define IVssAdmin_RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) (This)->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) #define IVssAdmin_UnregisterProvider(This,ProviderId) (This)->lpVtbl->UnregisterProvider(This,ProviderId) #define IVssAdmin_QueryProviders(This,ppEnum) (This)->lpVtbl->QueryProviders(This,ppEnum) -#define IVssAdmin_AbortAllSnapshotsInProgress() (This)->lpVtbl->AbortAllSnapshotsInProgress(This) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x600)*/ -#endif /*_INC_VSWRITER*/ +#define IVssAdmin_AbortAllSnapshotsInProgress(This) (This)->lpVtbl->AbortAllSnapshotsInProgress(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssAdmin_QueryInterface(IVssAdmin* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssAdmin_AddRef(IVssAdmin* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssAdmin_Release(IVssAdmin* This) { + return This->lpVtbl->Release(This); +} +/*** IVssAdmin methods ***/ +static FORCEINLINE HRESULT IVssAdmin_RegisterProvider(IVssAdmin* This,VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) { + return This->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId); +} +static FORCEINLINE HRESULT IVssAdmin_UnregisterProvider(IVssAdmin* This,VSS_ID ProviderId) { + return This->lpVtbl->UnregisterProvider(This,ProviderId); +} +static FORCEINLINE HRESULT IVssAdmin_QueryProviders(IVssAdmin* This,IVssEnumObject **ppEnum) { + return This->lpVtbl->QueryProviders(This,ppEnum); +} +static FORCEINLINE HRESULT IVssAdmin_AbortAllSnapshotsInProgress(IVssAdmin* This) { + return This->lpVtbl->AbortAllSnapshotsInProgress(This); +} +#endif +#endif + +#endif + + +#endif /* __IVssAdmin_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssAdminEx interface + */ +#ifndef __IVssAdminEx_INTERFACE_DEFINED__ +#define __IVssAdminEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssAdminEx, 0x7858a9f8, 0xb1fa, 0x41a6, 0x96,0x4f, 0xb9,0xb3,0x6b,0x8c,0xd8,0xd8); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7858a9f8-b1fa-41a6-964f-b9b36b8cd8d8") +IVssAdminEx : public IVssAdmin +{ + virtual HRESULT STDMETHODCALLTYPE GetProviderCapability( + VSS_ID pProviderId, + ULONGLONG *pllOriginalCapabilityMask) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProviderContext( + VSS_ID ProviderId, + LONG *plContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetProviderContext( + VSS_ID ProviderId, + LONG lContext) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssAdminEx, 0x7858a9f8, 0xb1fa, 0x41a6, 0x96,0x4f, 0xb9,0xb3,0x6b,0x8c,0xd8,0xd8) +#endif +#else +typedef struct IVssAdminExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssAdminEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssAdminEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssAdminEx *This); + + /*** IVssAdmin methods ***/ + HRESULT (STDMETHODCALLTYPE *RegisterProvider)( + IVssAdminEx *This, + VSS_ID pProviderId, + CLSID ClassId, + VSS_PWSZ pwszProviderName, + VSS_PROVIDER_TYPE eProviderType, + VSS_PWSZ pwszProviderVersion, + VSS_ID ProviderVersionId); + + HRESULT (STDMETHODCALLTYPE *UnregisterProvider)( + IVssAdminEx *This, + VSS_ID ProviderId); + + HRESULT (STDMETHODCALLTYPE *QueryProviders)( + IVssAdminEx *This, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *AbortAllSnapshotsInProgress)( + IVssAdminEx *This); + + /*** IVssAdminEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetProviderCapability)( + IVssAdminEx *This, + VSS_ID pProviderId, + ULONGLONG *pllOriginalCapabilityMask); + + HRESULT (STDMETHODCALLTYPE *GetProviderContext)( + IVssAdminEx *This, + VSS_ID ProviderId, + LONG *plContext); + + HRESULT (STDMETHODCALLTYPE *SetProviderContext)( + IVssAdminEx *This, + VSS_ID ProviderId, + LONG lContext); + + END_INTERFACE +} IVssAdminExVtbl; + +interface IVssAdminEx { + CONST_VTBL IVssAdminExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssAdminEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssAdminEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssAdminEx_Release(This) (This)->lpVtbl->Release(This) +/*** IVssAdmin methods ***/ +#define IVssAdminEx_RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) (This)->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) +#define IVssAdminEx_UnregisterProvider(This,ProviderId) (This)->lpVtbl->UnregisterProvider(This,ProviderId) +#define IVssAdminEx_QueryProviders(This,ppEnum) (This)->lpVtbl->QueryProviders(This,ppEnum) +#define IVssAdminEx_AbortAllSnapshotsInProgress(This) (This)->lpVtbl->AbortAllSnapshotsInProgress(This) +/*** IVssAdminEx methods ***/ +#define IVssAdminEx_GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask) +#define IVssAdminEx_GetProviderContext(This,ProviderId,plContext) (This)->lpVtbl->GetProviderContext(This,ProviderId,plContext) +#define IVssAdminEx_SetProviderContext(This,ProviderId,lContext) (This)->lpVtbl->SetProviderContext(This,ProviderId,lContext) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssAdminEx_QueryInterface(IVssAdminEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssAdminEx_AddRef(IVssAdminEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssAdminEx_Release(IVssAdminEx* This) { + return This->lpVtbl->Release(This); +} +/*** IVssAdmin methods ***/ +static FORCEINLINE HRESULT IVssAdminEx_RegisterProvider(IVssAdminEx* This,VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) { + return This->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId); +} +static FORCEINLINE HRESULT IVssAdminEx_UnregisterProvider(IVssAdminEx* This,VSS_ID ProviderId) { + return This->lpVtbl->UnregisterProvider(This,ProviderId); +} +static FORCEINLINE HRESULT IVssAdminEx_QueryProviders(IVssAdminEx* This,IVssEnumObject **ppEnum) { + return This->lpVtbl->QueryProviders(This,ppEnum); +} +static FORCEINLINE HRESULT IVssAdminEx_AbortAllSnapshotsInProgress(IVssAdminEx* This) { + return This->lpVtbl->AbortAllSnapshotsInProgress(This); +} +/*** IVssAdminEx methods ***/ +static FORCEINLINE HRESULT IVssAdminEx_GetProviderCapability(IVssAdminEx* This,VSS_ID pProviderId,ULONGLONG *pllOriginalCapabilityMask) { + return This->lpVtbl->GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask); +} +static FORCEINLINE HRESULT IVssAdminEx_GetProviderContext(IVssAdminEx* This,VSS_ID ProviderId,LONG *plContext) { + return This->lpVtbl->GetProviderContext(This,ProviderId,plContext); +} +static FORCEINLINE HRESULT IVssAdminEx_SetProviderContext(IVssAdminEx* This,VSS_ID ProviderId,LONG lContext) { + return This->lpVtbl->SetProviderContext(This,ProviderId,lContext); +} +#endif +#endif + +#endif + + +#endif /* __IVssAdminEx_INTERFACE_DEFINED__ */ + +#ifndef __VSSAdmin_LIBRARY_DEFINED__ +#define __VSSAdmin_LIBRARY_DEFINED__ + +DEFINE_GUID(LIBID_VSSAdmin, 0x9148a774, 0x0304, 0x4243, 0xb2,0x69, 0xa3,0x39,0xaa,0x96,0xd2,0x64); + +/***************************************************************************** + * VSSCoordinator coclass + */ + +DEFINE_GUID(CLSID_VSSCoordinator, 0xe579ab5f, 0x1cc4, 0x44b4, 0xbe,0xd9, 0xde,0x09,0x91,0xff,0x06,0x23); + +#ifdef __cplusplus +class DECLSPEC_UUID("e579ab5f-1cc4-44b4-bed9-de0991ff0623") VSSCoordinator; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(VSSCoordinator, 0xe579ab5f, 0x1cc4, 0x44b4, 0xbe,0xd9, 0xde,0x09,0x91,0xff,0x06,0x23) +#endif +#endif + +#endif /* __VSSAdmin_LIBRARY_DEFINED__ */ +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __vsadmin_h__ */ diff --git a/lib/libc/include/any-windows-any/vsanimation.h b/lib/libc/include/any-windows-any/vsanimation.h new file mode 100644 index 0000000000..431a7e9e14 --- /dev/null +++ b/lib/libc/include/any-windows-any/vsanimation.h @@ -0,0 +1,242 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef __VSANIMATION_H__ +#define __VSANIMATION_H__ + +#ifndef VSCLASS_ANIMATIONS +#define VSCLASS_ANIMATIONS L"ANIMATIONS" +#endif + +enum ANIMATIONSPARTS { + TAS_EXPAND = 1, + TAS_COLLAPSE = 2, + TAS_REPOSITION = 3, + TAS_FADEIN = 4, + TAS_FADEOUT = 5, + TAS_ADDTOLIST = 6, + TAS_DELETEFROMLIST = 7, + TAS_ADDTOGRID = 8, + TAS_DELETEFROMGRID = 9, + TAS_ADDTOSEARCHGRID = 10, + TAS_DELETEFROMSEARCHGRID = 11, + TAS_ADDTOSEARCHLIST = 12, + TAS_DELETEFROMSEARCHLIST = 13, + TAS_SHOWEDGEUI = 14, + TAS_SHOWPANEL = 15, + TAS_HIDEEDGEUI = 16, + TAS_HIDEPANEL = 17, + TAS_SHOWPOPUP = 18, + TAS_HIDEPOPUP = 19, + TAS_POINTERDOWN = 20, + TAS_POINTERUP = 21, + TAS_DRAGSOURCESTART = 22, + TAS_DRAGSOURCEEND = 23, + TAS_TRANSITIONCONTENT = 24, + TAS_REVEAL = 25, + TAS_HIDE = 26, + TAS_DRAGBETWEENENTER = 27, + TAS_DRAGBETWEENLEAVE = 28, + TAS_SWIPESELECT = 29, + TAS_SWIPEDESELECT = 30, + TAS_SWIPEREVEAL = 31, + TAS_ENTERPAGE = 32, + TAS_TRANSITIONPAGE = 33, + TAS_CROSSFADE = 34, + TAS_PEEK = 35, + TAS_UPDATEBADGE = 36 +}; + +enum EXPANDSTATES { + TA_EXPAND_AFFECTED = 1, + TA_EXPAND_REVEALED = 2 +}; + +enum COLLAPSESTATES { + TA_COLLAPSE_HIDDEN = 1, + TA_COLLAPSE_AFFECTED = 2 +}; + +enum REPOSITIONSTATES { + TA_REPOSITION_TARGET = 1 +}; + +enum FADEINSTATES { + TA_FADEIN_SHOWN = 1 +}; + +enum FADEOUTSTATES { + TA_FADEOUT_HIDDEN = 1 +}; + +enum ADDTOGRIDSTATES { + TA_ADDTOGRID_ADDED = 1, + TA_ADDTOGRID_AFFECTED = 2, + TA_ADDTOGRID_ROWOUT = 3, + TA_ADDTOGRID_ROWIN = 4 +}; + +enum DELETEFROMGRIDSTATES { + TA_DELETEFROMGRID_DELETED = 1, + TA_DELETEFROMGRID_REMAINING = 2, + TA_DELETEFROMGRID_ROWOUT = 3, + TA_DELETEFROMGRID_ROWIN = 4 +}; + +enum ADDTOLISTSTATES { + TA_ADDTOLIST_ADDED = 1, + TA_ADDTOLIST_AFFECTED = 2 +}; + +enum DELETEFROMLISTSTATES { + TA_DELETEFROMLIST_DELETED = 1, + TA_DELETEFROMLIST_REMAINING = 2 +}; + +enum ADDTOSEARCHGRIDSTATES { + TA_ADDTOSEARCHGRID_ADDED = 1, + TA_ADDTOSEARCHGRID_AFFECTED = 2, + TA_ADDTOSEARCHGRID_ROWOUT = 3, + TA_ADDTOSEARCHGRID_ROWIN = 4 +}; + +enum DELETEFROMSEARCHGRIDSTATES { + TA_DELETEFROMSEARCHGRID_DELETED = 1, + TA_DELETEFROMSEARCHGRID_REMAINING = 2, + TA_DELETEFROMSEARCHGRID_ROWOUT = 3, + TA_DELETEFROMSEARCHGRID_ROWIN = 4 +}; + +enum ADDTOSEARCHLISTSTATES { + TA_ADDTOSEARCHLIST_ADDED = 1, + TA_ADDTOSEARCHLIST_AFFECTED = 2 +}; + +enum DELETEFROMSEARCHLISTSTATES { + TA_DELETEFROMSEARCHLIST_DELETED = 1, + TA_DELETEFROMSEARCHLIST_REMAINING = 2 +}; + +enum SHOWEDGEUISTATES { + TA_SHOWEDGEUI_TARGET = 1 +}; + +enum HIDEEDGEUISTATES { + TA_HIDEEDGEUI_TARGET = 1 +}; + +enum SHOWPANELSTATES { + TA_SHOWPANEL_TARGET = 1 +}; + +enum HIDEPANELSTATES { + TA_HIDEPANEL_TARGET = 1 +}; + +enum SHOWPOPUPSTATES { + TA_SHOWPOPUP_TARGET = 1 +}; + +enum HIDEPOPUPSTATES { + TA_HIDEPOPUP_TARGET = 1 +}; + +enum POINTERDOWNSTATES { + TA_POINTERDOWN_TARGET = 1 +}; + +enum POINTERUPSTATES { + TA_POINTERUP_TARGET = 1 +}; + +enum DRAGSOURCESTARTSTATES { + TA_DRAGSOURCESTART_DRAGSOURCE = 1, + TA_DRAGSOURCESTART_AFFECTED = 2 +}; + +enum DRAGSOURCEENDSTATES { + TA_DRAGSOURCEEND_DRAGSOURCE = 1, + TA_DRAGSOURCEEND_AFFECTED = 2 +}; + +enum TRANSITIONCONTENTSTATES { + TA_TRANSITIONCONTENT_INCOMING = 1, + TA_TRANSITIONCONTENT_OUTGOING = 2 +}; + +enum REVEALSTATES { + TA_REVEAL_BACKGROUND = 1, + TA_REVEAL_CONTENT = 2, + TA_REVEAL_OUTLINE = 3, + TA_REVEAL_TAPPED = 4 +}; + +enum HIDESTATES { + TA_HIDE_BACKGROUND = 1, + TA_HIDE_CONTENT = 2, + TA_HIDE_OUTLINE = 3, + TA_HIDE_TAPPED = 4 +}; + +enum DRAGBETWEENENTERSTATES { + TA_DRAGBETWEENENTER_AFFECTED = 1 +}; + +enum DRAGBETWEENLEAVESTATES { + TA_DRAGBETWEENLEAVE_AFFECTED = 1 +}; + +enum SWIPESELECTSTATES { + TA_SWIPESELECT_SELECTED = 1, + TA_SWIPESELECT_SELECTION = 2 +}; + +enum SWIPEDESELECTSTATES { + TA_SWIPEDESELECT_DESELECTED = 1, + TA_SWIPEDESELECT_SELECTION = 2 +}; + +enum SWIPEREVEALSTATES { + TA_SWIPEREVEAL_TARGET = 1 +}; + +enum ENTERPAGESTATES { + TA_ENTERPAGE_TARGET = 1 +}; + +enum TRANSITIONPAGESTATES { + TA_TRANSITIONPAGE_INCOMING = 1, + TA_TRANSITIONPAGE_OUTGOING = 2 +}; + +enum CROSSFADESTATES { + TA_CROSSFADE_INCOMING = 1, + TA_CROSSFADE_OUTGOING = 2 +}; + +enum PEEKSTATES { + TA_PEEK_TARGET = 1 +}; + +enum UPDATEBADGESTATES { + TA_UPDATEBADGE_INCOMING = 1, + TA_UPDATEBADGE_OUTGOING = 2 +}; + +#ifndef VSCLASS_TIMINGFUNCTION +#define VSCLASS_TIMINGFUNCTION L"TIMINGFUNCTION" +#endif + +enum TIMINGFUNCTIONPARTS { + TATF_LINEAR = 1, + TATF_EASEIN = 2, + TATF_EASEOUT = 3, + TATF_FASTIN = 4, + TATF_EXPONENTIAL = 5, + TATF_FASTINFORTYSEVENPERCENT = 6 +}; + +#endif /* __VSANIMATION_H__ */ diff --git a/lib/libc/include/any-windows-any/vsbackup.h b/lib/libc/include/any-windows-any/vsbackup.h index cf7a9147f0..364d551e34 100644 --- a/lib/libc/include/any-windows-any/vsbackup.h +++ b/lib/libc/include/any-windows-any/vsbackup.h @@ -1,11 +1,107 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VSBACKUP -#define _INC_VSBACKUP +/*** Autogenerated by WIDL 7.0 from include/vsbackup.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __vsbackup_h__ +#define __vsbackup_h__ + +/* Forward declarations */ + +#ifndef __IVssWMComponent_FWD_DEFINED__ +#define __IVssWMComponent_FWD_DEFINED__ +typedef interface IVssWMComponent IVssWMComponent; +#ifdef __cplusplus +interface IVssWMComponent; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssExamineWriterMetadata_FWD_DEFINED__ +#define __IVssExamineWriterMetadata_FWD_DEFINED__ +typedef interface IVssExamineWriterMetadata IVssExamineWriterMetadata; +#ifdef __cplusplus +interface IVssExamineWriterMetadata; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssExamineWriterMetadataEx_FWD_DEFINED__ +#define __IVssExamineWriterMetadataEx_FWD_DEFINED__ +typedef interface IVssExamineWriterMetadataEx IVssExamineWriterMetadataEx; +#ifdef __cplusplus +interface IVssExamineWriterMetadataEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssExamineWriterMetadataEx2_FWD_DEFINED__ +#define __IVssExamineWriterMetadataEx2_FWD_DEFINED__ +typedef interface IVssExamineWriterMetadataEx2 IVssExamineWriterMetadataEx2; +#ifdef __cplusplus +interface IVssExamineWriterMetadataEx2; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssWriterComponentsExt_FWD_DEFINED__ +#define __IVssWriterComponentsExt_FWD_DEFINED__ +typedef interface IVssWriterComponentsExt IVssWriterComponentsExt; +#ifdef __cplusplus +interface IVssWriterComponentsExt; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssBackupComponents_FWD_DEFINED__ +#define __IVssBackupComponents_FWD_DEFINED__ +typedef interface IVssBackupComponents IVssBackupComponents; +#ifdef __cplusplus +interface IVssBackupComponents; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssBackupComponentsEx_FWD_DEFINED__ +#define __IVssBackupComponentsEx_FWD_DEFINED__ +typedef interface IVssBackupComponentsEx IVssBackupComponentsEx; +#ifdef __cplusplus +interface IVssBackupComponentsEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssBackupComponentsEx2_FWD_DEFINED__ +#define __IVssBackupComponentsEx2_FWD_DEFINED__ +typedef interface IVssBackupComponentsEx2 IVssBackupComponentsEx2; +#ifdef __cplusplus +interface IVssBackupComponentsEx2; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssBackupComponentsEx3_FWD_DEFINED__ +#define __IVssBackupComponentsEx3_FWD_DEFINED__ +typedef interface IVssBackupComponentsEx3 IVssBackupComponentsEx3; +#ifdef __cplusplus +interface IVssBackupComponentsEx3; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssBackupComponentsEx4_FWD_DEFINED__ +#define __IVssBackupComponentsEx4_FWD_DEFINED__ +typedef interface IVssBackupComponentsEx4 IVssBackupComponentsEx4; +#ifdef __cplusplus +interface IVssBackupComponentsEx4; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ +#include <oaidl.h> +#include <ocidl.h> #include <vss.h> #include <vswriter.h> @@ -13,194 +109,1454 @@ extern "C" { #endif -typedef struct VSS_COMPONENTINFO { - VSS_COMPONENT_TYPE type; - BSTR bstrLogicalPath; - BSTR bstrComponentName; - BSTR bstrCaption; - BYTE *pbIcon; - UINT cbIcon; - BOOLEAN bRestoreMetadata; - BOOLEAN bNotifyOnBackupComplete; - BOOLEAN bSelectable; - BOOLEAN bSelectableForRestore; - DWORD dwComponentFlags; - UINT cFileCount; - UINT cDatabases; - UINT cLogFiles; - UINT cDependencies; -} VSS_COMPONENTINFO, *PVSSCOMPONENTINFO; - -HRESULT WINAPI CreateVssBackupComponentsInternal( - IVssBackupComponents **ppBackup -); - -FORCEINLINE -HRESULT WINAPI CreateVssBackupComponents( - IVssBackupComponents **ppBackup -){return CreateVssBackupComponentsInternal(ppBackup);} - -HRESULT WINAPI CreateVssExamineWriterMetadataInternal( - BSTR bstrXML, - IVssExamineWriterMetadata **ppMetadata -); - -FORCEINLINE -HRESULT WINAPI CreateVssExamineWriterMetadata( - BSTR bstrXML, - IVssExamineWriterMetadata **ppMetadata -){return CreateVssExamineWriterMetadataInternal(bstrXML,ppMetadata);} - -HRESULT WINAPI IsVolumeSnapshottedInternal( - VSS_PWSZ pwszVolumeName, - BOOLEAN *pbSnapshotsPresent, - LONG *plSnapshotCapability -); - -FORCEINLINE -HRESULT WINAPI IsVolumeSnapshotted( - VSS_PWSZ pwszVolumeName, - BOOLEAN *pbSnapshotsPresent, - LONG *plSnapshotCapability -){return IsVolumeSnapshottedInternal(pwszVolumeName,pbSnapshotsPresent,plSnapshotCapability);} - -HRESULT WINAPI ShouldBlockRevertInternal( - LPCWSTR wszVolumeName, - BOOLEAN *pbBlock -); - -FORCEINLINE -HRESULT WINAPI ShouldBlockRevert( - LPCWSTR wszVolumeName, - BOOLEAN *pbBlock -){return ShouldBlockRevertInternal(wszVolumeName,pbBlock);} - -void WINAPI VssFreeSnapshotPropertiesInternal( - VSS_SNAPSHOT_PROP *pProp -); - -FORCEINLINE -void WINAPI VssFreeSnapshotProperties( - VSS_SNAPSHOT_PROP *pProp -){VssFreeSnapshotPropertiesInternal(pProp);} - -HRESULT WINAPI GetProviderMgmtInterfaceInternal( - VSS_ID ProviderId, - IID InterfaceId, - IUnknown** ppItf -); - -FORCEINLINE -HRESULT WINAPI GetProviderMgmtInterface( - VSS_ID ProviderId, - IID InterfaceId, - IUnknown** ppItf -){return GetProviderMgmtInterfaceInternal(ProviderId,InterfaceId,ppItf);} +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +typedef struct _VSS_COMPONENTINFO { + VSS_COMPONENT_TYPE type; + BSTR bstrLogicalPath; + BSTR bstrComponentName; + BSTR bstrCaption; + BYTE *pbIcon; + UINT cbIcon; + boolean bRestoreMetadata; + boolean bNotifyOnBackupComplete; + boolean bSelectable; + boolean bSelectableForRestore; + DWORD dwComponentFlags; + UINT cFileCount; + UINT cDatabases; + UINT cLogFiles; + UINT cDependencies; +} VSS_COMPONENTINFO; +typedef const VSS_COMPONENTINFO *PVSSCOMPONENTINFO; +/***************************************************************************** + * IVssWMComponent interface + */ +#ifndef __IVssWMComponent_INTERFACE_DEFINED__ +#define __IVssWMComponent_INTERFACE_DEFINED__ -#ifdef __cplusplus +DEFINE_GUID(IID_IVssWMComponent, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWMComponent : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetComponentInfo( + PVSSCOMPONENTINFO *ppInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE FreeComponentInfo( + PVSSCOMPONENTINFO pInfo) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFile( + UINT iFile, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDatabaseFile( + UINT iDBFile, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDatabaseLogFile( + UINT iDbLogFile, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDependency( + UINT iDependency, + IVssWMDependency **ppDependency) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWMComponent, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssWMComponentVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWMComponent *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssWMComponent *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssWMComponent *This); + + /*** IVssWMComponent methods ***/ + HRESULT (STDMETHODCALLTYPE *GetComponentInfo)( + IVssWMComponent *This, + PVSSCOMPONENTINFO *ppInfo); + + HRESULT (STDMETHODCALLTYPE *FreeComponentInfo)( + IVssWMComponent *This, + PVSSCOMPONENTINFO pInfo); + + HRESULT (STDMETHODCALLTYPE *GetFile)( + IVssWMComponent *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetDatabaseFile)( + IVssWMComponent *This, + UINT iDBFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetDatabaseLogFile)( + IVssWMComponent *This, + UINT iDbLogFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetDependency)( + IVssWMComponent *This, + UINT iDependency, + IVssWMDependency **ppDependency); + + END_INTERFACE +} IVssWMComponentVtbl; + +interface IVssWMComponent { + CONST_VTBL IVssWMComponentVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssWMComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssWMComponent_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssWMComponent_Release(This) (This)->lpVtbl->Release(This) +/*** IVssWMComponent methods ***/ +#define IVssWMComponent_GetComponentInfo(This,ppInfo) (This)->lpVtbl->GetComponentInfo(This,ppInfo) +#define IVssWMComponent_FreeComponentInfo(This,pInfo) (This)->lpVtbl->FreeComponentInfo(This,pInfo) +#define IVssWMComponent_GetFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetFile(This,iFile,ppFiledesc) +#define IVssWMComponent_GetDatabaseFile(This,iDBFile,ppFiledesc) (This)->lpVtbl->GetDatabaseFile(This,iDBFile,ppFiledesc) +#define IVssWMComponent_GetDatabaseLogFile(This,iDbLogFile,ppFiledesc) (This)->lpVtbl->GetDatabaseLogFile(This,iDbLogFile,ppFiledesc) +#define IVssWMComponent_GetDependency(This,iDependency,ppDependency) (This)->lpVtbl->GetDependency(This,iDependency,ppDependency) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssWMComponent_QueryInterface(IVssWMComponent* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssWMComponent_AddRef(IVssWMComponent* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssWMComponent_Release(IVssWMComponent* This) { + return This->lpVtbl->Release(This); +} +/*** IVssWMComponent methods ***/ +static FORCEINLINE HRESULT IVssWMComponent_GetComponentInfo(IVssWMComponent* This,PVSSCOMPONENTINFO *ppInfo) { + return This->lpVtbl->GetComponentInfo(This,ppInfo); +} +static FORCEINLINE HRESULT IVssWMComponent_FreeComponentInfo(IVssWMComponent* This,PVSSCOMPONENTINFO pInfo) { + return This->lpVtbl->FreeComponentInfo(This,pInfo); +} +static FORCEINLINE HRESULT IVssWMComponent_GetFile(IVssWMComponent* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssWMComponent_GetDatabaseFile(IVssWMComponent* This,UINT iDBFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetDatabaseFile(This,iDBFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssWMComponent_GetDatabaseLogFile(IVssWMComponent* This,UINT iDbLogFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetDatabaseLogFile(This,iDbLogFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssWMComponent_GetDependency(IVssWMComponent* This,UINT iDependency,IVssWMDependency **ppDependency) { + return This->lpVtbl->GetDependency(This,iDependency,ppDependency); } #endif +#endif -#undef INTERFACE -#define INTERFACE IVssBackupComponents -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssBackupComponents,IUnknown) + + +#endif /* __IVssWMComponent_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssExamineWriterMetadata interface + */ +#ifndef __IVssExamineWriterMetadata_INTERFACE_DEFINED__ +#define __IVssExamineWriterMetadata_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssExamineWriterMetadata, 0x902fcf7f, 0xb7fd, 0x42f8, 0x81,0xf1, 0xb2,0xe4,0x00,0xb1,0xe5,0xbd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("902fcf7f-b7fd-42f8-81f1-b2e400b1e5bd") +IVssExamineWriterMetadata : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetIdentity( + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileCounts( + UINT *pcIncludeFiles, + UINT *pcExcludeFiles, + UINT *pcComponents) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetIncludeFile( + UINT iFile, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExcludeFile( + UINT iFile, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponent( + UINT iComponent, + IVssWMComponent **ppComponent) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreMethod( + VSS_RESTOREMETHOD_ENUM *pMethod, + BSTR *pbstrService, + BSTR *pbstrUserProcedure, + VSS_WRITERRESTORE_ENUM *pwriterRestore, + boolean *pbRebootRequired, + UINT *pcMappings) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMapping( + UINT iMapping, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackupSchema( + DWORD *pdwSchemaMask) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDocument( + IXMLDOMDocument **pDoc) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveAsXML( + BSTR *pbstrXML) = 0; + + virtual HRESULT STDMETHODCALLTYPE LoadFromXML( + BSTR bstrXML) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssExamineWriterMetadata, 0x902fcf7f, 0xb7fd, 0x42f8, 0x81,0xf1, 0xb2,0xe4,0x00,0xb1,0xe5,0xbd) +#endif +#else +typedef struct IVssExamineWriterMetadataVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssBackupComponents methods */ - STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE; - STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE; - STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE; - STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE; - STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE; - STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE; - STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE; - STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE; - STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE; - STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE; - STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE; - STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE; - STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE; - STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE; - STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE; - STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE; - STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; - STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE; - STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE; - STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; - STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; - STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE; - STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE; - STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE; - STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE; - STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssExamineWriterMetadata *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssExamineWriterMetadata *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssExamineWriterMetadata *This); + + /*** IVssExamineWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIdentity)( + IVssExamineWriterMetadata *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource); + + HRESULT (STDMETHODCALLTYPE *GetFileCounts)( + IVssExamineWriterMetadata *This, + UINT *pcIncludeFiles, + UINT *pcExcludeFiles, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetIncludeFile)( + IVssExamineWriterMetadata *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetExcludeFile)( + IVssExamineWriterMetadata *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetComponent)( + IVssExamineWriterMetadata *This, + UINT iComponent, + IVssWMComponent **ppComponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)( + IVssExamineWriterMetadata *This, + VSS_RESTOREMETHOD_ENUM *pMethod, + BSTR *pbstrService, + BSTR *pbstrUserProcedure, + VSS_WRITERRESTORE_ENUM *pwriterRestore, + boolean *pbRebootRequired, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssExamineWriterMetadata *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetBackupSchema)( + IVssExamineWriterMetadata *This, + DWORD *pdwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *GetDocument)( + IVssExamineWriterMetadata *This, + IXMLDOMDocument **pDoc); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssExamineWriterMetadata *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *LoadFromXML)( + IVssExamineWriterMetadata *This, + BSTR bstrXML); END_INTERFACE +} IVssExamineWriterMetadataVtbl; + +interface IVssExamineWriterMetadata { + CONST_VTBL IVssExamineWriterMetadataVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssExamineWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssExamineWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssExamineWriterMetadata_Release(This) (This)->lpVtbl->Release(This) +/*** IVssExamineWriterMetadata methods ***/ +#define IVssExamineWriterMetadata_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) +#define IVssExamineWriterMetadata_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) +#define IVssExamineWriterMetadata_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadata_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadata_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent) +#define IVssExamineWriterMetadata_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) +#define IVssExamineWriterMetadata_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssExamineWriterMetadata_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask) +#define IVssExamineWriterMetadata_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc) +#define IVssExamineWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#define IVssExamineWriterMetadata_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadata_QueryInterface(IVssExamineWriterMetadata* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssExamineWriterMetadata_AddRef(IVssExamineWriterMetadata* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssExamineWriterMetadata_Release(IVssExamineWriterMetadata* This) { + return This->lpVtbl->Release(This); +} +/*** IVssExamineWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetIdentity(IVssExamineWriterMetadata* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) { + return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetFileCounts(IVssExamineWriterMetadata* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) { + return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetIncludeFile(IVssExamineWriterMetadata* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetExcludeFile(IVssExamineWriterMetadata* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetComponent(IVssExamineWriterMetadata* This,UINT iComponent,IVssWMComponent **ppComponent) { + return This->lpVtbl->GetComponent(This,iComponent,ppComponent); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetRestoreMethod(IVssExamineWriterMetadata* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) { + return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetAlternateLocationMapping(IVssExamineWriterMetadata* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetBackupSchema(IVssExamineWriterMetadata* This,DWORD *pdwSchemaMask) { + return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_GetDocument(IVssExamineWriterMetadata* This,IXMLDOMDocument **pDoc) { + return This->lpVtbl->GetDocument(This,pDoc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_SaveAsXML(IVssExamineWriterMetadata* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadata_LoadFromXML(IVssExamineWriterMetadata* This,BSTR bstrXML) { + return This->lpVtbl->LoadFromXML(This,bstrXML); +} +#endif +#endif + +#endif + + +#endif /* __IVssExamineWriterMetadata_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssExamineWriterMetadataEx interface + */ +#ifndef __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__ +#define __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssExamineWriterMetadataEx, 0x0c0e5ec0, 0xca44, 0x472b, 0xb7,0x02, 0xe6,0x52,0xdb,0x1c,0x04,0x51); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("0c0e5ec0-ca44-472b-b702-e652db1c0451") +IVssExamineWriterMetadataEx : public IVssExamineWriterMetadata +{ + virtual HRESULT STDMETHODCALLTYPE GetIdentityEx( + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + BSTR *pbstrInstanceName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssExamineWriterMetadataEx, 0x0c0e5ec0, 0xca44, 0x472b, 0xb7,0x02, 0xe6,0x52,0xdb,0x1c,0x04,0x51) +#endif +#else +typedef struct IVssExamineWriterMetadataExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssExamineWriterMetadataEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssExamineWriterMetadataEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssExamineWriterMetadataEx *This); + + /*** IVssExamineWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIdentity)( + IVssExamineWriterMetadataEx *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource); + + HRESULT (STDMETHODCALLTYPE *GetFileCounts)( + IVssExamineWriterMetadataEx *This, + UINT *pcIncludeFiles, + UINT *pcExcludeFiles, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetIncludeFile)( + IVssExamineWriterMetadataEx *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetExcludeFile)( + IVssExamineWriterMetadataEx *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetComponent)( + IVssExamineWriterMetadataEx *This, + UINT iComponent, + IVssWMComponent **ppComponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)( + IVssExamineWriterMetadataEx *This, + VSS_RESTOREMETHOD_ENUM *pMethod, + BSTR *pbstrService, + BSTR *pbstrUserProcedure, + VSS_WRITERRESTORE_ENUM *pwriterRestore, + boolean *pbRebootRequired, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssExamineWriterMetadataEx *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetBackupSchema)( + IVssExamineWriterMetadataEx *This, + DWORD *pdwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *GetDocument)( + IVssExamineWriterMetadataEx *This, + IXMLDOMDocument **pDoc); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssExamineWriterMetadataEx *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *LoadFromXML)( + IVssExamineWriterMetadataEx *This, + BSTR bstrXML); + + /*** IVssExamineWriterMetadataEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIdentityEx)( + IVssExamineWriterMetadataEx *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + BSTR *pbstrInstanceName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource); + + END_INTERFACE +} IVssExamineWriterMetadataExVtbl; + +interface IVssExamineWriterMetadataEx { + CONST_VTBL IVssExamineWriterMetadataExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssExamineWriterMetadataEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssExamineWriterMetadataEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssExamineWriterMetadataEx_Release(This) (This)->lpVtbl->Release(This) +/*** IVssExamineWriterMetadata methods ***/ +#define IVssExamineWriterMetadataEx_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) +#define IVssExamineWriterMetadataEx_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) +#define IVssExamineWriterMetadataEx_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadataEx_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadataEx_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent) +#define IVssExamineWriterMetadataEx_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) +#define IVssExamineWriterMetadataEx_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssExamineWriterMetadataEx_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask) +#define IVssExamineWriterMetadataEx_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc) +#define IVssExamineWriterMetadataEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#define IVssExamineWriterMetadataEx_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML) +/*** IVssExamineWriterMetadataEx methods ***/ +#define IVssExamineWriterMetadataEx_GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) (This)->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_QueryInterface(IVssExamineWriterMetadataEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssExamineWriterMetadataEx_AddRef(IVssExamineWriterMetadataEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssExamineWriterMetadataEx_Release(IVssExamineWriterMetadataEx* This) { + return This->lpVtbl->Release(This); +} +/*** IVssExamineWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIdentity(IVssExamineWriterMetadataEx* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) { + return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetFileCounts(IVssExamineWriterMetadataEx* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) { + return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIncludeFile(IVssExamineWriterMetadataEx* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetExcludeFile(IVssExamineWriterMetadataEx* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetComponent(IVssExamineWriterMetadataEx* This,UINT iComponent,IVssWMComponent **ppComponent) { + return This->lpVtbl->GetComponent(This,iComponent,ppComponent); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetRestoreMethod(IVssExamineWriterMetadataEx* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) { + return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetAlternateLocationMapping(IVssExamineWriterMetadataEx* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetBackupSchema(IVssExamineWriterMetadataEx* This,DWORD *pdwSchemaMask) { + return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetDocument(IVssExamineWriterMetadataEx* This,IXMLDOMDocument **pDoc) { + return This->lpVtbl->GetDocument(This,pDoc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_SaveAsXML(IVssExamineWriterMetadataEx* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_LoadFromXML(IVssExamineWriterMetadataEx* This,BSTR bstrXML) { + return This->lpVtbl->LoadFromXML(This,bstrXML); +} +/*** IVssExamineWriterMetadataEx methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx_GetIdentityEx(IVssExamineWriterMetadataEx* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) { + return This->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource); +} +#endif +#endif + +#endif + + +#endif /* __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssExamineWriterMetadataEx2 interface + */ +#ifndef __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__ +#define __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssExamineWriterMetadataEx2, 0xce115780, 0xa611, 0x431b, 0xb5,0x7f, 0xc3,0x83,0x03,0xab,0x6a,0xee); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ce115780-a611-431b-b57f-c38303ab6aee") +IVssExamineWriterMetadataEx2 : public IVssExamineWriterMetadataEx +{ + virtual HRESULT STDMETHODCALLTYPE GetVersion( + DWORD *pdwMajorVersion, + DWORD *pdwMinorVersion) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExcludeFromSnapshotCount( + UINT *pcExcludedFromSnapshot) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetExcludeFromSnapshotFile( + UINT iFile, + IVssWMFiledesc **ppFiledesc) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssExamineWriterMetadataEx2, 0xce115780, 0xa611, 0x431b, 0xb5,0x7f, 0xc3,0x83,0x03,0xab,0x6a,0xee) +#endif +#else +typedef struct IVssExamineWriterMetadataEx2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssExamineWriterMetadataEx2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssExamineWriterMetadataEx2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssExamineWriterMetadataEx2 *This); + + /*** IVssExamineWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIdentity)( + IVssExamineWriterMetadataEx2 *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource); + + HRESULT (STDMETHODCALLTYPE *GetFileCounts)( + IVssExamineWriterMetadataEx2 *This, + UINT *pcIncludeFiles, + UINT *pcExcludeFiles, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetIncludeFile)( + IVssExamineWriterMetadataEx2 *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetExcludeFile)( + IVssExamineWriterMetadataEx2 *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetComponent)( + IVssExamineWriterMetadataEx2 *This, + UINT iComponent, + IVssWMComponent **ppComponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMethod)( + IVssExamineWriterMetadataEx2 *This, + VSS_RESTOREMETHOD_ENUM *pMethod, + BSTR *pbstrService, + BSTR *pbstrUserProcedure, + VSS_WRITERRESTORE_ENUM *pwriterRestore, + boolean *pbRebootRequired, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssExamineWriterMetadataEx2 *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *GetBackupSchema)( + IVssExamineWriterMetadataEx2 *This, + DWORD *pdwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *GetDocument)( + IVssExamineWriterMetadataEx2 *This, + IXMLDOMDocument **pDoc); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssExamineWriterMetadataEx2 *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *LoadFromXML)( + IVssExamineWriterMetadataEx2 *This, + BSTR bstrXML); + + /*** IVssExamineWriterMetadataEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIdentityEx)( + IVssExamineWriterMetadataEx2 *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriterName, + BSTR *pbstrInstanceName, + VSS_USAGE_TYPE *pUsage, + VSS_SOURCE_TYPE *pSource); + + /*** IVssExamineWriterMetadataEx2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetVersion)( + IVssExamineWriterMetadataEx2 *This, + DWORD *pdwMajorVersion, + DWORD *pdwMinorVersion); + + HRESULT (STDMETHODCALLTYPE *GetExcludeFromSnapshotCount)( + IVssExamineWriterMetadataEx2 *This, + UINT *pcExcludedFromSnapshot); + + HRESULT (STDMETHODCALLTYPE *GetExcludeFromSnapshotFile)( + IVssExamineWriterMetadataEx2 *This, + UINT iFile, + IVssWMFiledesc **ppFiledesc); + + END_INTERFACE +} IVssExamineWriterMetadataEx2Vtbl; + +interface IVssExamineWriterMetadataEx2 { + CONST_VTBL IVssExamineWriterMetadataEx2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssExamineWriterMetadataEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssExamineWriterMetadataEx2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssExamineWriterMetadataEx2_Release(This) (This)->lpVtbl->Release(This) +/*** IVssExamineWriterMetadata methods ***/ +#define IVssExamineWriterMetadataEx2_GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) (This)->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource) +#define IVssExamineWriterMetadataEx2_GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) (This)->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents) +#define IVssExamineWriterMetadataEx2_GetIncludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadataEx2_GetExcludeFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc) +#define IVssExamineWriterMetadataEx2_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent) +#define IVssExamineWriterMetadataEx2_GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) (This)->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings) +#define IVssExamineWriterMetadataEx2_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssExamineWriterMetadataEx2_GetBackupSchema(This,pdwSchemaMask) (This)->lpVtbl->GetBackupSchema(This,pdwSchemaMask) +#define IVssExamineWriterMetadataEx2_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc) +#define IVssExamineWriterMetadataEx2_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#define IVssExamineWriterMetadataEx2_LoadFromXML(This,bstrXML) (This)->lpVtbl->LoadFromXML(This,bstrXML) +/*** IVssExamineWriterMetadataEx methods ***/ +#define IVssExamineWriterMetadataEx2_GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) (This)->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource) +/*** IVssExamineWriterMetadataEx2 methods ***/ +#define IVssExamineWriterMetadataEx2_GetVersion(This,pdwMajorVersion,pdwMinorVersion) (This)->lpVtbl->GetVersion(This,pdwMajorVersion,pdwMinorVersion) +#define IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot) (This)->lpVtbl->GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot) +#define IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotFile(This,iFile,ppFiledesc) (This)->lpVtbl->GetExcludeFromSnapshotFile(This,iFile,ppFiledesc) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_QueryInterface(IVssExamineWriterMetadataEx2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssExamineWriterMetadataEx2_AddRef(IVssExamineWriterMetadataEx2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssExamineWriterMetadataEx2_Release(IVssExamineWriterMetadataEx2* This) { + return This->lpVtbl->Release(This); +} +/*** IVssExamineWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIdentity(IVssExamineWriterMetadataEx2* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) { + return This->lpVtbl->GetIdentity(This,pidInstance,pidWriter,pbstrWriterName,pUsage,pSource); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetFileCounts(IVssExamineWriterMetadataEx2* This,UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) { + return This->lpVtbl->GetFileCounts(This,pcIncludeFiles,pcExcludeFiles,pcComponents); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIncludeFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetIncludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetExcludeFile(This,iFile,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetComponent(IVssExamineWriterMetadataEx2* This,UINT iComponent,IVssWMComponent **ppComponent) { + return This->lpVtbl->GetComponent(This,iComponent,ppComponent); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetRestoreMethod(IVssExamineWriterMetadataEx2* This,VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwriterRestore,boolean *pbRebootRequired,UINT *pcMappings) { + return This->lpVtbl->GetRestoreMethod(This,pMethod,pbstrService,pbstrUserProcedure,pwriterRestore,pbRebootRequired,pcMappings); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetAlternateLocationMapping(IVssExamineWriterMetadataEx2* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetBackupSchema(IVssExamineWriterMetadataEx2* This,DWORD *pdwSchemaMask) { + return This->lpVtbl->GetBackupSchema(This,pdwSchemaMask); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetDocument(IVssExamineWriterMetadataEx2* This,IXMLDOMDocument **pDoc) { + return This->lpVtbl->GetDocument(This,pDoc); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_SaveAsXML(IVssExamineWriterMetadataEx2* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_LoadFromXML(IVssExamineWriterMetadataEx2* This,BSTR bstrXML) { + return This->lpVtbl->LoadFromXML(This,bstrXML); +} +/*** IVssExamineWriterMetadataEx methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetIdentityEx(IVssExamineWriterMetadataEx2* This,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) { + return This->lpVtbl->GetIdentityEx(This,pidInstance,pidWriter,pbstrWriterName,pbstrInstanceName,pUsage,pSource); +} +/*** IVssExamineWriterMetadataEx2 methods ***/ +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetVersion(IVssExamineWriterMetadataEx2* This,DWORD *pdwMajorVersion,DWORD *pdwMinorVersion) { + return This->lpVtbl->GetVersion(This,pdwMajorVersion,pdwMinorVersion); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotCount(IVssExamineWriterMetadataEx2* This,UINT *pcExcludedFromSnapshot) { + return This->lpVtbl->GetExcludeFromSnapshotCount(This,pcExcludedFromSnapshot); +} +static FORCEINLINE HRESULT IVssExamineWriterMetadataEx2_GetExcludeFromSnapshotFile(IVssExamineWriterMetadataEx2* This,UINT iFile,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetExcludeFromSnapshotFile(This,iFile,ppFiledesc); +} +#endif +#endif + +#endif + + +#endif /* __IVssExamineWriterMetadataEx2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssWriterComponentsExt interface + */ +#ifndef __IVssWriterComponentsExt_INTERFACE_DEFINED__ +#define __IVssWriterComponentsExt_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssWriterComponentsExt, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWriterComponentsExt : public IVssWriterComponents +{ +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWriterComponentsExt, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssWriterComponentsExtVtbl { + BEGIN_INTERFACE + + /*** IVssWriterComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetComponentCount)( + IVssWriterComponentsExt *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterInfo)( + IVssWriterComponentsExt *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter); + + HRESULT (STDMETHODCALLTYPE *GetComponent)( + IVssWriterComponentsExt *This, + UINT iComponent, + IVssComponent **ppComponent); + + END_INTERFACE +} IVssWriterComponentsExtVtbl; + +interface IVssWriterComponentsExt { + CONST_VTBL IVssWriterComponentsExtVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IVssWriterComponents methods ***/ +#define IVssWriterComponentsExt_GetComponentCount(This,pcComponents) (This)->lpVtbl->GetComponentCount(This,pcComponents) +#define IVssWriterComponentsExt_GetWriterInfo(This,pidInstance,pidWriter) (This)->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter) +#define IVssWriterComponentsExt_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent) +#else +/*** IVssWriterComponents methods ***/ +static FORCEINLINE HRESULT IVssWriterComponentsExt_GetComponentCount(IVssWriterComponentsExt* This,UINT *pcComponents) { + return This->lpVtbl->GetComponentCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssWriterComponentsExt_GetWriterInfo(IVssWriterComponentsExt* This,VSS_ID *pidInstance,VSS_ID *pidWriter) { + return This->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter); +} +static FORCEINLINE HRESULT IVssWriterComponentsExt_GetComponent(IVssWriterComponentsExt* This,UINT iComponent,IVssComponent **ppComponent) { + return This->lpVtbl->GetComponent(This,iComponent,ppComponent); +} +#endif +#endif + +#endif + + +#endif /* __IVssWriterComponentsExt_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssBackupComponents interface + */ +#ifndef __IVssBackupComponents_INTERFACE_DEFINED__ +#define __IVssBackupComponents_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssBackupComponents, 0x665c1d5f, 0xc218, 0x414d, 0xa0,0x5d, 0x7f,0xef,0x5f,0x9d,0x5c,0x86); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("665c1d5f-c218-414d-a05d-7fef5f9d5c86") +IVssBackupComponents : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetWriterComponentsCount( + UINT *pcComponents) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterComponents( + UINT iWriter, + IVssWriterComponentsExt **ppWriter) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitializeForBackup( + BSTR bstrXML = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupState( + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE InitializeForRestore( + BSTR bstrXML) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreState( + VSS_RESTORE_TYPE restoreType) = 0; + + virtual HRESULT STDMETHODCALLTYPE GatherWriterMetadata( + IVssAsync **pAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterMetadataCount( + UINT *pcWriters) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterMetadata( + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE FreeWriterMetadata( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddComponent( + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName) = 0; + + virtual HRESULT STDMETHODCALLTYPE PrepareForBackup( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE AbortBackup( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GatherWriterStatus( + IVssAsync **pAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterStatusCount( + UINT *pcWriters) = 0; + + virtual HRESULT STDMETHODCALLTYPE FreeWriterStatus( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterStatus( + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupSucceeded( + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupOptions( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSelectedForRestore( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreOptions( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAdditionalRestores( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreviousBackupStamp( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveAsXML( + BSTR *pbstrXML) = 0; + + virtual HRESULT STDMETHODCALLTYPE BackupComplete( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddAlternativeLocationMapping( + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddRestoreSubcomponent( + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFileRestoreStatus( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddNewTarget( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRangesFilePath( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile) = 0; + + virtual HRESULT STDMETHODCALLTYPE PreRestore( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE PostRestore( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetContext( + LONG lContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE StartSnapshotSet( + VSS_ID *pSnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddToSnapshotSet( + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot) = 0; + + virtual HRESULT STDMETHODCALLTYPE DoSnapshotSet( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID) = 0; + + virtual HRESULT STDMETHODCALLTYPE ImportSnapshots( + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE BreakSnapshotSet( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp) = 0; + + virtual HRESULT STDMETHODCALLTYPE Query( + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported( + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableWriterClasses( + const VSS_ID *rgWriterClassId, + UINT cClassId) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnableWriterClasses( + const VSS_ID *rgWriterClassId, + UINT cClassId) = 0; + + virtual HRESULT STDMETHODCALLTYPE DisableWriterInstances( + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId) = 0; + + virtual HRESULT STDMETHODCALLTYPE ExposeSnapshot( + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed) = 0; + + virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot( + VSS_ID SnapshotId, + WINBOOL bForceDismount) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus( + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponents, 0x665c1d5f, 0xc218, 0x414d, 0xa0,0x5d, 0x7f,0xef,0x5f,0x9d,0x5c,0x86) +#endif +#else +typedef struct IVssBackupComponentsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponents *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponents *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponents *This); + + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponents *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponents *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); + + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponents *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponents *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); + + HRESULT (STDMETHODCALLTYPE *InitializeForRestore)( + IVssBackupComponents *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetRestoreState)( + IVssBackupComponents *This, + VSS_RESTORE_TYPE restoreType); + + HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)( + IVssBackupComponents *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)( + IVssBackupComponents *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)( + IVssBackupComponents *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)( + IVssBackupComponents *This); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssBackupComponents *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName); + + HRESULT (STDMETHODCALLTYPE *PrepareForBackup)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AbortBackup)( + IVssBackupComponents *This); + + HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)( + IVssBackupComponents *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)( + IVssBackupComponents *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)( + IVssBackupComponents *This); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatus)( + IVssBackupComponents *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure); + + HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)( + IVssBackupComponents *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded); + + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssBackupComponents *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *BackupComplete)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair); + + HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status); + + HRESULT (STDMETHODCALLTYPE *AddNewTarget)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath); + + HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)( + IVssBackupComponents *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile); + + HRESULT (STDMETHODCALLTYPE *PreRestore)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PostRestore)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssBackupComponents *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)( + IVssBackupComponents *This, + VSS_ID *pSnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)( + IVssBackupComponents *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot); + + HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssBackupComponents *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *ImportSnapshots)( + IVssBackupComponents *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)( + IVssBackupComponents *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssBackupComponents *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssBackupComponents *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssBackupComponents *This, + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)( + IVssBackupComponents *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)( + IVssBackupComponents *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)( + IVssBackupComponents *This, + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId); + + HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)( + IVssBackupComponents *This, + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssBackupComponents *This, + VSS_ID SnapshotId, + WINBOOL bForceDismount); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssBackupComponents *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); + + END_INTERFACE +} IVssBackupComponentsVtbl; + +interface IVssBackupComponents { + CONST_VTBL IVssBackupComponentsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssBackupComponents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssBackupComponents_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssBackupComponents_Release(This) (This)->lpVtbl->Release(This) +/*** IVssBackupComponents methods ***/ #define IVssBackupComponents_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents) -#define IVssBackupComponents_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents) +#define IVssBackupComponents_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter) #define IVssBackupComponents_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML) #define IVssBackupComponents_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) #define IVssBackupComponents_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML) #define IVssBackupComponents_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType) -#define IVssBackupComponents_GatherWriterMetadata(This,ppAsync) (This)->lpVtbl->GatherWriterMetadata(This,ppAsync) +#define IVssBackupComponents_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync) #define IVssBackupComponents_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters) -#define IVssBackupComponents_GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) -#define IVssBackupComponents_FreeWriterMetadata() (This)->lpVtbl->FreeWriterMetadata(This) -#define IVssBackupComponents_AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) +#define IVssBackupComponents_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponents_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This) +#define IVssBackupComponents_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) #define IVssBackupComponents_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync) -#define IVssBackupComponents_AbortBackup() (This)->lpVtbl->AbortBackup(This) -#define IVssBackupComponents_GatherWriterStatus(This,ppAsync) (This)->lpVtbl->GatherWriterStatus(This,ppAsync) +#define IVssBackupComponents_AbortBackup(This) (This)->lpVtbl->AbortBackup(This) +#define IVssBackupComponents_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync) #define IVssBackupComponents_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters) -#define IVssBackupComponents_FreeWriterStatus() (This)->lpVtbl->FreeWriterStatus(This) -#define IVssBackupComponents_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) -#define IVssBackupComponents_SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) -#define IVssBackupComponents_SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) -#define IVssBackupComponents_SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) -#define IVssBackupComponents_SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) -#define IVssBackupComponents_SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) (This)->lpVtbl->SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) -#define IVssBackupComponents_SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) +#define IVssBackupComponents_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This) +#define IVssBackupComponents_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) +#define IVssBackupComponents_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) +#define IVssBackupComponents_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) +#define IVssBackupComponents_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) +#define IVssBackupComponents_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) +#define IVssBackupComponents_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) +#define IVssBackupComponents_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) #define IVssBackupComponents_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) #define IVssBackupComponents_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync) #define IVssBackupComponents_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) #define IVssBackupComponents_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) -#define IVssBackupComponents_SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) +#define IVssBackupComponents_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) #define IVssBackupComponents_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) #define IVssBackupComponents_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) #define IVssBackupComponents_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync) @@ -221,113 +1577,552 @@ DECLARE_INTERFACE_(IVssBackupComponents,IUnknown) #define IVssBackupComponents_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) #define IVssBackupComponents_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount) #define IVssBackupComponents_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) -#endif /*COBJMACROS*/ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssBackupComponents_QueryInterface(IVssBackupComponents* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssBackupComponents_AddRef(IVssBackupComponents* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssBackupComponents_Release(IVssBackupComponents* This) { + return This->lpVtbl->Release(This); +} +/*** IVssBackupComponents methods ***/ +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponentsCount(IVssBackupComponents* This,UINT *pcComponents) { + return This->lpVtbl->GetWriterComponentsCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponents(IVssBackupComponents* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) { + return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter); +} +static FORCEINLINE HRESULT IVssBackupComponents_InitializeForBackup(IVssBackupComponents* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForBackup(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetBackupState(IVssBackupComponents* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) { + return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport); +} +static FORCEINLINE HRESULT IVssBackupComponents_InitializeForRestore(IVssBackupComponents* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForRestore(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreState(IVssBackupComponents* This,VSS_RESTORE_TYPE restoreType) { + return This->lpVtbl->SetRestoreState(This,restoreType); +} +static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterMetadata(IVssBackupComponents* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterMetadata(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadataCount(IVssBackupComponents* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterMetadataCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadata(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) { + return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterMetadata(IVssBackupComponents* This) { + return This->lpVtbl->FreeWriterMetadata(This); +} +static FORCEINLINE HRESULT IVssBackupComponents_AddComponent(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) { + return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName); +} +static FORCEINLINE HRESULT IVssBackupComponents_PrepareForBackup(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->PrepareForBackup(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_AbortBackup(IVssBackupComponents* This) { + return This->lpVtbl->AbortBackup(This); +} +static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterStatus(IVssBackupComponents* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterStatus(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatusCount(IVssBackupComponents* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterStatusCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterStatus(IVssBackupComponents* This) { + return This->lpVtbl->FreeWriterStatus(This); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatus(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) { + return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetBackupSucceeded(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) { + return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetBackupOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) { + return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetSelectedForRestore(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) { + return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) { + return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetAdditionalRestores(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) { + return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetPreviousBackupStamp(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) { + return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp); +} +static FORCEINLINE HRESULT IVssBackupComponents_SaveAsXML(IVssBackupComponents* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponents_BackupComplete(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->BackupComplete(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_AddAlternativeLocationMapping(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssBackupComponents_AddRestoreSubcomponent(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) { + return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetFileRestoreStatus(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) { + return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status); +} +static FORCEINLINE HRESULT IVssBackupComponents_AddNewTarget(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) { + return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetRangesFilePath(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) { + return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile); +} +static FORCEINLINE HRESULT IVssBackupComponents_PreRestore(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->PreRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_PostRestore(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->PostRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_SetContext(IVssBackupComponents* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssBackupComponents_StartSnapshotSet(IVssBackupComponents* This,VSS_ID *pSnapshotSetId) { + return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponents_AddToSnapshotSet(IVssBackupComponents* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) { + return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot); +} +static FORCEINLINE HRESULT IVssBackupComponents_DoSnapshotSet(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->DoSnapshotSet(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_DeleteSnapshots(IVssBackupComponents* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssBackupComponents_ImportSnapshots(IVssBackupComponents* This,IVssAsync **ppAsync) { + return This->lpVtbl->ImportSnapshots(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponents_BreakSnapshotSet(IVssBackupComponents* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponents_GetSnapshotProperties(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssBackupComponents_Query(IVssBackupComponents* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssBackupComponents_IsVolumeSupported(IVssBackupComponents* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponents_EnableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterInstances(IVssBackupComponents* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) { + return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId); +} +static FORCEINLINE HRESULT IVssBackupComponents_ExposeSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) { + return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed); +} +static FORCEINLINE HRESULT IVssBackupComponents_RevertToSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,WINBOOL bForceDismount) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount); +} +static FORCEINLINE HRESULT IVssBackupComponents_QueryRevertStatus(IVssBackupComponents* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +#endif +#endif -#if (_WIN32_WINNT >= 0x0600) -#undef INTERFACE -#define INTERFACE IVssBackupComponentsEx -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssBackupComponentsEx,IVssBackupComponents) + + +#endif /* __IVssBackupComponents_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssBackupComponentsEx interface + */ +#ifndef __IVssBackupComponentsEx_INTERFACE_DEFINED__ +#define __IVssBackupComponentsEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssBackupComponentsEx, 0x963f03ad, 0x9e4c, 0x4a34, 0xac,0x15, 0xe4,0xb6,0x17,0x4e,0x50,0x36); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("963f03ad-9e4c-4a34-ac15-e4b6174e5036") +IVssBackupComponentsEx : public IVssBackupComponents { + virtual HRESULT STDMETHODCALLTYPE GetWriterMetadataEx( + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadataEx **ppMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSelectedForRestoreEx( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore, + VSS_ID instanceId) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponentsEx, 0x963f03ad, 0x9e4c, 0x4a34, 0xac,0x15, 0xe4,0xb6,0x17,0x4e,0x50,0x36) +#endif +#else +typedef struct IVssBackupComponentsExVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssBackupComponents methods */ - STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE; - STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE; - STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE; - STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE; - STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE; - STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE; - STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE; - STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE; - STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE; - STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE; - STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE; - STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE; - STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE; - STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE; - STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE; - STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE; - STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; - STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE; - STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE; - STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; - STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; - STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE; - STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE; - STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE; - STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE; - STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; - - /* IVssBackupComponentsEx methods */ - STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx *This); + + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponentsEx *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); + + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponentsEx *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponentsEx *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); + + HRESULT (STDMETHODCALLTYPE *InitializeForRestore)( + IVssBackupComponentsEx *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetRestoreState)( + IVssBackupComponentsEx *This, + VSS_RESTORE_TYPE restoreType); + + HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)( + IVssBackupComponentsEx *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)( + IVssBackupComponentsEx *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)( + IVssBackupComponentsEx *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)( + IVssBackupComponentsEx *This); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssBackupComponentsEx *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName); + + HRESULT (STDMETHODCALLTYPE *PrepareForBackup)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AbortBackup)( + IVssBackupComponentsEx *This); + + HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)( + IVssBackupComponentsEx *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)( + IVssBackupComponentsEx *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)( + IVssBackupComponentsEx *This); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatus)( + IVssBackupComponentsEx *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure); + + HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)( + IVssBackupComponentsEx *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded); + + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssBackupComponentsEx *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *BackupComplete)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair); + + HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status); + + HRESULT (STDMETHODCALLTYPE *AddNewTarget)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath); + + HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile); + + HRESULT (STDMETHODCALLTYPE *PreRestore)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PostRestore)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssBackupComponentsEx *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)( + IVssBackupComponentsEx *This, + VSS_ID *pSnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)( + IVssBackupComponentsEx *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot); + + HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssBackupComponentsEx *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *ImportSnapshots)( + IVssBackupComponentsEx *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)( + IVssBackupComponentsEx *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssBackupComponentsEx *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssBackupComponentsEx *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssBackupComponentsEx *This, + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)( + IVssBackupComponentsEx *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)( + IVssBackupComponentsEx *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)( + IVssBackupComponentsEx *This, + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId); + + HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)( + IVssBackupComponentsEx *This, + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssBackupComponentsEx *This, + VSS_ID SnapshotId, + WINBOOL bForceDismount); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssBackupComponentsEx *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)( + IVssBackupComponentsEx *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadataEx **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)( + IVssBackupComponentsEx *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore, + VSS_ID instanceId); END_INTERFACE +} IVssBackupComponentsExVtbl; + +interface IVssBackupComponentsEx { + CONST_VTBL IVssBackupComponentsExVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssBackupComponentsEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssBackupComponentsEx_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssBackupComponentsEx_Release(This) (This)->lpVtbl->Release(This) +/*** IVssBackupComponents methods ***/ #define IVssBackupComponentsEx_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents) -#define IVssBackupComponentsEx_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents) +#define IVssBackupComponentsEx_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter) #define IVssBackupComponentsEx_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML) #define IVssBackupComponentsEx_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) #define IVssBackupComponentsEx_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML) #define IVssBackupComponentsEx_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType) -#define IVssBackupComponentsEx_GatherWriterMetadata(This,ppAsync) (This)->lpVtbl->GatherWriterMetadata(This,ppAsync) +#define IVssBackupComponentsEx_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync) #define IVssBackupComponentsEx_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters) -#define IVssBackupComponentsEx_GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) -#define IVssBackupComponentsEx_FreeWriterMetadata() (This)->lpVtbl->FreeWriterMetadata(This) -#define IVssBackupComponentsEx_AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) +#define IVssBackupComponentsEx_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This) +#define IVssBackupComponentsEx_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) #define IVssBackupComponentsEx_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync) -#define IVssBackupComponentsEx_AbortBackup() (This)->lpVtbl->AbortBackup(This) -#define IVssBackupComponentsEx_GatherWriterStatus(This,ppAsync) (This)->lpVtbl->GatherWriterStatus(This,ppAsync) +#define IVssBackupComponentsEx_AbortBackup(This) (This)->lpVtbl->AbortBackup(This) +#define IVssBackupComponentsEx_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync) #define IVssBackupComponentsEx_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters) -#define IVssBackupComponentsEx_FreeWriterStatus() (This)->lpVtbl->FreeWriterStatus(This) -#define IVssBackupComponentsEx_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) -#define IVssBackupComponentsEx_SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) -#define IVssBackupComponentsEx_SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) -#define IVssBackupComponentsEx_SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) -#define IVssBackupComponentsEx_SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) -#define IVssBackupComponentsEx_SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) (This)->lpVtbl->SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) -#define IVssBackupComponentsEx_SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) +#define IVssBackupComponentsEx_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This) +#define IVssBackupComponentsEx_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) +#define IVssBackupComponentsEx_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) +#define IVssBackupComponentsEx_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) +#define IVssBackupComponentsEx_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) +#define IVssBackupComponentsEx_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) +#define IVssBackupComponentsEx_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) +#define IVssBackupComponentsEx_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) #define IVssBackupComponentsEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) #define IVssBackupComponentsEx_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync) #define IVssBackupComponentsEx_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) #define IVssBackupComponentsEx_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) -#define IVssBackupComponentsEx_SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) +#define IVssBackupComponentsEx_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) #define IVssBackupComponentsEx_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) #define IVssBackupComponentsEx_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) #define IVssBackupComponentsEx_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync) @@ -348,123 +2143,637 @@ DECLARE_INTERFACE_(IVssBackupComponentsEx,IVssBackupComponents) #define IVssBackupComponentsEx_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) #define IVssBackupComponentsEx_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount) #define IVssBackupComponentsEx_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) +/*** IVssBackupComponentsEx methods ***/ #define IVssBackupComponentsEx_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) #define IVssBackupComponentsEx_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) -#endif /*COBJMACROS*/ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryInterface(IVssBackupComponentsEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssBackupComponentsEx_AddRef(IVssBackupComponentsEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssBackupComponentsEx_Release(IVssBackupComponentsEx* This) { + return This->lpVtbl->Release(This); +} +/*** IVssBackupComponents methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponentsCount(IVssBackupComponentsEx* This,UINT *pcComponents) { + return This->lpVtbl->GetWriterComponentsCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponents(IVssBackupComponentsEx* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) { + return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForBackup(IVssBackupComponentsEx* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForBackup(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupState(IVssBackupComponentsEx* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) { + return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForRestore(IVssBackupComponentsEx* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForRestore(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreState(IVssBackupComponentsEx* This,VSS_RESTORE_TYPE restoreType) { + return This->lpVtbl->SetRestoreState(This,restoreType); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterMetadata(IVssBackupComponentsEx* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterMetadata(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataCount(IVssBackupComponentsEx* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterMetadataCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadata(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) { + return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterMetadata(IVssBackupComponentsEx* This) { + return This->lpVtbl->FreeWriterMetadata(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AddComponent(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) { + return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_PrepareForBackup(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->PrepareForBackup(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AbortBackup(IVssBackupComponentsEx* This) { + return This->lpVtbl->AbortBackup(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterStatus(IVssBackupComponentsEx* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterStatus(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatusCount(IVssBackupComponentsEx* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterStatusCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterStatus(IVssBackupComponentsEx* This) { + return This->lpVtbl->FreeWriterStatus(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatus(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) { + return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupSucceeded(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) { + return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) { + return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestore(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) { + return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) { + return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetAdditionalRestores(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) { + return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetPreviousBackupStamp(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) { + return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SaveAsXML(IVssBackupComponentsEx* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_BackupComplete(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->BackupComplete(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AddAlternativeLocationMapping(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AddRestoreSubcomponent(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) { + return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetFileRestoreStatus(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) { + return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AddNewTarget(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) { + return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRangesFilePath(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) { + return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_PreRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->PreRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_PostRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->PostRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetContext(IVssBackupComponentsEx* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_StartSnapshotSet(IVssBackupComponentsEx* This,VSS_ID *pSnapshotSetId) { + return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_AddToSnapshotSet(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) { + return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_DoSnapshotSet(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->DoSnapshotSet(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_DeleteSnapshots(IVssBackupComponentsEx* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_ImportSnapshots(IVssBackupComponentsEx* This,IVssAsync **ppAsync) { + return This->lpVtbl->ImportSnapshots(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_BreakSnapshotSet(IVssBackupComponentsEx* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetSnapshotProperties(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_Query(IVssBackupComponentsEx* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_IsVolumeSupported(IVssBackupComponentsEx* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_EnableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterInstances(IVssBackupComponentsEx* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) { + return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_ExposeSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) { + return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_RevertToSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,WINBOOL bForceDismount) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryRevertStatus(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +/*** IVssBackupComponentsEx methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataEx(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) { + return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestoreEx(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) { + return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId); +} +#endif +#endif -#undef INTERFACE -#define INTERFACE IVssBackupComponentsEx2 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssBackupComponentsEx2,IVssBackupComponentsEx) + + +#endif /* __IVssBackupComponentsEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssBackupComponentsEx2 interface + */ +#ifndef __IVssBackupComponentsEx2_INTERFACE_DEFINED__ +#define __IVssBackupComponentsEx2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssBackupComponentsEx2, 0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd,0x03, 0x2f,0x9c,0xa2,0x30,0x08,0x4e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("acfe2b3a-22c9-4ef8-bd03-2f9ca230084e") +IVssBackupComponentsEx2 : public IVssBackupComponentsEx { + virtual HRESULT STDMETHODCALLTYPE UnexposeSnapshot( + VSS_ID snapshotId) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAuthoritativeRestore( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAuth) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRollForward( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_ROLLFORWARD_TYPE rollType, + LPCWSTR wszRollForwardPoint) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreName( + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreName) = 0; + + virtual HRESULT STDMETHODCALLTYPE BreakSnapshotSetEx( + VSS_ID SnapshotSetID, + DWORD dwBreakFlags, + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE PreFastRecovery( + VSS_ID SnapshotSetID, + DWORD dwPreFastRecoveryFlags, + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE FastRecovery( + VSS_ID SnapshotSetID, + DWORD dwFastRecoveryFlags, + IVssAsync **ppAsync) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponentsEx2, 0xacfe2b3a, 0x22c9, 0x4ef8, 0xbd,0x03, 0x2f,0x9c,0xa2,0x30,0x08,0x4e) +#endif +#else +typedef struct IVssBackupComponentsEx2Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssBackupComponents methods */ - STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE; - STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE; - STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE; - STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE; - STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE; - STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE; - STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE; - STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE; - STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE; - STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE; - STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE; - STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE; - STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE; - STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE; - STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE; - STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE; - STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; - STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE; - STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE; - STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; - STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; - STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE; - STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE; - STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE; - STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE; - STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; - - /* IVssBackupComponentsEx methods */ - STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE; - - /* IVssBackupComponentsEx2 methods */ - STDMETHOD_(HRESULT,UnexposeSnapshot)(THIS_ VSS_ID snapshotId) PURE; - STDMETHOD_(HRESULT,SetAuthoritativeRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAuth) PURE; - STDMETHOD_(HRESULT,SetRollForward)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) PURE; - STDMETHOD_(HRESULT,SetRestoreName)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSetEx)(THIS_ VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PreFastRecovery)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,FastRecovery)(THIS) PURE; /*Unsupported*/ + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx2 *This); + + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx2 *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponentsEx2 *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); + + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponentsEx2 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponentsEx2 *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); + + HRESULT (STDMETHODCALLTYPE *InitializeForRestore)( + IVssBackupComponentsEx2 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetRestoreState)( + IVssBackupComponentsEx2 *This, + VSS_RESTORE_TYPE restoreType); + + HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)( + IVssBackupComponentsEx2 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)( + IVssBackupComponentsEx2 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)( + IVssBackupComponentsEx2 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)( + IVssBackupComponentsEx2 *This); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssBackupComponentsEx2 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName); + + HRESULT (STDMETHODCALLTYPE *PrepareForBackup)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AbortBackup)( + IVssBackupComponentsEx2 *This); + + HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)( + IVssBackupComponentsEx2 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)( + IVssBackupComponentsEx2 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)( + IVssBackupComponentsEx2 *This); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatus)( + IVssBackupComponentsEx2 *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure); + + HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)( + IVssBackupComponentsEx2 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded); + + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssBackupComponentsEx2 *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *BackupComplete)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair); + + HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status); + + HRESULT (STDMETHODCALLTYPE *AddNewTarget)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath); + + HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile); + + HRESULT (STDMETHODCALLTYPE *PreRestore)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PostRestore)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssBackupComponentsEx2 *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)( + IVssBackupComponentsEx2 *This, + VSS_ID *pSnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)( + IVssBackupComponentsEx2 *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot); + + HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssBackupComponentsEx2 *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *ImportSnapshots)( + IVssBackupComponentsEx2 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssBackupComponentsEx2 *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssBackupComponentsEx2 *This, + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)( + IVssBackupComponentsEx2 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)( + IVssBackupComponentsEx2 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)( + IVssBackupComponentsEx2 *This, + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId); + + HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotId, + WINBOOL bForceDismount); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssBackupComponentsEx2 *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)( + IVssBackupComponentsEx2 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadataEx **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore, + VSS_ID instanceId); + + /*** IVssBackupComponentsEx2 methods ***/ + HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)( + IVssBackupComponentsEx2 *This, + VSS_ID snapshotId); + + HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAuth); + + HRESULT (STDMETHODCALLTYPE *SetRollForward)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_ROLLFORWARD_TYPE rollType, + LPCWSTR wszRollForwardPoint); + + HRESULT (STDMETHODCALLTYPE *SetRestoreName)( + IVssBackupComponentsEx2 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreName); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotSetID, + DWORD dwBreakFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PreFastRecovery)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotSetID, + DWORD dwPreFastRecoveryFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *FastRecovery)( + IVssBackupComponentsEx2 *This, + VSS_ID SnapshotSetID, + DWORD dwFastRecoveryFlags, + IVssAsync **ppAsync); END_INTERFACE +} IVssBackupComponentsEx2Vtbl; + +interface IVssBackupComponentsEx2 { + CONST_VTBL IVssBackupComponentsEx2Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssBackupComponentsEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssBackupComponentsEx2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssBackupComponentsEx2_Release(This) (This)->lpVtbl->Release(This) +/*** IVssBackupComponents methods ***/ #define IVssBackupComponentsEx2_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents) -#define IVssBackupComponentsEx2_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents) +#define IVssBackupComponentsEx2_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter) #define IVssBackupComponentsEx2_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML) #define IVssBackupComponentsEx2_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) #define IVssBackupComponentsEx2_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML) #define IVssBackupComponentsEx2_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType) -#define IVssBackupComponentsEx2_GatherWriterMetadata(This,ppAsync) (This)->lpVtbl->GatherWriterMetadata(This,ppAsync) +#define IVssBackupComponentsEx2_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync) #define IVssBackupComponentsEx2_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters) -#define IVssBackupComponentsEx2_GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidWriterInstance,ppMetadata) -#define IVssBackupComponentsEx2_FreeWriterMetadata() (This)->lpVtbl->FreeWriterMetadata(This) -#define IVssBackupComponentsEx2_AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName) +#define IVssBackupComponentsEx2_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx2_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This) +#define IVssBackupComponentsEx2_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) #define IVssBackupComponentsEx2_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync) -#define IVssBackupComponentsEx2_AbortBackup() (This)->lpVtbl->AbortBackup(This) -#define IVssBackupComponentsEx2_GatherWriterStatus(This,ppAsync) (This)->lpVtbl->GatherWriterStatus(This,ppAsync) +#define IVssBackupComponentsEx2_AbortBackup(This) (This)->lpVtbl->AbortBackup(This) +#define IVssBackupComponentsEx2_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync) #define IVssBackupComponentsEx2_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters) -#define IVssBackupComponentsEx2_FreeWriterStatus() (This)->lpVtbl->FreeWriterStatus(This) -#define IVssBackupComponentsEx2_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pState,pHrResultFailure) -#define IVssBackupComponentsEx2_SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,componentType,wszLogicalPath,wszComponentName,bSucceeded) -#define IVssBackupComponentsEx2_SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszBackupOptions) -#define IVssBackupComponentsEx2_SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,componentType,wszLogicalPath,wszComponentName,bSelectedForRestore) -#define IVssBackupComponentsEx2_SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,componentType,wszLogicalPath,wszComponentName,wszRestoreOptions) -#define IVssBackupComponentsEx2_SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) (This)->lpVtbl->SetAdditionalRestores(This,writerId,componentType,wszLogicalPath,wszComponentName,bAdditionalResources) -#define IVssBackupComponentsEx2_SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) +#define IVssBackupComponentsEx2_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This) +#define IVssBackupComponentsEx2_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) +#define IVssBackupComponentsEx2_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) +#define IVssBackupComponentsEx2_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) +#define IVssBackupComponentsEx2_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) +#define IVssBackupComponentsEx2_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) +#define IVssBackupComponentsEx2_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) +#define IVssBackupComponentsEx2_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) #define IVssBackupComponentsEx2_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) #define IVssBackupComponentsEx2_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync) #define IVssBackupComponentsEx2_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) #define IVssBackupComponentsEx2_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) -#define IVssBackupComponentsEx2_SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,componentType,wszLogicalPath,wszComponentName,status) +#define IVssBackupComponentsEx2_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) #define IVssBackupComponentsEx2_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) #define IVssBackupComponentsEx2_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) #define IVssBackupComponentsEx2_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync) @@ -485,272 +2794,1649 @@ DECLARE_INTERFACE_(IVssBackupComponentsEx2,IVssBackupComponentsEx) #define IVssBackupComponentsEx2_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) #define IVssBackupComponentsEx2_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount) #define IVssBackupComponentsEx2_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) +/*** IVssBackupComponentsEx methods ***/ #define IVssBackupComponentsEx2_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) #define IVssBackupComponentsEx2_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) +/*** IVssBackupComponentsEx2 methods ***/ #define IVssBackupComponentsEx2_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId) #define IVssBackupComponentsEx2_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) #define IVssBackupComponentsEx2_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) #define IVssBackupComponentsEx2_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) #define IVssBackupComponentsEx2_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) -#define IVssBackupComponentsEx2_PreFastRecovery() (This)->lpVtbl->PreFastRecovery(This) -#define IVssBackupComponentsEx2_FastRecovery() (This)->lpVtbl->FastRecovery(This) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x0600)*/ - -#if (_WIN32_WINNT >= 0x0601) -#undef INTERFACE -#define INTERFACE IVssBackupComponentsEx3 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssBackupComponentsEx3,IVssBackupComponentsEx2) +#define IVssBackupComponentsEx2_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) +#define IVssBackupComponentsEx2_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryInterface(IVssBackupComponentsEx2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssBackupComponentsEx2_AddRef(IVssBackupComponentsEx2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssBackupComponentsEx2_Release(IVssBackupComponentsEx2* This) { + return This->lpVtbl->Release(This); +} +/*** IVssBackupComponents methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponentsCount(IVssBackupComponentsEx2* This,UINT *pcComponents) { + return This->lpVtbl->GetWriterComponentsCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponents(IVssBackupComponentsEx2* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) { + return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForBackup(IVssBackupComponentsEx2* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForBackup(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupState(IVssBackupComponentsEx2* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) { + return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForRestore(IVssBackupComponentsEx2* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForRestore(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreState(IVssBackupComponentsEx2* This,VSS_RESTORE_TYPE restoreType) { + return This->lpVtbl->SetRestoreState(This,restoreType); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterMetadata(IVssBackupComponentsEx2* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterMetadata(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataCount(IVssBackupComponentsEx2* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterMetadataCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadata(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) { + return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterMetadata(IVssBackupComponentsEx2* This) { + return This->lpVtbl->FreeWriterMetadata(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddComponent(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) { + return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_PrepareForBackup(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->PrepareForBackup(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AbortBackup(IVssBackupComponentsEx2* This) { + return This->lpVtbl->AbortBackup(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterStatus(IVssBackupComponentsEx2* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterStatus(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatusCount(IVssBackupComponentsEx2* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterStatusCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterStatus(IVssBackupComponentsEx2* This) { + return This->lpVtbl->FreeWriterStatus(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatus(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) { + return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupSucceeded(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) { + return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) { + return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) { + return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) { + return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAdditionalRestores(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) { + return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetPreviousBackupStamp(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) { + return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SaveAsXML(IVssBackupComponentsEx2* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_BackupComplete(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->BackupComplete(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddAlternativeLocationMapping(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddRestoreSubcomponent(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) { + return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetFileRestoreStatus(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) { + return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddNewTarget(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) { + return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRangesFilePath(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) { + return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->PreRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_PostRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->PostRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetContext(IVssBackupComponentsEx2* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_StartSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID *pSnapshotSetId) { + return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddToSnapshotSet(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) { + return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_DoSnapshotSet(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->DoSnapshotSet(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_DeleteSnapshots(IVssBackupComponentsEx2* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_ImportSnapshots(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) { + return This->lpVtbl->ImportSnapshots(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetSnapshotProperties(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_Query(IVssBackupComponentsEx2* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_IsVolumeSupported(IVssBackupComponentsEx2* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_EnableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterInstances(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) { + return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_ExposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) { + return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_RevertToSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,WINBOOL bForceDismount) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryRevertStatus(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +/*** IVssBackupComponentsEx methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataEx(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) { + return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestoreEx(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) { + return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId); +} +/*** IVssBackupComponentsEx2 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx2_UnexposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID snapshotId) { + return This->lpVtbl->UnexposeSnapshot(This,snapshotId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAuthoritativeRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) { + return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRollForward(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) { + return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreName(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) { + return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSetEx(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) { + return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreFastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx2_FastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync); +} +#endif +#endif + +#endif + + +#endif /* __IVssBackupComponentsEx2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssBackupComponentsEx3 interface + */ +#ifndef __IVssBackupComponentsEx3_INTERFACE_DEFINED__ +#define __IVssBackupComponentsEx3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c191bfbc-b602-4675-8bd1-67d642f529d5") +IVssBackupComponentsEx3 : public IVssBackupComponentsEx2 { + virtual HRESULT STDMETHODCALLTYPE GetWriterStatusEx( + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phrFailureWriter, + HRESULT *phrApplication = 0, + BSTR *pbstrApplicationMessage = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddSnapshotToRecoverySet( + VSS_ID snapshotId, + DWORD dwFlags, + VSS_PWSZ pwszDestinationVolume = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE RecoverSet( + DWORD dwFlags, + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSessionId( + VSS_ID *idSession) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5) +#endif +#else +typedef struct IVssBackupComponentsEx3Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssBackupComponents methods */ - STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE; - STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE; - STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE; - STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE; - STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE; - STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE; - STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE; - STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE; - STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE; - STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE; - STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE; - STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE; - STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE; - STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE; - STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE; - STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE; - STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE; - STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE; - STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; - STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE; - STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE; - STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; - STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; - STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE; - STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE; - STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE; - STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE; - STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE; - STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; - - /* IVssBackupComponentsEx methods */ - STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE; - STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE; - - /* IVssBackupComponentsEx2 methods */ - STDMETHOD_(HRESULT,UnexposeSnapshot)(THIS_ VSS_ID snapshotId) PURE; - STDMETHOD_(HRESULT,SetAuthoritativeRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAuth) PURE; - STDMETHOD_(HRESULT,SetRollForward)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) PURE; - STDMETHOD_(HRESULT,SetRestoreName)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) PURE; - STDMETHOD_(HRESULT,BreakSnapshotSetEx)(THIS_ VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) PURE; - STDMETHOD_(HRESULT,PreFastRecovery)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,FastRecovery)(THIS) PURE; /*Unsupported*/ - - /* IVssBackupComponentsEx3 methods */ - STDMETHOD_(HRESULT,AddSnapshotToRecoverySet)(THIS_ VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) PURE; - STDMETHOD_(HRESULT,GetSessionId)(THIS_ VSS_ID *idSession) PURE; - STDMETHOD_(HRESULT,GetWriterStatusEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,BSTR *pbstrApplicationMessage) PURE; - STDMETHOD_(HRESULT,RecoverSet)(THIS_ DWORD dwFlags,IVssAsync **ppAsync) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx3 *This); + + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx3 *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponentsEx3 *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); + + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponentsEx3 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponentsEx3 *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); + + HRESULT (STDMETHODCALLTYPE *InitializeForRestore)( + IVssBackupComponentsEx3 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetRestoreState)( + IVssBackupComponentsEx3 *This, + VSS_RESTORE_TYPE restoreType); + + HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)( + IVssBackupComponentsEx3 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)( + IVssBackupComponentsEx3 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)( + IVssBackupComponentsEx3 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)( + IVssBackupComponentsEx3 *This); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssBackupComponentsEx3 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName); + + HRESULT (STDMETHODCALLTYPE *PrepareForBackup)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AbortBackup)( + IVssBackupComponentsEx3 *This); + + HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)( + IVssBackupComponentsEx3 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)( + IVssBackupComponentsEx3 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)( + IVssBackupComponentsEx3 *This); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatus)( + IVssBackupComponentsEx3 *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure); + + HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)( + IVssBackupComponentsEx3 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded); + + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssBackupComponentsEx3 *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *BackupComplete)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair); + + HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status); + + HRESULT (STDMETHODCALLTYPE *AddNewTarget)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath); + + HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile); + + HRESULT (STDMETHODCALLTYPE *PreRestore)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PostRestore)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssBackupComponentsEx3 *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)( + IVssBackupComponentsEx3 *This, + VSS_ID *pSnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)( + IVssBackupComponentsEx3 *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot); + + HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssBackupComponentsEx3 *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *ImportSnapshots)( + IVssBackupComponentsEx3 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssBackupComponentsEx3 *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssBackupComponentsEx3 *This, + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)( + IVssBackupComponentsEx3 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)( + IVssBackupComponentsEx3 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)( + IVssBackupComponentsEx3 *This, + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId); + + HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotId, + WINBOOL bForceDismount); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssBackupComponentsEx3 *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)( + IVssBackupComponentsEx3 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadataEx **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore, + VSS_ID instanceId); + + /*** IVssBackupComponentsEx2 methods ***/ + HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)( + IVssBackupComponentsEx3 *This, + VSS_ID snapshotId); + + HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAuth); + + HRESULT (STDMETHODCALLTYPE *SetRollForward)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_ROLLFORWARD_TYPE rollType, + LPCWSTR wszRollForwardPoint); + + HRESULT (STDMETHODCALLTYPE *SetRestoreName)( + IVssBackupComponentsEx3 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreName); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotSetID, + DWORD dwBreakFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PreFastRecovery)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotSetID, + DWORD dwPreFastRecoveryFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *FastRecovery)( + IVssBackupComponentsEx3 *This, + VSS_ID SnapshotSetID, + DWORD dwFastRecoveryFlags, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterStatusEx)( + IVssBackupComponentsEx3 *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phrFailureWriter, + HRESULT *phrApplication, + BSTR *pbstrApplicationMessage); + + HRESULT (STDMETHODCALLTYPE *AddSnapshotToRecoverySet)( + IVssBackupComponentsEx3 *This, + VSS_ID snapshotId, + DWORD dwFlags, + VSS_PWSZ pwszDestinationVolume); + + HRESULT (STDMETHODCALLTYPE *RecoverSet)( + IVssBackupComponentsEx3 *This, + DWORD dwFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *GetSessionId)( + IVssBackupComponentsEx3 *This, + VSS_ID *idSession); END_INTERFACE +} IVssBackupComponentsEx3Vtbl; + +interface IVssBackupComponentsEx3 { + CONST_VTBL IVssBackupComponentsEx3Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssBackupComponentsEx3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssBackupComponentsEx3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssBackupComponentsEx3_Release(This) (This)->lpVtbl->Release(This) +/*** IVssBackupComponents methods ***/ +#define IVssBackupComponentsEx3_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents) +#define IVssBackupComponentsEx3_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter) +#define IVssBackupComponentsEx3_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML) +#define IVssBackupComponentsEx3_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) +#define IVssBackupComponentsEx3_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML) +#define IVssBackupComponentsEx3_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType) +#define IVssBackupComponentsEx3_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync) +#define IVssBackupComponentsEx3_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters) +#define IVssBackupComponentsEx3_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx3_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This) +#define IVssBackupComponentsEx3_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) +#define IVssBackupComponentsEx3_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync) +#define IVssBackupComponentsEx3_AbortBackup(This) (This)->lpVtbl->AbortBackup(This) +#define IVssBackupComponentsEx3_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync) +#define IVssBackupComponentsEx3_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters) +#define IVssBackupComponentsEx3_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This) +#define IVssBackupComponentsEx3_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) +#define IVssBackupComponentsEx3_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) +#define IVssBackupComponentsEx3_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) +#define IVssBackupComponentsEx3_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) +#define IVssBackupComponentsEx3_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) +#define IVssBackupComponentsEx3_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) +#define IVssBackupComponentsEx3_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) +#define IVssBackupComponentsEx3_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#define IVssBackupComponentsEx3_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync) +#define IVssBackupComponentsEx3_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) +#define IVssBackupComponentsEx3_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) +#define IVssBackupComponentsEx3_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) +#define IVssBackupComponentsEx3_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) +#define IVssBackupComponentsEx3_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) +#define IVssBackupComponentsEx3_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync) +#define IVssBackupComponentsEx3_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync) +#define IVssBackupComponentsEx3_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) +#define IVssBackupComponentsEx3_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId) +#define IVssBackupComponentsEx3_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) +#define IVssBackupComponentsEx3_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync) +#define IVssBackupComponentsEx3_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) +#define IVssBackupComponentsEx3_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync) +#define IVssBackupComponentsEx3_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId) +#define IVssBackupComponentsEx3_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) +#define IVssBackupComponentsEx3_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) +#define IVssBackupComponentsEx3_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) +#define IVssBackupComponentsEx3_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId) +#define IVssBackupComponentsEx3_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId) +#define IVssBackupComponentsEx3_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) +#define IVssBackupComponentsEx3_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) +#define IVssBackupComponentsEx3_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount) +#define IVssBackupComponentsEx3_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) +/*** IVssBackupComponentsEx methods ***/ +#define IVssBackupComponentsEx3_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx3_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) +/*** IVssBackupComponentsEx2 methods ***/ +#define IVssBackupComponentsEx3_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId) +#define IVssBackupComponentsEx3_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) +#define IVssBackupComponentsEx3_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) +#define IVssBackupComponentsEx3_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) +#define IVssBackupComponentsEx3_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) +#define IVssBackupComponentsEx3_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) +#define IVssBackupComponentsEx3_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) +/*** IVssBackupComponentsEx3 methods ***/ +#define IVssBackupComponentsEx3_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) #define IVssBackupComponentsEx3_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) -#define IVssBackupComponentsEx3_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession) -#define IVssBackupComponentsEx3_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,pbstrApplicationMessage) #define IVssBackupComponentsEx3_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x0601)*/ +#define IVssBackupComponentsEx3_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx3_QueryInterface(IVssBackupComponentsEx3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssBackupComponentsEx3_AddRef(IVssBackupComponentsEx3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssBackupComponentsEx3_Release(IVssBackupComponentsEx3* This) { + return This->lpVtbl->Release(This); +} +/*** IVssBackupComponents methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterComponentsCount(IVssBackupComponentsEx3* This,UINT *pcComponents) { + return This->lpVtbl->GetWriterComponentsCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterComponents(IVssBackupComponentsEx3* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) { + return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_InitializeForBackup(IVssBackupComponentsEx3* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForBackup(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupState(IVssBackupComponentsEx3* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) { + return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_InitializeForRestore(IVssBackupComponentsEx3* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForRestore(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreState(IVssBackupComponentsEx3* This,VSS_RESTORE_TYPE restoreType) { + return This->lpVtbl->SetRestoreState(This,restoreType); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GatherWriterMetadata(IVssBackupComponentsEx3* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterMetadata(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadataCount(IVssBackupComponentsEx3* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterMetadataCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadata(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) { + return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_FreeWriterMetadata(IVssBackupComponentsEx3* This) { + return This->lpVtbl->FreeWriterMetadata(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddComponent(IVssBackupComponentsEx3* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) { + return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_PrepareForBackup(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->PrepareForBackup(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AbortBackup(IVssBackupComponentsEx3* This) { + return This->lpVtbl->AbortBackup(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GatherWriterStatus(IVssBackupComponentsEx3* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterStatus(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatusCount(IVssBackupComponentsEx3* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterStatusCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_FreeWriterStatus(IVssBackupComponentsEx3* This) { + return This->lpVtbl->FreeWriterStatus(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatus(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) { + return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupSucceeded(IVssBackupComponentsEx3* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) { + return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetBackupOptions(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) { + return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetSelectedForRestore(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) { + return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreOptions(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) { + return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetAdditionalRestores(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) { + return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetPreviousBackupStamp(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) { + return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SaveAsXML(IVssBackupComponentsEx3* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_BackupComplete(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->BackupComplete(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddAlternativeLocationMapping(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddRestoreSubcomponent(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) { + return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetFileRestoreStatus(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) { + return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddNewTarget(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) { + return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRangesFilePath(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) { + return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_PreRestore(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->PreRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_PostRestore(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->PostRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetContext(IVssBackupComponentsEx3* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_StartSnapshotSet(IVssBackupComponentsEx3* This,VSS_ID *pSnapshotSetId) { + return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddToSnapshotSet(IVssBackupComponentsEx3* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) { + return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_DoSnapshotSet(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->DoSnapshotSet(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_DeleteSnapshots(IVssBackupComponentsEx3* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_ImportSnapshots(IVssBackupComponentsEx3* This,IVssAsync **ppAsync) { + return This->lpVtbl->ImportSnapshots(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_BreakSnapshotSet(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetSnapshotProperties(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_Query(IVssBackupComponentsEx3* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_IsVolumeSupported(IVssBackupComponentsEx3* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_DisableWriterClasses(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_EnableWriterClasses(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_DisableWriterInstances(IVssBackupComponentsEx3* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) { + return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_ExposeSnapshot(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) { + return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_RevertToSnapshot(IVssBackupComponentsEx3* This,VSS_ID SnapshotId,WINBOOL bForceDismount) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_QueryRevertStatus(IVssBackupComponentsEx3* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +/*** IVssBackupComponentsEx methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterMetadataEx(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) { + return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetSelectedForRestoreEx(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) { + return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId); +} +/*** IVssBackupComponentsEx2 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx3_UnexposeSnapshot(IVssBackupComponentsEx3* This,VSS_ID snapshotId) { + return This->lpVtbl->UnexposeSnapshot(This,snapshotId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetAuthoritativeRestore(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) { + return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRollForward(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) { + return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_SetRestoreName(IVssBackupComponentsEx3* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) { + return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_BreakSnapshotSetEx(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) { + return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_PreFastRecovery(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_FastRecovery(IVssBackupComponentsEx3* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync); +} +/*** IVssBackupComponentsEx3 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetWriterStatusEx(IVssBackupComponentsEx3* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,HRESULT *phrApplication,BSTR *pbstrApplicationMessage) { + return This->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_AddSnapshotToRecoverySet(IVssBackupComponentsEx3* This,VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) { + return This->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_RecoverSet(IVssBackupComponentsEx3* This,DWORD dwFlags,IVssAsync **ppAsync) { + return This->lpVtbl->RecoverSet(This,dwFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx3_GetSessionId(IVssBackupComponentsEx3* This,VSS_ID *idSession) { + return This->lpVtbl->GetSessionId(This,idSession); +} +#endif +#endif -#ifdef __cplusplus -/* Is a C++ interface instead of a COM */ -#undef INTERFACE -#define INTERFACE IVssExamineWriterMetadata -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssExamineWriterMetadata,IUnknown) -{ - BEGIN_INTERFACE +#endif - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssExamineWriterMetadata methods */ - STDMETHOD_(HRESULT,GetIdentity)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE; - STDMETHOD_(HRESULT,GetFileCounts)(THIS_ UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetIncludeFile)(THIS) PURE; - STDMETHOD_(HRESULT,GetExcludeFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssWMComponent **ppComponent) PURE; - STDMETHOD_(HRESULT,GetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwreWriterRestore,BOOLEAN *pbRebootRequired,UINT *piMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,GetBackupSchema)(THIS_ DWORD *pdsSchemaMask) PURE; - STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,LoadFromXML)(THIS_ BSTR bstrXML) PURE; - END_INTERFACE -}; +#endif /* __IVssBackupComponentsEx3_INTERFACE_DEFINED__ */ -#if (_WIN32_WINNT >= 0x0600) -#undef INTERFACE -#define INTERFACE IVssExamineWriterMetadataEx -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssExamineWriterMetadataEx,IVssExamineWriterMetadata) -{ - BEGIN_INTERFACE +/***************************************************************************** + * IVssBackupComponentsEx4 interface + */ +#ifndef __IVssBackupComponentsEx4_INTERFACE_DEFINED__ +#define __IVssBackupComponentsEx4_INTERFACE_DEFINED__ - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssExamineWriterMetadata methods */ - STDMETHOD_(HRESULT,GetIdentity)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE; - STDMETHOD_(HRESULT,GetFileCounts)(THIS_ UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetIncludeFile)(THIS) PURE; - STDMETHOD_(HRESULT,GetExcludeFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssWMComponent **ppComponent) PURE; - STDMETHOD_(HRESULT,GetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwreWriterRestore,BOOLEAN *pbRebootRequired,UINT *piMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,GetBackupSchema)(THIS_ DWORD *pdsSchemaMask) PURE; - STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,LoadFromXML)(THIS_ BSTR bstrXML) PURE; - - /* IVssExamineWriterMetadataEx methods */ - STDMETHOD_(HRESULT,GetIdentityEx)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE; +DEFINE_GUID(IID_IVssBackupComponentsEx4, 0xf434c2fd, 0xb553, 0x4961, 0xa9,0xf9, 0xa8,0xe9,0x0b,0x67,0x3e,0x53); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f434c2fd-b553-4961-a9f9-a8e90b673e53") +IVssBackupComponentsEx4 : public IVssBackupComponentsEx3 +{ + virtual HRESULT STDMETHODCALLTYPE GetRootAndLogicalPrefixPaths( + VSS_PWSZ pwszFilePath, + VSS_PWSZ *ppwszRootPath, + VSS_PWSZ *ppwszLogicalPrefix, + WINBOOL bNormalizeFQDNforRootPath = FALSE) = 0; - END_INTERFACE }; - -#undef INTERFACE -#define INTERFACE IVssExamineWriterMetadataEx2 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponentsEx4, 0xf434c2fd, 0xb553, 0x4961, 0xa9,0xf9, 0xa8,0xe9,0x0b,0x67,0x3e,0x53) #endif -DECLARE_INTERFACE_(IVssExamineWriterMetadataEx2,IVssExamineWriterMetadataEx) -{ +#else +typedef struct IVssBackupComponentsEx4Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - -/* IVssExamineWriterMetadata methods */ - STDMETHOD_(HRESULT,GetIdentity)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE; - STDMETHOD_(HRESULT,GetFileCounts)(THIS_ UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetIncludeFile)(THIS) PURE; - STDMETHOD_(HRESULT,GetExcludeFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssWMComponent **ppComponent) PURE; - STDMETHOD_(HRESULT,GetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwreWriterRestore,BOOLEAN *pbRebootRequired,UINT *piMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,GetBackupSchema)(THIS_ DWORD *pdsSchemaMask) PURE; - STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,LoadFromXML)(THIS_ BSTR bstrXML) PURE; - - /* IVssExamineWriterMetadataEx methods */ - STDMETHOD_(HRESULT,GetIdentityEx)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE; - - /* IVssExamineWriterMetadataEx2 methods */ - STDMETHOD_(HRESULT,GetVersion)(THIS_ DWORD *pdwMajorVersion,DWORD *pdwMinorVersion) PURE; - STDMETHOD_(HRESULT,GetExcludeFromSnapshotCount)(THIS_ UINT *pcExcludedFromSnapshot) PURE; - STDMETHOD_(HRESULT,GetExcludeFromSnapshotFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx4 *This, + REFIID riid, + void **ppvObject); - END_INTERFACE -}; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx4 *This); -#endif /*(_WIN32_WINNT >= 0x0600)*/ + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx4 *This); -#undef INTERFACE -#define INTERFACE IVssWMComponent -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssWMComponent,IUnknown) -{ - BEGIN_INTERFACE + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx4 *This, + UINT *pcComponents); - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); - /* IVssWMComponent methods */ - STDMETHOD_(HRESULT,GetComponentInfo)(THIS_ PVSSCOMPONENTINFO *ppInfo) PURE; - STDMETHOD_(HRESULT,FreeComponentInfo)(THIS_ VSS_COMPONENTINFO *pInfo) PURE; - STDMETHOD_(HRESULT,GetFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetDatabaseFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetDatabaseLogFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,GetDependency)(THIS_ UINT iDependency,IVssWMDependency **ppDependency) PURE; + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponentsEx4 *This, + BSTR bstrXML); - END_INTERFACE -}; + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponentsEx4 *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); -#undef INTERFACE -#define INTERFACE IVssWriterComponentsExt -DECLARE_INTERFACE_(IVssWriterComponentsExt,IUnknown) -{ - BEGIN_INTERFACE + HRESULT (STDMETHODCALLTYPE *InitializeForRestore)( + IVssBackupComponentsEx4 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetRestoreState)( + IVssBackupComponentsEx4 *This, + VSS_RESTORE_TYPE restoreType); + + HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)( + IVssBackupComponentsEx4 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)( + IVssBackupComponentsEx4 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)( + IVssBackupComponentsEx4 *This); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssBackupComponentsEx4 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName); + + HRESULT (STDMETHODCALLTYPE *PrepareForBackup)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AbortBackup)( + IVssBackupComponentsEx4 *This); + + HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)( + IVssBackupComponentsEx4 *This, + IVssAsync **pAsync); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)( + IVssBackupComponentsEx4 *This, + UINT *pcWriters); + + HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)( + IVssBackupComponentsEx4 *This); + + HRESULT (STDMETHODCALLTYPE *GetWriterStatus)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phResultFailure); + + HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)( + IVssBackupComponentsEx4 *This, + VSS_ID instanceId, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSucceded); - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); - /* IVssWriterComponentsExt methods */ - /* No additional members */ + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPreviousBackupStamp); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssBackupComponentsEx4 *This, + BSTR *pbstrXML); + + HRESULT (STDMETHODCALLTYPE *BackupComplete)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE componentType, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszSubComponentLogicalPath, + LPCWSTR wszSubComponentName, + boolean bRepair); + + HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_FILE_RESTORE_STATUS status); + + HRESULT (STDMETHODCALLTYPE *AddNewTarget)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszPath, + LPCWSTR wszFileName, + boolean bRecursive, + LPCWSTR wszAlternatePath); + + HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + UINT iPartialFile, + LPCWSTR wszRangesFile); + + HRESULT (STDMETHODCALLTYPE *PreRestore)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PostRestore)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssBackupComponentsEx4 *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)( + IVssBackupComponentsEx4 *This, + VSS_ID *pSnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)( + IVssBackupComponentsEx4 *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + VSS_ID *pidSnapshot); + + HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssBackupComponentsEx4 *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *ImportSnapshots)( + IVssBackupComponentsEx4 *This, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssBackupComponentsEx4 *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssBackupComponentsEx4 *This, + VSS_ID ProviderId, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)( + IVssBackupComponentsEx4 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)( + IVssBackupComponentsEx4 *This, + const VSS_ID *rgWriterClassId, + UINT cClassId); + + HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)( + IVssBackupComponentsEx4 *This, + const VSS_ID *rgWriterInstanceId, + UINT cInstanceId); + + HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotId, + VSS_PWSZ wszPathFromRoot, + LONG lAttributes, + VSS_PWSZ wszExpose, + VSS_PWSZ *pwszExposed); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotId, + WINBOOL bForceDismount); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssBackupComponentsEx4 *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + VSS_ID *pidInstance, + IVssExamineWriterMetadataEx **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bSelectedForRestore, + VSS_ID instanceId); + + /*** IVssBackupComponentsEx2 methods ***/ + HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)( + IVssBackupComponentsEx4 *This, + VSS_ID snapshotId); + + HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + boolean bAuth); + + HRESULT (STDMETHODCALLTYPE *SetRollForward)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + VSS_ROLLFORWARD_TYPE rollType, + LPCWSTR wszRollForwardPoint); + + HRESULT (STDMETHODCALLTYPE *SetRestoreName)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszRestoreName); + + HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotSetID, + DWORD dwBreakFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *PreFastRecovery)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotSetID, + DWORD dwPreFastRecoveryFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *FastRecovery)( + IVssBackupComponentsEx4 *This, + VSS_ID SnapshotSetID, + DWORD dwFastRecoveryFlags, + IVssAsync **ppAsync); + + /*** IVssBackupComponentsEx3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterStatusEx)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + VSS_ID *pidInstance, + VSS_ID *pidWriter, + BSTR *pbstrWriter, + VSS_WRITER_STATE *pnStatus, + HRESULT *phrFailureWriter, + HRESULT *phrApplication, + BSTR *pbstrApplicationMessage); + + HRESULT (STDMETHODCALLTYPE *AddSnapshotToRecoverySet)( + IVssBackupComponentsEx4 *This, + VSS_ID snapshotId, + DWORD dwFlags, + VSS_PWSZ pwszDestinationVolume); + + HRESULT (STDMETHODCALLTYPE *RecoverSet)( + IVssBackupComponentsEx4 *This, + DWORD dwFlags, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *GetSessionId)( + IVssBackupComponentsEx4 *This, + VSS_ID *idSession); + + /*** IVssBackupComponentsEx4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetRootAndLogicalPrefixPaths)( + IVssBackupComponentsEx4 *This, + VSS_PWSZ pwszFilePath, + VSS_PWSZ *ppwszRootPath, + VSS_PWSZ *ppwszLogicalPrefix, + WINBOOL bNormalizeFQDNforRootPath); END_INTERFACE +} IVssBackupComponentsEx4Vtbl; + +interface IVssBackupComponentsEx4 { + CONST_VTBL IVssBackupComponentsEx4Vtbl* lpVtbl; }; -#endif /*__cplusplus*/ -#endif /*_INC_VSBACKUP*/ +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssBackupComponentsEx4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssBackupComponentsEx4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssBackupComponentsEx4_Release(This) (This)->lpVtbl->Release(This) +/*** IVssBackupComponents methods ***/ +#define IVssBackupComponentsEx4_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents) +#define IVssBackupComponentsEx4_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter) +#define IVssBackupComponentsEx4_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML) +#define IVssBackupComponentsEx4_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) +#define IVssBackupComponentsEx4_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML) +#define IVssBackupComponentsEx4_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType) +#define IVssBackupComponentsEx4_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync) +#define IVssBackupComponentsEx4_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters) +#define IVssBackupComponentsEx4_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx4_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This) +#define IVssBackupComponentsEx4_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) +#define IVssBackupComponentsEx4_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync) +#define IVssBackupComponentsEx4_AbortBackup(This) (This)->lpVtbl->AbortBackup(This) +#define IVssBackupComponentsEx4_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync) +#define IVssBackupComponentsEx4_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters) +#define IVssBackupComponentsEx4_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This) +#define IVssBackupComponentsEx4_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) +#define IVssBackupComponentsEx4_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) +#define IVssBackupComponentsEx4_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) +#define IVssBackupComponentsEx4_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) +#define IVssBackupComponentsEx4_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) +#define IVssBackupComponentsEx4_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) +#define IVssBackupComponentsEx4_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) +#define IVssBackupComponentsEx4_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#define IVssBackupComponentsEx4_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync) +#define IVssBackupComponentsEx4_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) +#define IVssBackupComponentsEx4_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) +#define IVssBackupComponentsEx4_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) +#define IVssBackupComponentsEx4_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) +#define IVssBackupComponentsEx4_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) +#define IVssBackupComponentsEx4_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync) +#define IVssBackupComponentsEx4_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync) +#define IVssBackupComponentsEx4_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) +#define IVssBackupComponentsEx4_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId) +#define IVssBackupComponentsEx4_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) +#define IVssBackupComponentsEx4_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync) +#define IVssBackupComponentsEx4_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) +#define IVssBackupComponentsEx4_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync) +#define IVssBackupComponentsEx4_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId) +#define IVssBackupComponentsEx4_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) +#define IVssBackupComponentsEx4_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) +#define IVssBackupComponentsEx4_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) +#define IVssBackupComponentsEx4_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId) +#define IVssBackupComponentsEx4_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId) +#define IVssBackupComponentsEx4_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) +#define IVssBackupComponentsEx4_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) +#define IVssBackupComponentsEx4_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount) +#define IVssBackupComponentsEx4_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) +/*** IVssBackupComponentsEx methods ***/ +#define IVssBackupComponentsEx4_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) +#define IVssBackupComponentsEx4_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) +/*** IVssBackupComponentsEx2 methods ***/ +#define IVssBackupComponentsEx4_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId) +#define IVssBackupComponentsEx4_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) +#define IVssBackupComponentsEx4_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) +#define IVssBackupComponentsEx4_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) +#define IVssBackupComponentsEx4_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) +#define IVssBackupComponentsEx4_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) +#define IVssBackupComponentsEx4_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) +/*** IVssBackupComponentsEx3 methods ***/ +#define IVssBackupComponentsEx4_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) +#define IVssBackupComponentsEx4_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) +#define IVssBackupComponentsEx4_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync) +#define IVssBackupComponentsEx4_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession) +/*** IVssBackupComponentsEx4 methods ***/ +#define IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath) (This)->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryInterface(IVssBackupComponentsEx4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssBackupComponentsEx4_AddRef(IVssBackupComponentsEx4* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssBackupComponentsEx4_Release(IVssBackupComponentsEx4* This) { + return This->lpVtbl->Release(This); +} +/*** IVssBackupComponents methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponentsCount(IVssBackupComponentsEx4* This,UINT *pcComponents) { + return This->lpVtbl->GetWriterComponentsCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponents(IVssBackupComponentsEx4* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) { + return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForBackup(IVssBackupComponentsEx4* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForBackup(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupState(IVssBackupComponentsEx4* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) { + return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForRestore(IVssBackupComponentsEx4* This,BSTR bstrXML) { + return This->lpVtbl->InitializeForRestore(This,bstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreState(IVssBackupComponentsEx4* This,VSS_RESTORE_TYPE restoreType) { + return This->lpVtbl->SetRestoreState(This,restoreType); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterMetadata(IVssBackupComponentsEx4* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterMetadata(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataCount(IVssBackupComponentsEx4* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterMetadataCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadata(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) { + return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterMetadata(IVssBackupComponentsEx4* This) { + return This->lpVtbl->FreeWriterMetadata(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddComponent(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) { + return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_PrepareForBackup(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->PrepareForBackup(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AbortBackup(IVssBackupComponentsEx4* This) { + return This->lpVtbl->AbortBackup(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterStatus(IVssBackupComponentsEx4* This,IVssAsync **pAsync) { + return This->lpVtbl->GatherWriterStatus(This,pAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusCount(IVssBackupComponentsEx4* This,UINT *pcWriters) { + return This->lpVtbl->GetWriterStatusCount(This,pcWriters); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterStatus(IVssBackupComponentsEx4* This) { + return This->lpVtbl->FreeWriterStatus(This); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatus(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) { + return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupSucceeded(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) { + return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) { + return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) { + return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) { + return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAdditionalRestores(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) { + return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetPreviousBackupStamp(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) { + return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SaveAsXML(IVssBackupComponentsEx4* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_BackupComplete(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->BackupComplete(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddAlternativeLocationMapping(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddRestoreSubcomponent(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) { + return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetFileRestoreStatus(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) { + return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddNewTarget(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) { + return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRangesFilePath(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) { + return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->PreRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_PostRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->PostRestore(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetContext(IVssBackupComponentsEx4* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_StartSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID *pSnapshotSetId) { + return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddToSnapshotSet(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) { + return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_DoSnapshotSet(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->DoSnapshotSet(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_DeleteSnapshots(IVssBackupComponentsEx4* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_ImportSnapshots(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) { + return This->lpVtbl->ImportSnapshots(This,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSnapshotProperties(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_Query(IVssBackupComponentsEx4* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_IsVolumeSupported(IVssBackupComponentsEx4* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_EnableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) { + return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterInstances(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) { + return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_ExposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) { + return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_RevertToSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,WINBOOL bForceDismount) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryRevertStatus(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +/*** IVssBackupComponentsEx methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) { + return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestoreEx(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) { + return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId); +} +/*** IVssBackupComponentsEx2 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_UnexposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID snapshotId) { + return This->lpVtbl->UnexposeSnapshot(This,snapshotId); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAuthoritativeRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) { + return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRollForward(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) { + return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreName(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) { + return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSetEx(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) { + return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreFastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_FastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) { + return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync); +} +/*** IVssBackupComponentsEx3 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,HRESULT *phrApplication,BSTR *pbstrApplicationMessage) { + return This->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddSnapshotToRecoverySet(IVssBackupComponentsEx4* This,VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) { + return This->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_RecoverSet(IVssBackupComponentsEx4* This,DWORD dwFlags,IVssAsync **ppAsync) { + return This->lpVtbl->RecoverSet(This,dwFlags,ppAsync); +} +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSessionId(IVssBackupComponentsEx4* This,VSS_ID *idSession) { + return This->lpVtbl->GetSessionId(This,idSession); +} +/*** IVssBackupComponentsEx4 methods ***/ +static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(IVssBackupComponentsEx4* This,VSS_PWSZ pwszFilePath,VSS_PWSZ *ppwszRootPath,VSS_PWSZ *ppwszLogicalPrefix,WINBOOL bNormalizeFQDNforRootPath) { + return This->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath); +} +#endif +#endif + +#endif + + +#endif /* __IVssBackupComponentsEx4_INTERFACE_DEFINED__ */ + +#define VSS_SW_BOOTABLE_STATE (1 << 0) +HRESULT STDAPICALLTYPE CreateVssBackupComponentsInternal(IVssBackupComponents **ppBackup); +HRESULT STDAPICALLTYPE CreateVssExamineWriterMetadataInternal(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata); +HRESULT APIENTRY IsVolumeSnapshottedInternal(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability); +void APIENTRY VssFreeSnapshotPropertiesInternal(VSS_SNAPSHOT_PROP *pProp); +HRESULT APIENTRY GetProviderMgmtInterfaceInternal(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf); +HRESULT APIENTRY ShouldBlockRevertInternal(LPCWSTR wszVolumeName, boolean *pbBlock); +static __inline HRESULT CreateVssBackupComponents(IVssBackupComponents **ppBackup) { return CreateVssBackupComponentsInternal(ppBackup); } +static __inline HRESULT CreateVssExamineWriterMetadata(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata) { return CreateVssExamineWriterMetadataInternal(bstrXML, ppMetadata); } +static __inline HRESULT IsVolumeSnapshotted(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability) { return IsVolumeSnapshottedInternal(pwszVolumeName, pbSnapshotsPresent, plSnapshotCapability); } +static __inline void VssFreeSnapshotProperties(VSS_SNAPSHOT_PROP *pProp) { return VssFreeSnapshotPropertiesInternal(pProp); } +static __inline HRESULT GetProviderMgmtInterface(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf) { return GetProviderMgmtInterfaceInternal(ProviderId, InterfaceId, ppItf); } +static __inline HRESULT ShouldBlockRevert(LPCWSTR wszVolumeName, boolean *pbBlock) { return ShouldBlockRevertInternal(wszVolumeName, pbBlock); } +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); +unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); +unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); +void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __vsbackup_h__ */ diff --git a/lib/libc/include/any-windows-any/vsmgmt.h b/lib/libc/include/any-windows-any/vsmgmt.h index 7a11d285a7..4a4900cceb 100644 --- a/lib/libc/include/any-windows-any/vsmgmt.h +++ b/lib/libc/include/any-windows-any/vsmgmt.h @@ -1,337 +1,1088 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VSMGT -#define _INC_VSMGT +/*** Autogenerated by WIDL 7.0 from include/vsmgmt.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __vsmgmt_h__ +#define __vsmgmt_h__ + +/* Forward declarations */ + +#ifndef __IVssSnapshotMgmt_FWD_DEFINED__ +#define __IVssSnapshotMgmt_FWD_DEFINED__ +typedef interface IVssSnapshotMgmt IVssSnapshotMgmt; +#ifdef __cplusplus +interface IVssSnapshotMgmt; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssSnapshotMgmt2_FWD_DEFINED__ +#define __IVssSnapshotMgmt2_FWD_DEFINED__ +typedef interface IVssSnapshotMgmt2 IVssSnapshotMgmt2; +#ifdef __cplusplus +interface IVssSnapshotMgmt2; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt; +#ifdef __cplusplus +interface IVssDifferentialSoftwareSnapshotMgmt; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__ +typedef interface IVssDifferentialSoftwareSnapshotMgmt2 IVssDifferentialSoftwareSnapshotMgmt2; +#ifdef __cplusplus +interface IVssDifferentialSoftwareSnapshotMgmt2; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__ +typedef interface IVssDifferentialSoftwareSnapshotMgmt3 IVssDifferentialSoftwareSnapshotMgmt3; +#ifdef __cplusplus +interface IVssDifferentialSoftwareSnapshotMgmt3; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssEnumMgmtObject_FWD_DEFINED__ +#define __IVssEnumMgmtObject_FWD_DEFINED__ +typedef interface IVssEnumMgmtObject IVssEnumMgmtObject; +#ifdef __cplusplus +interface IVssEnumMgmtObject; +#endif /* __cplusplus */ +#endif + +#ifndef __VssSnapshotMgmt_FWD_DEFINED__ +#define __VssSnapshotMgmt_FWD_DEFINED__ +#ifdef __cplusplus +typedef class VssSnapshotMgmt VssSnapshotMgmt; +#else +typedef struct VssSnapshotMgmt VssSnapshotMgmt; +#endif /* defined __cplusplus */ +#endif /* defined __VssSnapshotMgmt_FWD_DEFINED__ */ + +/* Headers for imported files */ +#include <oaidl.h> +#include <ocidl.h> #include <vss.h> #ifdef __cplusplus extern "C" { #endif -typedef enum _VSS_PROTECTION_FAULT { - VSS_PROTECTION_FAULT_NONE = 0, - VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = ( VSS_PROTECTION_FAULT_NONE + 1 ), - VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = ( VSS_PROTECTION_FAULT_DIFF_AREA_MISSING + 1 ), - VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = ( VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE + 1 ), - VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = ( VSS_PROTECTION_FAULT_META_DATA_CORRUPTION + 1 ), - VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = ( VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE + 1 ), - VSS_PROTECTION_FAULT_COW_READ_FAILURE = ( VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE + 1 ), - VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = ( VSS_PROTECTION_FAULT_COW_READ_FAILURE + 1 ), - VSS_PROTECTION_FAULT_DIFF_AREA_FULL = ( VSS_PROTECTION_FAULT_COW_WRITE_FAILURE + 1 ), - VSS_PROTECTION_FAULT_GROW_TOO_SLOW = ( VSS_PROTECTION_FAULT_DIFF_AREA_FULL + 1 ), - VSS_PROTECTION_FAULT_GROW_FAILED = ( VSS_PROTECTION_FAULT_GROW_TOO_SLOW + 1 ), - VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = ( VSS_PROTECTION_FAULT_GROW_FAILED + 1 ), - VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = ( VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS + 1 ), - VSS_PROTECTION_FAULT_IO_FAILURE = ( VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE + 1 ), - VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = ( VSS_PROTECTION_FAULT_IO_FAILURE + 1 ), - VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = ( VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED + 1 ) -} VSS_PROTECTION_FAULT; +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +typedef enum _VSS_MGMT_OBJECT_TYPE { + VSS_MGMT_OBJECT_UNKNOWN = 0, + VSS_MGMT_OBJECT_VOLUME = 1, + VSS_MGMT_OBJECT_DIFF_VOLUME = 2, + VSS_MGMT_OBJECT_DIFF_AREA = 3 +} VSS_MGMT_OBJECT_TYPE; +typedef enum _VSS_MGMT_OBJECT_TYPE *PVSS_MGMT_OBJECT_TYPE; +#define VSS_ASSOC_NO_MAX_SPACE (-1) +#define VSS_ASSOC_REMOVE (0) + +typedef struct _VSS_VOLUME_PROP { + VSS_PWSZ m_pwszVolumeName; + VSS_PWSZ m_pwszVolumeDisplayName; +} VSS_VOLUME_PROP; +typedef struct _VSS_VOLUME_PROP *PVSS_VOLUME_PROP; +typedef struct _VSS_DIFF_VOLUME_PROP { + VSS_PWSZ m_pwszVolumeName; + VSS_PWSZ m_pwszVolumeDisplayName; + LONGLONG m_llVolumeFreeSpace; + LONGLONG m_llVolumeTotalSpace; +} VSS_DIFF_VOLUME_PROP; +typedef struct _VSS_DIFF_VOLUME_PROP *PVSS_DIFF_VOLUME_PROP; +typedef struct _VSS_DIFF_AREA_PROP { + VSS_PWSZ m_pwszVolumeName; + VSS_PWSZ m_pwszDiffAreaVolumeName; + LONGLONG m_llMaximumDiffSpace; + LONGLONG m_llAllocatedDiffSpace; + LONGLONG m_llUsedDiffSpace; +} VSS_DIFF_AREA_PROP; +typedef struct _VSS_DIFF_AREA_PROP *PVSS_DIFF_AREA_PROP; +typedef union __WIDL_vsmgmt_generated_name_00000021 { + VSS_VOLUME_PROP Vol; + VSS_DIFF_VOLUME_PROP DiffVol; + VSS_DIFF_AREA_PROP DiffArea; +} VSS_MGMT_OBJECT_UNION; +typedef union __WIDL_vsmgmt_generated_name_00000021 *PVSS_MGMT_OBJECT_UNION; +typedef struct _VSS_MGMT_OBJECT_PROP { + VSS_MGMT_OBJECT_TYPE Type; + VSS_MGMT_OBJECT_UNION Obj; +} VSS_MGMT_OBJECT_PROP; +typedef struct _VSS_MGMT_OBJECT_PROP *PVSS_MGMT_OBJECT_PROP; typedef enum _VSS_PROTECTION_LEVEL { - VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0, - VSS_PROTECTION_LEVEL_SNAPSHOT = ( VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME + 1 ) + VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0, + VSS_PROTECTION_LEVEL_SNAPSHOT = 1 } VSS_PROTECTION_LEVEL; +typedef enum _VSS_PROTECTION_LEVEL *PVSS_PROTECTION_LEVEL; +typedef enum _VSS_PROTECTION_FAULT { + VSS_PROTECTION_FAULT_NONE = 0, + VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = 1, + VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = 2, + VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = 3, + VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = 4, + VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = 5, + VSS_PROTECTION_FAULT_COW_READ_FAILURE = 6, + VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = 7, + VSS_PROTECTION_FAULT_DIFF_AREA_FULL = 8, + VSS_PROTECTION_FAULT_GROW_TOO_SLOW = 9, + VSS_PROTECTION_FAULT_GROW_FAILED = 10, + VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = 11, + VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = 12, + VSS_PROTECTION_FAULT_IO_FAILURE = 13, + VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = 14, + VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = 15, + VSS_PROTECTION_FAULT_MOUNT_DURING_CLUSTER_OFFLINE = 16 +} VSS_PROTECTION_FAULT; +typedef enum _VSS_PROTECTION_FAULT *PVSS_PROTECTION_FAULT; +typedef struct _VSS_VOLUME_PROTECTION_INFO { + VSS_PROTECTION_LEVEL m_protectionLevel; + WINBOOL m_volumeIsOfflineForProtection; + VSS_PROTECTION_FAULT m_protectionFault; + LONG m_failureStatus; + WINBOOL m_volumeHasUnusedDiffArea; + DWORD m_reserved; +} VSS_VOLUME_PROTECTION_INFO; +typedef struct _VSS_VOLUME_PROTECTION_INFO *PVSS_VOLUME_PROTECTION_INFO; +#ifndef __IVssSnapshotMgmt_FWD_DEFINED__ +#define __IVssSnapshotMgmt_FWD_DEFINED__ +typedef interface IVssSnapshotMgmt IVssSnapshotMgmt; +#ifdef __cplusplus +interface IVssSnapshotMgmt; +#endif /* __cplusplus */ +#endif -typedef enum _VSS_MGMT_OBJECT_TYPE { - VSS_MGMT_OBJECT_UNKNOWN = 0, - VSS_MGMT_OBJECT_VOLUME = 1, - VSS_MGMT_OBJECT_DIFF_VOLUME = 2, - VSS_MGMT_OBJECT_DIFF_AREA = 3 -} VSS_MGMT_OBJECT_TYPE, *PVSS_MGMT_OBJECT_TYPE; +#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt; +#ifdef __cplusplus +interface IVssDifferentialSoftwareSnapshotMgmt; +#endif /* __cplusplus */ +#endif -typedef struct _VSS_VOLUME_PROP { - VSS_PWSZ m_pwszVolumeName; - VSS_PWSZ m_pwszVolumeDisplayName; -} VSS_VOLUME_PROP, *PVSS_VOLUME_PROP; +#ifndef __IVssEnumMgmtObject_FWD_DEFINED__ +#define __IVssEnumMgmtObject_FWD_DEFINED__ +typedef interface IVssEnumMgmtObject IVssEnumMgmtObject; +#ifdef __cplusplus +interface IVssEnumMgmtObject; +#endif /* __cplusplus */ +#endif -typedef struct _VSS_VOLUME_PROTECTION_INFO { - VSS_PROTECTION_LEVEL m_protectionLevel; - WINBOOL m_volumeIsOfflineForProtection; - VSS_PROTECTION_FAULT m_protectionFault; - LONG m_failureStatus; - WINBOOL m_volumeHasUnusedDiffArea; - DWORD m_reserved; -} VSS_VOLUME_PROTECTION_INFO; +/***************************************************************************** + * IVssSnapshotMgmt interface + */ +#ifndef __IVssSnapshotMgmt_INTERFACE_DEFINED__ +#define __IVssSnapshotMgmt_INTERFACE_DEFINED__ -#if (_WIN32_WINNT >= 0x0600) +DEFINE_GUID(IID_IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fa7df749-66e7-4986-a27f-e2f04ae53772") +IVssSnapshotMgmt : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetProviderMgmtInterface( + VSS_ID ProviderId, + REFIID InterfaceId, + IUnknown **ppItf) = 0; -typedef struct _VSS_DIFF_AREA_PROP { - VSS_PWSZ m_pwszVolumeName; - VSS_PWSZ m_pwszDiffAreaVolumeName; - LONGLONG m_llMaximumDiffSpace; - LONGLONG m_llAllocatedDiffSpace; - LONGLONG m_llUsedDiffSpace; -} VSS_DIFF_AREA_PROP, *PVSS_DIFF_AREA_PROP; + virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForSnapshots( + VSS_ID ProviderId, + LONG lContext, + IVssEnumMgmtObject **ppEnum) = 0; -typedef struct _VSS_DIFF_VOLUME_PROP { - VSS_PWSZ m_pwszVolumeName; - VSS_PWSZ m_pwszVolumeDisplayName; - LONGLONG m_llVolumeFreeSpace; - LONGLONG m_llVolumeTotalSpace; -} VSS_DIFF_VOLUME_PROP, *PVSS_DIFF_VOLUME_PROP; - -typedef union _VSS_MGMT_OBJECT_UNION { - VSS_VOLUME_PROP Vol; - VSS_DIFF_VOLUME_PROP DiffVol; - VSS_DIFF_AREA_PROP DiffArea; -} VSS_MGMT_OBJECT_UNION, *PVSS_MGMT_OBJECT_UNION; + virtual HRESULT STDMETHODCALLTYPE QuerySnapshotsByVolume( + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + IVssEnumObject **ppEnum) = 0; -typedef struct _VSS_MGMT_OBJECT_PROP { - VSS_MGMT_OBJECT_TYPE Type; - VSS_MGMT_OBJECT_UNION Obj; -} VSS_MGMT_OBJECT_PROP, *PVSS_MGMT_OBJECT_PROP; +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72) +#endif +#else +typedef struct IVssSnapshotMgmtVtbl { + BEGIN_INTERFACE -#endif /* (_WIN32_WINNT >= 0x0600) */ + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssSnapshotMgmt *This, + REFIID riid, + void **ppvObject); -#ifdef __cplusplus + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssSnapshotMgmt *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssSnapshotMgmt *This); + + /*** IVssSnapshotMgmt methods ***/ + HRESULT (STDMETHODCALLTYPE *GetProviderMgmtInterface)( + IVssSnapshotMgmt *This, + VSS_ID ProviderId, + REFIID InterfaceId, + IUnknown **ppItf); + + HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForSnapshots)( + IVssSnapshotMgmt *This, + VSS_ID ProviderId, + LONG lContext, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QuerySnapshotsByVolume)( + IVssSnapshotMgmt *This, + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + IVssEnumObject **ppEnum); + + END_INTERFACE +} IVssSnapshotMgmtVtbl; + +interface IVssSnapshotMgmt { + CONST_VTBL IVssSnapshotMgmtVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This) +/*** IVssSnapshotMgmt methods ***/ +#define IVssSnapshotMgmt_GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) (This)->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) +#define IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum) +#define IVssSnapshotMgmt_QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum) (This)->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryInterface(IVssSnapshotMgmt* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssSnapshotMgmt_AddRef(IVssSnapshotMgmt* This) { + return This->lpVtbl->AddRef(This); } +static FORCEINLINE ULONG IVssSnapshotMgmt_Release(IVssSnapshotMgmt* This) { + return This->lpVtbl->Release(This); +} +/*** IVssSnapshotMgmt methods ***/ +static FORCEINLINE HRESULT IVssSnapshotMgmt_GetProviderMgmtInterface(IVssSnapshotMgmt* This,VSS_ID ProviderId,REFIID InterfaceId,IUnknown **ppItf) { + return This->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf); +} +static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(IVssSnapshotMgmt* This,VSS_ID ProviderId,LONG lContext,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum); +} +static FORCEINLINE HRESULT IVssSnapshotMgmt_QuerySnapshotsByVolume(IVssSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,IVssEnumObject **ppEnum) { + return This->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum); +} +#endif #endif -#undef INTERFACE -#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt -/*IID_IVssDifferentialSoftwareSnapshotMgmt is defined as 214A0F28-B737-4026-B847-4F9E37D79529*/ -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt,IUnknown) + + +#endif /* __IVssSnapshotMgmt_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssSnapshotMgmt2 interface + */ +#ifndef __IVssSnapshotMgmt2_INTERFACE_DEFINED__ +#define __IVssSnapshotMgmt2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("0f61ec39-fe82-45f2-a3f0-768b5d427102") +IVssSnapshotMgmt2 : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE GetMinDiffAreaSize( + LONGLONG *pllMinDiffAreaSize) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02) +#endif +#else +typedef struct IVssSnapshotMgmt2Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssSnapshotMgmt2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssSnapshotMgmt2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssSnapshotMgmt2 *This); - /* IVssDifferentialSoftwareSnapshotMgmt methods */ - STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,Opmun08NotUsedOnWire)(THIS) PURE; /* Reserved */ + /*** IVssSnapshotMgmt2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetMinDiffAreaSize)( + IVssSnapshotMgmt2 *This, + LONGLONG *pllMinDiffAreaSize); END_INTERFACE +} IVssSnapshotMgmt2Vtbl; + +interface IVssSnapshotMgmt2 { + CONST_VTBL IVssSnapshotMgmt2Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This) +/*** IVssSnapshotMgmt2 methods ***/ +#define IVssSnapshotMgmt2_GetMinDiffAreaSize(This,pllMinDiffAreaSize) (This)->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssSnapshotMgmt2_QueryInterface(IVssSnapshotMgmt2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssSnapshotMgmt2_AddRef(IVssSnapshotMgmt2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssSnapshotMgmt2_Release(IVssSnapshotMgmt2* This) { + return This->lpVtbl->Release(This); +} +/*** IVssSnapshotMgmt2 methods ***/ +static FORCEINLINE HRESULT IVssSnapshotMgmt2_GetMinDiffAreaSize(IVssSnapshotMgmt2* This,LONGLONG *pllMinDiffAreaSize) { + return This->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize); +} +#endif +#endif + +#endif + + +#endif /* __IVssSnapshotMgmt2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssDifferentialSoftwareSnapshotMgmt interface + */ +#ifndef __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("214a0f28-b737-4026-b847-4f9e37d79529") +IVssDifferentialSoftwareSnapshotMgmt : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddDiffArea( + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace) = 0; + + virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSize( + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForDiffAreas( + VSS_PWSZ pwszOriginalVolumeName, + IVssEnumMgmtObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForVolume( + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasOnVolume( + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForSnapshot( + VSS_ID SnapshotId, + IVssEnumMgmtObject **ppEnum) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29) +#endif +#else +typedef struct IVssDifferentialSoftwareSnapshotMgmtVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssDifferentialSoftwareSnapshotMgmt *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssDifferentialSoftwareSnapshotMgmt *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssDifferentialSoftwareSnapshotMgmt *This); + + /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ + HRESULT (STDMETHODCALLTYPE *AddDiffArea)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_PWSZ pwszOriginalVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)( + IVssDifferentialSoftwareSnapshotMgmt *This, + VSS_ID SnapshotId, + IVssEnumMgmtObject **ppEnum); + + END_INTERFACE +} IVssDifferentialSoftwareSnapshotMgmtVtbl; + +interface IVssDifferentialSoftwareSnapshotMgmt { + CONST_VTBL IVssDifferentialSoftwareSnapshotMgmtVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssDifferentialSoftwareSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssDifferentialSoftwareSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This) +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) -#define IVssDifferentialSoftwareSnapshotMgmt_Opmun08NotUsedOnWire(This) -#endif /*COBJMACROS*/ - -#if (_WIN32_WINNT >= 0x0600) -#undef INTERFACE -#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt2 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt2,IVssDifferentialSoftwareSnapshotMgmt) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_AddRef(IVssDifferentialSoftwareSnapshotMgmt* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_Release(IVssDifferentialSoftwareSnapshotMgmt* This) { + return This->lpVtbl->Release(This); +} +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum); +} +#endif +#endif + +#endif + + +#endif /* __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssDifferentialSoftwareSnapshotMgmt2 interface + */ +#ifndef __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("949d7353-675f-4275-8969-f044c6277815") +IVssDifferentialSoftwareSnapshotMgmt2 : public IVssDifferentialSoftwareSnapshotMgmt { + virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSizeEx( + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace, + WINBOOL bVolatile) = 0; + + virtual HRESULT STDMETHODCALLTYPE MigrateDiffAreas( + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + VSS_PWSZ pwszNewDiffAreaVolumeName) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryMigrationStatus( + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSnapshotPriority( + VSS_ID idSnapshot, + BYTE priority) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15) +#endif +#else +typedef struct IVssDifferentialSoftwareSnapshotMgmt2Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssDifferentialSoftwareSnapshotMgmt methods */ - STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE; - - /* IVssDifferentialSoftwareSnapshotMgmt2 methods */ - STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSizeEx)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) PURE; - STDMETHOD_(HRESULT,MigrateDiffAreas)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,QueryMigrationStatus)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,SetSnapshotPriority)(THIS) PURE; /*Unsupported*/ + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssDifferentialSoftwareSnapshotMgmt2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssDifferentialSoftwareSnapshotMgmt2 *This); + + /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ + HRESULT (STDMETHODCALLTYPE *AddDiffArea)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszOriginalVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_ID SnapshotId, + IVssEnumMgmtObject **ppEnum); + + /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ + HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace, + WINBOOL bVolatile); + + HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + VSS_PWSZ pwszNewDiffAreaVolumeName); + + HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + VSS_ID idSnapshot, + BYTE priority); END_INTERFACE +} IVssDifferentialSoftwareSnapshotMgmt2Vtbl; + +interface IVssDifferentialSoftwareSnapshotMgmt2 { + CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt2Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssDifferentialSoftwareSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssDifferentialSoftwareSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This) +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) +/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) -#define IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas() (This)->lpVtbl->MigrateDiffAreas(This) -#define IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus() (This)->lpVtbl->QueryMigrationStatus(This) -#define IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority() (This)->lpVtbl->SetSnapshotPriority(This) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt3 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt3,IVssDifferentialSoftwareSnapshotMgmt2) +#define IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) +#define IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) +#define IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_AddRef(IVssDifferentialSoftwareSnapshotMgmt2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_Release(IVssDifferentialSoftwareSnapshotMgmt2* This) { + return This->lpVtbl->Release(This); +} +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum); +} +/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) { + return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) { + return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) { + return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID idSnapshot,BYTE priority) { + return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority); +} +#endif +#endif + +#endif + + +#endif /* __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssDifferentialSoftwareSnapshotMgmt3 interface + */ +#ifndef __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("383f7e71-a4c5-401f-b27f-f826289f8458") +IVssDifferentialSoftwareSnapshotMgmt3 : public IVssDifferentialSoftwareSnapshotMgmt2 { + virtual HRESULT STDMETHODCALLTYPE SetVolumeProtectLevel( + VSS_PWSZ pwszVolumeName, + VSS_PROTECTION_LEVEL protectionLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetVolumeProtectLevel( + VSS_PWSZ pwszVolumeName, + VSS_VOLUME_PROTECTION_INFO *protectionLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE ClearVolumeProtectFault( + VSS_PWSZ pwszVolumeName) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeleteUnusedDiffAreas( + VSS_PWSZ pwszDiffAreaVolumeName) = 0; + + virtual HRESULT STDMETHODCALLTYPE QuerySnapshotDeltaBitmap( + VSS_ID idSnapshotOlder, + VSS_ID idSnapshotYounger, + ULONG *pcBlockSizePerBit, + ULONG *pcBitmapLength, + BYTE **ppbBitmap) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58) +#endif +#else +typedef struct IVssDifferentialSoftwareSnapshotMgmt3Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssDifferentialSoftwareSnapshotMgmt methods */ - STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE; - STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE; - STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE; - - /* IVssDifferentialSoftwareSnapshotMgmt2 methods */ - STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSizeEx)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) PURE; - STDMETHOD_(HRESULT,MigrateDiffAreas)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,QueryMigrationStatus)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,SetSnapshotPriority)(THIS) PURE; /*Unsupported*/ - - /* IVssDifferentialSoftwareSnapshotMgmt3 methods */ - STDMETHOD_(HRESULT,SetVolumeProtectLevel)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PROTECTION_LEVEL protectionLevel) PURE; - STDMETHOD_(HRESULT,GetVolumeProtectLevel)(THIS_ VSS_PWSZ pwszVolumeName,VSS_VOLUME_PROTECTION_INFO *protectionLevel) PURE; - STDMETHOD_(HRESULT,ClearVolumeProtectFault)(THIS_ VSS_PWSZ pwszVolumeName) PURE; - STDMETHOD_(HRESULT,DeleteUnusedDiffAreas)(THIS_ VSS_PWSZ pwszDiffAreaVolumeName) PURE; - STDMETHOD_(HRESULT,QuerySnapshotDeltaBitmap)(THIS) PURE; /*Unsupported*/ + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssDifferentialSoftwareSnapshotMgmt3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssDifferentialSoftwareSnapshotMgmt3 *This); + + /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ + HRESULT (STDMETHODCALLTYPE *AddDiffArea)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace); + + HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszOriginalVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + IVssEnumMgmtObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_ID SnapshotId, + IVssEnumMgmtObject **ppEnum); + + /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ + HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + LONGLONG llMaximumDiffSpace, + WINBOOL bVolatile); + + HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + VSS_PWSZ pwszNewDiffAreaVolumeName); + + HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PWSZ pwszDiffAreaVolumeName, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_ID idSnapshot, + BYTE priority); + + /*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVolumeProtectLevel)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_PROTECTION_LEVEL protectionLevel); + + HRESULT (STDMETHODCALLTYPE *GetVolumeProtectLevel)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName, + VSS_VOLUME_PROTECTION_INFO *protectionLevel); + + HRESULT (STDMETHODCALLTYPE *ClearVolumeProtectFault)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszVolumeName); + + HRESULT (STDMETHODCALLTYPE *DeleteUnusedDiffAreas)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_PWSZ pwszDiffAreaVolumeName); + + HRESULT (STDMETHODCALLTYPE *QuerySnapshotDeltaBitmap)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + VSS_ID idSnapshotOlder, + VSS_ID idSnapshotYounger, + ULONG *pcBlockSizePerBit, + ULONG *pcBitmapLength, + BYTE **ppbBitmap); END_INTERFACE +} IVssDifferentialSoftwareSnapshotMgmt3Vtbl; + +interface IVssDifferentialSoftwareSnapshotMgmt3 { + CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt3Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssDifferentialSoftwareSnapshotMgmt3_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssDifferentialSoftwareSnapshotMgmt3_Release(This) (This)->lpVtbl->Release(This) +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) #define IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) #define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) +/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) -#define IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas() (This)->lpVtbl->MigrateDiffAreas(This) -#define IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus() (This)->lpVtbl->QueryMigrationStatus(This) -#define IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority() (This)->lpVtbl->SetSnapshotPriority(This) +#define IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) +#define IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) +#define IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority) +/*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/ #define IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) #define IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) #define IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(This,pwszVolumeName) (This)->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName) #define IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName) (This)->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName) -#define IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap() (This)->lpVtbl->QuerySnapshotDeltaBitmap(This) -#endif /*COBJMACROS*/ - -#undef INTERFACE -#define INTERFACE IVssEnumMgmtObject -/*IID_IVssEnumMgmtObject is defined as 01954E6B-9254-4e6e-808C-C9E05D007696*/ -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssEnumMgmtObject,IUnknown) +#define IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap) (This)->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_AddRef(IVssDifferentialSoftwareSnapshotMgmt3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_Release(IVssDifferentialSoftwareSnapshotMgmt3* This) { + return This->lpVtbl->Release(This); +} +/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) { + return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) { + return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum); +} +/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) { + return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) { + return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) { + return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshot,BYTE priority) { + return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority); +} +/*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/ +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PROTECTION_LEVEL protectionLevel) { + return This->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_VOLUME_PROTECTION_INFO *protectionLevel) { + return This->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName) { + return This->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszDiffAreaVolumeName) { + return This->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName); +} +static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshotOlder,VSS_ID idSnapshotYounger,ULONG *pcBlockSizePerBit,ULONG *pcBitmapLength,BYTE **ppbBitmap) { + return This->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap); +} +#endif +#endif + +#endif + + +#endif /* __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssEnumMgmtObject interface + */ +#ifndef __IVssEnumMgmtObject_INTERFACE_DEFINED__ +#define __IVssEnumMgmtObject_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("01954e6b-9254-4e6e-808c-c9e05d007696") +IVssEnumMgmtObject : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE Next( + ULONG celt, + VSS_MGMT_OBJECT_PROP *rgelt, + ULONG *pceltFetched) = 0; + + virtual HRESULT STDMETHODCALLTYPE Skip( + ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + IVssEnumMgmtObject **ppenum) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96) +#endif +#else +typedef struct IVssEnumMgmtObjectVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssEnumMgmtObject *This, + REFIID riid, + void **ppvObject); - /* IVssEnumMgmtObject methods */ - STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt,VSS_MGMT_OBJECT_PROP *rgelt,ULONG *pceltFetched) PURE; - STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; - STDMETHOD_(HRESULT,Reset)(THIS) PURE; - STDMETHOD_(HRESULT,Clone)(THIS_ IVssEnumMgmtObject **ppenum) PURE; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssEnumMgmtObject *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssEnumMgmtObject *This); + + /*** IVssEnumMgmtObject methods ***/ + HRESULT (STDMETHODCALLTYPE *Next)( + IVssEnumMgmtObject *This, + ULONG celt, + VSS_MGMT_OBJECT_PROP *rgelt, + ULONG *pceltFetched); + + HRESULT (STDMETHODCALLTYPE *Skip)( + IVssEnumMgmtObject *This, + ULONG celt); + + HRESULT (STDMETHODCALLTYPE *Reset)( + IVssEnumMgmtObject *This); + + HRESULT (STDMETHODCALLTYPE *Clone)( + IVssEnumMgmtObject *This, + IVssEnumMgmtObject **ppenum); END_INTERFACE +} IVssEnumMgmtObjectVtbl; + +interface IVssEnumMgmtObject { + CONST_VTBL IVssEnumMgmtObjectVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssEnumMgmtObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssEnumMgmtObject_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssEnumMgmtObject_Release(This) (This)->lpVtbl->Release(This) +/*** IVssEnumMgmtObject methods ***/ #define IVssEnumMgmtObject_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) #define IVssEnumMgmtObject_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IVssEnumMgmtObject_Reset() (This)->lpVtbl->Reset(This) +#define IVssEnumMgmtObject_Reset(This) (This)->lpVtbl->Reset(This) #define IVssEnumMgmtObject_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#endif /*COBJMACROS*/ - -#endif /* (_WIN32_WINNT >= 0x0600) */ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssEnumMgmtObject_QueryInterface(IVssEnumMgmtObject* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssEnumMgmtObject_AddRef(IVssEnumMgmtObject* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssEnumMgmtObject_Release(IVssEnumMgmtObject* This) { + return This->lpVtbl->Release(This); +} +/*** IVssEnumMgmtObject methods ***/ +static FORCEINLINE HRESULT IVssEnumMgmtObject_Next(IVssEnumMgmtObject* This,ULONG celt,VSS_MGMT_OBJECT_PROP *rgelt,ULONG *pceltFetched) { + return This->lpVtbl->Next(This,celt,rgelt,pceltFetched); +} +static FORCEINLINE HRESULT IVssEnumMgmtObject_Skip(IVssEnumMgmtObject* This,ULONG celt) { + return This->lpVtbl->Skip(This,celt); +} +static FORCEINLINE HRESULT IVssEnumMgmtObject_Reset(IVssEnumMgmtObject* This) { + return This->lpVtbl->Reset(This); +} +static FORCEINLINE HRESULT IVssEnumMgmtObject_Clone(IVssEnumMgmtObject* This,IVssEnumMgmtObject **ppenum) { + return This->lpVtbl->Clone(This,ppenum); +} +#endif +#endif -#undef INTERFACE -#define INTERFACE IVssSnapshotMgmt -/*IID_IVssSnapshotMgmt is defined as FA7DF749-66E7-4986-A27F-E2F04AE53772*/ -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssSnapshotMgmt,IUnknown) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - /* IVssSnapshotMgmt methods */ - STDMETHOD_(HRESULT,GetProviderMgmtInterface)(THIS_ VSS_ID ProviderId,REFIID InterfaceId,IUnknown **ppItf) PURE; - STDMETHOD_(HRESULT,QueryVolumesSupportedForSnapshots)(THIS) PURE; /*Unsupported*/ - STDMETHOD_(HRESULT,QuerySnapshotsByVolume)(THIS) PURE; /*Unsupported*/ +#endif /* __IVssEnumMgmtObject_INTERFACE_DEFINED__ */ - END_INTERFACE -}; -#ifdef COBJMACROS -#define IVssSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This) -#define IVssSnapshotMgmt_GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) (This)->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) -#define IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots() (This)->lpVtbl->QueryVolumesSupportedForSnapshots(This) -#define IVssSnapshotMgmt_QuerySnapshotsByVolume() (This)->lpVtbl->QuerySnapshotsByVolume(This) -#endif /*COBJMACROS*/ +#ifndef __VSMGMT_LIBRARY_DEFINED__ +#define __VSMGMT_LIBRARY_DEFINED__ -#undef INTERFACE -#define INTERFACE IVssSnapshotMgmt2 -DECLARE_INTERFACE_(IVssSnapshotMgmt2,IUnknown) -{ - BEGIN_INTERFACE +DEFINE_GUID(LIBID_VSMGMT, 0x84015c41, 0x291d, 0x49e6, 0xbf,0x7f, 0xdd,0x40,0xae,0x93,0x63,0x2b); - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; +/***************************************************************************** + * VssSnapshotMgmt coclass + */ - /* IVssSnapshotMgmt2 methods */ - STDMETHOD_(HRESULT,GetMinDiffAreaSize)(THIS_ LONGLONG *pllMinDiffAreaSize) PURE; +DEFINE_GUID(CLSID_VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f); - END_INTERFACE -}; -#ifdef COBJMACROS -#define IVssSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This) -#define IVssSnapshotMgmt2_GetMinDiffAreaSize(This,pllMinDiffAreaSize) (This)->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize) -#endif /*COBJMACROS*/ +#ifdef __cplusplus +class DECLSPEC_UUID("0b5a2c52-3eb9-470a-96e2-6c6d4570e40f") VssSnapshotMgmt; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f) +#endif +#endif + +#endif /* __VSMGMT_LIBRARY_DEFINED__ */ +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif -#endif /*_INC_VSMGT*/ +#endif /* __vsmgmt_h__ */ diff --git a/lib/libc/include/any-windows-any/vsprov.h b/lib/libc/include/any-windows-any/vsprov.h index 9bee9ac662..aee5414e3e 100644 --- a/lib/libc/include/any-windows-any/vsprov.h +++ b/lib/libc/include/any-windows-any/vsprov.h @@ -1,130 +1,408 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VSPROV -#define _INC_VSPROV +/*** Autogenerated by WIDL 7.0 from include/vsprov.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __vsprov_h__ +#define __vsprov_h__ + +/* Forward declarations */ + +#ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__ +#define __IVssSoftwareSnapshotProvider_FWD_DEFINED__ +typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider; +#ifdef __cplusplus +interface IVssSoftwareSnapshotProvider; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__ +#define __IVssProviderCreateSnapshotSet_FWD_DEFINED__ +typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet; +#ifdef __cplusplus +interface IVssProviderCreateSnapshotSet; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssProviderNotifications_FWD_DEFINED__ +#define __IVssProviderNotifications_FWD_DEFINED__ +typedef interface IVssProviderNotifications IVssProviderNotifications; +#ifdef __cplusplus +interface IVssProviderNotifications; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__ +#define __IVssHardwareSnapshotProvider_FWD_DEFINED__ +typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider; +#ifdef __cplusplus +interface IVssHardwareSnapshotProvider; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ +#define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__ +typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx; +#ifdef __cplusplus +interface IVssHardwareSnapshotProviderEx; +#endif /* __cplusplus */ +#endif +#ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__ +#define __IVssFileShareSnapshotProvider_FWD_DEFINED__ +typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider; +#ifdef __cplusplus +interface IVssFileShareSnapshotProvider; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> #include <vss.h> -#include <vds.h> -#undef INTERFACE -#define INTERFACE IVssHardwareSnapshotProvider -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssHardwareSnapshotProvider,IUnknown) +#include <vdslun.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#ifndef __IVssSnapshotProvider_FWD_DEFINED__ +#define __IVssSnapshotProvider_FWD_DEFINED__ +typedef interface IVssSnapshotProvider IVssSnapshotProvider; +#ifdef __cplusplus +interface IVssSnapshotProvider; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssProviderNotifications_FWD_DEFINED__ +#define __IVssProviderNotifications_FWD_DEFINED__ +typedef interface IVssProviderNotifications IVssProviderNotifications; +#ifdef __cplusplus +interface IVssProviderNotifications; +#endif /* __cplusplus */ +#endif + +typedef VSS_PWSZ *PVSS_PWSZ; +/***************************************************************************** + * IVssSoftwareSnapshotProvider interface + */ +#ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ +#define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff") +IVssSoftwareSnapshotProvider : public IUnknown { - BEGIN_INTERFACE + virtual HRESULT STDMETHODCALLTYPE SetContext( + LONG lContext) = 0; - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp) = 0; - /* IVssHardwareSnapshotProvider methods */ - STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE; - STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE; - STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE; - STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE; - STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE; - STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE; + virtual HRESULT STDMETHODCALLTYPE Query( + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum) = 0; - END_INTERFACE -}; -#ifdef COBJMACROS -#define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) -#define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) -#define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) -#define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) -#define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) -#define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) -#define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) -#endif /*COBJMACROS*/ + virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + VSS_PWSZ pwszVolumeName, + LONG lNewContext) = 0; -#undef INTERFACE -#define INTERFACE IVssHardwareSnapshotProviderEx -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) + virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported( + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsVolumeSnapshotted( + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSnapshotsPresent, + LONG *plSnapshotCompatibility) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, + VARIANT vProperty) = 0; + + virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot( + VSS_ID SnapshotId) = 0; + + virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus( + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff) #endif -DECLARE_INTERFACE_(IVssHardwareSnapshotProviderEx,IVssHardwareSnapshotProvider) -{ +#else +typedef struct IVssSoftwareSnapshotProviderVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssHardwareSnapshotProvider methods */ - STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE; - STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE; - STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE; - STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE; - STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE; - STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE; - - /* IVssHardwareSnapshotProviderEx methods */ - STDMETHOD_(HRESULT,GetProviderCapabilities)(THIS) PURE; - STDMETHOD_(HRESULT,OnLunStateChange)(THIS_ VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) PURE; - STDMETHOD_(HRESULT,OnReuseLuns)(THIS) PURE; - STDMETHOD_(HRESULT,ResyncLuns)(THIS_ VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssSoftwareSnapshotProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssSoftwareSnapshotProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssSoftwareSnapshotProvider *This); + + /*** IVssSoftwareSnapshotProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssSoftwareSnapshotProvider *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssSoftwareSnapshotProvider *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssSoftwareSnapshotProvider *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssSoftwareSnapshotProvider *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( + IVssSoftwareSnapshotProvider *This, + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + VSS_PWSZ pwszVolumeName, + LONG lNewContext); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)( + IVssSoftwareSnapshotProvider *This, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *IsVolumeSnapshotted)( + IVssSoftwareSnapshotProvider *This, + VSS_PWSZ pwszVolumeName, + WINBOOL *pbSnapshotsPresent, + LONG *plSnapshotCompatibility); + + HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( + IVssSoftwareSnapshotProvider *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, + VARIANT vProperty); + + HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)( + IVssSoftwareSnapshotProvider *This, + VSS_ID SnapshotId); + + HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)( + IVssSoftwareSnapshotProvider *This, + VSS_PWSZ pwszVolume, + IVssAsync **ppAsync); END_INTERFACE +} IVssSoftwareSnapshotProviderVtbl; + +interface IVssSoftwareSnapshotProvider { + CONST_VTBL IVssSoftwareSnapshotProviderVtbl* lpVtbl; }; + #ifdef COBJMACROS -#define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This) -#define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) -#define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) -#define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) -#define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) -#define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) -#define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) -#define IVssHardwareSnapshotProviderEx_GetProviderCapabilities() (This)->lpVtbl->GetProviderCapabilities(This) -#define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) -#define IVssHardwareSnapshotProviderEx_OnReuseLuns() (This)->lpVtbl->OnReuseLuns(This) -#define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) -#endif /*COBJMACROS*/ +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IVssSoftwareSnapshotProvider methods ***/ +#define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) +#define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) +#define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) +#define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) +#define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) +#define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) +#define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) +#define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) +#define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId) +#define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IVssSoftwareSnapshotProvider methods ***/ +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_Query(IVssSoftwareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_DeleteSnapshots(IVssSoftwareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) { + return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { + return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_SetSnapshotProperty(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { + return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) { + return This->lpVtbl->RevertToSnapshot(This,SnapshotId); +} +static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_QueryRevertStatus(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) { + return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync); +} +#endif +#endif -#undef INTERFACE -#define INTERFACE IVssProviderCreateSnapshotSet -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown) + + +#endif /* __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssProviderCreateSnapshotSet interface + */ +#ifndef __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ +#define __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c") +IVssProviderCreateSnapshotSet : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE EndPrepareSnapshots( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE PreCommitSnapshots( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE CommitSnapshots( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE PostCommitSnapshots( + VSS_ID SnapshotSetId, + LONG lSnapshotsCount) = 0; + + virtual HRESULT STDMETHODCALLTYPE PreFinalCommitSnapshots( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE PostFinalCommitSnapshots( + VSS_ID SnapshotSetId) = 0; + + virtual HRESULT STDMETHODCALLTYPE AbortSnapshots( + VSS_ID SnapshotSetId) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c) +#endif +#else +typedef struct IVssProviderCreateSnapshotSetVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssProviderCreateSnapshotSet *This, + REFIID riid, + void **ppvObject); - /* IVssProviderCreateSnapshotSet methods */ - STDMETHOD_(HRESULT,EndPrepareSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,PreCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,CommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,PostCommitSnapshots)(THIS_ VSS_ID SnapshotSetId,LONG lSnapshotsCount) PURE; - STDMETHOD_(HRESULT,PreFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,PostFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; - STDMETHOD_(HRESULT,AbortSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssProviderCreateSnapshotSet *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssProviderCreateSnapshotSet *This); + + /*** IVssProviderCreateSnapshotSet methods ***/ + HRESULT (STDMETHODCALLTYPE *EndPrepareSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *PreCommitSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *CommitSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *PostCommitSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId, + LONG lSnapshotsCount); + + HRESULT (STDMETHODCALLTYPE *PreFinalCommitSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *PostFinalCommitSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); + + HRESULT (STDMETHODCALLTYPE *AbortSnapshots)( + IVssProviderCreateSnapshotSet *This, + VSS_ID SnapshotSetId); END_INTERFACE +} IVssProviderCreateSnapshotSetVtbl; + +interface IVssProviderCreateSnapshotSet { + CONST_VTBL IVssProviderCreateSnapshotSetVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This) +/*** IVssProviderCreateSnapshotSet methods ***/ #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId) #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId) #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId) @@ -132,77 +410,698 @@ DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown) #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId) #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId) #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId) -#endif /*COBJMACROS*/ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) { + return This->lpVtbl->Release(This); +} +/*** IVssProviderCreateSnapshotSet methods ***/ +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->CommitSnapshots(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) { + return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId); +} +static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_AbortSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) { + return This->lpVtbl->AbortSnapshots(This,SnapshotSetId); +} +#endif +#endif + +#endif + + +#endif /* __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssProviderNotifications interface + */ +#ifndef __IVssProviderNotifications_INTERFACE_DEFINED__ +#define __IVssProviderNotifications_INTERFACE_DEFINED__ -#undef INTERFACE -#define INTERFACE IVssProviderNotifications -DECLARE_INTERFACE_(IVssProviderNotifications,IUnknown) +DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004") +IVssProviderNotifications : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE OnLoad( + IUnknown *pCallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnUnload( + WINBOOL bForceUnload) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04) +#endif +#else +typedef struct IVssProviderNotificationsVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssProviderNotifications *This, + REFIID riid, + void **ppvObject); - /* IVssProviderNotifications methods */ - STDMETHOD_(HRESULT,OnLoad)(THIS_ IUnknown *pCallback) PURE; - STDMETHOD_(HRESULT,OnUnload)(THIS_ WINBOOL bForceUnload) PURE; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssProviderNotifications *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssProviderNotifications *This); + + /*** IVssProviderNotifications methods ***/ + HRESULT (STDMETHODCALLTYPE *OnLoad)( + IVssProviderNotifications *This, + IUnknown *pCallback); + + HRESULT (STDMETHODCALLTYPE *OnUnload)( + IVssProviderNotifications *This, + WINBOOL bForceUnload); END_INTERFACE +} IVssProviderNotificationsVtbl; + +interface IVssProviderNotifications { + CONST_VTBL IVssProviderNotificationsVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This) +/*** IVssProviderNotifications methods ***/ #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback) #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload) -#endif /*COBJMACROS*/ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) { + return This->lpVtbl->Release(This); +} +/*** IVssProviderNotifications methods ***/ +static FORCEINLINE HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) { + return This->lpVtbl->OnLoad(This,pCallback); +} +static FORCEINLINE HRESULT IVssProviderNotifications_OnUnload(IVssProviderNotifications* This,WINBOOL bForceUnload) { + return This->lpVtbl->OnUnload(This,bForceUnload); +} +#endif +#endif -#undef INTERFACE -#define INTERFACE IVssSoftwareSnapshotProvider -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown) + + +#endif /* __IVssProviderNotifications_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssHardwareSnapshotProvider interface + */ +#ifndef __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ +#define __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10") +IVssHardwareSnapshotProvider : public IUnknown { + virtual HRESULT STDMETHODCALLTYPE AreLunsSupported( + LONG lLunCount, + LONG lContext, + VSS_PWSZ *rgwszDevices, + VDS_LUN_INFORMATION *pLunInformation, + WINBOOL *pbIsSupported) = 0; + + virtual HRESULT STDMETHODCALLTYPE FillInLunInfo( + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pLunInfo, + WINBOOL *pbIsSupported) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + LONG lContext, + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgLunInformation) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTargetLuns( + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgSourceLuns, + VDS_LUN_INFORMATION *rgDestinationLuns) = 0; + + virtual HRESULT STDMETHODCALLTYPE LocateLuns( + LONG lLunCount, + VDS_LUN_INFORMATION *rgSourceLuns) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnLunEmpty( + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pInformation) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10) +#endif +#else +typedef struct IVssHardwareSnapshotProviderVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssSoftwareSnapshotProvider methods */ - STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE; - STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE; - STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE; - STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE; - STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) PURE; - STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) PURE; - STDMETHOD_(HRESULT,IsVolumeSnapshotted)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) PURE; - STDMETHOD_(HRESULT,SetSnapshotProperty)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) PURE; - STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId) PURE; - STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssHardwareSnapshotProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssHardwareSnapshotProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssHardwareSnapshotProvider *This); + + /*** IVssHardwareSnapshotProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( + IVssHardwareSnapshotProvider *This, + LONG lLunCount, + LONG lContext, + VSS_PWSZ *rgwszDevices, + VDS_LUN_INFORMATION *pLunInformation, + WINBOOL *pbIsSupported); + + HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( + IVssHardwareSnapshotProvider *This, + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pLunInfo, + WINBOOL *pbIsSupported); + + HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( + IVssHardwareSnapshotProvider *This, + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + LONG lContext, + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgLunInformation); + + HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( + IVssHardwareSnapshotProvider *This, + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgSourceLuns, + VDS_LUN_INFORMATION *rgDestinationLuns); + + HRESULT (STDMETHODCALLTYPE *LocateLuns)( + IVssHardwareSnapshotProvider *This, + LONG lLunCount, + VDS_LUN_INFORMATION *rgSourceLuns); + + HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( + IVssHardwareSnapshotProvider *This, + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pInformation); END_INTERFACE +} IVssHardwareSnapshotProviderVtbl; + +interface IVssHardwareSnapshotProvider { + CONST_VTBL IVssHardwareSnapshotProviderVtbl* lpVtbl; }; + #ifdef COBJMACROS -#define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) -#define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) -#define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) -#define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) -#define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) -#define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) -#define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) -#define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) -#define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) -#define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId) -#define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync) -#endif /*COBJMACROS*/ +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IVssHardwareSnapshotProvider methods ***/ +#define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) +#define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) +#define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) +#define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) +#define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) +#define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IVssHardwareSnapshotProvider methods ***/ +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_AreLunsSupported(IVssHardwareSnapshotProvider* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { + return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_FillInLunInfo(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { + return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_BeginPrepareSnapshot(IVssHardwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { + return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_GetTargetLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { + return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { + return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_OnLunEmpty(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { + return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); +} +#endif +#endif + +#endif + + +#endif /* __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssHardwareSnapshotProviderEx interface + */ +#ifndef __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ +#define __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd") +IVssHardwareSnapshotProviderEx : public IVssHardwareSnapshotProvider +{ + virtual HRESULT STDMETHODCALLTYPE GetProviderCapabilities( + ULONGLONG *pllOriginalCapabilityMask) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnLunStateChange( + VDS_LUN_INFORMATION *pSnapshotLuns, + VDS_LUN_INFORMATION *pOriginalLuns, + DWORD dwCount, + DWORD dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE ResyncLuns( + VDS_LUN_INFORMATION *pSourceLuns, + VDS_LUN_INFORMATION *pTargetLuns, + DWORD dwCount, + IVssAsync **ppAsync) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnReuseLuns( + VDS_LUN_INFORMATION *pSnapshotLuns, + VDS_LUN_INFORMATION *pOriginalLuns, + DWORD dwCount) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd) +#endif +#else +typedef struct IVssHardwareSnapshotProviderExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssHardwareSnapshotProviderEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssHardwareSnapshotProviderEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssHardwareSnapshotProviderEx *This); + + /*** IVssHardwareSnapshotProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *AreLunsSupported)( + IVssHardwareSnapshotProviderEx *This, + LONG lLunCount, + LONG lContext, + VSS_PWSZ *rgwszDevices, + VDS_LUN_INFORMATION *pLunInformation, + WINBOOL *pbIsSupported); + + HRESULT (STDMETHODCALLTYPE *FillInLunInfo)( + IVssHardwareSnapshotProviderEx *This, + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pLunInfo, + WINBOOL *pbIsSupported); + + HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( + IVssHardwareSnapshotProviderEx *This, + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + LONG lContext, + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgLunInformation); + + HRESULT (STDMETHODCALLTYPE *GetTargetLuns)( + IVssHardwareSnapshotProviderEx *This, + LONG lLunCount, + VSS_PWSZ *rgDeviceNames, + VDS_LUN_INFORMATION *rgSourceLuns, + VDS_LUN_INFORMATION *rgDestinationLuns); + + HRESULT (STDMETHODCALLTYPE *LocateLuns)( + IVssHardwareSnapshotProviderEx *This, + LONG lLunCount, + VDS_LUN_INFORMATION *rgSourceLuns); + + HRESULT (STDMETHODCALLTYPE *OnLunEmpty)( + IVssHardwareSnapshotProviderEx *This, + VSS_PWSZ wszDeviceName, + VDS_LUN_INFORMATION *pInformation); + + /*** IVssHardwareSnapshotProviderEx methods ***/ + HRESULT (STDMETHODCALLTYPE *GetProviderCapabilities)( + IVssHardwareSnapshotProviderEx *This, + ULONGLONG *pllOriginalCapabilityMask); + + HRESULT (STDMETHODCALLTYPE *OnLunStateChange)( + IVssHardwareSnapshotProviderEx *This, + VDS_LUN_INFORMATION *pSnapshotLuns, + VDS_LUN_INFORMATION *pOriginalLuns, + DWORD dwCount, + DWORD dwFlags); + + HRESULT (STDMETHODCALLTYPE *ResyncLuns)( + IVssHardwareSnapshotProviderEx *This, + VDS_LUN_INFORMATION *pSourceLuns, + VDS_LUN_INFORMATION *pTargetLuns, + DWORD dwCount, + IVssAsync **ppAsync); + + HRESULT (STDMETHODCALLTYPE *OnReuseLuns)( + IVssHardwareSnapshotProviderEx *This, + VDS_LUN_INFORMATION *pSnapshotLuns, + VDS_LUN_INFORMATION *pOriginalLuns, + DWORD dwCount); + + END_INTERFACE +} IVssHardwareSnapshotProviderExVtbl; + +interface IVssHardwareSnapshotProviderEx { + CONST_VTBL IVssHardwareSnapshotProviderExVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This) +/*** IVssHardwareSnapshotProvider methods ***/ +#define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) +#define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) +#define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) +#define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) +#define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns) +#define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation) +/*** IVssHardwareSnapshotProviderEx methods ***/ +#define IVssHardwareSnapshotProviderEx_GetProviderCapabilities(This,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask) +#define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) +#define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) +#define IVssHardwareSnapshotProviderEx_OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) (This)->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) { + return This->lpVtbl->Release(This); +} +/*** IVssHardwareSnapshotProvider methods ***/ +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_AreLunsSupported(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) { + return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_FillInLunInfo(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) { + return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(IVssHardwareSnapshotProviderEx* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) { + return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_GetTargetLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) { + return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) { + return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnLunEmpty(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) { + return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation); +} +/*** IVssHardwareSnapshotProviderEx methods ***/ +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) { + return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnLunStateChange(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) { + return This->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_ResyncLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) { + return This->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync); +} +static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnReuseLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount) { + return This->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount); +} +#endif +#endif + +#endif + + +#endif /* __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssFileShareSnapshotProvider interface + */ +#ifndef __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ +#define __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66") +IVssFileShareSnapshotProvider : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetContext( + LONG lContext) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties( + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp) = 0; + + virtual HRESULT STDMETHODCALLTYPE Query( + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots( + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot( + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + VSS_PWSZ pwszSharePath, + LONG lNewContext, + VSS_ID ProviderId) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsPathSupported( + VSS_PWSZ pwszSharePath, + WINBOOL *pbSupportedByThisProvider) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsPathSnapshotted( + VSS_PWSZ pwszSharePath, + WINBOOL *pbSnapshotsPresent, + LONG *plSnapshotCompatibility) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty( + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, + VARIANT vProperty) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66) +#endif +#else +typedef struct IVssFileShareSnapshotProviderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssFileShareSnapshotProvider *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssFileShareSnapshotProvider *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssFileShareSnapshotProvider *This); + + /*** IVssFileShareSnapshotProvider methods ***/ + HRESULT (STDMETHODCALLTYPE *SetContext)( + IVssFileShareSnapshotProvider *This, + LONG lContext); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)( + IVssFileShareSnapshotProvider *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROP *pProp); + + HRESULT (STDMETHODCALLTYPE *Query)( + IVssFileShareSnapshotProvider *This, + VSS_ID QueriedObjectId, + VSS_OBJECT_TYPE eQueriedObjectType, + VSS_OBJECT_TYPE eReturnedObjectsType, + IVssEnumObject **ppEnum); + + HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)( + IVssFileShareSnapshotProvider *This, + VSS_ID SourceObjectId, + VSS_OBJECT_TYPE eSourceObjectType, + WINBOOL bForceDelete, + LONG *plDeletedSnapshots, + VSS_ID *pNondeletedSnapshotID); + + HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)( + IVssFileShareSnapshotProvider *This, + VSS_ID SnapshotSetId, + VSS_ID SnapshotId, + VSS_PWSZ pwszSharePath, + LONG lNewContext, + VSS_ID ProviderId); + + HRESULT (STDMETHODCALLTYPE *IsPathSupported)( + IVssFileShareSnapshotProvider *This, + VSS_PWSZ pwszSharePath, + WINBOOL *pbSupportedByThisProvider); + + HRESULT (STDMETHODCALLTYPE *IsPathSnapshotted)( + IVssFileShareSnapshotProvider *This, + VSS_PWSZ pwszSharePath, + WINBOOL *pbSnapshotsPresent, + LONG *plSnapshotCompatibility); + + HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)( + IVssFileShareSnapshotProvider *This, + VSS_ID SnapshotId, + VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId, + VARIANT vProperty); + + END_INTERFACE +} IVssFileShareSnapshotProviderVtbl; + +interface IVssFileShareSnapshotProvider { + CONST_VTBL IVssFileShareSnapshotProviderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssFileShareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssFileShareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssFileShareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This) +/*** IVssFileShareSnapshotProvider methods ***/ +#define IVssFileShareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext) +#define IVssFileShareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp) +#define IVssFileShareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) +#define IVssFileShareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) +#define IVssFileShareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) +#define IVssFileShareSnapshotProvider_IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) (This)->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) +#define IVssFileShareSnapshotProvider_IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) +#define IVssFileShareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) { + return This->lpVtbl->Release(This); +} +/*** IVssFileShareSnapshotProvider methods ***/ +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) { + return This->lpVtbl->SetContext(This,lContext); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) { + return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_Query(IVssFileShareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) { + return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_DeleteSnapshots(IVssFileShareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) { + return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_BeginPrepareSnapshot(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszSharePath,LONG lNewContext,VSS_ID ProviderId) { + return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) { + return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) { + return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility); +} +static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_SetSnapshotProperty(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) { + return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty); +} +#endif +#endif + +#endif + + +#endif /* __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ */ + +#ifndef __VSSProvider_LIBRARY_DEFINED__ +#define __VSSProvider_LIBRARY_DEFINED__ + +DEFINE_GUID(LIBID_VSSProvider, 0x73c8b4c1, 0x6e9d, 0x4fc2, 0xb3,0x04, 0x03,0x0e,0xc7,0x63,0xfe,0x81); + +#endif /* __VSSProvider_LIBRARY_DEFINED__ */ +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *); +unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *); +unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *); +void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif -#endif /*_INC_VSPROV*/ +#endif /* __vsprov_h__ */ diff --git a/lib/libc/include/any-windows-any/vss.h b/lib/libc/include/any-windows-any/vss.h index f7abe342c3..eded9309c9 100644 --- a/lib/libc/include/any-windows-any/vss.h +++ b/lib/libc/include/any-windows-any/vss.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/vss.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/vss.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/vswriter.h b/lib/libc/include/any-windows-any/vswriter.h index f9e5c54daf..c496da7d4a 100644 --- a/lib/libc/include/any-windows-any/vswriter.h +++ b/lib/libc/include/any-windows-any/vswriter.h @@ -1,348 +1,813 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _INC_VSWRITER -#define _INC_VSWRITER - - typedef enum VSS_COMPONENT_FLAGS { - VSS_CF_BACKUP_RECOVERY = 0x00000001, - VSS_CF_APP_ROLLBACK_RECOVERY = 0x00000002, - VSS_CF_NOT_SYSTEM_STATE = 0x00000004 - } VSS_COMPONENT_FLAGS; - - /* http://msdn.microsoft.com/en-us/library/aa384976%28v=VS.85%29.aspx */ - typedef enum VSS_USAGE_TYPE { - VSS_UT_UNDEFINED = 0, - VSS_UT_BOOTABLESYSTEMSTATE = 1, - VSS_UT_SYSTEMSERVICE = 2, - VSS_UT_USERDATA = 3, - VSS_UT_OTHER = 4 - } VSS_USAGE_TYPE; +/*** Autogenerated by WIDL 7.0 from include/vswriter.idl - Do not edit ***/ -typedef enum VSS_ALTERNATE_WRITER_STATE { - VSS_AWS_UNDEFINED = 0, - VSS_AWS_NO_ALTERNATE_WRITER = 1, - VSS_AWS_ALTERNATE_WRITER_EXISTS = 2, - VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3 -} VSS_ALTERNATE_WRITER_STATE; +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif -typedef enum VSS_COMPONENT_TYPE { - VSS_CT_UNDEFINED = 0, - VSS_CT_DATABASE = 1, - VSS_CT_FILEGROUP = 2 -} VSS_COMPONENT_TYPE; +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif -typedef enum VSS_FILE_RESTORE_STATUS { - VSS_RS_UNDEFINED = 0, - VSS_RS_NONE = 1, - VSS_RS_ALL = 2, - VSS_RS_FAILED = 3 -} VSS_FILE_RESTORE_STATUS; +#ifndef __vswriter_h__ +#define __vswriter_h__ -typedef enum VSS_RESTORE_TARGET { - VSS_RT_UNDEFINED = 0, - VSS_RT_ORIGINAL = 1, - VSS_RT_ALTERNATE = 2, - VSS_RT_DIRECTED = 3, - VSS_RT_ORIGINAL_LOCATION = 4 -} VSS_RESTORE_TARGET; +/* Forward declarations */ -typedef enum VSS_RESTOREMETHOD_ENUM { - VSS_RME_UNDEFINED = 0, - VSS_RME_RESTORE_IF_NOT_THERE = 1, - VSS_RME_RESTORE_IF_CAN_REPLACE = 2, - VSS_RME_STOP_RESTORE_START = 3, - VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4, - VSS_RME_RESTORE_AT_REBOOT = 5, - VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6, - VSS_RME_CUSTOM = 7, - VSS_RME_RESTORE_STOP_START = 8 -} VSS_RESTOREMETHOD_ENUM; +#ifndef __IVssWMFiledesc_FWD_DEFINED__ +#define __IVssWMFiledesc_FWD_DEFINED__ +typedef interface IVssWMFiledesc IVssWMFiledesc; +#ifdef __cplusplus +interface IVssWMFiledesc; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssWMDependency_FWD_DEFINED__ +#define __IVssWMDependency_FWD_DEFINED__ +typedef interface IVssWMDependency IVssWMDependency; +#ifdef __cplusplus +interface IVssWMDependency; +#endif /* __cplusplus */ +#endif +#ifndef __IVssComponent_FWD_DEFINED__ +#define __IVssComponent_FWD_DEFINED__ +typedef interface IVssComponent IVssComponent; +#ifdef __cplusplus +interface IVssComponent; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssWriterComponents_FWD_DEFINED__ +#define __IVssWriterComponents_FWD_DEFINED__ +typedef interface IVssWriterComponents IVssWriterComponents; +#ifdef __cplusplus +interface IVssWriterComponents; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssComponentEx_FWD_DEFINED__ +#define __IVssComponentEx_FWD_DEFINED__ +typedef interface IVssComponentEx IVssComponentEx; +#ifdef __cplusplus +interface IVssComponentEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssComponentEx2_FWD_DEFINED__ +#define __IVssComponentEx2_FWD_DEFINED__ +typedef interface IVssComponentEx2 IVssComponentEx2; +#ifdef __cplusplus +interface IVssComponentEx2; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssCreateWriterMetadata_FWD_DEFINED__ +#define __IVssCreateWriterMetadata_FWD_DEFINED__ +typedef interface IVssCreateWriterMetadata IVssCreateWriterMetadata; +#ifdef __cplusplus +interface IVssCreateWriterMetadata; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssCreateWriterMetadataEx_FWD_DEFINED__ +#define __IVssCreateWriterMetadataEx_FWD_DEFINED__ +typedef interface IVssCreateWriterMetadataEx IVssCreateWriterMetadataEx; +#ifdef __cplusplus +interface IVssCreateWriterMetadataEx; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssWriterImpl_FWD_DEFINED__ +#define __IVssWriterImpl_FWD_DEFINED__ +typedef interface IVssWriterImpl IVssWriterImpl; +#ifdef __cplusplus +interface IVssWriterImpl; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssCreateExpressWriterMetadata_FWD_DEFINED__ +#define __IVssCreateExpressWriterMetadata_FWD_DEFINED__ +typedef interface IVssCreateExpressWriterMetadata IVssCreateExpressWriterMetadata; +#ifdef __cplusplus +interface IVssCreateExpressWriterMetadata; +#endif /* __cplusplus */ +#endif + +#ifndef __IVssExpressWriter_FWD_DEFINED__ +#define __IVssExpressWriter_FWD_DEFINED__ +typedef interface IVssExpressWriter IVssExpressWriter; +#ifdef __cplusplus +interface IVssExpressWriter; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> +#include <vss.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <winapifamily.h> +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#include "vsserror.h" +typedef enum VSS_USAGE_TYPE { + VSS_UT_UNDEFINED = 0, + VSS_UT_BOOTABLESYSTEMSTATE = 1, + VSS_UT_SYSTEMSERVICE = 2, + VSS_UT_USERDATA = 3, + VSS_UT_OTHER = 4 +} VSS_USAGE_TYPE; typedef enum VSS_SOURCE_TYPE { - VSS_ST_UNDEFINED = 0, - VSS_ST_TRANSACTEDDB = 1, - VSS_ST_NONTRANSACTEDDB = 2, - VSS_ST_OTHER = 3 + VSS_ST_UNDEFINED = 0, + VSS_ST_TRANSACTEDDB = 1, + VSS_ST_NONTRANSACTEDDB = 2, + VSS_ST_OTHER = 3 } VSS_SOURCE_TYPE; - +typedef enum VSS_RESTOREMETHOD_ENUM { + VSS_RME_UNDEFINED = 0, + VSS_RME_RESTORE_IF_NOT_THERE = 1, + VSS_RME_RESTORE_IF_CAN_REPLACE = 2, + VSS_RME_STOP_RESTORE_START = 3, + VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4, + VSS_RME_RESTORE_AT_REBOOT = 5, + VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6, + VSS_RME_CUSTOM = 7, + VSS_RME_RESTORE_STOP_START = 8 +} VSS_RESTOREMETHOD_ENUM; +typedef enum VSS_WRITERRESTORE_ENUM { + VSS_WRE_UNDEFINED = 0, + VSS_WRE_NEVER = 1, + VSS_WRE_IF_REPLACE_FAILS = 2, + VSS_WRE_ALWAYS = 3 +} VSS_WRITERRESTORE_ENUM; +typedef enum VSS_COMPONENT_TYPE { + VSS_CT_UNDEFINED = 0, + VSS_CT_DATABASE = 1, + VSS_CT_FILEGROUP = 2 +} VSS_COMPONENT_TYPE; +typedef enum VSS_ALTERNATE_WRITER_STATE { + VSS_AWS_UNDEFINED = 0, + VSS_AWS_NO_ALTERNATE_WRITER = 1, + VSS_AWS_ALTERNATE_WRITER_EXISTS = 2, + VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3 +} VSS_ALTERNATE_WRITER_STATE; typedef enum VSS_SUBSCRIBE_MASK { - VSS_SM_POST_SNAPSHOT_FLAG = 0x00000001, - VSS_SM_BACKUP_EVENTS_FLAG = 0x00000002, - VSS_SM_RESTORE_EVENTS_FLAG = 0x00000004, - VSS_SM_IO_THROTTLING_FLAG = 0x00000008, - VSS_SM_ALL_FLAGS = 0xffffffff + VSS_SM_POST_SNAPSHOT_FLAG = 0x1, + VSS_SM_BACKUP_EVENTS_FLAG = 0x2, + VSS_SM_RESTORE_EVENTS_FLAG = 0x4, + VSS_SM_IO_THROTTLING_FLAG = 0x8, + VSS_SM_ALL_FLAGS = 0xffffffff } VSS_SUBSCRIBE_MASK; +typedef enum VSS_RESTORE_TARGET { + VSS_RT_UNDEFINED = 0, + VSS_RT_ORIGINAL = 1, + VSS_RT_ALTERNATE = 2, + VSS_RT_DIRECTED = 3, + VSS_RT_ORIGINAL_LOCATION = 4 +} VSS_RESTORE_TARGET; +typedef enum VSS_FILE_RESTORE_STATUS { + VSS_RS_UNDEFINED = 0, + VSS_RS_NONE = 1, + VSS_RS_ALL = 2, + VSS_RS_FAILED = 3 +} VSS_FILE_RESTORE_STATUS; +typedef enum VSS_COMPONENT_FLAGS { + VSS_CF_BACKUP_RECOVERY = 0x1, + VSS_CF_APP_ROLLBACK_RECOVERY = 0x2, + VSS_CF_NOT_SYSTEM_STATE = 0x4 +} VSS_COMPONENT_FLAGS; +#ifndef __IVssExamineWriterMetadata_FWD_DEFINED__ +#define __IVssExamineWriterMetadata_FWD_DEFINED__ +typedef interface IVssExamineWriterMetadata IVssExamineWriterMetadata; +#ifdef __cplusplus +interface IVssExamineWriterMetadata; +#endif /* __cplusplus */ +#endif -typedef enum VSS_WRITERRESTORE_ENUM { - VSS_WRE_UNDEFINED = 0, - VSS_WRE_NEVER = 1, - VSS_WRE_IF_REPLACE_FAILS = 2, - VSS_WRE_ALWAYS = 3 -} VSS_WRITERRESTORE_ENUM; +/***************************************************************************** + * IVssWMFiledesc interface + */ +#ifndef __IVssWMFiledesc_INTERFACE_DEFINED__ +#define __IVssWMFiledesc_INTERFACE_DEFINED__ -#include <vss.h> +DEFINE_GUID(IID_IVssWMFiledesc, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWMFiledesc : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetPath( + BSTR *pbstrPath) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilespec( + BSTR *pbstrFilespec) = 0; -#if (_WIN32_WINNT >= 0x601) -HRESULT WINAPI CreateVssExpressWriterInternal( - IVssExpressWriter **ppWriter -); + virtual HRESULT STDMETHODCALLTYPE GetRecursive( + boolean *pbRecursive) = 0; -FORCEINLINE -HRESULT WINAPI CreateVssExpressWriter( - IVssExpressWriter **ppWriter -){return CreateVssExpressWriterInternal(ppWriter);} + virtual HRESULT STDMETHODCALLTYPE GetAlternateLocation( + BSTR *pbstrAlternateLocation) = 0; -#undef INTERFACE -#define INTERFACE IVssCreateExpressWriterMetadata -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) + virtual HRESULT STDMETHODCALLTYPE GetBackupTypeMask( + DWORD *pdwTypeMask) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWMFiledesc, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) #endif -DECLARE_INTERFACE_(IVssCreateExpressWriterMetadata,IUnknown) -{ +#else +typedef struct IVssWMFiledescVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWMFiledesc *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssWMFiledesc *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssWMFiledesc *This); + + /*** IVssWMFiledesc methods ***/ + HRESULT (STDMETHODCALLTYPE *GetPath)( + IVssWMFiledesc *This, + BSTR *pbstrPath); + + HRESULT (STDMETHODCALLTYPE *GetFilespec)( + IVssWMFiledesc *This, + BSTR *pbstrFilespec); - /* IVssCreateExpressWriterMetadata methods */ - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE; - STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE; - STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE; - STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE; + HRESULT (STDMETHODCALLTYPE *GetRecursive)( + IVssWMFiledesc *This, + boolean *pbRecursive); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocation)( + IVssWMFiledesc *This, + BSTR *pbstrAlternateLocation); + + HRESULT (STDMETHODCALLTYPE *GetBackupTypeMask)( + IVssWMFiledesc *This, + DWORD *pdwTypeMask); END_INTERFACE +} IVssWMFiledescVtbl; + +interface IVssWMFiledesc { + CONST_VTBL IVssWMFiledescVtbl* lpVtbl; }; + #ifdef COBJMACROS -#define IVssCreateExpressWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssCreateExpressWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssCreateExpressWriterMetadata_Release(This) (This)->lpVtbl->Release(This) -#define IVssCreateExpressWriterMetadata_AddComponent(This,componentType,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,componentType,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) -#define IVssCreateExpressWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) -#define IVssCreateExpressWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) -#define IVssCreateExpressWriterMetadata_SetBackupSchema(This,dsSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dsSchemaMask) -#define IVssCreateExpressWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,wreWriterRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,wreWriterRestore,bRebootRequired) -#endif /*COBJMACROS*/ +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssWMFiledesc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssWMFiledesc_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssWMFiledesc_Release(This) (This)->lpVtbl->Release(This) +/*** IVssWMFiledesc methods ***/ +#define IVssWMFiledesc_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath) +#define IVssWMFiledesc_GetFilespec(This,pbstrFilespec) (This)->lpVtbl->GetFilespec(This,pbstrFilespec) +#define IVssWMFiledesc_GetRecursive(This,pbRecursive) (This)->lpVtbl->GetRecursive(This,pbRecursive) +#define IVssWMFiledesc_GetAlternateLocation(This,pbstrAlternateLocation) (This)->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation) +#define IVssWMFiledesc_GetBackupTypeMask(This,pdwTypeMask) (This)->lpVtbl->GetBackupTypeMask(This,pdwTypeMask) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssWMFiledesc_QueryInterface(IVssWMFiledesc* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssWMFiledesc_AddRef(IVssWMFiledesc* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssWMFiledesc_Release(IVssWMFiledesc* This) { + return This->lpVtbl->Release(This); +} +/*** IVssWMFiledesc methods ***/ +static FORCEINLINE HRESULT IVssWMFiledesc_GetPath(IVssWMFiledesc* This,BSTR *pbstrPath) { + return This->lpVtbl->GetPath(This,pbstrPath); +} +static FORCEINLINE HRESULT IVssWMFiledesc_GetFilespec(IVssWMFiledesc* This,BSTR *pbstrFilespec) { + return This->lpVtbl->GetFilespec(This,pbstrFilespec); +} +static FORCEINLINE HRESULT IVssWMFiledesc_GetRecursive(IVssWMFiledesc* This,boolean *pbRecursive) { + return This->lpVtbl->GetRecursive(This,pbRecursive); +} +static FORCEINLINE HRESULT IVssWMFiledesc_GetAlternateLocation(IVssWMFiledesc* This,BSTR *pbstrAlternateLocation) { + return This->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation); +} +static FORCEINLINE HRESULT IVssWMFiledesc_GetBackupTypeMask(IVssWMFiledesc* This,DWORD *pdwTypeMask) { + return This->lpVtbl->GetBackupTypeMask(This,pdwTypeMask); +} +#endif +#endif -#endif /*(_WIN32_WINNT >= 0x601)*/ +#endif -#ifdef __cplusplus -/* Is a C++ interface instead of a COM */ -#undef INTERFACE -#define INTERFACE IVssCreateWriterMetadata -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssCreateWriterMetadata,IUnknown) -{ - BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssCreateWriterMetadata methods */ - STDMETHOD_(HRESULT,AddAlternateLocationMapping)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE; - STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE; - STDMETHOD_(HRESULT,AddDatabaseFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddDatabaseLogFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE; - STDMETHOD_(HRESULT,AddFilesToFileGroup)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszAlternatePath,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddIncludeFiles)(THIS) PURE; - STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE; - STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE; +#endif /* __IVssWMFiledesc_INTERFACE_DEFINED__ */ - END_INTERFACE -}; +/***************************************************************************** + * IVssWMDependency interface + */ +#ifndef __IVssWMDependency_INTERFACE_DEFINED__ +#define __IVssWMDependency_INTERFACE_DEFINED__ -#if (_WIN32_WINNT >= 0x600) -#undef INTERFACE -#define INTERFACE IVssCreateWriterMetadataEx -DECLARE_INTERFACE_(IVssCreateWriterMetadataEx,IVssCreateWriterMetadata) +DEFINE_GUID(IID_IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWMDependency : public IUnknown { - BEGIN_INTERFACE + virtual HRESULT STDMETHODCALLTYPE GetWriterId( + VSS_ID *pWriterId) = 0; - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssCreateWriterMetadata methods */ - STDMETHOD_(HRESULT,AddAlternateLocationMapping)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE; - STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE; - STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE; - STDMETHOD_(HRESULT,AddDatabaseFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddDatabaseLogFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE; - STDMETHOD_(HRESULT,AddFilesToFileGroup)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszAlternatePath,DWORD dwBackupTypeMask) PURE; - STDMETHOD_(HRESULT,AddIncludeFiles)(THIS) PURE; /*Not supported*/ - STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; /*Not supported*/ - STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE; - STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE; - STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE; - - /* IVssCreateWriterMetadataEx methods */ - STDMETHOD_(HRESULT,AddExcludeFilesFromSnapshot)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE; + virtual HRESULT STDMETHODCALLTYPE GetLogicalPath( + BSTR *pbstrLogicalPath) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponentName( + BSTR *pbstrComponentName) = 0; - END_INTERFACE }; -#endif /*(_WIN32_WINNT >= 0x600)*/ -#endif /*__cplusplus*/ - -#if (_WIN32_WINNT >= 0x601) -#undef INTERFACE -#define INTERFACE IVssExpressWriter -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssExpressWriter,IUnknown) -{ +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssWMDependencyVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWMDependency *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssWMDependency *This); - /* IVssExpressWriter methods */ - STDMETHOD_(HRESULT,CreateMetadata)(THIS_ VSS_ID writerId,LPCWSTR writerName,VSS_USAGE_TYPE usageType,DWORD versionMajor,DWORD versionMinor,DWORD reserved,IVssCreateWriterMetadataEx **ppMetadata) PURE; - STDMETHOD_(HRESULT,Load)(THIS_ LPCWSTR metadata,DWORD reserved) PURE; - STDMETHOD_(HRESULT,Register)(THIS) PURE; - STDMETHOD_(HRESULT,Unregister)(THIS_ VSS_ID writerId) PURE; + ULONG (STDMETHODCALLTYPE *Release)( + IVssWMDependency *This); + + /*** IVssWMDependency methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterId)( + IVssWMDependency *This, + VSS_ID *pWriterId); + + HRESULT (STDMETHODCALLTYPE *GetLogicalPath)( + IVssWMDependency *This, + BSTR *pbstrLogicalPath); + + HRESULT (STDMETHODCALLTYPE *GetComponentName)( + IVssWMDependency *This, + BSTR *pbstrComponentName); END_INTERFACE +} IVssWMDependencyVtbl; + +interface IVssWMDependency { + CONST_VTBL IVssWMDependencyVtbl* lpVtbl; }; + #ifdef COBJMACROS -#define IVssExpressWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IVssExpressWriter_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IVssExpressWriter_Release(This) (This)->lpVtbl->Release(This) -#define IVssExpressWriter_CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) (This)->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) -#define IVssExpressWriter_Load(This,metadata,reserved) (This)->lpVtbl->Load(This,metadata,reserved) -#define IVssExpressWriter_Register() (This)->lpVtbl->Register(This) -#define IVssExpressWriter_Unregister(This,writerId) (This)->lpVtbl->Unregister(This,writerId) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x601)*/ +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssWMDependency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssWMDependency_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssWMDependency_Release(This) (This)->lpVtbl->Release(This) +/*** IVssWMDependency methods ***/ +#define IVssWMDependency_GetWriterId(This,pWriterId) (This)->lpVtbl->GetWriterId(This,pWriterId) +#define IVssWMDependency_GetLogicalPath(This,pbstrLogicalPath) (This)->lpVtbl->GetLogicalPath(This,pbstrLogicalPath) +#define IVssWMDependency_GetComponentName(This,pbstrComponentName) (This)->lpVtbl->GetComponentName(This,pbstrComponentName) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssWMDependency_QueryInterface(IVssWMDependency* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssWMDependency_AddRef(IVssWMDependency* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssWMDependency_Release(IVssWMDependency* This) { + return This->lpVtbl->Release(This); +} +/*** IVssWMDependency methods ***/ +static FORCEINLINE HRESULT IVssWMDependency_GetWriterId(IVssWMDependency* This,VSS_ID *pWriterId) { + return This->lpVtbl->GetWriterId(This,pWriterId); +} +static FORCEINLINE HRESULT IVssWMDependency_GetLogicalPath(IVssWMDependency* This,BSTR *pbstrLogicalPath) { + return This->lpVtbl->GetLogicalPath(This,pbstrLogicalPath); +} +static FORCEINLINE HRESULT IVssWMDependency_GetComponentName(IVssWMDependency* This,BSTR *pbstrComponentName) { + return This->lpVtbl->GetComponentName(This,pbstrComponentName); +} +#endif +#endif -#ifdef __cplusplus -/* Is a C++ interface instead of a COM */ -#undef INTERFACE -#define INTERFACE IVssWriterComponents -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssWriterComponents,IUnknown) +#endif + + +#endif /* __IVssWMDependency_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssComponent interface + */ +#ifndef __IVssComponent_INTERFACE_DEFINED__ +#define __IVssComponent_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssComponent, 0xd2c72c96, 0xc121, 0x4518, 0xb6,0x27, 0xe5,0xa9,0x3d,0x01,0x0e,0xad); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d2c72c96-c121-4518-b627-e5a93d010ead") +IVssComponent : public IUnknown { - BEGIN_INTERFACE + virtual HRESULT STDMETHODCALLTYPE GetLogicalPath( + BSTR *pbstrPath) = 0; - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + virtual HRESULT STDMETHODCALLTYPE GetComponentType( + VSS_COMPONENT_TYPE *pct) = 0; - /* IVssWriterComponents methods */ - STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssComponent **ppComponent) PURE; - STDMETHOD_(HRESULT,GetComponentCount)(THIS_ UINT *pcComponents) PURE; - STDMETHOD_(HRESULT,GetWriterInfo)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter) PURE; + virtual HRESULT STDMETHODCALLTYPE GetComponentName( + BSTR *pbstrName) = 0; - END_INTERFACE -}; -#endif /*__cplusplus*/ + virtual HRESULT STDMETHODCALLTYPE GetBackupSucceeded( + boolean *pbSucceeded) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMappingCount( + UINT *pcMappings) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMapping( + UINT iMapping, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupMetadata( + LPCWSTR wszData) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackupMetadata( + BSTR *pbstrData) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddPartialFile( + LPCWSTR wszPath, + LPCWSTR wszFilename, + LPCWSTR wszRanges, + LPCWSTR wszMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPartialFileCount( + UINT *pcPartialFiles) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPartialFile( + UINT iPartialFile, + BSTR *pbstrPath, + BSTR *pbstrFilename, + BSTR *pbstrRange, + BSTR *pbstrMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE IsSelectedForRestore( + boolean *pbSelectedForRestore) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAdditionalRestores( + boolean *pbAdditionalRestores) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNewTargetCount( + UINT *pcNewTarget) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNewTarget( + UINT iNewTarget, + IVssWMFiledesc **ppFiledesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDirectedTarget( + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilename, + LPCWSTR wszSourceRangeList, + LPCWSTR wszDestinationPath, + LPCWSTR wszDestinationFilename, + LPCWSTR wszDestinationRangeList) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDirectedTargetCount( + UINT *pcDirectedTarget) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDirectedTarget( + UINT iDirectedTarget, + BSTR *pbstrSourcePath, + BSTR *pbstrSourceFileName, + BSTR *pbstrSourceRangeList, + BSTR *pbstrDestinationPath, + BSTR *pbstrDestinationFilename, + BSTR *pbstrDestinationRangeList) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreMetadata( + LPCWSTR wszRestoreMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreMetadata( + BSTR *pbstrRestoreMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreTarget( + VSS_RESTORE_TARGET target) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreTarget( + VSS_RESTORE_TARGET *pTarget) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPreRestoreFailureMsg( + LPCWSTR wszPreRestoreFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPreRestoreFailureMsg( + BSTR *pbstrPreRestoreFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPostRestoreFailureMsg( + LPCWSTR wszPostRestoreFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPostRestoreFailureMsg( + BSTR *pbstrPostRestoreFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupStamp( + LPCWSTR wszBackupStamp) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackupStamp( + BSTR *pbstrBackupStamp) = 0; -#undef INTERFACE -#define INTERFACE IVssComponent -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) + virtual HRESULT STDMETHODCALLTYPE GetPreviousBackupStamp( + BSTR *pbstrBackupStamp) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBackupOptions( + BSTR *pbstrBackupOptions) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreOptions( + BSTR *pbstrRestoreOptions) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreSubcomponentCount( + UINT *pcRestoreSubcomponent) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreSubcomponent( + UINT iComponent, + BSTR *pbstrLogicalPath, + BSTR *pbstrComponentName, + boolean *pbRepair) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileRestoreStatus( + VSS_FILE_RESTORE_STATUS *pStatus) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDifferencedFilesByLastModifyTime( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + FILETIME ftLastModifyTime) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDifferencedFilesByLastModifyLSN( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + BSTR bstrLsnString) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDifferencedFilesCount( + UINT *pcDifferencedFiles) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDifferencedFile( + UINT iDifferencedFile, + BSTR *pbstrPath, + BSTR *pbstrFilespec, + WINBOOL *pbRecursive, + BSTR *pbstrLsnString, + FILETIME *pftLastModifyTime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssComponent, 0xd2c72c96, 0xc121, 0x4518, 0xb6,0x27, 0xe5,0xa9,0x3d,0x01,0x0e,0xad) #endif -DECLARE_INTERFACE_(IVssComponent,IUnknown) -{ +#else +typedef struct IVssComponentVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssComponent methods */ - STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE; - STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE; - STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE; - STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE; - STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE; - STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE; - STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE; - STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE; - STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE; - STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE; - STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE; - STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE; - STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE; - STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE; - STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE; - STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE; - STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE; - STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE; - STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssComponent *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssComponent *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssComponent *This); + + /*** IVssComponent methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLogicalPath)( + IVssComponent *This, + BSTR *pbstrPath); + + HRESULT (STDMETHODCALLTYPE *GetComponentType)( + IVssComponent *This, + VSS_COMPONENT_TYPE *pct); + + HRESULT (STDMETHODCALLTYPE *GetComponentName)( + IVssComponent *This, + BSTR *pbstrName); + + HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)( + IVssComponent *This, + boolean *pbSucceeded); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)( + IVssComponent *This, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssComponent *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)( + IVssComponent *This, + LPCWSTR wszData); + + HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)( + IVssComponent *This, + BSTR *pbstrData); + + HRESULT (STDMETHODCALLTYPE *AddPartialFile)( + IVssComponent *This, + LPCWSTR wszPath, + LPCWSTR wszFilename, + LPCWSTR wszRanges, + LPCWSTR wszMetadata); + + HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)( + IVssComponent *This, + UINT *pcPartialFiles); + + HRESULT (STDMETHODCALLTYPE *GetPartialFile)( + IVssComponent *This, + UINT iPartialFile, + BSTR *pbstrPath, + BSTR *pbstrFilename, + BSTR *pbstrRange, + BSTR *pbstrMetadata); + + HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)( + IVssComponent *This, + boolean *pbSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)( + IVssComponent *This, + boolean *pbAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)( + IVssComponent *This, + UINT *pcNewTarget); + + HRESULT (STDMETHODCALLTYPE *GetNewTarget)( + IVssComponent *This, + UINT iNewTarget, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)( + IVssComponent *This, + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilename, + LPCWSTR wszSourceRangeList, + LPCWSTR wszDestinationPath, + LPCWSTR wszDestinationFilename, + LPCWSTR wszDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)( + IVssComponent *This, + UINT *pcDirectedTarget); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)( + IVssComponent *This, + UINT iDirectedTarget, + BSTR *pbstrSourcePath, + BSTR *pbstrSourceFileName, + BSTR *pbstrSourceRangeList, + BSTR *pbstrDestinationPath, + BSTR *pbstrDestinationFilename, + BSTR *pbstrDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)( + IVssComponent *This, + LPCWSTR wszRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)( + IVssComponent *This, + BSTR *pbstrRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)( + IVssComponent *This, + VSS_RESTORE_TARGET target); + + HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)( + IVssComponent *This, + VSS_RESTORE_TARGET *pTarget); + + HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)( + IVssComponent *This, + LPCWSTR wszPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)( + IVssComponent *This, + BSTR *pbstrPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)( + IVssComponent *This, + LPCWSTR wszPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)( + IVssComponent *This, + BSTR *pbstrPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetBackupStamp)( + IVssComponent *This, + LPCWSTR wszBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupStamp)( + IVssComponent *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)( + IVssComponent *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupOptions)( + IVssComponent *This, + BSTR *pbstrBackupOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)( + IVssComponent *This, + BSTR *pbstrRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)( + IVssComponent *This, + UINT *pcRestoreSubcomponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)( + IVssComponent *This, + UINT iComponent, + BSTR *pbstrLogicalPath, + BSTR *pbstrComponentName, + boolean *pbRepair); + + HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)( + IVssComponent *This, + VSS_FILE_RESTORE_STATUS *pStatus); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)( + IVssComponent *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + FILETIME ftLastModifyTime); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)( + IVssComponent *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + BSTR bstrLsnString); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)( + IVssComponent *This, + UINT *pcDifferencedFiles); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)( + IVssComponent *This, + UINT iDifferencedFile, + BSTR *pbstrPath, + BSTR *pbstrFilespec, + WINBOOL *pbRecursive, + BSTR *pbstrLsnString, + FILETIME *pftLastModifyTime); END_INTERFACE +} IVssComponentVtbl; + +interface IVssComponent { + CONST_VTBL IVssComponentVtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssComponent_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssComponent_Release(This) (This)->lpVtbl->Release(This) +/*** IVssComponent methods ***/ #define IVssComponent_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath) -#define IVssComponent_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType) -#define IVssComponent_GetComponentName(This,pwszName) (This)->lpVtbl->GetComponentName(This,pwszName) +#define IVssComponent_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct) +#define IVssComponent_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName) #define IVssComponent_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded) #define IVssComponent_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings) -#define IVssComponent_GetAlternateLocationMapping(This,iMapping,ppMapping) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppMapping) -#define IVssComponent_SetBackupMetadata(This,bstrMetadata) (This)->lpVtbl->SetBackupMetadata(This,bstrMetadata) -#define IVssComponent_GetBackupMetadata(This,pbstrMetadata) (This)->lpVtbl->GetBackupMetadata(This,pbstrMetadata) +#define IVssComponent_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssComponent_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData) +#define IVssComponent_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData) #define IVssComponent_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) #define IVssComponent_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles) #define IVssComponent_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) #define IVssComponent_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore) #define IVssComponent_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores) #define IVssComponent_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget) -#define IVssComponent_GetNewTarget(This,iMapping,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iMapping,ppFiledesc) +#define IVssComponent_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc) #define IVssComponent_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) #define IVssComponent_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget) #define IVssComponent_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) @@ -363,98 +828,524 @@ DECLARE_INTERFACE_(IVssComponent,IUnknown) #define IVssComponent_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) #define IVssComponent_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus) #define IVssComponent_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) -#define IVssComponent_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This) +#define IVssComponent_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) #define IVssComponent_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles) #define IVssComponent_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) -#endif /*COBJMACROS*/ +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssComponent_QueryInterface(IVssComponent* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssComponent_AddRef(IVssComponent* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssComponent_Release(IVssComponent* This) { + return This->lpVtbl->Release(This); +} +/*** IVssComponent methods ***/ +static FORCEINLINE HRESULT IVssComponent_GetLogicalPath(IVssComponent* This,BSTR *pbstrPath) { + return This->lpVtbl->GetLogicalPath(This,pbstrPath); +} +static FORCEINLINE HRESULT IVssComponent_GetComponentType(IVssComponent* This,VSS_COMPONENT_TYPE *pct) { + return This->lpVtbl->GetComponentType(This,pct); +} +static FORCEINLINE HRESULT IVssComponent_GetComponentName(IVssComponent* This,BSTR *pbstrName) { + return This->lpVtbl->GetComponentName(This,pbstrName); +} +static FORCEINLINE HRESULT IVssComponent_GetBackupSucceeded(IVssComponent* This,boolean *pbSucceeded) { + return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded); +} +static FORCEINLINE HRESULT IVssComponent_GetAlternateLocationMappingCount(IVssComponent* This,UINT *pcMappings) { + return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings); +} +static FORCEINLINE HRESULT IVssComponent_GetAlternateLocationMapping(IVssComponent* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponent_SetBackupMetadata(IVssComponent* This,LPCWSTR wszData) { + return This->lpVtbl->SetBackupMetadata(This,wszData); +} +static FORCEINLINE HRESULT IVssComponent_GetBackupMetadata(IVssComponent* This,BSTR *pbstrData) { + return This->lpVtbl->GetBackupMetadata(This,pbstrData); +} +static FORCEINLINE HRESULT IVssComponent_AddPartialFile(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) { + return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata); +} +static FORCEINLINE HRESULT IVssComponent_GetPartialFileCount(IVssComponent* This,UINT *pcPartialFiles) { + return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles); +} +static FORCEINLINE HRESULT IVssComponent_GetPartialFile(IVssComponent* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) { + return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata); +} +static FORCEINLINE HRESULT IVssComponent_IsSelectedForRestore(IVssComponent* This,boolean *pbSelectedForRestore) { + return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore); +} +static FORCEINLINE HRESULT IVssComponent_GetAdditionalRestores(IVssComponent* This,boolean *pbAdditionalRestores) { + return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores); +} +static FORCEINLINE HRESULT IVssComponent_GetNewTargetCount(IVssComponent* This,UINT *pcNewTarget) { + return This->lpVtbl->GetNewTargetCount(This,pcNewTarget); +} +static FORCEINLINE HRESULT IVssComponent_GetNewTarget(IVssComponent* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponent_AddDirectedTarget(IVssComponent* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) { + return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponent_GetDirectedTargetCount(IVssComponent* This,UINT *pcDirectedTarget) { + return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget); +} +static FORCEINLINE HRESULT IVssComponent_GetDirectedTarget(IVssComponent* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) { + return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponent_SetRestoreMetadata(IVssComponent* This,LPCWSTR wszRestoreMetadata) { + return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponent_GetRestoreMetadata(IVssComponent* This,BSTR *pbstrRestoreMetadata) { + return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponent_SetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET target) { + return This->lpVtbl->SetRestoreTarget(This,target); +} +static FORCEINLINE HRESULT IVssComponent_GetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET *pTarget) { + return This->lpVtbl->GetRestoreTarget(This,pTarget); +} +static FORCEINLINE HRESULT IVssComponent_SetPreRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPreRestoreFailureMsg) { + return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponent_GetPreRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPreRestoreFailureMsg) { + return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponent_SetPostRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPostRestoreFailureMsg) { + return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponent_GetPostRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPostRestoreFailureMsg) { + return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponent_SetBackupStamp(IVssComponent* This,LPCWSTR wszBackupStamp) { + return This->lpVtbl->SetBackupStamp(This,wszBackupStamp); +} +static FORCEINLINE HRESULT IVssComponent_GetBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponent_GetPreviousBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponent_GetBackupOptions(IVssComponent* This,BSTR *pbstrBackupOptions) { + return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions); +} +static FORCEINLINE HRESULT IVssComponent_GetRestoreOptions(IVssComponent* This,BSTR *pbstrRestoreOptions) { + return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions); +} +static FORCEINLINE HRESULT IVssComponent_GetRestoreSubcomponentCount(IVssComponent* This,UINT *pcRestoreSubcomponent) { + return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent); +} +static FORCEINLINE HRESULT IVssComponent_GetRestoreSubcomponent(IVssComponent* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) { + return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair); +} +static FORCEINLINE HRESULT IVssComponent_GetFileRestoreStatus(IVssComponent* This,VSS_FILE_RESTORE_STATUS *pStatus) { + return This->lpVtbl->GetFileRestoreStatus(This,pStatus); +} +static FORCEINLINE HRESULT IVssComponent_AddDifferencedFilesByLastModifyTime(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) { + return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime); +} +static FORCEINLINE HRESULT IVssComponent_AddDifferencedFilesByLastModifyLSN(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) { + return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString); +} +static FORCEINLINE HRESULT IVssComponent_GetDifferencedFilesCount(IVssComponent* This,UINT *pcDifferencedFiles) { + return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles); +} +static FORCEINLINE HRESULT IVssComponent_GetDifferencedFile(IVssComponent* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) { + return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime); +} +#endif +#endif -#if (_WIN32_WINNT >= 0x600) -#undef INTERFACE -#define INTERFACE IVssComponentEx -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssComponentEx,IVssComponent) + + +#endif /* __IVssComponent_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssWriterComponents interface + */ +#ifndef __IVssWriterComponents_INTERFACE_DEFINED__ +#define __IVssWriterComponents_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWriterComponents { + + BEGIN_INTERFACE + + virtual HRESULT STDMETHODCALLTYPE GetComponentCount( + UINT *pcComponents) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetWriterInfo( + VSS_ID *pidInstance, + VSS_ID *pidWriter) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponent( + UINT iComponent, + IVssComponent **ppComponent) = 0; + + END_INTERFACE + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssWriterComponentsVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssComponent methods */ - STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE; - STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE; - STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE; - STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE; - STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE; - STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE; - STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE; - STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE; - STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE; - STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE; - STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE; - STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE; - STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE; - STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE; - STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE; - STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE; - STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE; - STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE; - STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE; - - /* IVssComponentEx methods */ - STDMETHOD_(HRESULT,SetPrepareForBackupFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE; - STDMETHOD_(HRESULT,SetPostSnapshotFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPrepareForBackupFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPostSnapshotFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE; - STDMETHOD_(HRESULT,GetAuthoritativeRestore)(THIS_ BOOLEAN *pbAuth) PURE; - STDMETHOD_(HRESULT,GetRollForward)(THIS_ VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) PURE; - STDMETHOD_(HRESULT,GetRestoreName)(THIS_ BSTR *pbstrName) PURE; + /*** IVssWriterComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetComponentCount)( + IVssWriterComponents *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterInfo)( + IVssWriterComponents *This, + VSS_ID *pidInstance, + VSS_ID *pidWriter); + + HRESULT (STDMETHODCALLTYPE *GetComponent)( + IVssWriterComponents *This, + UINT iComponent, + IVssComponent **ppComponent); END_INTERFACE +} IVssWriterComponentsVtbl; + +interface IVssWriterComponents { + CONST_VTBL IVssWriterComponentsVtbl* lpVtbl; }; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IVssWriterComponents methods ***/ +#define IVssWriterComponents_GetComponentCount(This,pcComponents) (This)->lpVtbl->GetComponentCount(This,pcComponents) +#define IVssWriterComponents_GetWriterInfo(This,pidInstance,pidWriter) (This)->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter) +#define IVssWriterComponents_GetComponent(This,iComponent,ppComponent) (This)->lpVtbl->GetComponent(This,iComponent,ppComponent) +#else +/*** IVssWriterComponents methods ***/ +static FORCEINLINE HRESULT IVssWriterComponents_GetComponentCount(IVssWriterComponents* This,UINT *pcComponents) { + return This->lpVtbl->GetComponentCount(This,pcComponents); +} +static FORCEINLINE HRESULT IVssWriterComponents_GetWriterInfo(IVssWriterComponents* This,VSS_ID *pidInstance,VSS_ID *pidWriter) { + return This->lpVtbl->GetWriterInfo(This,pidInstance,pidWriter); +} +static FORCEINLINE HRESULT IVssWriterComponents_GetComponent(IVssWriterComponents* This,UINT iComponent,IVssComponent **ppComponent) { + return This->lpVtbl->GetComponent(This,iComponent,ppComponent); +} +#endif +#endif + +#endif + + +#endif /* __IVssWriterComponents_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssComponentEx interface + */ +#ifndef __IVssComponentEx_INTERFACE_DEFINED__ +#define __IVssComponentEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssComponentEx, 0x156c8b5e, 0xf131, 0x4bd7, 0x9c,0x97, 0xd1,0x92,0x3b,0xe7,0xe1,0xfa); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("156c8b5e-f131-4bd7-9c97-d1923be7e1fa") +IVssComponentEx : public IVssComponent +{ + virtual HRESULT STDMETHODCALLTYPE SetPrepareForBackupFailureMsg( + LPCWSTR wszFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPostSnapshotFailureMsg( + LPCWSTR wszFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPrepareForBackupFailureMsg( + BSTR *pbstrFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPostSnapshotFailureMsg( + BSTR *pbstrFailureMsg) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAuthoritativeRestore( + boolean *pbAuth) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRollForward( + VSS_ROLLFORWARD_TYPE *pRollType, + BSTR *pbstrPoint) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRestoreName( + BSTR *pbstrName) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssComponentEx, 0x156c8b5e, 0xf131, 0x4bd7, 0x9c,0x97, 0xd1,0x92,0x3b,0xe7,0xe1,0xfa) +#endif +#else +typedef struct IVssComponentExVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssComponentEx *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssComponentEx *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssComponentEx *This); + + /*** IVssComponent methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLogicalPath)( + IVssComponentEx *This, + BSTR *pbstrPath); + + HRESULT (STDMETHODCALLTYPE *GetComponentType)( + IVssComponentEx *This, + VSS_COMPONENT_TYPE *pct); + + HRESULT (STDMETHODCALLTYPE *GetComponentName)( + IVssComponentEx *This, + BSTR *pbstrName); + + HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)( + IVssComponentEx *This, + boolean *pbSucceeded); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)( + IVssComponentEx *This, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssComponentEx *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)( + IVssComponentEx *This, + LPCWSTR wszData); + + HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)( + IVssComponentEx *This, + BSTR *pbstrData); + + HRESULT (STDMETHODCALLTYPE *AddPartialFile)( + IVssComponentEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilename, + LPCWSTR wszRanges, + LPCWSTR wszMetadata); + + HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)( + IVssComponentEx *This, + UINT *pcPartialFiles); + + HRESULT (STDMETHODCALLTYPE *GetPartialFile)( + IVssComponentEx *This, + UINT iPartialFile, + BSTR *pbstrPath, + BSTR *pbstrFilename, + BSTR *pbstrRange, + BSTR *pbstrMetadata); + + HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)( + IVssComponentEx *This, + boolean *pbSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)( + IVssComponentEx *This, + boolean *pbAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)( + IVssComponentEx *This, + UINT *pcNewTarget); + + HRESULT (STDMETHODCALLTYPE *GetNewTarget)( + IVssComponentEx *This, + UINT iNewTarget, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)( + IVssComponentEx *This, + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilename, + LPCWSTR wszSourceRangeList, + LPCWSTR wszDestinationPath, + LPCWSTR wszDestinationFilename, + LPCWSTR wszDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)( + IVssComponentEx *This, + UINT *pcDirectedTarget); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)( + IVssComponentEx *This, + UINT iDirectedTarget, + BSTR *pbstrSourcePath, + BSTR *pbstrSourceFileName, + BSTR *pbstrSourceRangeList, + BSTR *pbstrDestinationPath, + BSTR *pbstrDestinationFilename, + BSTR *pbstrDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)( + IVssComponentEx *This, + LPCWSTR wszRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)( + IVssComponentEx *This, + BSTR *pbstrRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)( + IVssComponentEx *This, + VSS_RESTORE_TARGET target); + + HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)( + IVssComponentEx *This, + VSS_RESTORE_TARGET *pTarget); + + HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)( + IVssComponentEx *This, + LPCWSTR wszPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)( + IVssComponentEx *This, + BSTR *pbstrPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)( + IVssComponentEx *This, + LPCWSTR wszPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)( + IVssComponentEx *This, + BSTR *pbstrPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetBackupStamp)( + IVssComponentEx *This, + LPCWSTR wszBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupStamp)( + IVssComponentEx *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)( + IVssComponentEx *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupOptions)( + IVssComponentEx *This, + BSTR *pbstrBackupOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)( + IVssComponentEx *This, + BSTR *pbstrRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)( + IVssComponentEx *This, + UINT *pcRestoreSubcomponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)( + IVssComponentEx *This, + UINT iComponent, + BSTR *pbstrLogicalPath, + BSTR *pbstrComponentName, + boolean *pbRepair); + + HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)( + IVssComponentEx *This, + VSS_FILE_RESTORE_STATUS *pStatus); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)( + IVssComponentEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + FILETIME ftLastModifyTime); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)( + IVssComponentEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + BSTR bstrLsnString); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)( + IVssComponentEx *This, + UINT *pcDifferencedFiles); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)( + IVssComponentEx *This, + UINT iDifferencedFile, + BSTR *pbstrPath, + BSTR *pbstrFilespec, + WINBOOL *pbRecursive, + BSTR *pbstrLsnString, + FILETIME *pftLastModifyTime); + + /*** IVssComponentEx methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrepareForBackupFailureMsg)( + IVssComponentEx *This, + LPCWSTR wszFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetPostSnapshotFailureMsg)( + IVssComponentEx *This, + LPCWSTR wszFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPrepareForBackupFailureMsg)( + IVssComponentEx *This, + BSTR *pbstrFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPostSnapshotFailureMsg)( + IVssComponentEx *This, + BSTR *pbstrFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetAuthoritativeRestore)( + IVssComponentEx *This, + boolean *pbAuth); + + HRESULT (STDMETHODCALLTYPE *GetRollForward)( + IVssComponentEx *This, + VSS_ROLLFORWARD_TYPE *pRollType, + BSTR *pbstrPoint); + + HRESULT (STDMETHODCALLTYPE *GetRestoreName)( + IVssComponentEx *This, + BSTR *pbstrName); + + END_INTERFACE +} IVssComponentExVtbl; + +interface IVssComponentEx { + CONST_VTBL IVssComponentExVtbl* lpVtbl; +}; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssComponentEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssComponentEx_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssComponentEx_Release(This) (This)->lpVtbl->Release(This) +/*** IVssComponent methods ***/ #define IVssComponentEx_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath) -#define IVssComponentEx_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType) -#define IVssComponentEx_GetComponentName(This,pwszName) (This)->lpVtbl->GetComponentName(This,pwszName) +#define IVssComponentEx_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct) +#define IVssComponentEx_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName) #define IVssComponentEx_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded) #define IVssComponentEx_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings) -#define IVssComponentEx_GetAlternateLocationMapping(This,iMapping,ppMapping) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppMapping) -#define IVssComponentEx_SetBackupMetadata(This,bstrMetadata) (This)->lpVtbl->SetBackupMetadata(This,bstrMetadata) -#define IVssComponentEx_GetBackupMetadata(This,pbstrMetadata) (This)->lpVtbl->GetBackupMetadata(This,pbstrMetadata) +#define IVssComponentEx_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssComponentEx_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData) +#define IVssComponentEx_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData) #define IVssComponentEx_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) #define IVssComponentEx_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles) #define IVssComponentEx_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) #define IVssComponentEx_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore) #define IVssComponentEx_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores) #define IVssComponentEx_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget) -#define IVssComponentEx_GetNewTarget(This,iMapping,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iMapping,ppFiledesc) +#define IVssComponentEx_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc) #define IVssComponentEx_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) #define IVssComponentEx_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget) #define IVssComponentEx_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) @@ -475,9 +1366,10 @@ DECLARE_INTERFACE_(IVssComponentEx,IVssComponent) #define IVssComponentEx_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) #define IVssComponentEx_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus) #define IVssComponentEx_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) -#define IVssComponentEx_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This) +#define IVssComponentEx_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) #define IVssComponentEx_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles) #define IVssComponentEx_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) +/*** IVssComponentEx methods ***/ #define IVssComponentEx_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg) #define IVssComponentEx_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg) #define IVssComponentEx_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) @@ -485,100 +1377,466 @@ DECLARE_INTERFACE_(IVssComponentEx,IVssComponent) #define IVssComponentEx_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth) #define IVssComponentEx_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint) #define IVssComponentEx_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x600)*/ - -#if (_WIN32_WINNT >= 0x601) -#undef INTERFACE -#define INTERFACE IVssComponentEx2 -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssComponentEx_QueryInterface(IVssComponentEx* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssComponentEx_AddRef(IVssComponentEx* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssComponentEx_Release(IVssComponentEx* This) { + return This->lpVtbl->Release(This); +} +/*** IVssComponent methods ***/ +static FORCEINLINE HRESULT IVssComponentEx_GetLogicalPath(IVssComponentEx* This,BSTR *pbstrPath) { + return This->lpVtbl->GetLogicalPath(This,pbstrPath); +} +static FORCEINLINE HRESULT IVssComponentEx_GetComponentType(IVssComponentEx* This,VSS_COMPONENT_TYPE *pct) { + return This->lpVtbl->GetComponentType(This,pct); +} +static FORCEINLINE HRESULT IVssComponentEx_GetComponentName(IVssComponentEx* This,BSTR *pbstrName) { + return This->lpVtbl->GetComponentName(This,pbstrName); +} +static FORCEINLINE HRESULT IVssComponentEx_GetBackupSucceeded(IVssComponentEx* This,boolean *pbSucceeded) { + return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded); +} +static FORCEINLINE HRESULT IVssComponentEx_GetAlternateLocationMappingCount(IVssComponentEx* This,UINT *pcMappings) { + return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings); +} +static FORCEINLINE HRESULT IVssComponentEx_GetAlternateLocationMapping(IVssComponentEx* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponentEx_SetBackupMetadata(IVssComponentEx* This,LPCWSTR wszData) { + return This->lpVtbl->SetBackupMetadata(This,wszData); +} +static FORCEINLINE HRESULT IVssComponentEx_GetBackupMetadata(IVssComponentEx* This,BSTR *pbstrData) { + return This->lpVtbl->GetBackupMetadata(This,pbstrData); +} +static FORCEINLINE HRESULT IVssComponentEx_AddPartialFile(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) { + return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPartialFileCount(IVssComponentEx* This,UINT *pcPartialFiles) { + return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPartialFile(IVssComponentEx* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) { + return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx_IsSelectedForRestore(IVssComponentEx* This,boolean *pbSelectedForRestore) { + return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore); +} +static FORCEINLINE HRESULT IVssComponentEx_GetAdditionalRestores(IVssComponentEx* This,boolean *pbAdditionalRestores) { + return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores); +} +static FORCEINLINE HRESULT IVssComponentEx_GetNewTargetCount(IVssComponentEx* This,UINT *pcNewTarget) { + return This->lpVtbl->GetNewTargetCount(This,pcNewTarget); +} +static FORCEINLINE HRESULT IVssComponentEx_GetNewTarget(IVssComponentEx* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponentEx_AddDirectedTarget(IVssComponentEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) { + return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponentEx_GetDirectedTargetCount(IVssComponentEx* This,UINT *pcDirectedTarget) { + return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget); +} +static FORCEINLINE HRESULT IVssComponentEx_GetDirectedTarget(IVssComponentEx* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) { + return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponentEx_SetRestoreMetadata(IVssComponentEx* This,LPCWSTR wszRestoreMetadata) { + return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreMetadata(IVssComponentEx* This,BSTR *pbstrRestoreMetadata) { + return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx_SetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET target) { + return This->lpVtbl->SetRestoreTarget(This,target); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET *pTarget) { + return This->lpVtbl->GetRestoreTarget(This,pTarget); +} +static FORCEINLINE HRESULT IVssComponentEx_SetPreRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPreRestoreFailureMsg) { + return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPreRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPreRestoreFailureMsg) { + return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_SetPostRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPostRestoreFailureMsg) { + return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPostRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPostRestoreFailureMsg) { + return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_SetBackupStamp(IVssComponentEx* This,LPCWSTR wszBackupStamp) { + return This->lpVtbl->SetBackupStamp(This,wszBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx_GetBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPreviousBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx_GetBackupOptions(IVssComponentEx* This,BSTR *pbstrBackupOptions) { + return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreOptions(IVssComponentEx* This,BSTR *pbstrRestoreOptions) { + return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreSubcomponentCount(IVssComponentEx* This,UINT *pcRestoreSubcomponent) { + return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreSubcomponent(IVssComponentEx* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) { + return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair); +} +static FORCEINLINE HRESULT IVssComponentEx_GetFileRestoreStatus(IVssComponentEx* This,VSS_FILE_RESTORE_STATUS *pStatus) { + return This->lpVtbl->GetFileRestoreStatus(This,pStatus); +} +static FORCEINLINE HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyTime(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) { + return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime); +} +static FORCEINLINE HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyLSN(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) { + return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString); +} +static FORCEINLINE HRESULT IVssComponentEx_GetDifferencedFilesCount(IVssComponentEx* This,UINT *pcDifferencedFiles) { + return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles); +} +static FORCEINLINE HRESULT IVssComponentEx_GetDifferencedFile(IVssComponentEx* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) { + return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime); +} +/*** IVssComponentEx methods ***/ +static FORCEINLINE HRESULT IVssComponentEx_SetPrepareForBackupFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) { + return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_SetPostSnapshotFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) { + return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPrepareForBackupFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) { + return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_GetPostSnapshotFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) { + return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx_GetAuthoritativeRestore(IVssComponentEx* This,boolean *pbAuth) { + return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRollForward(IVssComponentEx* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) { + return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint); +} +static FORCEINLINE HRESULT IVssComponentEx_GetRestoreName(IVssComponentEx* This,BSTR *pbstrName) { + return This->lpVtbl->GetRestoreName(This,pbstrName); +} +#endif +#endif + +#endif + + +#endif /* __IVssComponentEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssComponentEx2 interface + */ +#ifndef __IVssComponentEx2_INTERFACE_DEFINED__ +#define __IVssComponentEx2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3b5be0f2-07a9-4e4b-bdd3-cfdc8e2c0d2d") +IVssComponentEx2 : public IVssComponentEx { + virtual HRESULT STDMETHODCALLTYPE SetFailure( + HRESULT hr, + HRESULT hrApplication, + LPCWSTR wszApplicationMessage, + DWORD dwReserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFailure( + HRESULT *phr, + HRESULT *phrApplication, + BSTR *pbstrApplicationMessage, + DWORD *pdwReserved) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d) +#endif +#else +typedef struct IVssComponentEx2Vtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssComponent methods */ - STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE; - STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE; - STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE; - STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE; - STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE; - STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE; - STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE; - STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE; - STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE; - STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE; - STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE; - STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE; - STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE; - STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE; - STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE; - STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE; - STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE; - STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE; - STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE; - STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE; - STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE; - STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE; - STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE; - STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE; - STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE; - STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE; - STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE; - STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE; - - /* IVssComponentEx methods */ - STDMETHOD_(HRESULT,SetPrepareForBackupFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE; - STDMETHOD_(HRESULT,SetPostSnapshotFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPrepareForBackupFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE; - STDMETHOD_(HRESULT,GetPostSnapshotFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE; - STDMETHOD_(HRESULT,GetAuthoritativeRestore)(THIS_ BOOLEAN *pbAuth) PURE; - STDMETHOD_(HRESULT,GetRollForward)(THIS_ VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) PURE; - STDMETHOD_(HRESULT,GetRestoreName)(THIS_ BSTR *pbstrName) PURE; - - /* IVssComponentEx2 methods */ - STDMETHOD_(HRESULT,GetFailure)(THIS_ HRESULT *phr,HRESULT *phrApplication,BSTR *pbstrApplicationMessage,DWORD *pdwReserved) PURE; - STDMETHOD_(HRESULT,SetFailure)(THIS_ HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage,DWORD dwReserved) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssComponentEx2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssComponentEx2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssComponentEx2 *This); + + /*** IVssComponent methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLogicalPath)( + IVssComponentEx2 *This, + BSTR *pbstrPath); + + HRESULT (STDMETHODCALLTYPE *GetComponentType)( + IVssComponentEx2 *This, + VSS_COMPONENT_TYPE *pct); + + HRESULT (STDMETHODCALLTYPE *GetComponentName)( + IVssComponentEx2 *This, + BSTR *pbstrName); + + HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)( + IVssComponentEx2 *This, + boolean *pbSucceeded); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)( + IVssComponentEx2 *This, + UINT *pcMappings); + + HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)( + IVssComponentEx2 *This, + UINT iMapping, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)( + IVssComponentEx2 *This, + LPCWSTR wszData); + + HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)( + IVssComponentEx2 *This, + BSTR *pbstrData); + + HRESULT (STDMETHODCALLTYPE *AddPartialFile)( + IVssComponentEx2 *This, + LPCWSTR wszPath, + LPCWSTR wszFilename, + LPCWSTR wszRanges, + LPCWSTR wszMetadata); + + HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)( + IVssComponentEx2 *This, + UINT *pcPartialFiles); + + HRESULT (STDMETHODCALLTYPE *GetPartialFile)( + IVssComponentEx2 *This, + UINT iPartialFile, + BSTR *pbstrPath, + BSTR *pbstrFilename, + BSTR *pbstrRange, + BSTR *pbstrMetadata); + + HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)( + IVssComponentEx2 *This, + boolean *pbSelectedForRestore); + + HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)( + IVssComponentEx2 *This, + boolean *pbAdditionalRestores); + + HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)( + IVssComponentEx2 *This, + UINT *pcNewTarget); + + HRESULT (STDMETHODCALLTYPE *GetNewTarget)( + IVssComponentEx2 *This, + UINT iNewTarget, + IVssWMFiledesc **ppFiledesc); + + HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)( + IVssComponentEx2 *This, + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilename, + LPCWSTR wszSourceRangeList, + LPCWSTR wszDestinationPath, + LPCWSTR wszDestinationFilename, + LPCWSTR wszDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)( + IVssComponentEx2 *This, + UINT *pcDirectedTarget); + + HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)( + IVssComponentEx2 *This, + UINT iDirectedTarget, + BSTR *pbstrSourcePath, + BSTR *pbstrSourceFileName, + BSTR *pbstrSourceRangeList, + BSTR *pbstrDestinationPath, + BSTR *pbstrDestinationFilename, + BSTR *pbstrDestinationRangeList); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)( + IVssComponentEx2 *This, + LPCWSTR wszRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)( + IVssComponentEx2 *This, + BSTR *pbstrRestoreMetadata); + + HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)( + IVssComponentEx2 *This, + VSS_RESTORE_TARGET target); + + HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)( + IVssComponentEx2 *This, + VSS_RESTORE_TARGET *pTarget); + + HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)( + IVssComponentEx2 *This, + LPCWSTR wszPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)( + IVssComponentEx2 *This, + BSTR *pbstrPreRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)( + IVssComponentEx2 *This, + LPCWSTR wszPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)( + IVssComponentEx2 *This, + BSTR *pbstrPostRestoreFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetBackupStamp)( + IVssComponentEx2 *This, + LPCWSTR wszBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupStamp)( + IVssComponentEx2 *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)( + IVssComponentEx2 *This, + BSTR *pbstrBackupStamp); + + HRESULT (STDMETHODCALLTYPE *GetBackupOptions)( + IVssComponentEx2 *This, + BSTR *pbstrBackupOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)( + IVssComponentEx2 *This, + BSTR *pbstrRestoreOptions); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)( + IVssComponentEx2 *This, + UINT *pcRestoreSubcomponent); + + HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)( + IVssComponentEx2 *This, + UINT iComponent, + BSTR *pbstrLogicalPath, + BSTR *pbstrComponentName, + boolean *pbRepair); + + HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)( + IVssComponentEx2 *This, + VSS_FILE_RESTORE_STATUS *pStatus); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)( + IVssComponentEx2 *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + FILETIME ftLastModifyTime); + + HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)( + IVssComponentEx2 *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + WINBOOL bRecursive, + BSTR bstrLsnString); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)( + IVssComponentEx2 *This, + UINT *pcDifferencedFiles); + + HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)( + IVssComponentEx2 *This, + UINT iDifferencedFile, + BSTR *pbstrPath, + BSTR *pbstrFilespec, + WINBOOL *pbRecursive, + BSTR *pbstrLsnString, + FILETIME *pftLastModifyTime); + + /*** IVssComponentEx methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPrepareForBackupFailureMsg)( + IVssComponentEx2 *This, + LPCWSTR wszFailureMsg); + + HRESULT (STDMETHODCALLTYPE *SetPostSnapshotFailureMsg)( + IVssComponentEx2 *This, + LPCWSTR wszFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPrepareForBackupFailureMsg)( + IVssComponentEx2 *This, + BSTR *pbstrFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetPostSnapshotFailureMsg)( + IVssComponentEx2 *This, + BSTR *pbstrFailureMsg); + + HRESULT (STDMETHODCALLTYPE *GetAuthoritativeRestore)( + IVssComponentEx2 *This, + boolean *pbAuth); + + HRESULT (STDMETHODCALLTYPE *GetRollForward)( + IVssComponentEx2 *This, + VSS_ROLLFORWARD_TYPE *pRollType, + BSTR *pbstrPoint); + + HRESULT (STDMETHODCALLTYPE *GetRestoreName)( + IVssComponentEx2 *This, + BSTR *pbstrName); + + /*** IVssComponentEx2 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFailure)( + IVssComponentEx2 *This, + HRESULT hr, + HRESULT hrApplication, + LPCWSTR wszApplicationMessage, + DWORD dwReserved); + + HRESULT (STDMETHODCALLTYPE *GetFailure)( + IVssComponentEx2 *This, + HRESULT *phr, + HRESULT *phrApplication, + BSTR *pbstrApplicationMessage, + DWORD *pdwReserved); END_INTERFACE +} IVssComponentEx2Vtbl; + +interface IVssComponentEx2 { + CONST_VTBL IVssComponentEx2Vtbl* lpVtbl; }; + #ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ #define IVssComponentEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IVssComponentEx2_AddRef(This) (This)->lpVtbl->AddRef(This) #define IVssComponentEx2_Release(This) (This)->lpVtbl->Release(This) +/*** IVssComponent methods ***/ #define IVssComponentEx2_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath) -#define IVssComponentEx2_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType) -#define IVssComponentEx2_GetComponentName(This,pwszName) (This)->lpVtbl->GetComponentName(This,pwszName) +#define IVssComponentEx2_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct) +#define IVssComponentEx2_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName) #define IVssComponentEx2_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded) #define IVssComponentEx2_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings) -#define IVssComponentEx2_GetAlternateLocationMapping(This,iMapping,ppMapping) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppMapping) -#define IVssComponentEx2_SetBackupMetadata(This,bstrMetadata) (This)->lpVtbl->SetBackupMetadata(This,bstrMetadata) -#define IVssComponentEx2_GetBackupMetadata(This,pbstrMetadata) (This)->lpVtbl->GetBackupMetadata(This,pbstrMetadata) +#define IVssComponentEx2_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc) +#define IVssComponentEx2_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData) +#define IVssComponentEx2_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData) #define IVssComponentEx2_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) #define IVssComponentEx2_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles) #define IVssComponentEx2_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) #define IVssComponentEx2_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore) #define IVssComponentEx2_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores) #define IVssComponentEx2_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget) -#define IVssComponentEx2_GetNewTarget(This,iMapping,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iMapping,ppFiledesc) +#define IVssComponentEx2_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc) #define IVssComponentEx2_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) #define IVssComponentEx2_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget) #define IVssComponentEx2_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) @@ -599,9 +1857,10 @@ DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx) #define IVssComponentEx2_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) #define IVssComponentEx2_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus) #define IVssComponentEx2_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) -#define IVssComponentEx2_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This) +#define IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) #define IVssComponentEx2_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles) #define IVssComponentEx2_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) +/*** IVssComponentEx methods ***/ #define IVssComponentEx2_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg) #define IVssComponentEx2_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg) #define IVssComponentEx2_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) @@ -609,182 +1868,1298 @@ DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx) #define IVssComponentEx2_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth) #define IVssComponentEx2_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint) #define IVssComponentEx2_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName) -#define IVssComponentEx2_GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) (This)->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) +/*** IVssComponentEx2 methods ***/ #define IVssComponentEx2_SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved) (This)->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved) -#endif /*COBJMACROS*/ -#endif /*(_WIN32_WINNT >= 0x601)*/ +#define IVssComponentEx2_GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) (This)->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssComponentEx2_QueryInterface(IVssComponentEx2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssComponentEx2_AddRef(IVssComponentEx2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssComponentEx2_Release(IVssComponentEx2* This) { + return This->lpVtbl->Release(This); +} +/*** IVssComponent methods ***/ +static FORCEINLINE HRESULT IVssComponentEx2_GetLogicalPath(IVssComponentEx2* This,BSTR *pbstrPath) { + return This->lpVtbl->GetLogicalPath(This,pbstrPath); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetComponentType(IVssComponentEx2* This,VSS_COMPONENT_TYPE *pct) { + return This->lpVtbl->GetComponentType(This,pct); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetComponentName(IVssComponentEx2* This,BSTR *pbstrName) { + return This->lpVtbl->GetComponentName(This,pbstrName); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetBackupSucceeded(IVssComponentEx2* This,boolean *pbSucceeded) { + return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetAlternateLocationMappingCount(IVssComponentEx2* This,UINT *pcMappings) { + return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetAlternateLocationMapping(IVssComponentEx2* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetBackupMetadata(IVssComponentEx2* This,LPCWSTR wszData) { + return This->lpVtbl->SetBackupMetadata(This,wszData); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetBackupMetadata(IVssComponentEx2* This,BSTR *pbstrData) { + return This->lpVtbl->GetBackupMetadata(This,pbstrData); +} +static FORCEINLINE HRESULT IVssComponentEx2_AddPartialFile(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) { + return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPartialFileCount(IVssComponentEx2* This,UINT *pcPartialFiles) { + return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPartialFile(IVssComponentEx2* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) { + return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx2_IsSelectedForRestore(IVssComponentEx2* This,boolean *pbSelectedForRestore) { + return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetAdditionalRestores(IVssComponentEx2* This,boolean *pbAdditionalRestores) { + return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetNewTargetCount(IVssComponentEx2* This,UINT *pcNewTarget) { + return This->lpVtbl->GetNewTargetCount(This,pcNewTarget); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetNewTarget(IVssComponentEx2* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) { + return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc); +} +static FORCEINLINE HRESULT IVssComponentEx2_AddDirectedTarget(IVssComponentEx2* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) { + return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetDirectedTargetCount(IVssComponentEx2* This,UINT *pcDirectedTarget) { + return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetDirectedTarget(IVssComponentEx2* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) { + return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetRestoreMetadata(IVssComponentEx2* This,LPCWSTR wszRestoreMetadata) { + return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreMetadata(IVssComponentEx2* This,BSTR *pbstrRestoreMetadata) { + return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET target) { + return This->lpVtbl->SetRestoreTarget(This,target); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET *pTarget) { + return This->lpVtbl->GetRestoreTarget(This,pTarget); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetPreRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPreRestoreFailureMsg) { + return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPreRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPreRestoreFailureMsg) { + return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetPostRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPostRestoreFailureMsg) { + return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPostRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPostRestoreFailureMsg) { + return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetBackupStamp(IVssComponentEx2* This,LPCWSTR wszBackupStamp) { + return This->lpVtbl->SetBackupStamp(This,wszBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPreviousBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) { + return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetBackupOptions(IVssComponentEx2* This,BSTR *pbstrBackupOptions) { + return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreOptions(IVssComponentEx2* This,BSTR *pbstrRestoreOptions) { + return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreSubcomponentCount(IVssComponentEx2* This,UINT *pcRestoreSubcomponent) { + return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreSubcomponent(IVssComponentEx2* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) { + return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetFileRestoreStatus(IVssComponentEx2* This,VSS_FILE_RESTORE_STATUS *pStatus) { + return This->lpVtbl->GetFileRestoreStatus(This,pStatus); +} +static FORCEINLINE HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyTime(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) { + return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime); +} +static FORCEINLINE HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) { + return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetDifferencedFilesCount(IVssComponentEx2* This,UINT *pcDifferencedFiles) { + return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetDifferencedFile(IVssComponentEx2* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) { + return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime); +} +/*** IVssComponentEx methods ***/ +static FORCEINLINE HRESULT IVssComponentEx2_SetPrepareForBackupFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) { + return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_SetPostSnapshotFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) { + return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPrepareForBackupFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) { + return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetPostSnapshotFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) { + return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetAuthoritativeRestore(IVssComponentEx2* This,boolean *pbAuth) { + return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRollForward(IVssComponentEx2* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) { + return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreName(IVssComponentEx2* This,BSTR *pbstrName) { + return This->lpVtbl->GetRestoreName(This,pbstrName); +} +/*** IVssComponentEx2 methods ***/ +static FORCEINLINE HRESULT IVssComponentEx2_SetFailure(IVssComponentEx2* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage,DWORD dwReserved) { + return This->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved); +} +static FORCEINLINE HRESULT IVssComponentEx2_GetFailure(IVssComponentEx2* This,HRESULT *phr,HRESULT *phrApplication,BSTR *pbstrApplicationMessage,DWORD *pdwReserved) { + return This->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved); +} +#endif +#endif +#endif + + +#endif /* __IVssComponentEx2_INTERFACE_DEFINED__ */ + +#ifndef __IXMLDOMDocument_FWD_DEFINED__ +#define __IXMLDOMDocument_FWD_DEFINED__ +typedef interface IXMLDOMDocument IXMLDOMDocument; #ifdef __cplusplus -/* Is a C++ interface instead of a COM */ -#undef INTERFACE -#define INTERFACE IVssWMDependency -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) -#endif -DECLARE_INTERFACE_(IVssWMDependency,IUnknown) +interface IXMLDOMDocument; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IVssCreateWriterMetadata interface + */ +#ifndef __IVssCreateWriterMetadata_INTERFACE_DEFINED__ +#define __IVssCreateWriterMetadata_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssCreateWriterMetadata { + BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + virtual HRESULT STDMETHODCALLTYPE AddIncludeFiles( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddComponent( + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszCaption, + const BYTE *pbIcon, + UINT cbIcon, + boolean bRestoreMetadata, + boolean bNotifyOnBackupComplete, + boolean bSelectable, + boolean bSelectableForRestore = 0, + DWORD dwComponentFlags = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDatabaseFiles( + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddDatabaseLogFiles( + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup( + LPCWSTR wszLogicalPath, + LPCWSTR wszGroupName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation, + DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod( + VSS_RESTOREMETHOD_ENUM method, + LPCWSTR wszService, + LPCWSTR wszUserProcedure, + VSS_WRITERRESTORE_ENUM writerRestore, + boolean bRebootRequired) = 0; - /* IVssWMDependency methods */ - STDMETHOD_(HRESULT,GetWriterId)(THIS_ VSS_ID *pWriterId) PURE; - STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrLogicalPath) PURE; - STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pbstrComponentName) PURE; + virtual HRESULT STDMETHODCALLTYPE AddAlternateLocationMapping( + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilespec, + boolean bRecursive, + LPCWSTR wszDestination) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddComponentDependency( + LPCWSTR wszForLogicalPath, + LPCWSTR wszForComponentName, + VSS_ID onWriterId, + LPCWSTR wszOnLogicalPath, + LPCWSTR wszOnComponentName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupSchema( + DWORD dwSchemaMask) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDocument( + IXMLDOMDocument **pDoc) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveAsXML( + BSTR *pbstrXML) = 0; END_INTERFACE + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssCreateWriterMetadataVtbl { + BEGIN_INTERFACE + + /*** IVssCreateWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)( + IVssCreateWriterMetadata *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation); + + HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)( + IVssCreateWriterMetadata *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssCreateWriterMetadata *This, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszCaption, + const BYTE *pbIcon, + UINT cbIcon, + boolean bRestoreMetadata, + boolean bNotifyOnBackupComplete, + boolean bSelectable, + boolean bSelectableForRestore, + DWORD dwComponentFlags); + + HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)( + IVssCreateWriterMetadata *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *AddDatabaseLogFiles)( + IVssCreateWriterMetadata *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)( + IVssCreateWriterMetadata *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszGroupName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)( + IVssCreateWriterMetadata *This, + VSS_RESTOREMETHOD_ENUM method, + LPCWSTR wszService, + LPCWSTR wszUserProcedure, + VSS_WRITERRESTORE_ENUM writerRestore, + boolean bRebootRequired); + + HRESULT (STDMETHODCALLTYPE *AddAlternateLocationMapping)( + IVssCreateWriterMetadata *This, + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddComponentDependency)( + IVssCreateWriterMetadata *This, + LPCWSTR wszForLogicalPath, + LPCWSTR wszForComponentName, + VSS_ID onWriterId, + LPCWSTR wszOnLogicalPath, + LPCWSTR wszOnComponentName); + + HRESULT (STDMETHODCALLTYPE *SetBackupSchema)( + IVssCreateWriterMetadata *This, + DWORD dwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *GetDocument)( + IVssCreateWriterMetadata *This, + IXMLDOMDocument **pDoc); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssCreateWriterMetadata *This, + BSTR *pbstrXML); + + END_INTERFACE +} IVssCreateWriterMetadataVtbl; + +interface IVssCreateWriterMetadata { + CONST_VTBL IVssCreateWriterMetadataVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IVssCreateWriterMetadata methods ***/ +#define IVssCreateWriterMetadata_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) +#define IVssCreateWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) +#define IVssCreateWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) +#define IVssCreateWriterMetadata_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) +#define IVssCreateWriterMetadata_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) +#define IVssCreateWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) +#define IVssCreateWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) +#define IVssCreateWriterMetadata_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) +#define IVssCreateWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) +#define IVssCreateWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask) +#define IVssCreateWriterMetadata_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc) +#define IVssCreateWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#else +/*** IVssCreateWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddIncludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) { + return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddExcludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) { + return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddComponent(IVssCreateWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) { + return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddDatabaseFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddDatabaseLogFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddFilesToFileGroup(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_SetRestoreMethod(IVssCreateWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) { + return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddAlternateLocationMapping(IVssCreateWriterMetadata* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddComponentDependency(IVssCreateWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) { + return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_SetBackupSchema(IVssCreateWriterMetadata* This,DWORD dwSchemaMask) { + return This->lpVtbl->SetBackupSchema(This,dwSchemaMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_GetDocument(IVssCreateWriterMetadata* This,IXMLDOMDocument **pDoc) { + return This->lpVtbl->GetDocument(This,pDoc); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadata_SaveAsXML(IVssCreateWriterMetadata* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +#endif +#endif -#undef INTERFACE -#define INTERFACE IVssWMFiledesc -#ifdef __GNUC__ -#warning COM interfaces layout in this header has not been verified. -#warning COM interfaces with incorrect layout may not work at all. -__MINGW_BROKEN_INTERFACE(INTERFACE) #endif -DECLARE_INTERFACE_(IVssWMFiledesc,IUnknown) + + +#endif /* __IVssCreateWriterMetadata_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssCreateWriterMetadataEx interface + */ +#ifndef __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__ +#define __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssCreateWriterMetadataEx, 0x9f21981d, 0xd469, 0x4349, 0xb8,0x07, 0x39,0xe6,0x4e,0x46,0x74,0xe1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9f21981d-d469-4349-b807-39e64e4674e1") +IVssCreateWriterMetadataEx : public IVssCreateWriterMetadata { + virtual HRESULT STDMETHODCALLTYPE AddExcludeFilesFromSnapshot( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssCreateWriterMetadataEx, 0x9f21981d, 0xd469, 0x4349, 0xb8,0x07, 0x39,0xe6,0x4e,0x46,0x74,0xe1) +#endif +#else +typedef struct IVssCreateWriterMetadataExVtbl { BEGIN_INTERFACE - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IVssCreateWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation); + + HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssCreateWriterMetadataEx *This, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszCaption, + const BYTE *pbIcon, + UINT cbIcon, + boolean bRestoreMetadata, + boolean bNotifyOnBackupComplete, + boolean bSelectable, + boolean bSelectableForRestore, + DWORD dwComponentFlags); + + HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *AddDatabaseLogFiles)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszDatabaseName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszGroupName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)( + IVssCreateWriterMetadataEx *This, + VSS_RESTOREMETHOD_ENUM method, + LPCWSTR wszService, + LPCWSTR wszUserProcedure, + VSS_WRITERRESTORE_ENUM writerRestore, + boolean bRebootRequired); + + HRESULT (STDMETHODCALLTYPE *AddAlternateLocationMapping)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszSourcePath, + LPCWSTR wszSourceFilespec, + boolean bRecursive, + LPCWSTR wszDestination); + + HRESULT (STDMETHODCALLTYPE *AddComponentDependency)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszForLogicalPath, + LPCWSTR wszForComponentName, + VSS_ID onWriterId, + LPCWSTR wszOnLogicalPath, + LPCWSTR wszOnComponentName); + + HRESULT (STDMETHODCALLTYPE *SetBackupSchema)( + IVssCreateWriterMetadataEx *This, + DWORD dwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *GetDocument)( + IVssCreateWriterMetadataEx *This, + IXMLDOMDocument **pDoc); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssCreateWriterMetadataEx *This, + BSTR *pbstrXML); - /* IVssWMFiledesc methods */ - STDMETHOD_(HRESULT,GetPath)(THIS_ BSTR *pbstrPath) PURE; - STDMETHOD_(HRESULT,GetFilespec)(THIS_ BSTR *pbstrFilespec) PURE; - STDMETHOD_(HRESULT,GetRecursive)(THIS_ BOOLEAN *pbRecursive) PURE; - STDMETHOD_(HRESULT,GetAlternateLocation)(THIS_ BSTR *pbstrAlternateLocation) PURE; - STDMETHOD_(HRESULT,GetBackupTypeMask)(THIS_ DWORD *pdwTypeMask) PURE; + /*** IVssCreateWriterMetadataEx methods ***/ + HRESULT (STDMETHODCALLTYPE *AddExcludeFilesFromSnapshot)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive); END_INTERFACE +} IVssCreateWriterMetadataExVtbl; + +interface IVssCreateWriterMetadataEx { + CONST_VTBL IVssCreateWriterMetadataExVtbl* lpVtbl; }; -#endif /*__cplusplus*/ -#ifdef __cplusplus -#if __MINGW_GNUC_PREREQ(4,6) -/* We need __thiscall support */ -class CVssWriter { -protected: - bool WINAPI AreComponentsSelected() const; - VSS_BACKUP_TYPE WINAPI GetBackupType() const; - LONG WINAPI GetContext() const; - VSS_APPLICATION_LEVEL WINAPI GetCurrentLevel() const; - VSS_ID WINAPI GetCurrentSnapshotSetId() const; - LPCWSTR* WINAPI GetCurrentVolumeArray() const; - UINT WINAPI GetCurrentVolumeCount() const; - VSS_RESTORE_TYPE WINAPI GetRestoreType() const; - HRESULT WINAPI GetSnapshotDeviceName( +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IVssCreateWriterMetadata methods ***/ +#define IVssCreateWriterMetadataEx_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) +#define IVssCreateWriterMetadataEx_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) +#define IVssCreateWriterMetadataEx_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) +#define IVssCreateWriterMetadataEx_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) +#define IVssCreateWriterMetadataEx_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) +#define IVssCreateWriterMetadataEx_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) +#define IVssCreateWriterMetadataEx_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) +#define IVssCreateWriterMetadataEx_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) +#define IVssCreateWriterMetadataEx_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) +#define IVssCreateWriterMetadataEx_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask) +#define IVssCreateWriterMetadataEx_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc) +#define IVssCreateWriterMetadataEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +/*** IVssCreateWriterMetadataEx methods ***/ +#define IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive) +#else +/*** IVssCreateWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddIncludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) { + return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddExcludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) { + return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddComponent(IVssCreateWriterMetadataEx* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) { + return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddDatabaseFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddDatabaseLogFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddFilesToFileGroup(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SetRestoreMethod(IVssCreateWriterMetadataEx* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) { + return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddAlternateLocationMapping(IVssCreateWriterMetadataEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) { + return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddComponentDependency(IVssCreateWriterMetadataEx* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) { + return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SetBackupSchema(IVssCreateWriterMetadataEx* This,DWORD dwSchemaMask) { + return This->lpVtbl->SetBackupSchema(This,dwSchemaMask); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_GetDocument(IVssCreateWriterMetadataEx* This,IXMLDOMDocument **pDoc) { + return This->lpVtbl->GetDocument(This,pDoc); +} +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SaveAsXML(IVssCreateWriterMetadataEx* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +/*** IVssCreateWriterMetadataEx methods ***/ +static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) { + return This->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive); +} +#endif +#endif + +#endif + + +#endif /* __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssWriterImpl interface + */ +#ifndef __IVssWriterImpl_INTERFACE_DEFINED__ +#define __IVssWriterImpl_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("00000000-0000-0000-0000-000000000000") +IVssWriterImpl : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Initialize( + VSS_ID writerId, + LPCWSTR wszWriterName, + LPCWSTR wszWriterInstanceName, + DWORD dwMajorVersion, + DWORD dwMinorVersion, + VSS_USAGE_TYPE ut, + VSS_SOURCE_TYPE st, + VSS_APPLICATION_LEVEL nLevel, + DWORD dwTimeout, + VSS_ALTERNATE_WRITER_STATE aws, + boolean bIOThrottlingOnly) = 0; + + virtual HRESULT STDMETHODCALLTYPE Subscribe( + DWORD dwSubscribeTimeout, + DWORD dwEventFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE Unsubscribe( + ) = 0; + + virtual void STDMETHODCALLTYPE Uninitialize( + ) = 0; + + virtual LPCWSTR * STDMETHODCALLTYPE GetCurrentVolumeArray( + ) = 0; + + virtual UINT STDMETHODCALLTYPE GetCurrentVolumeCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSnapshotDeviceName( LPCWSTR wszOriginalVolume, - LPCWSTR *ppwszSnapshotDevice) const; - bool WINAPI IsBootableSystemStateBackedUp() const; - bool WINAPI IsPartialFileSupportEnabled() const; - bool WINAPI IsPathAffected( - LPCWSTR wszPath) const; - HRESULT WINAPI SetWriterFailure( - HRESULT hr); -public: - //Pure virtuals - virtual bool WINAPI OnAbort() = 0; - virtual bool WINAPI OnFreeze() = 0; - virtual bool WINAPI OnPrepareSnapshot() = 0; - virtual bool WINAPI OnThaw() = 0; - //Virtuals - virtual __thiscall ~CVssWriter(); - virtual bool WINAPI OnBackupComplete( - IVssWriterComponents *pComponent); - virtual bool WINAPI OnBackupShutdown( - VSS_ID SnapshotSetId); - virtual bool WINAPI OnIdentify( - IVssCreateWriterMetadata *pMetadata); - virtual bool WINAPI OnPostRestore( - IVssWriterComponents *pComponent); - virtual bool WINAPI OnPostSnapshot( - IVssWriterComponents *pComponent); - virtual bool WINAPI OnPrepareBackup( - IVssWriterComponents *pComponent); - virtual bool WINAPI OnPreRestore( - IVssWriterComponents *pComponent); - //gendef says public: virtual bool __stdcall CVssWriter::OnBackOffIOOnVolume(unsigned short *,struct _GUID,struct _GUID) - //Method unsupported - virtual bool WINAPI OnBackOffIOOnVolume( - VSS_PWSZ _vss_pwsz, - VSS_ID _id1, - VSS_ID _id2); - //gendef says public: virtual bool __stdcall CVssWriter::OnContinueIOOnVolume(unsigned short *,struct _GUID,struct _GUID) - //Method unsupported - virtual bool WINAPI OnContinueIOOnVolume( - VSS_PWSZ _vss_pwsz, - VSS_ID _id1, - VSS_ID _id2); - //gendef says public: virtual bool __stdcall CVssWriter::OnVSSShutdown(void) - //Method unsupported - virtual bool WINAPI OnVssShutdown(); - //Non-virtuals - __thiscall CVssWriter(); - HRESULT WINAPI Initialize( - VSS_ID WriterId, - LPCWSTR WriterName, - VSS_USAGE_TYPE UsageType, - VSS_SOURCE_TYPE SourceType, - VSS_APPLICATION_LEVEL AppLevel, - DWORD dwTimeoutFreeze = 60000, - VSS_ALTERNATE_WRITER_STATE aws = VSS_AWS_NO_ALTERNATE_WRITER, - bool bIOThrottlingOnly = false, - LPCWSTR wszWriterInstanceName = NULL); - HRESULT WINAPI Subscribe( - DWORD dwEventFlags); - HRESULT WINAPI Unsubscribe(); - //gendef says public: long __stdcall CVssWriter::InstallAlternateWriter(struct _GUID,struct _GUID) - //Method unsupported - HRESULT WINAPI InstallAlternateWriter( - VSS_ID _id1, - VSS_ID _id2); + LPCWSTR *ppwszSnapshotDevice) = 0; + +#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS + virtual VSS_ID* STDMETHODCALLTYPE GetCurrentSnapshotSetId( + VSS_ID *__ret) = 0; + VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId( + ) + { + VSS_ID __ret; + return *GetCurrentSnapshotSetId(&__ret); + } +#else + virtual VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId( + ) = 0; +#endif + + virtual LONG STDMETHODCALLTYPE GetContext( + ) = 0; + + virtual VSS_APPLICATION_LEVEL STDMETHODCALLTYPE GetCurrentLevel( + ) = 0; + + virtual boolean STDMETHODCALLTYPE IsPathAffected( + LPCWSTR wszPath) = 0; + + virtual boolean STDMETHODCALLTYPE IsBootableSystemStateBackedUp( + ) = 0; + + virtual boolean STDMETHODCALLTYPE AreComponentsSelected( + ) = 0; + + virtual VSS_BACKUP_TYPE STDMETHODCALLTYPE GetBackupType( + ) = 0; + + virtual VSS_RESTORE_TYPE STDMETHODCALLTYPE GetRestoreType( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWriterFailure( + HRESULT hr) = 0; + + virtual boolean STDMETHODCALLTYPE IsPartialFileSupportEnabled( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE InstallAlternateWriter( + VSS_ID idWriter, + CLSID clsid) = 0; + + virtual IVssExamineWriterMetadata * STDMETHODCALLTYPE GetIdentityInformation( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWriterFailureEx( + HRESULT hr, + HRESULT hrApplication, + LPCWSTR wszApplicationMessage) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSessionId( + VSS_ID *idSession) = 0; + + virtual boolean STDMETHODCALLTYPE IsWriterShuttingDown( + ) = 0; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) +#endif +#else +typedef struct IVssWriterImplVtbl { + BEGIN_INTERFACE -class CVssWriterEx : public CVssWriter { - protected: - HRESULT WINAPI GetIdentifyInformation( - IVssExamineWriterMetadata **ppMetadata) const; - HRESULT WINAPI SubscribeEx( - DWORD dwUnsubscribeTimeout, - DWORD dwEventFlags); - public: - virtual bool WINAPI OnIdentifyEx( - IVssCreateWriterMetadataEx *pMetadata) const; - HRESULT WINAPI InitializeEx( - VSS_ID WriterId, + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWriterImpl *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssWriterImpl *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssWriterImpl *This); + + /*** IVssWriterImpl methods ***/ + HRESULT (STDMETHODCALLTYPE *Initialize)( + IVssWriterImpl *This, + VSS_ID writerId, LPCWSTR wszWriterName, + LPCWSTR wszWriterInstanceName, DWORD dwMajorVersion, DWORD dwMinorVersion, VSS_USAGE_TYPE ut, VSS_SOURCE_TYPE st, VSS_APPLICATION_LEVEL nLevel, - DWORD dwTimeoutFreeze = 60000, - VSS_ALTERNATE_WRITER_STATE aws = VSS_AWS_NO_ALTERNATE_WRITER, - bool bIOThrottlingOnly = false, - LPCWSTR wszWriterInstanceName = NULL); -}; + DWORD dwTimeout, + VSS_ALTERNATE_WRITER_STATE aws, + boolean bIOThrottlingOnly); + + HRESULT (STDMETHODCALLTYPE *Subscribe)( + IVssWriterImpl *This, + DWORD dwSubscribeTimeout, + DWORD dwEventFlags); + + HRESULT (STDMETHODCALLTYPE *Unsubscribe)( + IVssWriterImpl *This); + + void (STDMETHODCALLTYPE *Uninitialize)( + IVssWriterImpl *This); -class CVssWriterEx2: public CVssWriterEx { - public: - HRESULT WINAPI GetSessionId( - VSS_ID *idSession) const; - bool WINAPI IsWriterShuttingDown() const; - HRESULT WINAPI SetWriterFailureEx( - HRESULT hrWriter, + LPCWSTR * (STDMETHODCALLTYPE *GetCurrentVolumeArray)( + IVssWriterImpl *This); + + UINT (STDMETHODCALLTYPE *GetCurrentVolumeCount)( + IVssWriterImpl *This); + + HRESULT (STDMETHODCALLTYPE *GetSnapshotDeviceName)( + IVssWriterImpl *This, + LPCWSTR wszOriginalVolume, + LPCWSTR *ppwszSnapshotDevice); + + VSS_ID * (STDMETHODCALLTYPE *GetCurrentSnapshotSetId)( + IVssWriterImpl *This, + VSS_ID *__ret); + + LONG (STDMETHODCALLTYPE *GetContext)( + IVssWriterImpl *This); + + VSS_APPLICATION_LEVEL (STDMETHODCALLTYPE *GetCurrentLevel)( + IVssWriterImpl *This); + + boolean (STDMETHODCALLTYPE *IsPathAffected)( + IVssWriterImpl *This, + LPCWSTR wszPath); + + boolean (STDMETHODCALLTYPE *IsBootableSystemStateBackedUp)( + IVssWriterImpl *This); + + boolean (STDMETHODCALLTYPE *AreComponentsSelected)( + IVssWriterImpl *This); + + VSS_BACKUP_TYPE (STDMETHODCALLTYPE *GetBackupType)( + IVssWriterImpl *This); + + VSS_RESTORE_TYPE (STDMETHODCALLTYPE *GetRestoreType)( + IVssWriterImpl *This); + + HRESULT (STDMETHODCALLTYPE *SetWriterFailure)( + IVssWriterImpl *This, + HRESULT hr); + + boolean (STDMETHODCALLTYPE *IsPartialFileSupportEnabled)( + IVssWriterImpl *This); + + HRESULT (STDMETHODCALLTYPE *InstallAlternateWriter)( + IVssWriterImpl *This, + VSS_ID idWriter, + CLSID clsid); + + IVssExamineWriterMetadata * (STDMETHODCALLTYPE *GetIdentityInformation)( + IVssWriterImpl *This); + + HRESULT (STDMETHODCALLTYPE *SetWriterFailureEx)( + IVssWriterImpl *This, + HRESULT hr, HRESULT hrApplication, LPCWSTR wszApplicationMessage); + + HRESULT (STDMETHODCALLTYPE *GetSessionId)( + IVssWriterImpl *This, + VSS_ID *idSession); + + boolean (STDMETHODCALLTYPE *IsWriterShuttingDown)( + IVssWriterImpl *This); + + END_INTERFACE +} IVssWriterImplVtbl; + +interface IVssWriterImpl { + CONST_VTBL IVssWriterImplVtbl* lpVtbl; }; -#endif /*__MINGW_GNUC_PREREQ(4,6)*/ -#endif /*__cplusplus*/ -#include <vsbackup.h> +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssWriterImpl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssWriterImpl_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssWriterImpl_Release(This) (This)->lpVtbl->Release(This) +/*** IVssWriterImpl methods ***/ +#define IVssWriterImpl_Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly) (This)->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly) +#define IVssWriterImpl_Subscribe(This,dwSubscribeTimeout,dwEventFlags) (This)->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags) +#define IVssWriterImpl_Unsubscribe(This) (This)->lpVtbl->Unsubscribe(This) +#define IVssWriterImpl_Uninitialize(This) (This)->lpVtbl->Uninitialize(This) +#define IVssWriterImpl_GetCurrentVolumeArray(This) (This)->lpVtbl->GetCurrentVolumeArray(This) +#define IVssWriterImpl_GetCurrentVolumeCount(This) (This)->lpVtbl->GetCurrentVolumeCount(This) +#define IVssWriterImpl_GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice) (This)->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice) +#define IVssWriterImpl_GetCurrentSnapshotSetId(This) IVssWriterImpl_GetCurrentSnapshotSetId_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support +#define IVssWriterImpl_GetContext(This) (This)->lpVtbl->GetContext(This) +#define IVssWriterImpl_GetCurrentLevel(This) (This)->lpVtbl->GetCurrentLevel(This) +#define IVssWriterImpl_IsPathAffected(This,wszPath) (This)->lpVtbl->IsPathAffected(This,wszPath) +#define IVssWriterImpl_IsBootableSystemStateBackedUp(This) (This)->lpVtbl->IsBootableSystemStateBackedUp(This) +#define IVssWriterImpl_AreComponentsSelected(This) (This)->lpVtbl->AreComponentsSelected(This) +#define IVssWriterImpl_GetBackupType(This) (This)->lpVtbl->GetBackupType(This) +#define IVssWriterImpl_GetRestoreType(This) (This)->lpVtbl->GetRestoreType(This) +#define IVssWriterImpl_SetWriterFailure(This,hr) (This)->lpVtbl->SetWriterFailure(This,hr) +#define IVssWriterImpl_IsPartialFileSupportEnabled(This) (This)->lpVtbl->IsPartialFileSupportEnabled(This) +#define IVssWriterImpl_InstallAlternateWriter(This,idWriter,clsid) (This)->lpVtbl->InstallAlternateWriter(This,idWriter,clsid) +#define IVssWriterImpl_GetIdentityInformation(This) (This)->lpVtbl->GetIdentityInformation(This) +#define IVssWriterImpl_SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage) (This)->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage) +#define IVssWriterImpl_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession) +#define IVssWriterImpl_IsWriterShuttingDown(This) (This)->lpVtbl->IsWriterShuttingDown(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssWriterImpl_QueryInterface(IVssWriterImpl* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssWriterImpl_AddRef(IVssWriterImpl* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssWriterImpl_Release(IVssWriterImpl* This) { + return This->lpVtbl->Release(This); +} +/*** IVssWriterImpl methods ***/ +static FORCEINLINE HRESULT IVssWriterImpl_Initialize(IVssWriterImpl* This,VSS_ID writerId,LPCWSTR wszWriterName,LPCWSTR wszWriterInstanceName,DWORD dwMajorVersion,DWORD dwMinorVersion,VSS_USAGE_TYPE ut,VSS_SOURCE_TYPE st,VSS_APPLICATION_LEVEL nLevel,DWORD dwTimeout,VSS_ALTERNATE_WRITER_STATE aws,boolean bIOThrottlingOnly) { + return This->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly); +} +static FORCEINLINE HRESULT IVssWriterImpl_Subscribe(IVssWriterImpl* This,DWORD dwSubscribeTimeout,DWORD dwEventFlags) { + return This->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags); +} +static FORCEINLINE HRESULT IVssWriterImpl_Unsubscribe(IVssWriterImpl* This) { + return This->lpVtbl->Unsubscribe(This); +} +static FORCEINLINE void IVssWriterImpl_Uninitialize(IVssWriterImpl* This) { + This->lpVtbl->Uninitialize(This); +} +static FORCEINLINE LPCWSTR * IVssWriterImpl_GetCurrentVolumeArray(IVssWriterImpl* This) { + return This->lpVtbl->GetCurrentVolumeArray(This); +} +static FORCEINLINE UINT IVssWriterImpl_GetCurrentVolumeCount(IVssWriterImpl* This) { + return This->lpVtbl->GetCurrentVolumeCount(This); +} +static FORCEINLINE HRESULT IVssWriterImpl_GetSnapshotDeviceName(IVssWriterImpl* This,LPCWSTR wszOriginalVolume,LPCWSTR *ppwszSnapshotDevice) { + return This->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice); +} +static FORCEINLINE VSS_ID IVssWriterImpl_GetCurrentSnapshotSetId(IVssWriterImpl* This) { + VSS_ID __ret; + return *This->lpVtbl->GetCurrentSnapshotSetId(This,&__ret); +} +static FORCEINLINE LONG IVssWriterImpl_GetContext(IVssWriterImpl* This) { + return This->lpVtbl->GetContext(This); +} +static FORCEINLINE VSS_APPLICATION_LEVEL IVssWriterImpl_GetCurrentLevel(IVssWriterImpl* This) { + return This->lpVtbl->GetCurrentLevel(This); +} +static FORCEINLINE boolean IVssWriterImpl_IsPathAffected(IVssWriterImpl* This,LPCWSTR wszPath) { + return This->lpVtbl->IsPathAffected(This,wszPath); +} +static FORCEINLINE boolean IVssWriterImpl_IsBootableSystemStateBackedUp(IVssWriterImpl* This) { + return This->lpVtbl->IsBootableSystemStateBackedUp(This); +} +static FORCEINLINE boolean IVssWriterImpl_AreComponentsSelected(IVssWriterImpl* This) { + return This->lpVtbl->AreComponentsSelected(This); +} +static FORCEINLINE VSS_BACKUP_TYPE IVssWriterImpl_GetBackupType(IVssWriterImpl* This) { + return This->lpVtbl->GetBackupType(This); +} +static FORCEINLINE VSS_RESTORE_TYPE IVssWriterImpl_GetRestoreType(IVssWriterImpl* This) { + return This->lpVtbl->GetRestoreType(This); +} +static FORCEINLINE HRESULT IVssWriterImpl_SetWriterFailure(IVssWriterImpl* This,HRESULT hr) { + return This->lpVtbl->SetWriterFailure(This,hr); +} +static FORCEINLINE boolean IVssWriterImpl_IsPartialFileSupportEnabled(IVssWriterImpl* This) { + return This->lpVtbl->IsPartialFileSupportEnabled(This); +} +static FORCEINLINE HRESULT IVssWriterImpl_InstallAlternateWriter(IVssWriterImpl* This,VSS_ID idWriter,CLSID clsid) { + return This->lpVtbl->InstallAlternateWriter(This,idWriter,clsid); +} +static FORCEINLINE IVssExamineWriterMetadata * IVssWriterImpl_GetIdentityInformation(IVssWriterImpl* This) { + return This->lpVtbl->GetIdentityInformation(This); +} +static FORCEINLINE HRESULT IVssWriterImpl_SetWriterFailureEx(IVssWriterImpl* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage) { + return This->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage); +} +static FORCEINLINE HRESULT IVssWriterImpl_GetSessionId(IVssWriterImpl* This,VSS_ID *idSession) { + return This->lpVtbl->GetSessionId(This,idSession); +} +static FORCEINLINE boolean IVssWriterImpl_IsWriterShuttingDown(IVssWriterImpl* This) { + return This->lpVtbl->IsWriterShuttingDown(This); +} +#endif +#endif + +#endif + + +#endif /* __IVssWriterImpl_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssCreateExpressWriterMetadata interface + */ +#ifndef __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__ +#define __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9c772e77-b26e-427f-92dd-c996f41ea5e3") +IVssCreateExpressWriterMetadata : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles( + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddComponent( + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszCaption, + const BYTE *pbIcon, + UINT cbIcon, + boolean bRestoreMetadata, + boolean bNotifyOnBackupComplete, + boolean bSelectable, + boolean bSelectableForRestore = 0, + DWORD dwComponentFlags = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup( + LPCWSTR wszLogicalPath, + LPCWSTR wszGroupName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation, + DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod( + VSS_RESTOREMETHOD_ENUM method, + LPCWSTR wszService, + LPCWSTR wszUserProcedure, + VSS_WRITERRESTORE_ENUM writerRestore, + boolean bRebootRequired) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddComponentDependency( + LPCWSTR wszForLogicalPath, + LPCWSTR wszForComponentName, + VSS_ID onWriterId, + LPCWSTR wszOnLogicalPath, + LPCWSTR wszOnComponentName) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBackupSchema( + DWORD dwSchemaMask) = 0; + + virtual HRESULT STDMETHODCALLTYPE SaveAsXML( + BSTR *pbstrXML) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3) +#endif +#else +typedef struct IVssCreateExpressWriterMetadataVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssCreateExpressWriterMetadata *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssCreateExpressWriterMetadata *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssCreateExpressWriterMetadata *This); + + /*** IVssCreateExpressWriterMetadata methods ***/ + HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)( + IVssCreateExpressWriterMetadata *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive); + + HRESULT (STDMETHODCALLTYPE *AddComponent)( + IVssCreateExpressWriterMetadata *This, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszCaption, + const BYTE *pbIcon, + UINT cbIcon, + boolean bRestoreMetadata, + boolean bNotifyOnBackupComplete, + boolean bSelectable, + boolean bSelectableForRestore, + DWORD dwComponentFlags); + + HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)( + IVssCreateExpressWriterMetadata *This, + LPCWSTR wszLogicalPath, + LPCWSTR wszGroupName, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation, + DWORD dwBackupTypeMask); + + HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)( + IVssCreateExpressWriterMetadata *This, + VSS_RESTOREMETHOD_ENUM method, + LPCWSTR wszService, + LPCWSTR wszUserProcedure, + VSS_WRITERRESTORE_ENUM writerRestore, + boolean bRebootRequired); + + HRESULT (STDMETHODCALLTYPE *AddComponentDependency)( + IVssCreateExpressWriterMetadata *This, + LPCWSTR wszForLogicalPath, + LPCWSTR wszForComponentName, + VSS_ID onWriterId, + LPCWSTR wszOnLogicalPath, + LPCWSTR wszOnComponentName); + + HRESULT (STDMETHODCALLTYPE *SetBackupSchema)( + IVssCreateExpressWriterMetadata *This, + DWORD dwSchemaMask); + + HRESULT (STDMETHODCALLTYPE *SaveAsXML)( + IVssCreateExpressWriterMetadata *This, + BSTR *pbstrXML); + + END_INTERFACE +} IVssCreateExpressWriterMetadataVtbl; + +interface IVssCreateExpressWriterMetadata { + CONST_VTBL IVssCreateExpressWriterMetadataVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssCreateExpressWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssCreateExpressWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssCreateExpressWriterMetadata_Release(This) (This)->lpVtbl->Release(This) +/*** IVssCreateExpressWriterMetadata methods ***/ +#define IVssCreateExpressWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) +#define IVssCreateExpressWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) +#define IVssCreateExpressWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) +#define IVssCreateExpressWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) +#define IVssCreateExpressWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) +#define IVssCreateExpressWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask) +#define IVssCreateExpressWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_QueryInterface(IVssCreateExpressWriterMetadata* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssCreateExpressWriterMetadata_AddRef(IVssCreateExpressWriterMetadata* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssCreateExpressWriterMetadata_Release(IVssCreateExpressWriterMetadata* This) { + return This->lpVtbl->Release(This); +} +/*** IVssCreateExpressWriterMetadata methods ***/ +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddExcludeFiles(IVssCreateExpressWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) { + return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddComponent(IVssCreateExpressWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) { + return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddFilesToFileGroup(IVssCreateExpressWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) { + return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SetRestoreMethod(IVssCreateExpressWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) { + return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddComponentDependency(IVssCreateExpressWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) { + return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SetBackupSchema(IVssCreateExpressWriterMetadata* This,DWORD dwSchemaMask) { + return This->lpVtbl->SetBackupSchema(This,dwSchemaMask); +} +static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SaveAsXML(IVssCreateExpressWriterMetadata* This,BSTR *pbstrXML) { + return This->lpVtbl->SaveAsXML(This,pbstrXML); +} +#endif +#endif + +#endif + + +#endif /* __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssExpressWriter interface + */ +#ifndef __IVssExpressWriter_INTERFACE_DEFINED__ +#define __IVssExpressWriter_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("e33affdc-59c7-47b1-97d5-4266598f6235") +IVssExpressWriter : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateMetadata( + VSS_ID writerId, + LPCWSTR writerName, + VSS_USAGE_TYPE usageType, + DWORD versionMajor, + DWORD versionMinor, + DWORD reserved, + IVssCreateExpressWriterMetadata **ppMetadata) = 0; + + virtual HRESULT STDMETHODCALLTYPE LoadMetadata( + LPCWSTR metadata, + DWORD reserved) = 0; + + virtual HRESULT STDMETHODCALLTYPE Register( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE Unregister( + VSS_ID writerId) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35) +#endif +#else +typedef struct IVssExpressWriterVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssExpressWriter *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssExpressWriter *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssExpressWriter *This); + + /*** IVssExpressWriter methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateMetadata)( + IVssExpressWriter *This, + VSS_ID writerId, + LPCWSTR writerName, + VSS_USAGE_TYPE usageType, + DWORD versionMajor, + DWORD versionMinor, + DWORD reserved, + IVssCreateExpressWriterMetadata **ppMetadata); + + HRESULT (STDMETHODCALLTYPE *LoadMetadata)( + IVssExpressWriter *This, + LPCWSTR metadata, + DWORD reserved); + + HRESULT (STDMETHODCALLTYPE *Register)( + IVssExpressWriter *This); + + HRESULT (STDMETHODCALLTYPE *Unregister)( + IVssExpressWriter *This, + VSS_ID writerId); + + END_INTERFACE +} IVssExpressWriterVtbl; + +interface IVssExpressWriter { + CONST_VTBL IVssExpressWriterVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IVssExpressWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IVssExpressWriter_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IVssExpressWriter_Release(This) (This)->lpVtbl->Release(This) +/*** IVssExpressWriter methods ***/ +#define IVssExpressWriter_CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) (This)->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) +#define IVssExpressWriter_LoadMetadata(This,metadata,reserved) (This)->lpVtbl->LoadMetadata(This,metadata,reserved) +#define IVssExpressWriter_Register(This) (This)->lpVtbl->Register(This) +#define IVssExpressWriter_Unregister(This,writerId) (This)->lpVtbl->Unregister(This,writerId) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IVssExpressWriter_QueryInterface(IVssExpressWriter* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IVssExpressWriter_AddRef(IVssExpressWriter* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IVssExpressWriter_Release(IVssExpressWriter* This) { + return This->lpVtbl->Release(This); +} +/*** IVssExpressWriter methods ***/ +static FORCEINLINE HRESULT IVssExpressWriter_CreateMetadata(IVssExpressWriter* This,VSS_ID writerId,LPCWSTR writerName,VSS_USAGE_TYPE usageType,DWORD versionMajor,DWORD versionMinor,DWORD reserved,IVssCreateExpressWriterMetadata **ppMetadata) { + return This->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata); +} +static FORCEINLINE HRESULT IVssExpressWriter_LoadMetadata(IVssExpressWriter* This,LPCWSTR metadata,DWORD reserved) { + return This->lpVtbl->LoadMetadata(This,metadata,reserved); +} +static FORCEINLINE HRESULT IVssExpressWriter_Register(IVssExpressWriter* This) { + return This->lpVtbl->Register(This); +} +static FORCEINLINE HRESULT IVssExpressWriter_Unregister(IVssExpressWriter* This,VSS_ID writerId) { + return This->lpVtbl->Unregister(This,writerId); +} +#endif +#endif + +#endif + + +#endif /* __IVssExpressWriter_INTERFACE_DEFINED__ */ + +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); +unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); +unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); +void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif -#endif /*_INC_VSWRITER*/ +#endif /* __vswriter_h__ */ diff --git a/lib/libc/include/any-windows-any/wbemads.h b/lib/libc/include/any-windows-any/wbemads.h index 9e7f718177..52f3db01c4 100644 --- a/lib/libc/include/any-windows-any/wbemads.h +++ b/lib/libc/include/any-windows-any/wbemads.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wbemads.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wbemads.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wbemcli.h b/lib/libc/include/any-windows-any/wbemcli.h index 8ad8691449..1941cf7aa5 100644 --- a/lib/libc/include/any-windows-any/wbemcli.h +++ b/lib/libc/include/any-windows-any/wbemcli.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wbemcli.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wbemcli.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wbemdisp.h b/lib/libc/include/any-windows-any/wbemdisp.h index 4b8dfbd286..99f23edbe6 100644 --- a/lib/libc/include/any-windows-any/wbemdisp.h +++ b/lib/libc/include/any-windows-any/wbemdisp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wbemdisp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wbemdisp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wbemprov.h b/lib/libc/include/any-windows-any/wbemprov.h index 7bcac0a7a0..e8473f5a30 100644 --- a/lib/libc/include/any-windows-any/wbemprov.h +++ b/lib/libc/include/any-windows-any/wbemprov.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wbemprov.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wbemprov.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wbemtran.h b/lib/libc/include/any-windows-any/wbemtran.h index 2c8e587152..996d459eef 100644 --- a/lib/libc/include/any-windows-any/wbemtran.h +++ b/lib/libc/include/any-windows-any/wbemtran.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wbemtran.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wbemtran.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wchar.h b/lib/libc/include/any-windows-any/wchar.h index ddafe77360..ab7187721f 100644 --- a/lib/libc/include/any-windows-any/wchar.h +++ b/lib/libc/include/any-windows-any/wchar.h @@ -281,7 +281,7 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[]; /* A pointer to an array of FILE */ int __cdecl is_wctype(wint_t _C,wctype_t _Type); #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */ -#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus) int __cdecl iswblank(wint_t _C); #endif diff --git a/lib/libc/include/any-windows-any/wdstptmgmt.h b/lib/libc/include/any-windows-any/wdstptmgmt.h index bcf22acc1a..807ca049ad 100644 --- a/lib/libc/include/any-windows-any/wdstptmgmt.h +++ b/lib/libc/include/any-windows-any/wdstptmgmt.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wdstptmgmt.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wdstptmgmt.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/webauthn.h b/lib/libc/include/any-windows-any/webauthn.h new file mode 100644 index 0000000000..a6a361f488 --- /dev/null +++ b/lib/libc/include/any-windows-any/webauthn.h @@ -0,0 +1,369 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _WEBAUTHN_H_ +#define _WEBAUTHN_H_ + +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef WINAPI +#if defined(_ARM_) +#define WINAPI +#else +#define WINAPI __stdcall +#endif +#endif + +#ifndef INITGUID +#define INITGUID +#include <guiddef.h> +#undef INITGUID +#else +#include <guiddef.h> +#endif + +#define WEBAUTHN_API_VERSION_1 1 +#define WEBAUTHN_API_VERSION_2 2 +#define WEBAUTHN_API_VERSION_3 3 +#define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_3 + +#define WEBAUTHN_RP_ENTITY_INFORMATION_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_RP_ENTITY_INFORMATION { + DWORD dwVersion; + PCWSTR pwszId; + PCWSTR pwszName; + PCWSTR pwszIcon; +} WEBAUTHN_RP_ENTITY_INFORMATION, *PWEBAUTHN_RP_ENTITY_INFORMATION; +typedef const WEBAUTHN_RP_ENTITY_INFORMATION *PCWEBAUTHN_RP_ENTITY_INFORMATION; + +#define WEBAUTHN_MAX_USER_ID_LENGTH 64 + +#define WEBAUTHN_USER_ENTITY_INFORMATION_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_USER_ENTITY_INFORMATION { + DWORD dwVersion; + DWORD cbId; + PBYTE pbId; + PCWSTR pwszName; + PCWSTR pwszIcon; + PCWSTR pwszDisplayName; +} WEBAUTHN_USER_ENTITY_INFORMATION, *PWEBAUTHN_USER_ENTITY_INFORMATION; +typedef const WEBAUTHN_USER_ENTITY_INFORMATION *PCWEBAUTHN_USER_ENTITY_INFORMATION; + +#define WEBAUTHN_HASH_ALGORITHM_SHA_256 L"SHA-256" +#define WEBAUTHN_HASH_ALGORITHM_SHA_384 L"SHA-384" +#define WEBAUTHN_HASH_ALGORITHM_SHA_512 L"SHA-512" + +#define WEBAUTHN_CLIENT_DATA_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_CLIENT_DATA { + DWORD dwVersion; + DWORD cbClientDataJSON; + PBYTE pbClientDataJSON; + LPCWSTR pwszHashAlgId; +} WEBAUTHN_CLIENT_DATA, *PWEBAUTHN_CLIENT_DATA; +typedef const WEBAUTHN_CLIENT_DATA *PCWEBAUTHN_CLIENT_DATA; + +#define WEBAUTHN_CREDENTIAL_TYPE_PUBLIC_KEY L"public-key" + +#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P256_WITH_SHA256 -7 +#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P384_WITH_SHA384 -35 +#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P521_WITH_SHA512 -36 + +#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA256 -257 +#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA384 -258 +#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA512 -259 + +#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA256 -37 +#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA384 -38 +#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA512 -39 + +#define WEBAUTHN_COSE_CREDENTIAL_PARAMETER_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETER { + DWORD dwVersion; + LPCWSTR pwszCredentialType; + LONG lAlg; +} WEBAUTHN_COSE_CREDENTIAL_PARAMETER, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETER; +typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETER *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETER; + +typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETERS { + DWORD cCredentialParameters; + PWEBAUTHN_COSE_CREDENTIAL_PARAMETER pCredentialParameters; +} WEBAUTHN_COSE_CREDENTIAL_PARAMETERS, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETERS; +typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETERS *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS; + +#define WEBAUTHN_CREDENTIAL_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_CREDENTIAL { + DWORD dwVersion; + DWORD cbId; + PBYTE pbId; + LPCWSTR pwszCredentialType; +} WEBAUTHN_CREDENTIAL, *PWEBAUTHN_CREDENTIAL; +typedef const WEBAUTHN_CREDENTIAL *PCWEBAUTHN_CREDENTIAL; + +typedef struct _WEBAUTHN_CREDENTIALS { + DWORD cCredentials; + PWEBAUTHN_CREDENTIAL pCredentials; +} WEBAUTHN_CREDENTIALS, *PWEBAUTHN_CREDENTIALS; +typedef const WEBAUTHN_CREDENTIALS *PCWEBAUTHN_CREDENTIALS; + +#define WEBAUTHN_CTAP_TRANSPORT_USB 0x00000001 +#define WEBAUTHN_CTAP_TRANSPORT_NFC 0x00000002 +#define WEBAUTHN_CTAP_TRANSPORT_BLE 0x00000004 +#define WEBAUTHN_CTAP_TRANSPORT_TEST 0x00000008 +#define WEBAUTHN_CTAP_TRANSPORT_INTERNAL 0x00000010 +#define WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK 0x0000001F + +#define WEBAUTHN_CREDENTIAL_EX_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_CREDENTIAL_EX { + DWORD dwVersion; + DWORD cbId; + PBYTE pbId; + LPCWSTR pwszCredentialType; + DWORD dwTransports; +} WEBAUTHN_CREDENTIAL_EX, *PWEBAUTHN_CREDENTIAL_EX; +typedef const WEBAUTHN_CREDENTIAL_EX *PCWEBAUTHN_CREDENTIAL_EX; + +typedef struct _WEBAUTHN_CREDENTIAL_LIST { + DWORD cCredentials; + PWEBAUTHN_CREDENTIAL_EX *ppCredentials; +} WEBAUTHN_CREDENTIAL_LIST, *PWEBAUTHN_CREDENTIAL_LIST; +typedef const WEBAUTHN_CREDENTIAL_LIST *PCWEBAUTHN_CREDENTIAL_LIST; + +#define WEBAUTHN_EXTENSIONS_IDENTIFIER_HMAC_SECRET L"hmac-secret" + +#define WEBAUTHN_USER_VERIFICATION_ANY 0 +#define WEBAUTHN_USER_VERIFICATION_OPTIONAL 1 +#define WEBAUTHN_USER_VERIFICATION_OPTIONAL_WITH_CREDENTIAL_ID_LIST 2 +#define WEBAUTHN_USER_VERIFICATION_REQUIRED 3 + +typedef struct _WEBAUTHN_CRED_PROTECT_EXTENSION_IN { + DWORD dwCredProtect; + WINBOOL bRequireCredProtect; +} WEBAUTHN_CRED_PROTECT_EXTENSION_IN, *PWEBAUTHN_CRED_PROTECT_EXTENSION_IN; +typedef const WEBAUTHN_CRED_PROTECT_EXTENSION_IN *PCWEBAUTHN_CRED_PROTECT_EXTENSION_IN; + +#define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_PROTECT L"credProtect" + +typedef struct _WEBAUTHN_CRED_BLOB_EXTENSION { + DWORD cbCredBlob; + PBYTE pbCredBlob; +} WEBAUTHN_CRED_BLOB_EXTENSION, *PWEBAUTHN_CRED_BLOB_EXTENSION; +typedef const WEBAUTHN_CRED_BLOB_EXTENSION *PCWEBAUTHN_CRED_BLOB_EXTENSION; + +#define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_BLOB L"credBlob" + +#define WEBAUTHN_EXTENSIONS_IDENTIFIER_MIN_PIN_LENGTH L"minPinLength" + +typedef struct _WEBAUTHN_EXTENSION { + LPCWSTR pwszExtensionIdentifier; + DWORD cbExtension; + PVOID pvExtension; +} WEBAUTHN_EXTENSION, *PWEBAUTHN_EXTENSION; +typedef const WEBAUTHN_EXTENSION *PCWEBAUTHN_EXTENSION; + +typedef struct _WEBAUTHN_EXTENSIONS { + DWORD cExtensions; + PWEBAUTHN_EXTENSION pExtensions; +} WEBAUTHN_EXTENSIONS, *PWEBAUTHN_EXTENSIONS; +typedef const WEBAUTHN_EXTENSIONS *PCWEBAUTHN_EXTENSIONS; + +#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_ANY 0 +#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_PLATFORM 1 +#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM 2 +#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM_U2F_V2 3 + +#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY 0 +#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED 1 +#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED 2 +#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED 3 + +#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_ANY 0 +#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_NONE 1 +#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_INDIRECT 2 +#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_DIRECT 3 + +#define WEBAUTHN_ENTERPRISE_ATTESTATION_NONE 0 +#define WEBAUTHN_ENTERPRISE_ATTESTATION_VENDOR_FACILITATED 1 +#define WEBAUTHN_ENTERPRISE_ATTESTATION_PLATFORM_MANAGED 2 + +#define WEBAUTHN_LARGE_BLOB_SUPPORT_NONE 0 +#define WEBAUTHN_LARGE_BLOB_SUPPORT_REQUIRED 1 +#define WEBAUTHN_LARGE_BLOB_SUPPORT_PREFERRED 2 + +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_1 1 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_2 2 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_3 3 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4 4 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4 + +typedef struct _WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { + DWORD dwVersion; + DWORD dwTimeoutMilliseconds; + WEBAUTHN_CREDENTIALS CredentialList; + WEBAUTHN_EXTENSIONS Extensions; + DWORD dwAuthenticatorAttachment; + WINBOOL bRequireResidentKey; + DWORD dwUserVerificationRequirement; + DWORD dwAttestationConveyancePreference; + DWORD dwFlags; + GUID *pCancellationId; + PWEBAUTHN_CREDENTIAL_LIST pExcludeCredentialList; + DWORD dwEnterpriseAttestation; + DWORD dwLargeBlobSupport; + WINBOOL bPreferResidentKey; +} WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; +typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; + +#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_NONE 0 +#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_GET 1 +#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_SET 2 +#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_DELETE 3 + +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_1 1 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_2 2 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_3 3 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_4 4 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 5 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 + +typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS { + DWORD dwVersion; + DWORD dwTimeoutMilliseconds; + WEBAUTHN_CREDENTIALS CredentialList; + WEBAUTHN_EXTENSIONS Extensions; + DWORD dwAuthenticatorAttachment; + DWORD dwUserVerificationRequirement; + DWORD dwFlags; + PCWSTR pwszU2fAppId; + WINBOOL *pbU2fAppId; + GUID *pCancellationId; + PWEBAUTHN_CREDENTIAL_LIST pAllowCredentialList; + DWORD dwCredLargeBlobOperation; + DWORD cbCredLargeBlob; + PBYTE pbCredLargeBlob; +} WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; +typedef const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; + +#define WEBAUTHN_ATTESTATION_DECODE_NONE 0 +#define WEBAUTHN_ATTESTATION_DECODE_COMMON 1 + +#define WEBAUTHN_ATTESTATION_VER_TPM_2_0 L"2.0" + +typedef struct _WEBAUTHN_X5C { + DWORD cbData; + PBYTE pbData; +} WEBAUTHN_X5C, *PWEBAUTHN_X5C; + +#define WEBAUTHN_COMMON_ATTESTATION_CURRENT_VERSION 1 + +typedef struct _WEBAUTHN_COMMON_ATTESTATION { + DWORD dwVersion; + PCWSTR pwszAlg; + LONG lAlg; + DWORD cbSignature; + PBYTE pbSignature; + DWORD cX5c; + PWEBAUTHN_X5C pX5c; + PCWSTR pwszVer; + DWORD cbCertInfo; + PBYTE pbCertInfo; + DWORD cbPubArea; + PBYTE pbPubArea; +} WEBAUTHN_COMMON_ATTESTATION, *PWEBAUTHN_COMMON_ATTESTATION; +typedef const WEBAUTHN_COMMON_ATTESTATION *PCWEBAUTHN_COMMON_ATTESTATION; + +#define WEBAUTHN_ATTESTATION_TYPE_PACKED L"packed" +#define WEBAUTHN_ATTESTATION_TYPE_U2F L"fido-u2f" +#define WEBAUTHN_ATTESTATION_TYPE_TPM L"tpm" +#define WEBAUTHN_ATTESTATION_TYPE_NONE L"none" + +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_1 1 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_2 2 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_3 3 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 4 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 + +typedef struct _WEBAUTHN_CREDENTIAL_ATTESTATION { + DWORD dwVersion; + PCWSTR pwszFormatType; + DWORD cbAuthenticatorData; + PBYTE pbAuthenticatorData; + DWORD cbAttestation; + PBYTE pbAttestation; + DWORD dwAttestationDecodeType; + PVOID pvAttestationDecode; + DWORD cbAttestationObject; + PBYTE pbAttestationObject; + DWORD cbCredentialId; + PBYTE pbCredentialId; + WEBAUTHN_EXTENSIONS Extensions; + DWORD dwUsedTransport; + WINBOOL bEpAtt; + WINBOOL bLargeBlobSupported; + WINBOOL bResidentKey; +} WEBAUTHN_CREDENTIAL_ATTESTATION, *PWEBAUTHN_CREDENTIAL_ATTESTATION; +typedef const WEBAUTHN_CREDENTIAL_ATTESTATION *PCWEBAUTHN_CREDENTIAL_ATTESTATION; + +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NONE 0 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_SUCCESS 1 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_SUPPORTED 2 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_DATA 3 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_PARAMETER 4 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_FOUND 5 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_MULTIPLE_CREDENTIALS 6 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_LACK_OF_SPACE 7 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_PLATFORM_ERROR 8 +#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_AUTHENTICATOR_ERROR 9 + +#define WEBAUTHN_ASSERTION_VERSION_1 1 +#define WEBAUTHN_ASSERTION_VERSION_2 2 +#define WEBAUTHN_ASSERTION_CURRENT_VERSION WEBAUTHN_ASSERTION_VERSION_2 + +typedef struct _WEBAUTHN_ASSERTION { + DWORD dwVersion; + DWORD cbAuthenticatorData; + PBYTE pbAuthenticatorData; + DWORD cbSignature; + PBYTE pbSignature; + WEBAUTHN_CREDENTIAL Credential; + DWORD cbUserId; + PBYTE pbUserId; + WEBAUTHN_EXTENSIONS Extensions; + DWORD cbCredLargeBlob; + PBYTE pbCredLargeBlob; + DWORD dwCredLargeBlobStatus; +} WEBAUTHN_ASSERTION, *PWEBAUTHN_ASSERTION; +typedef const WEBAUTHN_ASSERTION *PCWEBAUTHN_ASSERTION; + +DWORD WINAPI WebAuthNGetApiVersionNumber(void); +HRESULT WINAPI WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable(WINBOOL *pbIsUserVerifyingPlatformAuthenticatorAvailable); +HRESULT WINAPI WebAuthNAuthenticatorMakeCredential(HWND hWnd, PCWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation, PCWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation, PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS pPubKeyCredParams, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS pWebAuthNMakeCredentialOptions, PWEBAUTHN_CREDENTIAL_ATTESTATION *ppWebAuthNCredentialAttestation); +HRESULT WINAPI WebAuthNAuthenticatorGetAssertion(HWND hWnd, LPCWSTR pwszRpId, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS pWebAuthNGetAssertionOptions, PWEBAUTHN_ASSERTION *ppWebAuthNAssertion); +void WINAPI WebAuthNFreeCredentialAttestation(PWEBAUTHN_CREDENTIAL_ATTESTATION pWebAuthNCredentialAttestation); +void WINAPI WebAuthNFreeAssertion(PWEBAUTHN_ASSERTION pWebAuthNAssertion); +HRESULT WINAPI WebAuthNGetCancellationId(GUID* pCancellationId); +HRESULT WINAPI WebAuthNCancelCurrentOperation(const GUID* pCancellationId); +PCWSTR WINAPI WebAuthNGetErrorName(HRESULT hr); +HRESULT WINAPI WebAuthNGetW3CExceptionDOMError(HRESULT hr); + +#ifdef __cplusplus +} +#endif + +#endif /* WINAPI_FAMILY_PARTITION */ + +#endif /* _WEBAUTHN_H_ */ diff --git a/lib/libc/include/any-windows-any/winbase.h b/lib/libc/include/any-windows-any/winbase.h index 08f89776a2..cc2935156b 100644 --- a/lib/libc/include/any-windows-any/winbase.h +++ b/lib/libc/include/any-windows-any/winbase.h @@ -1594,25 +1594,8 @@ extern "C" { #endif #endif -#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) - typedef enum _PROCESS_INFORMATION_CLASS { - ProcessMemoryPriority, - ProcessMemoryExhaustionInfo, - ProcessAppMemoryInfo, - ProcessInPrivateInfo, - ProcessPowerThrottling, - ProcessReservedValue1, - ProcessTelemetryCoverageInfo, - ProcessProtectionLevelInfo, - ProcessLeapSecondInfo, - ProcessInformationClassMax - } PROCESS_INFORMATION_CLASS; -#endif - #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) && _WIN32_WINNT >= 0x0602 WINBASEAPI HMODULE WINAPI LoadPackagedLibrary (LPCWSTR lpwLibFileName, DWORD Reserved); - WINBASEAPI WINBOOL WINAPI GetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); - WINBASEAPI WINBOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize); #endif #if _WIN32_WINNT >= 0x0600 diff --git a/lib/libc/include/any-windows-any/wincodec.h b/lib/libc/include/any-windows-any/wincodec.h index d3c6ed1393..1f3be05004 100644 --- a/lib/libc/include/any-windows-any/wincodec.h +++ b/lib/libc/include/any-windows-any/wincodec.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wincodec.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wincodec.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wincodecsdk.h b/lib/libc/include/any-windows-any/wincodecsdk.h index d5ce5d885d..4f35ac2260 100644 --- a/lib/libc/include/any-windows-any/wincodecsdk.h +++ b/lib/libc/include/any-windows-any/wincodecsdk.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wincodecsdk.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wincodecsdk.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wincon.h b/lib/libc/include/any-windows-any/wincon.h index 56ea29b5b2..d4dea612bf 100644 --- a/lib/libc/include/any-windows-any/wincon.h +++ b/lib/libc/include/any-windows-any/wincon.h @@ -314,9 +314,7 @@ WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryA(LPSTR Commands, DWORD CommandB WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryW(LPWSTR Commands, DWORD CommandBufferLength, LPWSTR ExeName); #define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory) -#ifndef LF_FACESIZE -#define LF_FACESIZE 32 -#endif +#ifndef NOGDI typedef struct _CONSOLE_FONT_INFOEX { ULONG cbSize; @@ -327,6 +325,20 @@ typedef struct _CONSOLE_FONT_INFOEX { WCHAR FaceName[LF_FACESIZE]; } CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX; +WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx( + HANDLE hConsoleOutput, + WINBOOL bMaximumWindow, + PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx +); + +WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx( + HANDLE hConsoleOutput, + WINBOOL bMaximumWindow, + PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx +); + +#endif /* NOGDI */ + #define HISTORY_NO_DUP_FLAG 0x1 typedef struct _CONSOLE_HISTORY_INFO { @@ -378,12 +390,6 @@ WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx( PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx ); -WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx( - HANDLE hConsoleOutput, - WINBOOL bMaximumWindow, - PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx -); - WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo( PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo ); @@ -393,12 +399,6 @@ WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx( PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx ); -WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx( - HANDLE hConsoleOutput, - WINBOOL bMaximumWindow, - PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx -); - #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) diff --git a/lib/libc/include/any-windows-any/windns.h b/lib/libc/include/any-windows-any/windns.h index 0a3326584c..ce926e015d 100644 --- a/lib/libc/include/any-windows-any/windns.h +++ b/lib/libc/include/any-windows-any/windns.h @@ -40,6 +40,7 @@ extern "C" { #undef IP6_ADDRESS_STRING_LENGTH #define IP6_ADDRESS_STRING_LENGTH (47) #define IP6_ADDRESS_STRING_BUFFER_LENGTH (48) +#define DNS_ADDRESS_STRING_LENGTH (IP6_ADDRESS_STRING_LENGTH) #define INLINE_WORD_FLIP(out,in) { WORD _in = (in); (out) = (_in << 8) | (_in >> 8); } #define INLINE_HTONS(out,in) INLINE_WORD_FLIP(out,in) @@ -83,13 +84,22 @@ extern "C" { BYTE Opcode : 4; BYTE IsResponse : 1; BYTE ResponseCode : 4; - BYTE Reserved : 3; + BYTE CheckingDisabled : 1; + BYTE AuthenticatedData : 1; + BYTE Reserved : 1; BYTE RecursionAvailable : 1; WORD QuestionCount; WORD AnswerCount; WORD NameServerCount; WORD AdditionalCount; - } DNS_HEADER,*PDNS_HEADER; + } DNS_HEADER, *PDNS_HEADER; + + typedef struct _DNS_HEADER_EXT { + WORD Reserved : 15; + WORD DnssecOk : 1; + BYTE chRcode; + BYTE chVersion; + } DNS_HEADER_EXT, *PDNS_HEADER_EXT; #define DNS_HEADER_FLAGS(pHead) (*((PWORD)(pHead)+1)) #define DNS_BYTE_FLIP_HEADER_COUNTS(pHeader) { PDNS_HEADER _head = (pHeader); INLINE_HTONS(_head->Xid,_head->Xid); INLINE_HTONS(_head->QuestionCount,_head->QuestionCount); INLINE_HTONS(_head->AnswerCount,_head->AnswerCount); INLINE_HTONS(_head->NameServerCount,_head->NameServerCount); INLINE_HTONS(_head->AdditionalCount,_head->AdditionalCount); } @@ -148,6 +158,7 @@ extern "C" { #define DNS_CLASS_NONE 0x00fe #define DNS_CLASS_ALL 0x00ff #define DNS_CLASS_ANY 0x00ff +#define DNS_CLASS_UNICAST_RESPONSE 0x8000 #define DNS_RCLASS_INTERNET 0x0100 #define DNS_RCLASS_CSNET 0x0200 @@ -156,6 +167,7 @@ extern "C" { #define DNS_RCLASS_NONE 0xfe00 #define DNS_RCLASS_ALL 0xff00 #define DNS_RCLASS_ANY 0xff00 +#define DNS_RCLASS_UNICAST_RESPONSE 0x0080 #define DNS_TYPE_ZERO 0x0000 #define DNS_TYPE_A 0x0001 @@ -199,6 +211,14 @@ extern "C" { #define DNS_TYPE_DNAME 0x0027 #define DNS_TYPE_SINK 0x0028 #define DNS_TYPE_OPT 0x0029 +#define DNS_TYPE_DS 0x002b +#define DNS_TYPE_RRSIG 0x002e +#define DNS_TYPE_NSEC 0x002f +#define DNS_TYPE_DNSKEY 0x0030 +#define DNS_TYPE_DHCID 0x0031 +#define DNS_TYPE_NSEC3 0x0032 +#define DNS_TYPE_NSEC3PARAM 0x0033 +#define DNS_TYPE_TLSA 0x0034 #define DNS_TYPE_UINFO 0x0064 #define DNS_TYPE_UID 0x0065 #define DNS_TYPE_GID 0x0066 @@ -257,6 +277,14 @@ extern "C" { #define DNS_RTYPE_DNAME 0x2700 #define DNS_RTYPE_SINK 0x2800 #define DNS_RTYPE_OPT 0x2900 +#define DNS_RTYPE_DS 0x2b00 +#define DNS_RTYPE_RRSIG 0x2e00 +#define DNS_RTYPE_NSEC 0x2f00 +#define DNS_RTYPE_DNSKEY 0x3000 +#define DNS_RTYPE_DHCID 0x3100 +#define DNS_RTYPE_NSEC3 0x3200 +#define DNS_RTYPE_NSEC3PARAM 0x3300 +#define DNS_RTYPE_TLSA 0x3400 #define DNS_RTYPE_UINFO 0x6400 #define DNS_RTYPE_UID 0x6500 #define DNS_RTYPE_GID 0x6600 @@ -286,9 +314,19 @@ extern "C" { #define DNS_ATMA_MAX_RECORD_LENGTH (DNS_ATMA_MAX_ADDR_LENGTH+1) #define DNSSEC_ALGORITHM_RSAMD5 1 +#define DNSSEC_ALGORITHM_RSASHA1 5 +#define DNSSEC_ALGORITHM_RSASHA1_NSEC3 7 +#define DNSSEC_ALGORITHM_RSASHA256 8 +#define DNSSEC_ALGORITHM_RSASHA512 10 +#define DNSSEC_ALGORITHM_ECDSAP256_SHA256 13 +#define DNSSEC_ALGORITHM_ECDSAP384_SHA384 14 #define DNSSEC_ALGORITHM_NULL 253 #define DNSSEC_ALGORITHM_PRIVATE 254 +#define DNSSEC_DIGEST_ALGORITHM_SHA1 1 +#define DNSSEC_DIGEST_ALGORITHM_SHA256 2 +#define DNSSEC_DIGEST_ALGORITHM_SHA384 4 + #define DNSSEC_PROTOCOL_NONE 0 #define DNSSEC_PROTOCOL_TLS 1 #define DNSSEC_PROTOCOL_EMAIL 2 @@ -343,10 +381,25 @@ extern "C" { #define IS_QWORD_ALIGNED(p) (!((UINT_PTR)(p) & (UINT_PTR)7)) typedef enum { - DnsConfigPrimaryDomainName_W,DnsConfigPrimaryDomainName_A,DnsConfigPrimaryDomainName_UTF8,DnsConfigAdapterDomainName_W, - DnsConfigAdapterDomainName_A,DnsConfigAdapterDomainName_UTF8,DnsConfigDnsServerList,DnsConfigSearchList, - DnsConfigAdapterInfo,DnsConfigPrimaryHostNameRegistrationEnabled,DnsConfigAdapterHostNameRegistrationEnabled,DnsConfigAddressRegistrationMaxCount, - DnsConfigHostName_W,DnsConfigHostName_A,DnsConfigHostName_UTF8,DnsConfigFullHostName_W,DnsConfigFullHostName_A,DnsConfigFullHostName_UTF8 + DnsConfigPrimaryDomainName_W, + DnsConfigPrimaryDomainName_A, + DnsConfigPrimaryDomainName_UTF8, + DnsConfigAdapterDomainName_W, + DnsConfigAdapterDomainName_A, + DnsConfigAdapterDomainName_UTF8, + DnsConfigDnsServerList, + DnsConfigSearchList, + DnsConfigAdapterInfo, + DnsConfigPrimaryHostNameRegistrationEnabled, + DnsConfigAdapterHostNameRegistrationEnabled, + DnsConfigAddressRegistrationMaxCount, + DnsConfigHostName_W, + DnsConfigHostName_A, + DnsConfigHostName_UTF8, + DnsConfigFullHostName_W, + DnsConfigFullHostName_A, + DnsConfigFullHostName_UTF8, + DnsConfigNameServer } DNS_CONFIG_TYPE; #define DNS_CONFIG_FLAG_ALLOC (0x00000001) @@ -433,7 +486,6 @@ extern "C" { } DNS_AAAA_DATA,*PDNS_AAAA_DATA; typedef struct { - PWSTR pNameSigner; WORD wTypeCovered; BYTE chAlgorithm; BYTE chLabelCount; @@ -441,12 +493,12 @@ extern "C" { DWORD dwExpiration; DWORD dwTimeSigned; WORD wKeyTag; - WORD Pad; + WORD wSignatureLength; + PWSTR pNameSigner; BYTE Signature[1]; - } DNS_SIG_DATAW,*PDNS_SIG_DATAW; + } DNS_SIG_DATAW, *PDNS_SIG_DATAW, DNS_RRSIG_DATAW, *PDNS_RRSIG_DATAW; typedef struct { - PSTR pNameSigner; WORD wTypeCovered; BYTE chAlgorithm; BYTE chLabelCount; @@ -454,16 +506,81 @@ extern "C" { DWORD dwExpiration; DWORD dwTimeSigned; WORD wKeyTag; - WORD Pad; + WORD wSignatureLength; + PSTR pNameSigner; BYTE Signature[1]; - } DNS_SIG_DATAA,*PDNS_SIG_DATAA; + } DNS_SIG_DATAA, *PDNS_SIG_DATAA, DNS_RRSIG_DATAA, *PDNS_RRSIG_DATAA; typedef struct { WORD wFlags; BYTE chProtocol; BYTE chAlgorithm; + WORD wKeyLength; + WORD wPad; BYTE Key[1]; - } DNS_KEY_DATA,*PDNS_KEY_DATA; + } DNS_KEY_DATA, *PDNS_KEY_DATA, DNS_DNSKEY_DATA, *PDNS_DNSKEY_DATA; + + typedef struct { + DWORD dwByteCount; + BYTE DHCID[1]; + } DNS_DHCID_DATA, *PDNS_DHCID_DATA; + + typedef struct { + PWSTR pNextDomainName; + WORD wTypeBitMapsLength; + WORD wPad; + BYTE TypeBitMaps[1]; + } DNS_NSEC_DATAW, *PDNS_NSEC_DATAW; + + typedef struct { + PSTR pNextDomainName; + WORD wTypeBitMapsLength; + WORD wPad; + BYTE TypeBitMaps[1]; + } DNS_NSEC_DATAA, *PDNS_NSEC_DATAA; + + typedef struct { + BYTE chAlgorithm; + BYTE bFlags; + WORD wIterations; + BYTE bSaltLength; + BYTE bHashLength; + WORD wTypeBitMapsLength; + BYTE chData[1]; + } DNS_NSEC3_DATA, *PDNS_NSEC3_DATA; + + typedef struct { + BYTE chAlgorithm; + BYTE bFlags; + WORD wIterations; + BYTE bSaltLength; + BYTE bPad[3]; + BYTE pbSalt[1]; + } DNS_NSEC3PARAM_DATA, *PDNS_NSEC3PARAM_DATA; + + typedef struct { + BYTE bCertUsage; + BYTE bSelector; + BYTE bMatchingType; + WORD bCertificateAssociationDataLength; + BYTE bPad[3]; + BYTE bCertificateAssociationData[1]; + } DNS_TLSA_DATA, *PDNS_TLSA_DATA; + + typedef struct { + WORD wKeyTag; + BYTE chAlgorithm; + BYTE chDigestType; + WORD wDigestLength; + WORD wPad; + BYTE Digest[1]; + } DNS_DS_DATA, *PDNS_DS_DATA; + + typedef struct { + WORD wDataLength; + WORD wPad; + BYTE Data[1]; + } DNS_OPT_DATA, *PDNS_OPT_DATA; typedef struct { WORD wVersion; @@ -504,6 +621,24 @@ extern "C" { } DNS_SRV_DATAA,*PDNS_SRV_DATAA; typedef struct { + WORD wOrder; + WORD wPreference; + PWSTR pFlags; + PWSTR pService; + PWSTR pRegularExpression; + PWSTR pReplacement; + } DNS_NAPTR_DATAW, *PDNS_NAPTR_DATAW; + + typedef struct { + WORD wOrder; + WORD wPreference; + PSTR pFlags; + PSTR pService; + PSTR pRegularExpression; + PSTR pReplacement; + } DNS_NAPTR_DATAA, *PDNS_NAPTR_DATAA; + + typedef struct { BYTE AddressType; BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH ]; } DNS_ATMA_DATA,*PDNS_ATMA_DATA; @@ -569,6 +704,11 @@ extern "C" { } DNS_TSIG_DATAA,*PDNS_TSIG_DATAA; typedef struct { + DWORD dwByteCount; + BYTE bData[1]; + } DNS_UNKNOWN_DATA, *PDNS_UNKNOWN_DATA; + + typedef struct { DWORD dwMappingFlag; DWORD dwLookupTimeout; DWORD dwCacheTimeout; @@ -606,6 +746,12 @@ extern "C" { __MINGW_TYPEDEF_AW(PDNS_NXT_DATA) __MINGW_TYPEDEF_AW(DNS_SRV_DATA) __MINGW_TYPEDEF_AW(PDNS_SRV_DATA) + __MINGW_TYPEDEF_AW(DNS_NAPTR_DATA) + __MINGW_TYPEDEF_AW(PDNS_NAPTR_DATA) + __MINGW_TYPEDEF_AW(DNS_RRSIG_DATA) + __MINGW_TYPEDEF_AW(PDNS_RRSIG_DATA) + __MINGW_TYPEDEF_AW(DNS_NSEC_DATA) + __MINGW_TYPEDEF_AW(PDNS_NSEC_DATA) __MINGW_TYPEDEF_AW(DNS_TKEY_DATA) __MINGW_TYPEDEF_AW(PDNS_TKEY_DATA) __MINGW_TYPEDEF_AW(DNS_TSIG_DATA) @@ -617,6 +763,16 @@ extern "C" { #define DNS_NULL_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_NULL_DATA,Data) + (ByteCount)) #define DNS_WKS_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_WKS_DATA,BitMask) + (ByteCount)) #define DNS_WINS_RECORD_LENGTH(IpCount) (FIELD_OFFSET(DNS_WINS_DATA,WinsServers) + ((IpCount) *sizeof(IP4_ADDRESS))) +#define DNS_KEY_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_KEY_DATA,Key) + (ByteCount)) +#define DNS_SIG_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_SIG_DATA,Signature) + (ByteCount)) +#define DNS_NSEC_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_NSEC_DATA,TypeBitMaps) + (ByteCount)) +#define DNS_DS_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_DS_DATA,Digest) + (ByteCount)) +#define DNS_OPT_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_OPT_DATA,Data) + (ByteCount)) +#define DNS_DHCID_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_DHCID_DATA,DHCID) + (ByteCount)) +#define DNS_NSEC3_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_NSEC3_DATA,chData) + (ByteCount)) +#define DNS_NSEC3PARAM_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_NSEC3PARAM_DATA,pbSalt) + (ByteCount)) +#define DNS_TLSA_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_TLSA_DATA,bCertificateAssociationData) + (ByteCount)) +#define DNS_UNKNOWN_RECORD_LENGTH(ByteCount) (FIELD_OFFSET(DNS_UNKNOWN_DATA,bData) + (ByteCount)) typedef struct _DnsRecordFlags { DWORD Section : 2; @@ -661,7 +817,7 @@ extern "C" { union { DNS_A_DATA A; DNS_SOA_DATAW SOA,Soa; - DNS_PTR_DATAW PTR,Ptr,NS,Ns,CNAME,Cname,MB,Mb,MD,Md,MF,Mf,MG,Mg,MR,Mr; + DNS_PTR_DATAW PTR,Ptr,NS,Ns,CNAME,Cname,DNAME,Dname,MB,Mb,MD,Md,MF,Mf,MG,Mg,MR,Mr; DNS_MINFO_DATAW MINFO,Minfo,RP,Rp; DNS_MX_DATAW MX,Mx,AFSDB,Afsdb,RT,Rt; DNS_TXT_DATAW HINFO,Hinfo,ISDN,Isdn,TXT,Txt,X25; @@ -673,13 +829,42 @@ extern "C" { DNS_ATMA_DATA ATMA,Atma; DNS_NXT_DATAW NXT,Nxt; DNS_SRV_DATAW SRV,Srv; + DNS_NAPTR_DATAW NAPTR,Naptr; + DNS_OPT_DATA OPT,Opt; + DNS_DS_DATA DS,Ds; + DNS_RRSIG_DATAW RRSIG,Rrsig; + DNS_NSEC_DATAW NSEC,Nsec; + DNS_DNSKEY_DATA DNSKEY,Dnskey; DNS_TKEY_DATAW TKEY,Tkey; DNS_TSIG_DATAW TSIG,Tsig; DNS_WINS_DATA WINS,Wins; DNS_WINSR_DATAW WINSR,WinsR,NBSTAT,Nbstat; + DNS_DHCID_DATA DHCID; + DNS_NSEC3_DATA NSEC3,Nsec3; + DNS_NSEC3PARAM_DATA NSEC3PARAM,Nsec3Param; + DNS_TLSA_DATA TLSA,Tlsa; + DNS_UNKNOWN_DATA UNKNOWN,Unknown; + PBYTE pDataPtr; } Data; } DNS_RECORDW,*PDNS_RECORDW; + typedef struct _DnsRecordOptW { + struct _DnsRecordW *pNext; + PWSTR pName; + WORD wType; + WORD wDataLength; + union { + DWORD DW; + DNS_RECORD_FLAGS S; + } Flags; + DNS_HEADER_EXT ExtHeader; + WORD wPayloadSize; + WORD wReserved; + union { + DNS_OPT_DATA OPT,Opt; + } Data; + } DNS_RECORD_OPTW, *PDNS_RECORD_OPTW; + typedef struct _DnsRecordA { struct _DnsRecordA *pNext; PSTR pName; @@ -694,7 +879,7 @@ extern "C" { union { DNS_A_DATA A; DNS_SOA_DATAA SOA,Soa; - DNS_PTR_DATAA PTR,Ptr,NS,Ns,CNAME,Cname,MB,Mb,MD,Md,MF,Mf,MG,Mg,MR,Mr; + DNS_PTR_DATAA PTR,Ptr,NS,Ns,CNAME,Cname,DNAME,Dname,MB,Mb,MD,Md,MF,Mf,MG,Mg,MR,Mr; DNS_MINFO_DATAA MINFO,Minfo,RP,Rp; DNS_MX_DATAA MX,Mx,AFSDB,Afsdb,RT,Rt; DNS_TXT_DATAA HINFO,Hinfo,ISDN,Isdn,TXT,Txt,X25; @@ -706,17 +891,48 @@ extern "C" { DNS_ATMA_DATA ATMA,Atma; DNS_NXT_DATAA NXT,Nxt; DNS_SRV_DATAA SRV,Srv; + DNS_NAPTR_DATAA NAPTR,Naptr; + DNS_OPT_DATA OPT,Opt; + DNS_DS_DATA DS,Ds; + DNS_RRSIG_DATAA RRSIG,Rrsig; + DNS_NSEC_DATAA NSEC,Nsec; + DNS_DNSKEY_DATA DNSKEY,Dnskey; DNS_TKEY_DATAA TKEY,Tkey; DNS_TSIG_DATAA TSIG,Tsig; DNS_WINS_DATA WINS,Wins; DNS_WINSR_DATAA WINSR,WinsR,NBSTAT,Nbstat; + DNS_DHCID_DATA DHCID; + DNS_NSEC3_DATA NSEC3,Nsec3; + DNS_NSEC3PARAM_DATA NSEC3PARAM,Nsec3Param; + DNS_TLSA_DATA TLSA,Tlsa; + DNS_UNKNOWN_DATA UNKNOWN,Unknown; + PBYTE pDataPtr; } Data; } DNS_RECORDA,*PDNS_RECORDA; + typedef struct _DnsRecordOptA { + struct _DnsRecordA *pNext; + PSTR pName; + WORD wType; + WORD wDataLength; + union { + DWORD DW; + DNS_RECORD_FLAGS S; + } Flags; + DNS_HEADER_EXT ExtHeader; + WORD wPayloadSize; + WORD wReserved; + union { + DNS_OPT_DATA OPT, Opt; + } Data; + } DNS_RECORD_OPTA, *PDNS_RECORD_OPTA; + #ifdef UNICODE typedef DNS_RECORDW DNS_RECORD, *PDNS_RECORD; + typedef DNS_RECORD_OPTW DNS_RECORD_OPT, *PDNS_RECORD_OPT; #else typedef DNS_RECORDA DNS_RECORD, *PDNS_RECORD; + typedef DNS_RECORD_OPTA DNS_RECORD_OPT, *PDNS_RECORD_OPT; #endif #define DNS_RECORD_FIXED_SIZE FIELD_OFFSET(DNS_RECORD,Data) @@ -731,6 +947,21 @@ extern "C" { #define DNS_RRSET_ADD(rrset,pnewRR) { PDNS_RRSET _prrset = &(rrset); PDNS_RECORD _prrnew = (pnewRR); _prrset->pLastRR->pNext = _prrnew; _prrset->pLastRR = _prrnew; } #define DNS_RRSET_TERMINATE(rrset) { PDNS_RRSET _prrset = &(rrset); _prrset->pLastRR->pNext = NULL; } + typedef VOID (WINAPI *DNS_PROXY_COMPLETION_ROUTINE)(void *completionContext,DNS_STATUS status); + + typedef enum DNS_PROXY_INFORMATION_TYPE { + DNS_PROXY_INFORMATION_DIRECT, + DNS_PROXY_INFORMATION_DEFAULT_SETTINGS, + DNS_PROXY_INFORMATION_PROXY_NAME, + DNS_PROXY_INFORMATION_DOES_NOT_EXIST + } DNS_PROXY_INFORMATION_TYPE; + + typedef struct DNS_PROXY_INFORMATION { + ULONG version; + DNS_PROXY_INFORMATION_TYPE proxyInformationType; + PWSTR proxyName; + } DNS_PROXY_INFORMATION; + typedef enum _DNS_CHARSET { DnsCharSetUnknown,DnsCharSetUnicode,DnsCharSetUtf8,DnsCharSetAnsi } DNS_CHARSET; @@ -779,8 +1010,14 @@ extern "C" { #define DNS_QUERY_NO_MULTICAST 0x00000800 #define DNS_QUERY_TREAT_AS_FQDN 0x00001000 #define DNS_QUERY_APPEND_MULTILABEL 0x00800000 +#define DNS_QUERY_ADDRCONFIG 0x00002000 +#define DNS_QUERY_DUAL_ADDR 0x00004000 #define DNS_QUERY_DONT_RESET_TTL_VALUES 0x00100000 -#define DNS_QUERY_RESERVED 0xff000000 +#define DNS_QUERY_DISABLE_IDN_ENCODING 0x00200000 +#define DNS_QUERY_APPEND_MULTILABEL 0x00800000 +#define DNS_QUERY_DNSSEC_OK 0x01000000 +#define DNS_QUERY_DNSSEC_CHECKING_DISABLED 0x02000000 +#define DNS_QUERY_RESERVED 0xf0000000 #define DNS_QUERY_CACHE_ONLY DNS_QUERY_NO_WIRE_QUERY DNS_STATUS WINAPI DnsQuery_A(PCSTR pszName,WORD wType,DWORD Options,PIP4_ARRAY aipServers,PDNS_RECORD *ppQueryResults,PVOID *pReserved); @@ -789,6 +1026,24 @@ extern "C" { #define DnsQuery __MINGW_NAME_UAW(DnsQuery) +#if !defined (USE_PRIVATE_DNS_ADDR) || defined (MIDL_PASS) || defined (__WIDL__) +#define DNS_QUERY_REQUEST_VERSION1 0x1 +#define DNS_QUERY_REQUEST_VERSION2 0x2 +#endif + +#define DNS_QUERY_RESULTS_VERSION1 0x1 + + typedef struct _DNS_QUERY_RESULT { + ULONG Version; + DNS_STATUS QueryStatus; + ULONG64 QueryOptions; + PDNS_RECORD pQueryRecords; + PVOID Reserved; + } DNS_QUERY_RESULT, *PDNS_QUERY_RESULT; + + typedef VOID WINAPI DNS_QUERY_COMPLETION_ROUTINE(PVOID pQueryContext,PDNS_QUERY_RESULT pQueryResults); + typedef DNS_QUERY_COMPLETION_ROUTINE *PDNS_QUERY_COMPLETION_ROUTINE; + #define DNS_UPDATE_SECURITY_USE_DEFAULT 0x00000000 #define DNS_UPDATE_SECURITY_OFF 0x00000010 #define DNS_UPDATE_SECURITY_ON 0x00000020 @@ -818,12 +1073,33 @@ extern "C" { DNS_STATUS WINAPI DnsReplaceRecordSetUTF8(PDNS_RECORDA pNewSet,DWORD Options,HANDLE hContext,PIP4_ARRAY pServerList,PVOID pReserved); typedef enum _DNS_NAME_FORMAT { - DnsNameDomain,DnsNameDomainLabel,DnsNameHostnameFull,DnsNameHostnameLabel,DnsNameWildcard,DnsNameSrvRecord + DnsNameDomain, + DnsNameDomainLabel, + DnsNameHostnameFull, + DnsNameHostnameLabel, + DnsNameWildcard, + DnsNameSrvRecord, + DnsNameValidateTld } DNS_NAME_FORMAT; DNS_STATUS DnsValidateName_UTF8(LPCSTR pszName,DNS_NAME_FORMAT Format); DNS_STATUS DnsValidateName_W(LPCWSTR pwszName,DNS_NAME_FORMAT Format); DNS_STATUS DnsValidateName_A(LPCSTR pszName,DNS_NAME_FORMAT Format); + +#define DNS_VALSVR_ERROR_INVALID_ADDR 0x01 +#define DNS_VALSVR_ERROR_INVALID_NAME 0x02 +#define DNS_VALSVR_ERROR_UNREACHABLE 0x03 +#define DNS_VALSVR_ERROR_NO_RESPONSE 0x04 +#define DNS_VALSVR_ERROR_NO_AUTH 0x05 +#define DNS_VALSVR_ERROR_REFUSED 0x06 + +#define DNS_VALSVR_ERROR_NO_TCP 0x10 +#define DNS_VALSVR_ERROR_UNKNOWN 0xFF + +#ifdef _WS2DEF_ + DNS_STATUS DnsValidateServerStatus(PSOCKADDR server,PCWSTR queryName,PDWORD serverStatus); +#endif + WINBOOL WINAPI DnsNameCompare_A(LPSTR pName1,LPSTR pName2); WINBOOL WINAPI DnsNameCompare_W(LPWSTR pName1,LPWSTR pName2); @@ -837,6 +1113,234 @@ extern "C" { DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W(PDNS_MESSAGE_BUFFER pDnsBuffer,WORD wMessageLength,PDNS_RECORD *ppRecord); DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8(PDNS_MESSAGE_BUFFER pDnsBuffer,WORD wMessageLength,PDNS_RECORDA *ppRecord); + DWORD WINAPI DnsGetProxyInformation(PCWSTR hostName,DNS_PROXY_INFORMATION *proxyInformation,DNS_PROXY_INFORMATION *defaultProxyInformation,DNS_PROXY_COMPLETION_ROUTINE completionRoutine,void *completionContext); + VOID WINAPI DnsFreeProxyName(PWSTR proxyName); + +#define DNS_CONNECTION_NAME_MAX_LENGTH 64 +#define DNS_CONNECTION_PROXY_INFO_CURRENT_VERSION 1 +#define DNS_CONNECTION_PROXY_INFO_SERVER_MAX_LENGTH 256 +#define DNS_CONNECTION_PROXY_INFO_FRIENDLY_NAME_MAX_LENGTH 64 +#define DNS_CONNECTION_PROXY_INFO_USERNAME_MAX_LENGTH 128 +#define DNS_CONNECTION_PROXY_INFO_PASSWORD_MAX_LENGTH 128 +#define DNS_CONNECTION_PROXY_INFO_EXCEPTION_MAX_LENGTH 1024 +#define DNS_CONNECTION_PROXY_INFO_EXTRA_INFO_MAX_LENGTH 1024 + + typedef enum _DNS_CONNECTION_PROXY_TYPE { + DNS_CONNECTION_PROXY_TYPE_NULL = 0, + DNS_CONNECTION_PROXY_TYPE_HTTP = 1, + DNS_CONNECTION_PROXY_TYPE_WAP = 2, + DNS_CONNECTION_PROXY_TYPE_SOCKS4 = 4, + DNS_CONNECTION_PROXY_TYPE_SOCKS5 = 5 + } DNS_CONNECTION_PROXY_TYPE; + + typedef enum _DNS_CONNECTION_PROXY_INFO_SWITCH { + DNS_CONNECTION_PROXY_INFO_SWITCH_CONFIG = 0, + DNS_CONNECTION_PROXY_INFO_SWITCH_SCRIPT, + DNS_CONNECTION_PROXY_INFO_SWITCH_WPAD + } DNS_CONNECTION_PROXY_INFO_SWITCH; + +#define DNS_CONNECTION_PROXY_INFO_FLAG_DISABLED 0x1 +#define DNS_CONNECTION_PROXY_INFO_FLAG_BYPASSLOCAL 0x2 + + struct _DNS_CONNECTION_PROXY_INFO_CONFIG { + WCHAR *pwszServer; + WCHAR *pwszUsername; + WCHAR *pwszPassword; + WCHAR *pwszException; + WCHAR *pwszExtraInfo; + WORD Port; + }; + + struct _DNS_CONNECTION_PROXY_INFO_SCRIPT { + WCHAR *pwszScript; + WCHAR *pwszUsername; + WCHAR *pwszPassword; + }; + + typedef struct _DNS_CONNECTION_PROXY_INFO { + DWORD Version; + WCHAR *pwszFriendlyName; + DWORD Flags; + DNS_CONNECTION_PROXY_INFO_SWITCH Switch; + __C89_NAMELESS union { + struct _DNS_CONNECTION_PROXY_INFO_CONFIG Config; + struct _DNS_CONNECTION_PROXY_INFO_SCRIPT Script; + }; + } DNS_CONNECTION_PROXY_INFO, *PDNS_CONNECTION_PROXY_INFO; + + typedef struct _DNS_CONNECTION_PROXY_INFO_EX { + DNS_CONNECTION_PROXY_INFO ProxyInfo; + DWORD dwInterfaceIndex; + WCHAR *pwszConnectionName; + WINBOOL fDirectConfiguration; + HANDLE hConnection; + } DNS_CONNECTION_PROXY_INFO_EX, *PDNS_CONNECTION_PROXY_INFO_EX; + + typedef struct _DNS_CONNECTION_PROXY_ELEMENT { + DNS_CONNECTION_PROXY_TYPE Type; + DNS_CONNECTION_PROXY_INFO Info; + } DNS_CONNECTION_PROXY_ELEMENT; + + typedef struct _DNS_CONNECTION_PROXY_LIST { + DWORD cProxies; + DNS_CONNECTION_PROXY_ELEMENT *pProxies; + } DNS_CONNECTION_PROXY_LIST; + + typedef struct _DNS_CONNECTION_NAME { + WCHAR wszName[DNS_CONNECTION_NAME_MAX_LENGTH + 1]; + } DNS_CONNECTION_NAME; + + typedef struct _DNS_CONNECTION_NAME_LIST { + DWORD cNames; + DNS_CONNECTION_NAME *pNames; + } DNS_CONNECTION_NAME_LIST; + + DWORD DnsConnectionGetProxyInfoForHostUrl(PCWSTR pwszHostUrl,BYTE *pSelectionContext,DWORD dwSelectionContextLength,DWORD dwExplicitInterfaceIndex,DNS_CONNECTION_PROXY_INFO_EX *pProxyInfoEx); + VOID DnsConnectionFreeProxyInfoEx(DNS_CONNECTION_PROXY_INFO_EX *pProxyInfoEx); + DWORD DnsConnectionGetProxyInfo(PCWSTR pwszConnectionName,DNS_CONNECTION_PROXY_TYPE Type,DNS_CONNECTION_PROXY_INFO *pProxyInfo); + VOID DnsConnectionFreeProxyInfo(DNS_CONNECTION_PROXY_INFO *pProxyInfo); + DWORD DnsConnectionSetProxyInfo(PCWSTR pwszConnectionName,DNS_CONNECTION_PROXY_TYPE Type,const DNS_CONNECTION_PROXY_INFO *pProxyInfo); + DWORD DnsConnectionDeleteProxyInfo(PCWSTR pwszConnectionName,DNS_CONNECTION_PROXY_TYPE Type); + DWORD DnsConnectionGetProxyList(PCWSTR pwszConnectionName,DNS_CONNECTION_PROXY_LIST *pProxyList); + VOID DnsConnectionFreeProxyList(DNS_CONNECTION_PROXY_LIST *pProxyList); + DWORD DnsConnectionGetNameList(DNS_CONNECTION_NAME_LIST *pNameList); + VOID DnsConnectionFreeNameList(DNS_CONNECTION_NAME_LIST *pNameList); + + typedef struct _DNS_CONNECTION_IFINDEX_ENTRY { + PCWSTR pwszConnectionName; + DWORD dwIfIndex; + } DNS_CONNECTION_IFINDEX_ENTRY; + + typedef struct _DNS_CONNECTION_IFINDEX_LIST { + DNS_CONNECTION_IFINDEX_ENTRY *pConnectionIfIndexEntries; + DWORD nEntries; + } DNS_CONNECTION_IFINDEX_LIST; + + DWORD DnsConnectionUpdateIfIndexTable(DNS_CONNECTION_IFINDEX_LIST *pConnectionIfIndexEntries); + +#define DNS_CONNECTION_POLICY_ENTRY_ONDEMAND 0x00000001 + + typedef struct _DNS_CONNECTION_POLICY_ENTRY { + PCWSTR pwszHost; + PCWSTR pwszAppId; + DWORD cbAppSid; + PBYTE pbAppSid; + DWORD nConnections; + PCWSTR *ppwszConnections; + DWORD dwPolicyEntryFlags; + } DNS_CONNECTION_POLICY_ENTRY, *PDNS_CONNECTION_POLICY_ENTRY; + + typedef struct _DNS_CONNECTION_POLICY_ENTRY_LIST { + DNS_CONNECTION_POLICY_ENTRY *pPolicyEntries; + DWORD nEntries; + } DNS_CONNECTION_POLICY_ENTRY_LIST; + + typedef enum { + TAG_DNS_CONNECTION_POLICY_TAG_DEFAULT = 0, + TAG_DNS_CONNECTION_POLICY_TAG_CONNECTION_MANAGER, + TAG_DNS_CONNECTION_POLICY_TAG_WWWPT + } DNS_CONNECTION_POLICY_TAG; + + DWORD DnsConnectionSetPolicyEntries(DNS_CONNECTION_POLICY_TAG PolicyEntryTag,DNS_CONNECTION_POLICY_ENTRY_LIST *pPolicyEntryList); + DWORD DnsConnectionDeletePolicyEntries(DNS_CONNECTION_POLICY_TAG PolicyEntryTag); + + typedef struct _DNS_SERVICE_INSTANCE { + LPWSTR pszInstanceName; + LPWSTR pszHostName; + IP4_ADDRESS *ip4Address; + IP6_ADDRESS *ip6Address; + WORD wPort; + WORD wPriority; + WORD wWeight; + DWORD dwPropertyCount; + PWSTR *keys; + PWSTR *values; + DWORD dwInterfaceIndex; + } DNS_SERVICE_INSTANCE, *PDNS_SERVICE_INSTANCE; + + PDNS_SERVICE_INSTANCE WINAPI DnsServiceConstructInstance(PCWSTR pServiceName,PCWSTR pHostName,PIP4_ADDRESS pIp4,PIP6_ADDRESS pIp6,WORD wPort,WORD wPriority,WORD wWeight,DWORD dwPropertiesCount,PCWSTR *keys,PCWSTR *values); + PDNS_SERVICE_INSTANCE WINAPI DnsServiceCopyInstance(PDNS_SERVICE_INSTANCE pOrig); + VOID WINAPI DnsServiceFreeInstance(PDNS_SERVICE_INSTANCE pInstance); + + typedef struct _DNS_SERVICE_CANCEL { + PVOID reserved; + } DNS_SERVICE_CANCEL, *PDNS_SERVICE_CANCEL; + + typedef VOID WINAPI DNS_SERVICE_BROWSE_CALLBACK(DWORD Status,PVOID pQueryContext,PDNS_RECORD pDnsRecord); + typedef DNS_SERVICE_BROWSE_CALLBACK *PDNS_SERVICE_BROWSE_CALLBACK; + + typedef struct _DNS_SERVICE_BROWSE_REQUEST { + ULONG Version; + ULONG InterfaceIndex; + PCWSTR QueryName; + __C89_NAMELESS union { + PDNS_SERVICE_BROWSE_CALLBACK pBrowseCallback; + DNS_QUERY_COMPLETION_ROUTINE *pBrowseCallbackV2; + }; + PVOID pQueryContext; + } DNS_SERVICE_BROWSE_REQUEST, *PDNS_SERVICE_BROWSE_REQUEST; + + DNS_STATUS WINAPI DnsServiceBrowse(PDNS_SERVICE_BROWSE_REQUEST pRequest,PDNS_SERVICE_CANCEL pCancel); + DNS_STATUS WINAPI DnsServiceBrowseCancel(PDNS_SERVICE_CANCEL pCancelHandle); + + typedef VOID WINAPI DNS_SERVICE_RESOLVE_COMPLETE(DWORD Status,PVOID pQueryContext,PDNS_SERVICE_INSTANCE pInstance); + typedef DNS_SERVICE_RESOLVE_COMPLETE *PDNS_SERVICE_RESOLVE_COMPLETE; + + typedef struct _DNS_SERVICE_RESOLVE_REQUEST{ + ULONG Version; + ULONG InterfaceIndex; + PWSTR QueryName; + PDNS_SERVICE_RESOLVE_COMPLETE pResolveCompletionCallback; + PVOID pQueryContext; + } DNS_SERVICE_RESOLVE_REQUEST, *PDNS_SERVICE_RESOLVE_REQUEST; + + DNS_STATUS WINAPI DnsServiceResolve(PDNS_SERVICE_RESOLVE_REQUEST pRequest,PDNS_SERVICE_CANCEL pCancel); + DNS_STATUS WINAPI DnsServiceResolveCancel(PDNS_SERVICE_CANCEL pCancelHandle); + + typedef VOID WINAPI DNS_SERVICE_REGISTER_COMPLETE(DWORD Status,PVOID pQueryContext,PDNS_SERVICE_INSTANCE pInstance); + typedef DNS_SERVICE_REGISTER_COMPLETE *PDNS_SERVICE_REGISTER_COMPLETE; + + typedef struct _DNS_SERVICE_REGISTER_REQUEST{ + ULONG Version; + ULONG InterfaceIndex; + PDNS_SERVICE_INSTANCE pServiceInstance; + PDNS_SERVICE_REGISTER_COMPLETE pRegisterCompletionCallback; + PVOID pQueryContext; + HANDLE hCredentials; + WINBOOL unicastEnabled; + } DNS_SERVICE_REGISTER_REQUEST, *PDNS_SERVICE_REGISTER_REQUEST; + + DWORD WINAPI DnsServiceRegister(PDNS_SERVICE_REGISTER_REQUEST pRequest,PDNS_SERVICE_CANCEL pCancel); + DWORD WINAPI DnsServiceDeRegister(PDNS_SERVICE_REGISTER_REQUEST pRequest,PDNS_SERVICE_CANCEL pCancel); + DWORD WINAPI DnsServiceRegisterCancel(PDNS_SERVICE_CANCEL pCancelHandle); + + typedef struct _MDNS_QUERY_HANDLE { + WCHAR nameBuf[DNS_MAX_NAME_BUFFER_LENGTH]; + WORD wType; + PVOID pSubscription; + PVOID pWnfCallbackParams; + ULONG stateNameData[2]; + } MDNS_QUERY_HANDLE, *PMDNS_QUERY_HANDLE; + + typedef VOID WINAPI MDNS_QUERY_CALLBACK(PVOID pQueryContext,PMDNS_QUERY_HANDLE pQueryHandle,PDNS_QUERY_RESULT pQueryResults); + typedef MDNS_QUERY_CALLBACK *PMDNS_QUERY_CALLBACK; + + typedef struct _MDNS_QUERY_REQUEST { + ULONG Version; + ULONG ulRefCount; + PCWSTR Query; + WORD QueryType; + ULONG64 QueryOptions; + ULONG InterfaceIndex; + PMDNS_QUERY_CALLBACK pQueryCallback; + PVOID pQueryContext; + WINBOOL fAnswerReceived; + ULONG ulResendCount; + } MDNS_QUERY_REQUEST, *PMDNS_QUERY_REQUEST; + + DNS_STATUS WINAPI DnsStartMulticastQuery(PMDNS_QUERY_REQUEST pQueryRequest,PMDNS_QUERY_HANDLE pHandle); + DNS_STATUS WINAPI DnsStopMulticastQuery(PMDNS_QUERY_HANDLE pHandle); + #ifdef __cplusplus } #endif diff --git a/lib/libc/include/any-windows-any/windows.foundation.collections.h b/lib/libc/include/any-windows-any/windows.foundation.collections.h index 591bf1fc37..ef4f586158 100644 --- a/lib/libc/include/any-windows-any/windows.foundation.collections.h +++ b/lib/libc/include/any-windows-any/windows.foundation.collections.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.foundation.collections.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.foundation.collections.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -79,6 +79,22 @@ namespace ABI { namespace Windows { namespace Foundation { namespace Collections { + template <class K, class V> + struct IMapView_impl; + + template <class K, class V> + struct IMapView : IMapView_impl<K, V> {}; + } + } + } +} +#endif + +#if defined(__cplusplus) && !defined(CINTERFACE) +namespace ABI { + namespace Windows { + namespace Foundation { + namespace Collections { template <class T> struct IIterator_impl; @@ -238,6 +254,35 @@ namespace ABI { namespace Windows { namespace Foundation { namespace Collections { + template <class K, class V> + struct IMapView_impl : IInspectable + { + private: + typedef typename Windows::Foundation::Internal::GetAbiType<K>::type K_abi; + typedef typename Windows::Foundation::Internal::GetLogicalType<K>::type K_logical; + typedef typename Windows::Foundation::Internal::GetAbiType<V>::type V_abi; + typedef typename Windows::Foundation::Internal::GetLogicalType<V>::type V_logical; + public: + typedef K K_complex; + typedef V V_complex; + virtual HRESULT STDMETHODCALLTYPE Lookup(K_abi key,V_abi *value) = 0; + virtual HRESULT STDMETHODCALLTYPE get_Size(unsigned int *size) = 0; + virtual HRESULT STDMETHODCALLTYPE HasKey(K_abi key,boolean *found) = 0; + virtual HRESULT STDMETHODCALLTYPE Split(IMapView<K_logical, V_logical> **first,IMapView<K_logical, V_logical> **second) = 0; + }; + } + } + } +} +extern "C" { +#endif + +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + namespace Collections { template <class T> struct IIterator_impl : IInspectable { diff --git a/lib/libc/include/any-windows-any/windows.foundation.h b/lib/libc/include/any-windows-any/windows.foundation.h index 95486f952f..97e028b896 100644 --- a/lib/libc/include/any-windows-any/windows.foundation.h +++ b/lib/libc/include/any-windows-any/windows.foundation.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.foundation.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.foundation.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -33,6 +33,21 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable; +#ifdef __cplusplus +#define __x_ABI_CWindows_CFoundation_CIClosable ABI::Windows::Foundation::IClosable +namespace ABI { + namespace Windows { + namespace Foundation { + interface IClosable; + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__ #define ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__ typedef interface __FIAsyncOperationCompletedHandler_1_boolean __FIAsyncOperationCompletedHandler_1_boolean; @@ -68,6 +83,78 @@ typedef interface __FIVectorView_1_HSTRING __FIVectorView_1_HSTRING; extern "C" { #endif +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef enum PropertyType PropertyType; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CFoundation_CPropertyType __x_ABI_CWindows_CFoundation_CPropertyType; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef struct Point Point; + } + } +} +#else /* __cplusplus */ +typedef struct __x_ABI_CWindows_CFoundation_CPoint __x_ABI_CWindows_CFoundation_CPoint; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef struct Size Size; + } + } +} +#else /* __cplusplus */ +typedef struct __x_ABI_CWindows_CFoundation_CSize __x_ABI_CWindows_CFoundation_CSize; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef struct Rect Rect; + } + } +} +#else /* __cplusplus */ +typedef struct __x_ABI_CWindows_CFoundation_CRect __x_ABI_CWindows_CFoundation_CRect; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef struct DateTime DateTime; + } + } +} +#else /* __cplusplus */ +typedef struct __x_ABI_CWindows_CFoundation_CDateTime __x_ABI_CWindows_CFoundation_CDateTime; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Foundation { + typedef struct TimeSpan TimeSpan; + } + } +} +#else /* __cplusplus */ +typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan; +#endif /* __cplusplus */ + #if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 #ifdef __cplusplus } /* extern "C" */ @@ -422,6 +509,131 @@ static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_ToString(__ #endif /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */ #endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ +/***************************************************************************** + * IClosable interface + */ +#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CFoundation_CIClosable_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIClosable, 0x30d5a829, 0x7fa4, 0x4026, 0x83,0xbb, 0xd7,0x5b,0xae,0x4e,0xa9,0x9e); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + MIDL_INTERFACE("30d5a829-7fa4-4026-83bb-d75bae4ea99e") + IClosable : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE Close( + ) = 0; + + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIClosable, 0x30d5a829, 0x7fa4, 0x4026, 0x83,0xbb, 0xd7,0x5b,0xae,0x4e,0xa9,0x9e) +#endif +#else +typedef struct __x_ABI_CWindows_CFoundation_CIClosableVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CFoundation_CIClosable *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CFoundation_CIClosable *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CFoundation_CIClosable *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CFoundation_CIClosable *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CFoundation_CIClosable *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CFoundation_CIClosable *This, + TrustLevel *trustLevel); + + /*** IClosable methods ***/ + HRESULT (STDMETHODCALLTYPE *Close)( + __x_ABI_CWindows_CFoundation_CIClosable *This); + + END_INTERFACE +} __x_ABI_CWindows_CFoundation_CIClosableVtbl; + +interface __x_ABI_CWindows_CFoundation_CIClosable { + CONST_VTBL __x_ABI_CWindows_CFoundation_CIClosableVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CFoundation_CIClosable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CFoundation_CIClosable_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CFoundation_CIClosable_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CFoundation_CIClosable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CFoundation_CIClosable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CFoundation_CIClosable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IClosable methods ***/ +#define __x_ABI_CWindows_CFoundation_CIClosable_Close(This) (This)->lpVtbl->Close(This) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_QueryInterface(__x_ABI_CWindows_CFoundation_CIClosable* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIClosable_AddRef(__x_ABI_CWindows_CFoundation_CIClosable* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIClosable_Release(__x_ABI_CWindows_CFoundation_CIClosable* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_GetIids(__x_ABI_CWindows_CFoundation_CIClosable* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIClosable* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIClosable* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IClosable methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIClosable_Close(__x_ABI_CWindows_CFoundation_CIClosable* This) { + return This->lpVtbl->Close(This); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IClosable IID___x_ABI_CWindows_CFoundation_CIClosable +#define IClosableVtbl __x_ABI_CWindows_CFoundation_CIClosableVtbl +#define IClosable __x_ABI_CWindows_CFoundation_CIClosable +#define IClosable_QueryInterface __x_ABI_CWindows_CFoundation_CIClosable_QueryInterface +#define IClosable_AddRef __x_ABI_CWindows_CFoundation_CIClosable_AddRef +#define IClosable_Release __x_ABI_CWindows_CFoundation_CIClosable_Release +#define IClosable_GetIids __x_ABI_CWindows_CFoundation_CIClosable_GetIids +#define IClosable_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIClosable_GetRuntimeClassName +#define IClosable_GetTrustLevel __x_ABI_CWindows_CFoundation_CIClosable_GetTrustLevel +#define IClosable_Close __x_ABI_CWindows_CFoundation_CIClosable_Close +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CFoundation_CIClosable_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */ + #ifndef ____FIAsyncOperation_1_boolean_FWD_DEFINED__ #define ____FIAsyncOperation_1_boolean_FWD_DEFINED__ typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean; diff --git a/lib/libc/include/any-windows-any/windows.media.h b/lib/libc/include/any-windows-any/windows.media.h new file mode 100644 index 0000000000..3319fe0d7f --- /dev/null +++ b/lib/libc/include/any-windows-any/windows.media.h @@ -0,0 +1,223 @@ +/*** Autogenerated by WIDL 7.0 from include/windows.media.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __windows_media_h__ +#define __windows_media_h__ + +/* Forward declarations */ + +#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CIMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CIMediaMarker ABI::Windows::Media::IMediaMarker +namespace ABI { + namespace Windows { + namespace Media { + interface IMediaMarker; + } + } +} +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <inspectable.h> +#include <windows.foundation.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef ____x_ABI_CWindows_CMedia_CIMediaControl_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CIMediaControl_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CIMediaControl __x_ABI_CWindows_CMedia_CIMediaControl; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CIMediaControl ABI::Windows::Media::IMediaControl +namespace ABI { + namespace Windows { + namespace Media { + interface IMediaControl; + } + } +} +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IMediaMarker interface + */ +#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CIMediaMarker, 0x1803def8, 0xdca5, 0x4b6f, 0x9c,0x20, 0xe3,0xd3,0xc0,0x64,0x36,0x25); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Media { + MIDL_INTERFACE("1803def8-dca5-4b6f-9c20-e3d3c0643625") + IMediaMarker : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE get_Time( + struct TimeSpan *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_MediaMarkerType( + HSTRING *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Text( + HSTRING *value) = 0; + + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CIMediaMarker, 0x1803def8, 0xdca5, 0x4b6f, 0x9c,0x20, 0xe3,0xd3,0xc0,0x64,0x36,0x25) +#endif +#else +typedef struct __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + TrustLevel *trustLevel); + + /*** IMediaMarker methods ***/ + HRESULT (STDMETHODCALLTYPE *get_Time)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + struct __x_ABI_CWindows_CFoundation_CTimeSpan *value); + + HRESULT (STDMETHODCALLTYPE *get_MediaMarkerType)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + HSTRING *value); + + HRESULT (STDMETHODCALLTYPE *get_Text)( + __x_ABI_CWindows_CMedia_CIMediaMarker *This, + HSTRING *value); + + END_INTERFACE +} __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl; + +interface __x_ABI_CWindows_CMedia_CIMediaMarker { + CONST_VTBL __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IMediaMarker methods ***/ +#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time(This,value) (This)->lpVtbl->get_Time(This,value) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType(This,value) (This)->lpVtbl->get_MediaMarkerType(This,value) +#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text(This,value) (This)->lpVtbl->get_Text(This,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface(__x_ABI_CWindows_CMedia_CIMediaMarker* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef(__x_ABI_CWindows_CMedia_CIMediaMarker* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CIMediaMarker_Release(__x_ABI_CWindows_CMedia_CIMediaMarker* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids(__x_ABI_CWindows_CMedia_CIMediaMarker* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel(__x_ABI_CWindows_CMedia_CIMediaMarker* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IMediaMarker methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time(__x_ABI_CWindows_CMedia_CIMediaMarker* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) { + return This->lpVtbl->get_Time(This,value); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *value) { + return This->lpVtbl->get_MediaMarkerType(This,value); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *value) { + return This->lpVtbl->get_Text(This,value); +} +#endif +#ifdef WIDL_using_Windows_Media +#define IID_IMediaMarker IID___x_ABI_CWindows_CMedia_CIMediaMarker +#define IMediaMarkerVtbl __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl +#define IMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker +#define IMediaMarker_QueryInterface __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface +#define IMediaMarker_AddRef __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef +#define IMediaMarker_Release __x_ABI_CWindows_CMedia_CIMediaMarker_Release +#define IMediaMarker_GetIids __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids +#define IMediaMarker_GetRuntimeClassName __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName +#define IMediaMarker_GetTrustLevel __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel +#define IMediaMarker_get_Time __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time +#define IMediaMarker_get_MediaMarkerType __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType +#define IMediaMarker_get_Text __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text +#endif /* WIDL_using_Windows_Media */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ + +/* Begin additional prototypes for all interfaces */ + +ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *); +unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *); +unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *); +void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *); + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __windows_media_h__ */ diff --git a/lib/libc/include/any-windows-any/windows.media.speechsynthesis.h b/lib/libc/include/any-windows-any/windows.media.speechsynthesis.h index 51b8b8fcf9..e94d74598a 100644 --- a/lib/libc/include/any-windows-any/windows.media.speechsynthesis.h +++ b/lib/libc/include/any-windows-any/windows.media.speechsynthesis.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.media.speechsynthesis.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.media.speechsynthesis.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -18,6 +18,40 @@ /* Forward declarations */ +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + interface ISpeechSynthesisStream; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesizer +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + interface ISpeechSynthesizer; + } + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__ #define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation; @@ -69,6 +103,23 @@ typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation __x_AB #endif /* defined __cplusplus */ #endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation_FWD_DEFINED__ */ +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__ +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + class SpeechSynthesisStream; + } + } + } +} +#else +typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream; +#endif /* defined __cplusplus */ +#endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__ */ + #ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__ #define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__ #ifdef __cplusplus @@ -110,10 +161,35 @@ typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInfo #endif /* __cplusplus */ #endif +#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__ +#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__ +typedef interface __FIVectorView_1_Windows__CMedia__CIMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker; +#ifdef __cplusplus +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::IMediaMarker* > +#endif /* __cplusplus */ +#endif + +#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +typedef interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream; +#ifdef __cplusplus +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > +#endif /* __cplusplus */ +#endif + +#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream; +#ifdef __cplusplus +#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <inspectable.h> #include <windows.foundation.h> +#include <windows.media.h> #ifdef __cplusplus extern "C" { @@ -134,6 +210,20 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + typedef enum VoiceGender VoiceGender; + } + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender; +#endif /* __cplusplus */ + #ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__ #define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic; @@ -219,6 +309,123 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + interface ISpeechSynthesisStream; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__ +#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType; +#ifdef __cplusplus +#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType ABI::Windows::Storage::Streams::IRandomAccessStreamWithContentType +namespace ABI { + namespace Windows { + namespace Storage { + namespace Streams { + interface IRandomAccessStreamWithContentType; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream; +#ifdef __cplusplus +#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream ABI::Windows::Storage::Streams::IRandomAccessStream +namespace ABI { + namespace Windows { + namespace Storage { + namespace Streams { + interface IRandomAccessStream; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CStorage_CStreams_CIInputStream __x_ABI_CWindows_CStorage_CStreams_CIInputStream; +#ifdef __cplusplus +#define __x_ABI_CWindows_CStorage_CStreams_CIInputStream ABI::Windows::Storage::Streams::IInputStream +namespace ABI { + namespace Windows { + namespace Storage { + namespace Streams { + interface IInputStream; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__ +#define ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CStorage_CStreams_CIOutputStream __x_ABI_CWindows_CStorage_CStreams_CIOutputStream; +#ifdef __cplusplus +#define __x_ABI_CWindows_CStorage_CStreams_CIOutputStream ABI::Windows::Storage::Streams::IOutputStream +namespace ABI { + namespace Windows { + namespace Storage { + namespace Streams { + interface IOutputStream; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__ +#define ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider; +#ifdef __cplusplus +#define __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider ABI::Windows::Storage::Streams::IContentTypeProvider +namespace ABI { + namespace Windows { + namespace Storage { + namespace Streams { + interface IContentTypeProvider; + } + } + } +} +#endif /* __cplusplus */ +#endif + +#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__ +typedef interface __x_ABI_CWindows_CMedia_CIMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker; +#ifdef __cplusplus +#define __x_ABI_CWindows_CMedia_CIMediaMarker ABI::Windows::Media::IMediaMarker +namespace ABI { + namespace Windows { + namespace Media { + interface IMediaMarker; + } + } +} +#endif /* __cplusplus */ +#endif + #ifndef ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__ #define ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__ typedef interface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation; @@ -243,6 +450,22 @@ typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInfo #endif /* __cplusplus */ #endif +#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__ +#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__ +typedef interface __FIVectorView_1_Windows__CMedia__CIMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker; +#ifdef __cplusplus +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::IMediaMarker* > +#endif /* __cplusplus */ +#endif + +#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__ +typedef interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream; +#ifdef __cplusplus +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > +#endif /* __cplusplus */ +#endif + #if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 #ifdef __cplusplus } /* extern "C" */ @@ -271,6 +494,302 @@ enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender { #endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ /***************************************************************************** + * ISpeechSynthesisStream interface + */ +#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream, 0x83e46e93, 0x244c, 0x4622, 0xba,0x0b, 0x62,0x29,0xc4,0xd0,0xd6,0x5d); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + MIDL_INTERFACE("83e46e93-244c-4622-ba0b-6229c4d0d65d") + ISpeechSynthesisStream : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE get_Markers( + ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::IMediaMarker* > **value) = 0; + + }; + } + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream, 0x83e46e93, 0x244c, 0x4622, 0xba,0x0b, 0x62,0x29,0xc4,0xd0,0xd6,0x5d) +#endif +#else +typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This, + TrustLevel *trustLevel); + + /*** ISpeechSynthesisStream methods ***/ + HRESULT (STDMETHODCALLTYPE *get_Markers)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This, + __FIVectorView_1_Windows__CMedia__CIMediaMarker **value); + + END_INTERFACE +} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl; + +interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream { + CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** ISpeechSynthesisStream methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers(This,value) (This)->lpVtbl->get_Markers(This,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** ISpeechSynthesisStream methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,__FIVectorView_1_Windows__CMedia__CIMediaMarker **value) { + return This->lpVtbl->get_Markers(This,value); +} +#endif +#ifdef WIDL_using_Windows_Media_SpeechSynthesis +#define IID_ISpeechSynthesisStream IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream +#define ISpeechSynthesisStreamVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl +#define ISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream +#define ISpeechSynthesisStream_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface +#define ISpeechSynthesisStream_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef +#define ISpeechSynthesisStream_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release +#define ISpeechSynthesisStream_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids +#define ISpeechSynthesisStream_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName +#define ISpeechSynthesisStream_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel +#define ISpeechSynthesisStream_get_Markers __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers +#endif /* WIDL_using_Windows_Media_SpeechSynthesis */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ + +/***************************************************************************** + * ISpeechSynthesizer interface + */ +#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 +#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__ +#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer, 0xce9f7c76, 0x97f4, 0x4ced, 0xad,0x68, 0xd5,0x1c,0x45,0x8e,0x45,0xc6); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Media { + namespace SpeechSynthesis { + MIDL_INTERFACE("ce9f7c76-97f4-4ced-ad68-d51c458e45c6") + ISpeechSynthesizer : public IInspectable + { + virtual HRESULT STDMETHODCALLTYPE SynthesizeTextToStreamAsync( + HSTRING text, + ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > **operation) = 0; + + virtual HRESULT STDMETHODCALLTYPE SynthesizeSsmlToStreamAsync( + HSTRING Ssml, + ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > **operation) = 0; + + virtual HRESULT STDMETHODCALLTYPE put_Voice( + IVoiceInformation *value) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_Voice( + IVoiceInformation **value) = 0; + + }; + } + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer, 0xce9f7c76, 0x97f4, 0x4ced, 0xad,0x68, 0xd5,0x1c,0x45,0x8e,0x45,0xc6) +#endif +#else +typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + TrustLevel *trustLevel); + + /*** ISpeechSynthesizer methods ***/ + HRESULT (STDMETHODCALLTYPE *SynthesizeTextToStreamAsync)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + HSTRING text, + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation); + + HRESULT (STDMETHODCALLTYPE *SynthesizeSsmlToStreamAsync)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + HSTRING Ssml, + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation); + + HRESULT (STDMETHODCALLTYPE *put_Voice)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *value); + + HRESULT (STDMETHODCALLTYPE *get_Voice)( + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This, + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value); + + END_INTERFACE +} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl; + +interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer { + CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** ISpeechSynthesizer methods ***/ +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync(This,text,operation) (This)->lpVtbl->SynthesizeTextToStreamAsync(This,text,operation) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync(This,Ssml,operation) (This)->lpVtbl->SynthesizeSsmlToStreamAsync(This,Ssml,operation) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice(This,value) (This)->lpVtbl->put_Voice(This,value) +#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice(This,value) (This)->lpVtbl->get_Voice(This,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** ISpeechSynthesizer methods ***/ +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING text,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation) { + return This->lpVtbl->SynthesizeTextToStreamAsync(This,text,operation); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING Ssml,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation) { + return This->lpVtbl->SynthesizeSsmlToStreamAsync(This,Ssml,operation); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *value) { + return This->lpVtbl->put_Voice(This,value); +} +static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value) { + return This->lpVtbl->get_Voice(This,value); +} +#endif +#ifdef WIDL_using_Windows_Media_SpeechSynthesis +#define IID_ISpeechSynthesizer IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer +#define ISpeechSynthesizerVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl +#define ISpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer +#define ISpeechSynthesizer_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface +#define ISpeechSynthesizer_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef +#define ISpeechSynthesizer_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release +#define ISpeechSynthesizer_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids +#define ISpeechSynthesizer_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName +#define ISpeechSynthesizer_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel +#define ISpeechSynthesizer_SynthesizeTextToStreamAsync __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync +#define ISpeechSynthesizer_SynthesizeSsmlToStreamAsync __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync +#define ISpeechSynthesizer_put_Voice __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice +#define ISpeechSynthesizer_get_Voice __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice +#endif /* WIDL_using_Windows_Media_SpeechSynthesis */ +#endif + +#endif + +#endif /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__ */ +#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ + +/***************************************************************************** * IVoiceInformation interface */ #if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 @@ -603,6 +1122,22 @@ extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis #endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ /* + * Class Windows.Media.SpeechSynthesis.SpeechSynthesisStream + */ +#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 +#ifndef RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesisStream_DEFINED +#define RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesisStream_DEFINED +#if !defined(_MSC_VER) && !defined(__MINGW32__) +static const WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesisStream[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','S','t','r','e','a','m',0}; +#elif defined(__GNUC__) && !defined(__cplusplus) +const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesisStream[] = L"Windows.Media.SpeechSynthesis.SpeechSynthesisStream"; +#else +extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesisStream[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','S','t','r','e','a','m',0}; +#endif +#endif /* RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesisStream_DEFINED */ +#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */ + +/* * Class Windows.Media.SpeechSynthesis.SpeechSynthesizer */ #if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 @@ -1053,6 +1588,395 @@ static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__C #endif /* ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IVectorView<ABI::Windows::Media::IMediaMarker* > interface + */ +#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__ +#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___FIVectorView_1_Windows__CMedia__CIMediaMarker, 0xb543562c, 0x02b1, 0x5824, 0x80,0xa8, 0x98,0x54,0x13,0x0c,0xda,0xdd); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + namespace Collections { + template<> + MIDL_INTERFACE("b543562c-02b1-5824-80a8-9854130cdadd") + IVectorView<ABI::Windows::Media::IMediaMarker* > : IVectorView_impl<ABI::Windows::Media::IMediaMarker* > + { + }; + } + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__FIVectorView_1_Windows__CMedia__CIMediaMarker, 0xb543562c, 0x02b1, 0x5824, 0x80,0xa8, 0x98,0x54,0x13,0x0c,0xda,0xdd) +#endif +#else +typedef struct __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + TrustLevel *trustLevel); + + /*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAt)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + UINT32 index, + __x_ABI_CWindows_CMedia_CIMediaMarker **value); + + HRESULT (STDMETHODCALLTYPE *get_Size)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + UINT32 *value); + + HRESULT (STDMETHODCALLTYPE *IndexOf)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + __x_ABI_CWindows_CMedia_CIMediaMarker *element, + UINT32 *index, + BOOLEAN *value); + + HRESULT (STDMETHODCALLTYPE *GetMany)( + __FIVectorView_1_Windows__CMedia__CIMediaMarker *This, + UINT32 start_index, + UINT32 items_size, + __x_ABI_CWindows_CMedia_CIMediaMarker **items, + UINT32 *value); + + END_INTERFACE +} __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl; + +interface __FIVectorView_1_Windows__CMedia__CIMediaMarker { + CONST_VTBL __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/ +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size(This,value) (This)->lpVtbl->get_Size(This,value) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value) +#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/ +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 index,__x_ABI_CWindows_CMedia_CIMediaMarker **value) { + return This->lpVtbl->GetAt(This,index,value); +} +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 *value) { + return This->lpVtbl->get_Size(This,value); +} +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,__x_ABI_CWindows_CMedia_CIMediaMarker *element,UINT32 *index,BOOLEAN *value) { + return This->lpVtbl->IndexOf(This,element,index,value); +} +static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CMedia_CIMediaMarker **items,UINT32 *value) { + return This->lpVtbl->GetMany(This,start_index,items_size,items,value); +} +#endif +#ifdef WIDL_using_Windows_Foundation_Collections +#define IID_IVectorView_IMediaMarker IID___FIVectorView_1_Windows__CMedia__CIMediaMarker +#define IVectorView_IMediaMarkerVtbl __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl +#define IVectorView_IMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker +#define IVectorView_IMediaMarker_QueryInterface __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface +#define IVectorView_IMediaMarker_AddRef __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef +#define IVectorView_IMediaMarker_Release __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release +#define IVectorView_IMediaMarker_GetIids __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids +#define IVectorView_IMediaMarker_GetRuntimeClassName __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName +#define IVectorView_IMediaMarker_GetTrustLevel __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel +#define IVectorView_IMediaMarker_GetAt __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt +#define IVectorView_IMediaMarker_get_Size __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size +#define IVectorView_IMediaMarker_IndexOf __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf +#define IVectorView_IMediaMarker_GetMany __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany +#endif /* WIDL_using_Windows_Foundation_Collections */ +#endif + +#endif + +#endif /* ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > interface + */ +#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ +#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xdf9d48ad, 0x9cea, 0x560c, 0x9e,0xdc, 0xcb,0x88,0x52,0xcb,0x55,0xe3); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + template<> + MIDL_INTERFACE("df9d48ad-9cea-560c-9edc-cb8852cb55e3") + IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream*, ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream* > > + { + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xdf9d48ad, 0x9cea, 0x560c, 0x9e,0xdc, 0xcb,0x88,0x52,0xcb,0x55,0xe3) +#endif +#else +typedef struct __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This); + + /*** IInspectable methods ***/ + HRESULT (STDMETHODCALLTYPE *GetIids)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + ULONG *iidCount, + IID **iids); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + HSTRING *className); + + HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + TrustLevel *trustLevel); + + /*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ + HRESULT (STDMETHODCALLTYPE *put_Completed)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *handler); + + HRESULT (STDMETHODCALLTYPE *get_Completed)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **handler); + + HRESULT (STDMETHODCALLTYPE *GetResults)( + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ***results); + + END_INTERFACE +} __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl; + +interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream { + CONST_VTBL __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This) +/*** IInspectable methods ***/ +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel) +/*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler) +#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults(This,results) (This)->lpVtbl->GetResults(This,results) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) { + return This->lpVtbl->Release(This); +} +/*** IInspectable methods ***/ +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,ULONG *iidCount,IID **iids) { + return This->lpVtbl->GetIids(This,iidCount,iids); +} +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,HSTRING *className) { + return This->lpVtbl->GetRuntimeClassName(This,className); +} +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,TrustLevel *trustLevel) { + return This->lpVtbl->GetTrustLevel(This,trustLevel); +} +/*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *handler) { + return This->lpVtbl->put_Completed(This,handler); +} +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **handler) { + return This->lpVtbl->get_Completed(This,handler); +} +static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ***results) { + return This->lpVtbl->GetResults(This,results); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IAsyncOperation_SpeechSynthesisStream IID___FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream +#define IAsyncOperation_SpeechSynthesisStreamVtbl __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl +#define IAsyncOperation_SpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream +#define IAsyncOperation_SpeechSynthesisStream_QueryInterface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface +#define IAsyncOperation_SpeechSynthesisStream_AddRef __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef +#define IAsyncOperation_SpeechSynthesisStream_Release __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release +#define IAsyncOperation_SpeechSynthesisStream_GetIids __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids +#define IAsyncOperation_SpeechSynthesisStream_GetRuntimeClassName __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName +#define IAsyncOperation_SpeechSynthesisStream_GetTrustLevel __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel +#define IAsyncOperation_SpeechSynthesisStream_put_Completed __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed +#define IAsyncOperation_SpeechSynthesisStream_get_Completed __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed +#define IAsyncOperation_SpeechSynthesisStream_GetResults __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > interface + */ +#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ +#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xc972b996, 0x6165, 0x50d4, 0xaf,0x60, 0xa8,0xc3,0xdf,0x51,0xd0,0x92); +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + template<> + MIDL_INTERFACE("c972b996-6165-50d4-af60-a8c3df51d092") + IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream*, ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream* > > + { + }; + } + } +} +extern "C" { +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xc972b996, 0x6165, 0x50d4, 0xaf,0x60, 0xa8,0xc3,0xdf,0x51,0xd0,0x92) +#endif +#else +typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This); + + /*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ + HRESULT (STDMETHODCALLTYPE *Invoke)( + __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This, + __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *info, + AsyncStatus status); + + END_INTERFACE +} __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl; + +interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream { + CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This) +/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ +#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) { + return This->lpVtbl->Release(This); +} +/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/ +static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *info,AsyncStatus status) { + return This->lpVtbl->Invoke(This,info,status); +} +#endif +#ifdef WIDL_using_Windows_Foundation +#define IID_IAsyncOperationCompletedHandler_SpeechSynthesisStream IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream +#define IAsyncOperationCompletedHandler_SpeechSynthesisStreamVtbl __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl +#define IAsyncOperationCompletedHandler_SpeechSynthesisStream __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream +#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface +#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef +#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_Release __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release +#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke +#endif /* WIDL_using_Windows_Foundation */ +#endif + +#endif + +#endif /* ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ */ + /* Begin additional prototypes for all interfaces */ ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *); diff --git a/lib/libc/include/any-windows-any/windows.security.cryptography.h b/lib/libc/include/any-windows-any/windows.security.cryptography.h index 314bd9f29c..76ceac5103 100644 --- a/lib/libc/include/any-windows-any/windows.security.cryptography.h +++ b/lib/libc/include/any-windows-any/windows.security.cryptography.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.security.cryptography.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.security.cryptography.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -79,6 +79,20 @@ namespace ABI { #endif #ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Security { + namespace Cryptography { + typedef enum BinaryStringEncoding BinaryStringEncoding; + } + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding; +#endif /* __cplusplus */ + +#ifdef __cplusplus } /* extern "C" */ namespace ABI { namespace Windows { diff --git a/lib/libc/include/any-windows-any/windows.storage.h b/lib/libc/include/any-windows-any/windows.storage.h index bc890f44a9..fab5b9788e 100644 --- a/lib/libc/include/any-windows-any/windows.storage.h +++ b/lib/libc/include/any-windows-any/windows.storage.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.storage.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.storage.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -210,23 +210,6 @@ namespace ABI { #endif /* __cplusplus */ #endif -#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIMapView_FWD_DEFINED__ -#define ____x_ABI_CWindows_CFoundation_CCollections_CIMapView_FWD_DEFINED__ -typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIMapView __x_ABI_CWindows_CFoundation_CCollections_CIMapView; -#ifdef __cplusplus -#define __x_ABI_CWindows_CFoundation_CCollections_CIMapView ABI::Windows::Foundation::Collections::IMapView -namespace ABI { - namespace Windows { - namespace Foundation { - namespace Collections { - interface IMapView; - } - } - } -} -#endif /* __cplusplus */ -#endif - #ifndef ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__ #define ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CStorage_CIStorageItem __x_ABI_CWindows_CStorage_CIStorageItem; @@ -348,6 +331,90 @@ namespace ABI { #endif #ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum StorageDeleteOption StorageDeleteOption; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CStorageDeleteOption __x_ABI_CWindows_CStorage_CStorageDeleteOption; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum NameCollisionOption NameCollisionOption; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CNameCollisionOption __x_ABI_CWindows_CStorage_CNameCollisionOption; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum StorageItemTypes StorageItemTypes; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CStorageItemTypes __x_ABI_CWindows_CStorage_CStorageItemTypes; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum ApplicationDataLocality ApplicationDataLocality; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CApplicationDataLocality __x_ABI_CWindows_CStorage_CApplicationDataLocality; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum ApplicationDataCreateDisposition ApplicationDataCreateDisposition; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum FileAttributes FileAttributes; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CFileAttributes __x_ABI_CWindows_CStorage_CFileAttributes; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace Storage { + typedef enum CreationCollisionOption CreationCollisionOption; + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CStorage_CCreationCollisionOption __x_ABI_CWindows_CStorage_CCreationCollisionOption; +#endif /* __cplusplus */ + +#ifdef __cplusplus } /* extern "C" */ namespace ABI { namespace Windows { diff --git a/lib/libc/include/any-windows-any/windows.storage.streams.h b/lib/libc/include/any-windows-any/windows.storage.streams.h index 96041d2ae7..c1492a9c7f 100644 --- a/lib/libc/include/any-windows-any/windows.storage.streams.h +++ b/lib/libc/include/any-windows-any/windows.storage.streams.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.storage.streams.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.storage.streams.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/windows.system.h b/lib/libc/include/any-windows-any/windows.system.h index dadc5aeff3..aa8b99c0c1 100644 --- a/lib/libc/include/any-windows-any/windows.system.h +++ b/lib/libc/include/any-windows-any/windows.system.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.system.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.system.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/windows.system.threading.h b/lib/libc/include/any-windows-any/windows.system.threading.h index 3311ac6913..9760bd2693 100644 --- a/lib/libc/include/any-windows-any/windows.system.threading.h +++ b/lib/libc/include/any-windows-any/windows.system.threading.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windows.system.threading.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windows.system.threading.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -144,6 +144,34 @@ namespace ABI { #endif /* __cplusplus */ #endif +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace System { + namespace Threading { + typedef enum WorkItemPriority WorkItemPriority; + } + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority; +#endif /* __cplusplus */ + +#ifdef __cplusplus +namespace ABI { + namespace Windows { + namespace System { + namespace Threading { + typedef enum WorkItemOptions WorkItemOptions; + } + } + } +} +#else /* __cplusplus */ +typedef enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions; +#endif /* __cplusplus */ + #ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__ #define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__ typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler; @@ -812,11 +840,11 @@ typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl { /*** IThreadPoolTimer methods ***/ HRESULT (STDMETHODCALLTYPE *get_Period)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value); + struct __x_ABI_CWindows_CFoundation_CTimeSpan *value); HRESULT (STDMETHODCALLTYPE *get_Delay)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value); + struct __x_ABI_CWindows_CFoundation_CTimeSpan *value); HRESULT (STDMETHODCALLTYPE *Cancel)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This); @@ -864,10 +892,10 @@ static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer return This->lpVtbl->GetTrustLevel(This,trustLevel); } /*** IThreadPoolTimer methods ***/ -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) { return This->lpVtbl->get_Period(This,value); } -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) { return This->lpVtbl->get_Delay(This,value); } static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) { @@ -975,26 +1003,26 @@ typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimer)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This, __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period, + struct __x_ABI_CWindows_CFoundation_CTimeSpan period, __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer); HRESULT (STDMETHODCALLTYPE *CreateTimer)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This, __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay, + struct __x_ABI_CWindows_CFoundation_CTimeSpan delay, __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer); HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimerWithCompletion)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This, __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period, + struct __x_ABI_CWindows_CFoundation_CTimeSpan period, __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed, __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer); HRESULT (STDMETHODCALLTYPE *CreateTimerWithCompletion)( __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This, __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler, - struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay, + struct __x_ABI_CWindows_CFoundation_CTimeSpan delay, __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed, __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer); @@ -1042,16 +1070,16 @@ static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer return This->lpVtbl->GetTrustLevel(This,trustLevel); } /*** IThreadPoolTimerStatics methods ***/ -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { return This->lpVtbl->CreatePeriodicTimer(This,handler,period,timer); } -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { return This->lpVtbl->CreateTimer(This,handler,delay,timer); } -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { return This->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer); } -static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { +static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CFoundation_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) { return This->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer); } #endif diff --git a/lib/libc/include/any-windows-any/windowscontracts.h b/lib/libc/include/any-windows-any/windowscontracts.h index 9c1f9897a8..6f5f12fdfa 100644 --- a/lib/libc/include/any-windows-any/windowscontracts.h +++ b/lib/libc/include/any-windows-any/windowscontracts.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/windowscontracts.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/windowscontracts.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/winerror.h b/lib/libc/include/any-windows-any/winerror.h index 609172d1a6..5650274f80 100644 --- a/lib/libc/include/any-windows-any/winerror.h +++ b/lib/libc/include/any-windows-any/winerror.h @@ -247,10 +247,12 @@ #define ERROR_OBJECT_NOT_EXTERNALLY_BACKED __MSABI_LONG(342) #define ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN __MSABI_LONG(343) #define ERROR_COMPRESSION_NOT_BENEFICIAL __MSABI_LONG(344) +#define ERROR_CASE_DIFFERING_NAMES_IN_DIR __MSABI_LONG(424) #define ERROR_INVALID_ADDRESS __MSABI_LONG(487) #define ERROR_ARITHMETIC_OVERFLOW __MSABI_LONG(534) #define ERROR_PIPE_CONNECTED __MSABI_LONG(535) #define ERROR_PIPE_LISTENING __MSABI_LONG(536) +#define ERROR_COMMITMENT_MINIMUM __MSABI_LONG(635) #define ERROR_WAKE_SYSTEM __MSABI_LONG(730) #define ERROR_WAIT_1 __MSABI_LONG(731) #define ERROR_WAIT_2 __MSABI_LONG(732) @@ -2881,6 +2883,25 @@ __CRT_INLINE HRESULT HRESULT_FROM_WIN32(__LONG32 x) { return x <= 0 ? (HRESULT)x #define NTE_TOKEN_KEYSET_STORAGE_FULL _HRESULT_TYPEDEF_(0x80090023) #define NTE_TEMPORARY_PROFILE _HRESULT_TYPEDEF_(0x80090024) #define NTE_FIXEDPARAMETER _HRESULT_TYPEDEF_(0x80090025) +#define NTE_INVALID_HANDLE _HRESULT_TYPEDEF_(0x80090026) +#define NTE_INVALID_PARAMETER _HRESULT_TYPEDEF_(0x80090027) +#define NTE_BUFFER_TOO_SMALL _HRESULT_TYPEDEF_(0x80090028) +#define NTE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80090029) +#define NTE_NO_MORE_ITEMS _HRESULT_TYPEDEF_(0x8009002A) +#define NTE_BUFFERS_OVERLAP _HRESULT_TYPEDEF_(0x8009002B) +#define NTE_DECRYPTION_FAILURE _HRESULT_TYPEDEF_(0x8009002C) +#define NTE_INTERNAL_ERROR _HRESULT_TYPEDEF_(0x8009002D) +#define NTE_UI_REQUIRED _HRESULT_TYPEDEF_(0x8009002E) +#define NTE_HMAC_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8009002F) +#define NTE_DEVICE_NOT_READY _HRESULT_TYPEDEF_(0x80090030) +#define NTE_AUTHENTICATION_IGNORED _HRESULT_TYPEDEF_(0x80090031) +#define NTE_VALIDATION_FAILED _HRESULT_TYPEDEF_(0x80090032) +#define NTE_INCORRECT_PASSWORD _HRESULT_TYPEDEF_(0x80090033) +#define NTE_ENCRYPTION_FAILURE _HRESULT_TYPEDEF_(0x80090034) +#define NTE_DEVICE_NOT_FOUND _HRESULT_TYPEDEF_(0x80090035) +#define NTE_USER_CANCELLED _HRESULT_TYPEDEF_(0x80090036) +#define NTE_PASSWORD_CHANGE_REQUIRED _HRESULT_TYPEDEF_(0x80090037) +#define NTE_NOT_ACTIVE_CONSOLE _HRESULT_TYPEDEF_(0x80090038) #define SEC_E_INSUFFICIENT_MEMORY _HRESULT_TYPEDEF_(0x80090300) #define SEC_E_INVALID_HANDLE _HRESULT_TYPEDEF_(0x80090301) #define SEC_E_UNSUPPORTED_FUNCTION _HRESULT_TYPEDEF_(0x80090302) diff --git a/lib/libc/include/any-windows-any/winevt.h b/lib/libc/include/any-windows-any/winevt.h index 90be0cd613..add920b279 100644 --- a/lib/libc/include/any-windows-any/winevt.h +++ b/lib/libc/include/any-windows-any/winevt.h @@ -3,14 +3,24 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -#ifndef _INC_WINEVT -#define _INC_WINEVT +#ifndef __WINEVT_H__ +#define __WINEVT_H__ + +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + #if (_WIN32_WINNT >= 0x0600) #ifdef __cplusplus extern "C" { #endif +#define EVT_READ_ACCESS 0x1 +#define EVT_WRITE_ACCESS 0x2 +#define EVT_CLEAR_ACCESS 0x4 +#define EVT_ALL_ACCESS 0x7 + typedef enum _EVT_CHANNEL_CLOCK_TYPE { EvtChannelClockTypeSystemTime = 0, EvtChannelClockTypeQPC = 1 @@ -266,6 +276,9 @@ typedef enum _EVT_VARIANT_TYPE { EvtVarTypeEvtXml = 35 } EVT_VARIANT_TYPE; +#define EVT_VARIANT_TYPE_MASK 0x7f +#define EVT_VARIANT_TYPE_ARRAY 128 + typedef HANDLE EVT_HANDLE; typedef HANDLE EVT_OBJECT_ARRAY_PROPERTY_HANDLE; @@ -572,5 +585,7 @@ WINBOOL WINAPI EvtUpdateBookmark( #ifdef __cplusplus } #endif + #endif /*(_WIN32_WINNT >= 0x0600)*/ -#endif /*_INC_TDH*/ +#endif /* WINAPI_PARTITION_DESKTOP */ +#endif /*__WINEVT_H__ */ diff --git a/lib/libc/include/any-windows-any/winhvplatform.h b/lib/libc/include/any-windows-any/winhvplatform.h index 61f20f6ea4..b148804fba 100644 --- a/lib/libc/include/any-windows-any/winhvplatform.h +++ b/lib/libc/include/any-windows-any/winhvplatform.h @@ -22,15 +22,18 @@ extern "C" { HRESULT WINAPI WHvGetCapability(WHV_CAPABILITY_CODE CapabilityCode, VOID *CapabilityBuffer, UINT32 CapabilityBufferSizeInBytes, UINT32 *WrittenSizeInBytes); HRESULT WINAPI WHvCreatePartition(WHV_PARTITION_HANDLE *Partition); HRESULT WINAPI WHvSetupPartition(WHV_PARTITION_HANDLE Partition); +HRESULT WINAPI WHvResetPartition(WHV_PARTITION_HANDLE Partition); HRESULT WINAPI WHvDeletePartition(WHV_PARTITION_HANDLE Partition); HRESULT WINAPI WHvGetPartitionProperty(WHV_PARTITION_HANDLE Partition, WHV_PARTITION_PROPERTY_CODE PropertyCode, VOID *PropertyBuffer, UINT32 PropertyBufferSizeInBytes, UINT32 *WrittenSizeInBytes); HRESULT WINAPI WHvSetPartitionProperty(WHV_PARTITION_HANDLE Partition, WHV_PARTITION_PROPERTY_CODE PropertyCode, const VOID *PropertyBuffer, UINT32 PropertyBufferSizeInBytes); HRESULT WINAPI WHvSuspendPartitionTime(WHV_PARTITION_HANDLE Partition); HRESULT WINAPI WHvResumePartitionTime(WHV_PARTITION_HANDLE Partition); HRESULT WINAPI WHvMapGpaRange(WHV_PARTITION_HANDLE Partition, VOID *SourceAddress, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, UINT64 SizeInBytes, WHV_MAP_GPA_RANGE_FLAGS Flags); +HRESULT WINAPI WHvMapGpaRange2(WHV_PARTITION_HANDLE Partition, HANDLE Process, VOID *SourceAddress, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, UINT64 SizeInBytes, WHV_MAP_GPA_RANGE_FLAGS Flags); HRESULT WINAPI WHvUnmapGpaRange(WHV_PARTITION_HANDLE Partition, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, UINT64 SizeInBytes); HRESULT WINAPI WHvTranslateGva(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_GUEST_VIRTUAL_ADDRESS Gva, WHV_TRANSLATE_GVA_FLAGS TranslateFlags, WHV_TRANSLATE_GVA_RESULT *TranslationResult, WHV_GUEST_PHYSICAL_ADDRESS *Gpa); HRESULT WINAPI WHvCreateVirtualProcessor(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, UINT32 Flags); +HRESULT WINAPI WHvCreateVirtualProcessor2(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, const WHV_VIRTUAL_PROCESSOR_PROPERTY *Properties, UINT32 PropertyCount); HRESULT WINAPI WHvDeleteVirtualProcessor(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex); HRESULT WINAPI WHvRunVirtualProcessor(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, VOID *ExitContext, UINT32 ExitContextSizeInBytes); HRESULT WINAPI WHvCancelRunVirtualProcessor(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, UINT32 Flags); @@ -48,6 +51,40 @@ HRESULT WINAPI WHvGetVirtualProcessorInterruptControllerState2(WHV_PARTITION_HAN HRESULT WINAPI WHvSetVirtualProcessorInterruptControllerState2(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, const VOID *State, UINT32 StateSize); HRESULT WINAPI WHvRegisterPartitionDoorbellEvent(WHV_PARTITION_HANDLE Partition, const WHV_DOORBELL_MATCH_DATA *MatchData, HANDLE EventHandle); HRESULT WINAPI WHvUnregisterPartitionDoorbellEvent(WHV_PARTITION_HANDLE Partition, const WHV_DOORBELL_MATCH_DATA *MatchData); +HRESULT WINAPI WHvAdviseGpaRange(WHV_PARTITION_HANDLE Partition, const WHV_MEMORY_RANGE_ENTRY *GpaRanges, UINT32 GpaRangesCount, WHV_ADVISE_GPA_RANGE_CODE Advice, const VOID *AdviceBuffer, UINT32 AdviceBufferSizeInBytes); +HRESULT WINAPI WHvReadGpaRange(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, WHV_ACCESS_GPA_CONTROLS Controls, PVOID Data, UINT32 DataSizeInBytes); +HRESULT WINAPI WHvWriteGpaRange(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, WHV_ACCESS_GPA_CONTROLS Controls, const VOID *Data, UINT32 DataSizeInBytes); +HRESULT WINAPI WHvSignalVirtualProcessorSynicEvent(WHV_PARTITION_HANDLE Partition, WHV_SYNIC_EVENT_PARAMETERS SynicEvent, WINBOOL *NewlySignaled); +HRESULT WINAPI WHvGetVirtualProcessorState(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType, VOID *Buffer, UINT32 BufferSizeInBytes, UINT32 *BytesWritten); +HRESULT WINAPI WHvSetVirtualProcessorState(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_VIRTUAL_PROCESSOR_STATE_TYPE StateType, const VOID *Buffer, UINT32 BufferSizeInBytes); +HRESULT WINAPI WHvAllocateVpciResource(const GUID *ProviderId, WHV_ALLOCATE_VPCI_RESOURCE_FLAGS Flags, const VOID *ResourceDescriptor, UINT32 ResourceDescriptorSizeInBytes, HANDLE *VpciResource); +HRESULT WINAPI WHvCreateVpciDevice(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, HANDLE VpciResource, WHV_CREATE_VPCI_DEVICE_FLAGS Flags, HANDLE NotificationEventHandle); +HRESULT WINAPI WHvDeleteVpciDevice(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId); +HRESULT WINAPI WHvGetVpciDeviceProperty(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, WHV_VPCI_DEVICE_PROPERTY_CODE PropertyCode, VOID *PropertyBuffer, UINT32 PropertyBufferSizeInBytes, UINT32 *WrittenSizeInBytes); +HRESULT WINAPI WHvGetVpciDeviceNotification(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, WHV_VPCI_DEVICE_NOTIFICATION *Notification, UINT32 NotificationSizeInBytes); +HRESULT WINAPI WHvMapVpciDeviceMmioRanges(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT32 *MappingCount, WHV_VPCI_MMIO_MAPPING **Mappings); +HRESULT WINAPI WHvUnmapVpciDeviceMmioRanges(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId); +HRESULT WINAPI WHvSetVpciDevicePowerState(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, DEVICE_POWER_STATE PowerState); +HRESULT WINAPI WHvReadVpciDeviceRegister(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, const WHV_VPCI_DEVICE_REGISTER *Register, VOID *Data); +HRESULT WINAPI WHvWriteVpciDeviceRegister(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, const WHV_VPCI_DEVICE_REGISTER *Register, const VOID *Data); +HRESULT WINAPI WHvMapVpciDeviceInterrupt(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT32 Index, UINT32 MessageCount, const WHV_VPCI_INTERRUPT_TARGET *Target, UINT64 *MsiAddress, UINT32 *MsiData); +HRESULT WINAPI WHvUnmapVpciDeviceInterrupt(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT32 Index); +HRESULT WINAPI WHvRetargetVpciDeviceInterrupt(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT64 MsiAddress, UINT32 MsiData, const WHV_VPCI_INTERRUPT_TARGET *Target); +HRESULT WINAPI WHvRequestVpciDeviceInterrupt(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT64 MsiAddress, UINT32 MsiData); +HRESULT WINAPI WHvGetVpciDeviceInterruptTarget(WHV_PARTITION_HANDLE Partition, UINT64 LogicalDeviceId, UINT32 Index, UINT32 MultiMessageNumber, WHV_VPCI_INTERRUPT_TARGET *Target, UINT32 TargetSizeInBytes, UINT32 *BytesWritten); +HRESULT WINAPI WHvCreateTrigger(WHV_PARTITION_HANDLE Partition, const WHV_TRIGGER_PARAMETERS *Parameters, WHV_TRIGGER_HANDLE *TriggerHandle, HANDLE *EventHandle); +HRESULT WINAPI WHvUpdateTriggerParameters(WHV_PARTITION_HANDLE Partition, const WHV_TRIGGER_PARAMETERS *Parameters, WHV_TRIGGER_HANDLE TriggerHandle); +HRESULT WINAPI WHvDeleteTrigger(WHV_PARTITION_HANDLE Partition, WHV_TRIGGER_HANDLE TriggerHandle); +HRESULT WINAPI WHvCreateNotificationPort(WHV_PARTITION_HANDLE Partition, const WHV_NOTIFICATION_PORT_PARAMETERS *Parameters, HANDLE EventHandle, WHV_NOTIFICATION_PORT_HANDLE *PortHandle); +HRESULT WINAPI WHvSetNotificationPortProperty(WHV_PARTITION_HANDLE Partition, WHV_NOTIFICATION_PORT_HANDLE PortHandle, WHV_NOTIFICATION_PORT_PROPERTY_CODE PropertyCode, WHV_NOTIFICATION_PORT_PROPERTY PropertyValue); +HRESULT WINAPI WHvDeleteNotificationPort(WHV_PARTITION_HANDLE Partition, WHV_NOTIFICATION_PORT_HANDLE PortHandle); +HRESULT WINAPI WHvPostVirtualProcessorSynicMessage(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, UINT32 SintIndex, const VOID *Message, UINT32 MessageSizeInBytes); +HRESULT WINAPI WHvGetVirtualProcessorCpuidOutput(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, UINT32 Eax, UINT32 Ecx, WHV_CPUID_OUTPUT *CpuidOutput); +HRESULT WINAPI WHvGetInterruptTargetVpSet(WHV_PARTITION_HANDLE Partition, UINT64 Destination, WHV_INTERRUPT_DESTINATION_MODE DestinationMode, UINT32 *TargetVps, UINT32 VpCount, UINT32 *TargetVpCount); +HRESULT WINAPI WHvStartPartitionMigration(WHV_PARTITION_HANDLE Partition, HANDLE *MigrationHandle); +HRESULT WHvCancelPartitionMigration(WHV_PARTITION_HANDLE Partition); +HRESULT WHvCompletePartitionMigration(WHV_PARTITION_HANDLE Partition); +HRESULT WINAPI WHvAcceptPartitionMigration(HANDLE MigrationHandle, WHV_PARTITION_HANDLE *Partition); #ifdef __cplusplus } diff --git a/lib/libc/include/any-windows-any/winhvplatformdefs.h b/lib/libc/include/any-windows-any/winhvplatformdefs.h index 2b62e7ee36..ba18cfedc8 100644 --- a/lib/libc/include/any-windows-any/winhvplatformdefs.h +++ b/lib/libc/include/any-windows-any/winhvplatformdefs.h @@ -12,13 +12,18 @@ typedef enum WHV_CAPABILITY_CODE { WHvCapabilityCodeExtendedVmExits = 0x00000002, WHvCapabilityCodeExceptionExitBitmap = 0x00000003, WHvCapabilityCodeX64MsrExitBitmap = 0x00000004, + WHvCapabilityCodeGpaRangePopulateFlags = 0x00000005, + WHvCapabilityCodeSchedulerFeatures = 0x00000006, WHvCapabilityCodeProcessorVendor = 0x00001000, WHvCapabilityCodeProcessorFeatures = 0x00001001, WHvCapabilityCodeProcessorClFlushSize = 0x00001002, WHvCapabilityCodeProcessorXsaveFeatures = 0x00001003, WHvCapabilityCodeProcessorClockFrequency = 0x00001004, WHvCapabilityCodeInterruptClockFrequency = 0x00001005, - WHvCapabilityCodeProcessorFeaturesBanks = 0x00001006 + WHvCapabilityCodeProcessorFeaturesBanks = 0x00001006, + WHvCapabilityCodeProcessorFrequencyCap = 0x00001007, + WHvCapabilityCodeSyntheticProcessorFeaturesBanks = 0x00001008, + WHvCapabilityCodeProcessorPerfmonFeatures = 0x00001009 } WHV_CAPABILITY_CODE; typedef union WHV_CAPABILITY_FEATURES { @@ -30,7 +35,10 @@ typedef union WHV_CAPABILITY_FEATURES { UINT64 SpeculationControl : 1; UINT64 ApicRemoteRead : 1; UINT64 IdleSuspend : 1; - UINT64 Reserved : 57; + UINT64 VirtualPciDeviceSupport : 1; + UINT64 IommuSupport : 1; + UINT64 VpHotAddRemove : 1; + UINT64 Reserved : 54; }; UINT64 AsUINT64; } WHV_CAPABILITY_FEATURES; @@ -46,7 +54,15 @@ typedef union WHV_EXTENDED_VM_EXITS { UINT64 X64ApicSmiExitTrap : 1; UINT64 HypercallExit : 1; UINT64 X64ApicInitSipiExitTrap : 1; - UINT64 Reserved : 57; + UINT64 X64ApicWriteLint0ExitTrap : 1; + UINT64 X64ApicWriteLint1ExitTrap : 1; + UINT64 X64ApicWriteSvrExitTrap : 1; + UINT64 UnknownSynicConnection : 1; + UINT64 RetargetUnknownVpciDevice : 1; + UINT64 X64ApicWriteLdrExitTrap : 1; + UINT64 X64ApicWriteDfrExitTrap : 1; + UINT64 GpaAccessFaultExit : 1; + UINT64 Reserved : 49; }; UINT64 AsUINT64; } WHV_EXTENDED_VM_EXITS; @@ -121,7 +137,9 @@ typedef union WHV_PROCESSOR_FEATURES { UINT64 UmipSupport : 1; UINT64 MdsNoSupport : 1; UINT64 MdClearSupport : 1; - UINT64 Reserved6 : 3; + UINT64 TaaNoSupport : 1; + UINT64 TsxCtrlSupport : 1; + UINT64 Reserved6 : 1; }; UINT64 AsUINT64; } WHV_PROCESSOR_FEATURES; @@ -130,9 +148,28 @@ C_ASSERT(sizeof(WHV_PROCESSOR_FEATURES) == sizeof(UINT64)); typedef union WHV_PROCESSOR_FEATURES1 { __C89_NAMELESS struct { - UINT64 Reserved1 : 2; + UINT64 ACountMCountSupport : 1; + UINT64 TscInvariantSupport : 1; UINT64 ClZeroSupport : 1; - UINT64 Reserved2 : 61; + UINT64 RdpruSupport : 1; + UINT64 Reserved2 : 2; + UINT64 NestedVirtSupport : 1; + UINT64 PsfdSupport: 1; + UINT64 CetSsSupport : 1; + UINT64 CetIbtSupport : 1; + UINT64 VmxExceptionInjectSupport : 1; + UINT64 Reserved4 : 1; + UINT64 UmwaitTpauseSupport : 1; + UINT64 MovdiriSupport : 1; + UINT64 Movdir64bSupport : 1; + UINT64 CldemoteSupport : 1; + UINT64 SerializeSupport : 1; + UINT64 TscDeadlineTmrSupport : 1; + UINT64 TscAdjustSupport : 1; + UINT64 FZLRepMovsb : 1; + UINT64 FSRepStosb : 1; + UINT64 FSRepCmpsb : 1; + UINT64 Reserved5 : 42; }; UINT64 AsUINT64; } WHV_PROCESSOR_FEATURES1; @@ -155,6 +192,78 @@ typedef struct WHV_PROCESSOR_FEATURES_BANKS { C_ASSERT(sizeof(WHV_PROCESSOR_FEATURES_BANKS) == sizeof(UINT64) * (WHV_PROCESSOR_FEATURES_BANKS_COUNT + 1)); +typedef union WHV_SYNTHETIC_PROCESSOR_FEATURES { + __C89_NAMELESS struct { + UINT64 HypervisorPresent:1; + UINT64 Hv1:1; + UINT64 AccessVpRunTimeReg:1; + UINT64 AccessPartitionReferenceCounter:1; + UINT64 AccessSynicRegs:1; + UINT64 AccessSyntheticTimerRegs:1; +#ifdef __x86_64__ + UINT64 AccessIntrCtrlRegs:1; +#else + UINT64 ReservedZ6:1; +#endif + UINT64 AccessHypercallRegs:1; + UINT64 AccessVpIndex:1; + UINT64 AccessPartitionReferenceTsc:1; +#ifdef __x86_64__ + UINT64 AccessGuestIdleReg:1; + UINT64 AccessFrequencyRegs:1; +#else + UINT64 ReservedZ10:1; + UINT64 ReservedZ11:1; +#endif + UINT64 ReservedZ12:1; + UINT64 ReservedZ13:1; + UINT64 ReservedZ14:1; +#ifdef __x86_64__ + UINT64 EnableExtendedGvaRangesForFlushVirtualAddressList:1; +#else + UINT64 ReservedZ15:1; +#endif + UINT64 ReservedZ16:1; + UINT64 ReservedZ17:1; + UINT64 FastHypercallOutput:1; + UINT64 ReservedZ19:1; + UINT64 ReservedZ20:1; + UINT64 ReservedZ21:1; + UINT64 DirectSyntheticTimers:1; + UINT64 ReservedZ23:1; + UINT64 ExtendedProcessorMasks:1; +#ifdef __x86_64__ + UINT64 TbFlushHypercalls:1; +#else + UINT64 ReservedZ25:1; +#endif + UINT64 SyntheticClusterIpi:1; + UINT64 NotifyLongSpinWait:1; + UINT64 QueryNumaDistance:1; + UINT64 SignalEvents:1; + UINT64 RetargetDeviceInterrupt:1; + UINT64 Reserved:33; + }; + UINT64 AsUINT64; +} WHV_SYNTHETIC_PROCESSOR_FEATURES; + +C_ASSERT(sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES) == 8); + +#define WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_COUNT 1 + +typedef struct WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS { + UINT32 BanksCount; + UINT32 Reserved0; + __C89_NAMELESS union { + __C89_NAMELESS struct { + WHV_SYNTHETIC_PROCESSOR_FEATURES Bank0; + }; + UINT64 AsUINT64[WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS_COUNT]; + }; +} WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS; + +C_ASSERT(sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS) == 16); + typedef union _WHV_PROCESSOR_XSAVE_FEATURES { __C89_NAMELESS struct { UINT64 XsaveSupport : 1; @@ -182,13 +291,30 @@ typedef union _WHV_PROCESSOR_XSAVE_FEATURES { UINT64 VpclmulqdqSupport : 1; UINT64 Avx512Bf16Support : 1; UINT64 Avx512Vp2IntersectSupport : 1; - UINT64 Reserved : 39; + UINT64 Avx512Fp16Support : 1; + UINT64 XfdSupport : 1; + UINT64 AmxTileSupport : 1; + UINT64 AmxBf16Support : 1; + UINT64 AmxInt8Support : 1; + UINT64 AvxVnniSupport : 1; + UINT64 Reserved : 33; }; UINT64 AsUINT64; } WHV_PROCESSOR_XSAVE_FEATURES, *PWHV_PROCESSOR_XSAVE_FEATURES; C_ASSERT(sizeof(WHV_PROCESSOR_XSAVE_FEATURES) == sizeof(UINT64)); +typedef union WHV_PROCESSOR_PERFMON_FEATURES { + __C89_NAMELESS struct { + UINT64 PmuSupport : 1; + UINT64 LbrSupport : 1; + UINT64 Reserved : 62; + }; + UINT64 AsUINT64; +} WHV_PROCESSOR_PERFMON_FEATURES, *PWHV_PROCESSOR_PERFMON_FEATURES; + +C_ASSERT(sizeof(WHV_PROCESSOR_PERFMON_FEATURES) == 8); + typedef union WHV_X64_MSR_EXIT_BITMAP { UINT64 AsUINT64; __C89_NAMELESS struct { @@ -196,18 +322,77 @@ typedef union WHV_X64_MSR_EXIT_BITMAP { UINT64 TscMsrWrite : 1; UINT64 TscMsrRead : 1; UINT64 ApicBaseMsrWrite : 1; - UINT64 Reserved : 60; + UINT64 MiscEnableMsrRead:1; + UINT64 McUpdatePatchLevelMsrRead:1; + UINT64 Reserved:58; }; } WHV_X64_MSR_EXIT_BITMAP; C_ASSERT(sizeof(WHV_X64_MSR_EXIT_BITMAP) == sizeof(UINT64)); +typedef struct WHV_MEMORY_RANGE_ENTRY { + UINT64 GuestAddress; + UINT64 SizeInBytes; +} WHV_MEMORY_RANGE_ENTRY; + +C_ASSERT(sizeof(WHV_MEMORY_RANGE_ENTRY) == 16); + +typedef union WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS { + UINT32 AsUINT32; + __C89_NAMELESS struct { + UINT32 Prefetch:1; + UINT32 AvoidHardFaults:1; + UINT32 Reserved:30; + }; +} WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS; + +C_ASSERT(sizeof(WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS) == 4); + +typedef enum WHV_MEMORY_ACCESS_TYPE { + WHvMemoryAccessRead = 0, + WHvMemoryAccessWrite = 1, + WHvMemoryAccessExecute = 2 +} WHV_MEMORY_ACCESS_TYPE; + +typedef struct WHV_ADVISE_GPA_RANGE_POPULATE { + WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS Flags; + WHV_MEMORY_ACCESS_TYPE AccessType; +} WHV_ADVISE_GPA_RANGE_POPULATE; + +C_ASSERT(sizeof(WHV_ADVISE_GPA_RANGE_POPULATE) == 8); + +typedef struct WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP { + UINT32 IsSupported:1; + UINT32 Reserved:31; + UINT32 HighestFrequencyMhz; + UINT32 NominalFrequencyMhz; + UINT32 LowestFrequencyMhz; + UINT32 FrequencyStepMhz; +} WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP; + +C_ASSERT(sizeof(WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP) == 20); + +typedef union WHV_SCHEDULER_FEATURES { + __C89_NAMELESS struct { + UINT64 CpuReserve: 1; + UINT64 CpuCap: 1; + UINT64 CpuWeight: 1; + UINT64 CpuGroupId: 1; + UINT64 DisableSmt: 1; + UINT64 Reserved: 59; + }; + UINT64 AsUINT64; +} WHV_SCHEDULER_FEATURES; + +C_ASSERT(sizeof(WHV_SCHEDULER_FEATURES) == 8); + typedef union WHV_CAPABILITY { WINBOOL HypervisorPresent; WHV_CAPABILITY_FEATURES Features; WHV_EXTENDED_VM_EXITS ExtendedVmExits; WHV_PROCESSOR_VENDOR ProcessorVendor; WHV_PROCESSOR_FEATURES ProcessorFeatures; + WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS SyntheticProcessorFeaturesBanks; WHV_PROCESSOR_XSAVE_FEATURES ProcessorXsaveFeatures; UINT8 ProcessorClFlushSize; UINT64 ExceptionExitBitmap; @@ -215,6 +400,10 @@ typedef union WHV_CAPABILITY { UINT64 ProcessorClockFrequency; UINT64 InterruptClockFrequency; WHV_PROCESSOR_FEATURES_BANKS ProcessorFeaturesBanks; + WHV_ADVISE_GPA_RANGE_POPULATE_FLAGS GpaRangePopulateFlags; + WHV_CAPABILITY_PROCESSOR_FREQUENCY_CAP ProcessorFrequencyCap; + WHV_PROCESSOR_PERFMON_FEATURES ProcessorPerfmonFeatures; + WHV_SCHEDULER_FEATURES SchedulerFeatures; } WHV_CAPABILITY; typedef VOID* WHV_PARTITION_HANDLE; @@ -225,6 +414,14 @@ typedef enum WHV_PARTITION_PROPERTY_CODE { WHvPartitionPropertyCodeSeparateSecurityDomain = 0x00000003, WHvPartitionPropertyCodeNestedVirtualization = 0x00000004, WHvPartitionPropertyCodeX64MsrExitBitmap = 0x00000005, + WHvPartitionPropertyCodePrimaryNumaNode = 0x00000006, + WHvPartitionPropertyCodeCpuReserve = 0x00000007, + WHvPartitionPropertyCodeCpuCap = 0x00000008, + WHvPartitionPropertyCodeCpuWeight = 0x00000009, + WHvPartitionPropertyCodeCpuGroupId = 0x0000000A, + WHvPartitionPropertyCodeProcessorFrequencyCap = 0x0000000B, + WHvPartitionPropertyCodeAllowDeviceAssignment = 0x0000000C, + WHvPartitionPropertyCodeDisableSmt = 0x0000000D, WHvPartitionPropertyCodeProcessorFeatures = 0x00001001, WHvPartitionPropertyCodeProcessorClFlushSize = 0x00001002, WHvPartitionPropertyCodeCpuidExitList = 0x00001003, @@ -236,6 +433,11 @@ typedef enum WHV_PARTITION_PROPERTY_CODE { WHvPartitionPropertyCodeApicRemoteReadSupport = 0x00001009, WHvPartitionPropertyCodeProcessorFeaturesBanks = 0x0000100A, WHvPartitionPropertyCodeReferenceTime = 0x0000100B, + WHvPartitionPropertyCodeSyntheticProcessorFeaturesBanks = 0x0000100C, + WHvPartitionPropertyCodeCpuidResultList2 = 0x0000100D, + WHvPartitionPropertyCodeProcessorPerfmonFeatures = 0x0000100E, + WHvPartitionPropertyCodeMsrActionList = 0x0000100F, + WHvPartitionPropertyCodeUnimplementedMsrAction = 0x00001010, WHvPartitionPropertyCodeProcessorCount = 0x00001fff } WHV_PARTITION_PROPERTY_CODE; @@ -248,6 +450,50 @@ typedef struct WHV_X64_CPUID_RESULT { UINT32 Edx; } WHV_X64_CPUID_RESULT; +C_ASSERT(sizeof(WHV_X64_CPUID_RESULT) == 32); + +typedef enum WHV_X64_CPUID_RESULT2_FLAGS { + WHvX64CpuidResult2FlagSubleafSpecific = 0x00000001, + WHvX64CpuidResult2FlagVpSpecific = 0x00000002 +} WHV_X64_CPUID_RESULT2_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(WHV_X64_CPUID_RESULT2_FLAGS); + +typedef struct WHV_CPUID_OUTPUT { + UINT32 Eax; + UINT32 Ebx; + UINT32 Ecx; + UINT32 Edx; +} WHV_CPUID_OUTPUT; + +C_ASSERT(sizeof(WHV_CPUID_OUTPUT) == 16); + +typedef struct WHV_X64_CPUID_RESULT2 { + UINT32 Function; + UINT32 Index; + UINT32 VpIndex; + WHV_X64_CPUID_RESULT2_FLAGS Flags; + WHV_CPUID_OUTPUT Output; + WHV_CPUID_OUTPUT Mask; +} WHV_X64_CPUID_RESULT2; + +C_ASSERT(sizeof(WHV_X64_CPUID_RESULT2) == 48); + +typedef struct WHV_MSR_ACTION_ENTRY { + UINT32 Index; + UINT8 ReadAction; + UINT8 WriteAction; + UINT16 Reserved; +} WHV_MSR_ACTION_ENTRY; + +C_ASSERT(sizeof(WHV_MSR_ACTION_ENTRY) == 8); + +typedef enum WHV_MSR_ACTION { + WHvMsrActionArchitectureDefault = 0, + WHvMsrActionIgnoreWriteReadZero = 1, + WHvMsrActionExit = 2 +} WHV_MSR_ACTION; + typedef enum WHV_EXCEPTION_TYPE { WHvX64ExceptionTypeDivideErrorFault = 0x0, WHvX64ExceptionTypeDebugTrapOrFault = 0x1, @@ -277,11 +523,15 @@ typedef enum WHV_X64_LOCAL_APIC_EMULATION_MODE { typedef union WHV_PARTITION_PROPERTY { WHV_EXTENDED_VM_EXITS ExtendedVmExits; WHV_PROCESSOR_FEATURES ProcessorFeatures; + WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS SyntheticProcessorFeaturesBanks; WHV_PROCESSOR_XSAVE_FEATURES ProcessorXsaveFeatures; UINT8 ProcessorClFlushSize; UINT32 ProcessorCount; UINT32 CpuidExitList[1]; WHV_X64_CPUID_RESULT CpuidResultList[1]; + WHV_X64_CPUID_RESULT2 CpuidResultList2[1]; + WHV_MSR_ACTION_ENTRY MsrActionList[1]; + WHV_MSR_ACTION UnimplementedMsrAction; UINT64 ExceptionExitBitmap; WHV_X64_LOCAL_APIC_EMULATION_MODE LocalApicEmulationMode; WINBOOL SeparateSecurityDomain; @@ -292,6 +542,15 @@ typedef union WHV_PARTITION_PROPERTY { WINBOOL ApicRemoteRead; WHV_PROCESSOR_FEATURES_BANKS ProcessorFeaturesBanks; UINT64 ReferenceTime; + USHORT PrimaryNumaNode; + UINT32 CpuReserve; + UINT32 CpuCap; + UINT32 CpuWeight; + UINT64 CpuGroupId; + UINT32 ProcessorFrequencyCap; + WINBOOL AllowDeviceAssignment; + WHV_PROCESSOR_PERFMON_FEATURES ProcessorPerfmonFeatures; + WINBOOL DisableSmt; } WHV_PARTITION_PROPERTY; typedef UINT64 WHV_GUEST_PHYSICAL_ADDRESS; @@ -313,7 +572,9 @@ typedef enum WHV_TRANSLATE_GVA_FLAGS { WHvTranslateGvaFlagValidateWrite = 0x00000002, WHvTranslateGvaFlagValidateExecute = 0x00000004, WHvTranslateGvaFlagPrivilegeExempt = 0x00000008, - WHvTranslateGvaFlagSetPageTableBits = 0x00000010 + WHvTranslateGvaFlagSetPageTableBits = 0x00000010, + WHvTranslateGvaFlagEnforceSmap = 0x00000100, + WHvTranslateGvaFlagOverrideSmap = 0x00000200 } WHV_TRANSLATE_GVA_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(WHV_TRANSLATE_GVA_FLAGS); @@ -335,6 +596,36 @@ typedef struct WHV_TRANSLATE_GVA_RESULT { UINT32 Reserved; } WHV_TRANSLATE_GVA_RESULT; +C_ASSERT(sizeof(WHV_TRANSLATE_GVA_RESULT) == 8); + +typedef union WHV_ADVISE_GPA_RANGE { + WHV_ADVISE_GPA_RANGE_POPULATE Populate; +} WHV_ADVISE_GPA_RANGE; + +C_ASSERT(sizeof(WHV_ADVISE_GPA_RANGE) == 8); + +typedef enum WHV_CACHE_TYPE { + WHvCacheTypeUncached = 0, + WHvCacheTypeWriteCombining = 1, + WHvCacheTypeWriteThrough = 4, +#ifdef __x86_64__ + WHvCacheTypeWriteProtected = 5, +#endif + WHvCacheTypeWriteBack = 6 +} WHV_CACHE_TYPE; + +typedef union WHV_ACCESS_GPA_CONTROLS { + UINT64 AsUINT64; + __C89_NAMELESS struct { + WHV_CACHE_TYPE CacheType; + UINT32 Reserved; + }; +} WHV_ACCESS_GPA_CONTROLS; + +C_ASSERT(sizeof(WHV_ACCESS_GPA_CONTROLS) == 8); + +#define WHV_READ_WRITE_GPA_RANGE_MAX_SIZE 16 + typedef enum WHV_REGISTER_NAME { WHvX64RegisterRax = 0x00000000, WHvX64RegisterRcx = 0x00000001, @@ -376,6 +667,10 @@ typedef enum WHV_REGISTER_NAME { WHvX64RegisterDr6 = 0x00000025, WHvX64RegisterDr7 = 0x00000026, WHvX64RegisterXCr0 = 0x00000027, + WHvX64RegisterVirtualCr0 = 0x00000028, + WHvX64RegisterVirtualCr3 = 0x00000029, + WHvX64RegisterVirtualCr4 = 0x0000002A, + WHvX64RegisterVirtualCr8 = 0x0000002B, WHvX64RegisterXmm0 = 0x00001000, WHvX64RegisterXmm1 = 0x00001001, WHvX64RegisterXmm2 = 0x00001002, @@ -461,11 +756,97 @@ typedef enum WHV_REGISTER_NAME { WHvX64RegisterMsrMtrrFix4kF0000 = 0x00002079, WHvX64RegisterMsrMtrrFix4kF8000 = 0x0000207A, WHvX64RegisterTscAux = 0x0000207B, + WHvX64RegisterBndcfgs = 0x0000207C, + WHvX64RegisterMCount = 0x0000207E, + WHvX64RegisterACount = 0x0000207F, WHvX64RegisterSpecCtrl = 0x00002084, WHvX64RegisterPredCmd = 0x00002085, WHvX64RegisterTscVirtualOffset = 0x00002087, + WHvX64RegisterTsxCtrl = 0x00002088, + WHvX64RegisterXss = 0x0000208B, + WHvX64RegisterUCet = 0x0000208C, + WHvX64RegisterSCet = 0x0000208D, + WHvX64RegisterSsp = 0x0000208E, + WHvX64RegisterPl0Ssp = 0x0000208F, + WHvX64RegisterPl1Ssp = 0x00002090, + WHvX64RegisterPl2Ssp = 0x00002091, + WHvX64RegisterPl3Ssp = 0x00002092, + WHvX64RegisterInterruptSspTableAddr = 0x00002093, + WHvX64RegisterTscDeadline = 0x00002095, + WHvX64RegisterTscAdjust = 0x00002096, + WHvX64RegisterUmwaitControl = 0x00002098, + WHvX64RegisterXfd = 0x00002099, + WHvX64RegisterXfdErr = 0x0000209A, WHvX64RegisterApicId = 0x00003002, WHvX64RegisterApicVersion = 0x00003003, + WHvX64RegisterApicTpr = 0x00003008, + WHvX64RegisterApicPpr = 0x0000300A, + WHvX64RegisterApicEoi = 0x0000300B, + WHvX64RegisterApicLdr = 0x0000300D, + WHvX64RegisterApicSpurious = 0x0000300F, + WHvX64RegisterApicIsr0 = 0x00003010, + WHvX64RegisterApicIsr1 = 0x00003011, + WHvX64RegisterApicIsr2 = 0x00003012, + WHvX64RegisterApicIsr3 = 0x00003013, + WHvX64RegisterApicIsr4 = 0x00003014, + WHvX64RegisterApicIsr5 = 0x00003015, + WHvX64RegisterApicIsr6 = 0x00003016, + WHvX64RegisterApicIsr7 = 0x00003017, + WHvX64RegisterApicTmr0 = 0x00003018, + WHvX64RegisterApicTmr1 = 0x00003019, + WHvX64RegisterApicTmr2 = 0x0000301A, + WHvX64RegisterApicTmr3 = 0x0000301B, + WHvX64RegisterApicTmr4 = 0x0000301C, + WHvX64RegisterApicTmr5 = 0x0000301D, + WHvX64RegisterApicTmr6 = 0x0000301E, + WHvX64RegisterApicTmr7 = 0x0000301F, + WHvX64RegisterApicIrr0 = 0x00003020, + WHvX64RegisterApicIrr1 = 0x00003021, + WHvX64RegisterApicIrr2 = 0x00003022, + WHvX64RegisterApicIrr3 = 0x00003023, + WHvX64RegisterApicIrr4 = 0x00003024, + WHvX64RegisterApicIrr5 = 0x00003025, + WHvX64RegisterApicIrr6 = 0x00003026, + WHvX64RegisterApicIrr7 = 0x00003027, + WHvX64RegisterApicEse = 0x00003028, + WHvX64RegisterApicIcr = 0x00003030, + WHvX64RegisterApicLvtTimer = 0x00003032, + WHvX64RegisterApicLvtThermal = 0x00003033, + WHvX64RegisterApicLvtPerfmon = 0x00003034, + WHvX64RegisterApicLvtLint0 = 0x00003035, + WHvX64RegisterApicLvtLint1 = 0x00003036, + WHvX64RegisterApicLvtError = 0x00003037, + WHvX64RegisterApicInitCount = 0x00003038, + WHvX64RegisterApicCurrentCount = 0x00003039, + WHvX64RegisterApicDivide = 0x0000303E, + WHvX64RegisterApicSelfIpi = 0x0000303F, + WHvRegisterSint0 = 0x00004000, + WHvRegisterSint1 = 0x00004001, + WHvRegisterSint2 = 0x00004002, + WHvRegisterSint3 = 0x00004003, + WHvRegisterSint4 = 0x00004004, + WHvRegisterSint5 = 0x00004005, + WHvRegisterSint6 = 0x00004006, + WHvRegisterSint7 = 0x00004007, + WHvRegisterSint8 = 0x00004008, + WHvRegisterSint9 = 0x00004009, + WHvRegisterSint10 = 0x0000400A, + WHvRegisterSint11 = 0x0000400B, + WHvRegisterSint12 = 0x0000400C, + WHvRegisterSint13 = 0x0000400D, + WHvRegisterSint14 = 0x0000400E, + WHvRegisterSint15 = 0x0000400F, + WHvRegisterScontrol = 0x00004010, + WHvRegisterSversion = 0x00004011, + WHvRegisterSiefp = 0x00004012, + WHvRegisterSimp = 0x00004013, + WHvRegisterEom = 0x00004014, + WHvRegisterVpRuntime = 0x00005000, + WHvX64RegisterHypercall = 0x00005001, + WHvRegisterGuestOsId = 0x00005002, + WHvRegisterVpAssistPage = 0x00005013, + WHvRegisterReferenceTsc = 0x00005017, + WHvRegisterReferenceTscSequence = 0x0000501A, WHvRegisterPendingInterruption = 0x80000000, WHvRegisterInterruptState = 0x80000001, WHvRegisterPendingEvent = 0x80000002, @@ -482,6 +863,8 @@ typedef union DECLSPEC_ALIGN(16) WHV_UINT128 { UINT32 Dword[4]; } WHV_UINT128; +C_ASSERT(sizeof(WHV_UINT128) == 16); + typedef union WHV_X64_FP_REGISTER { __C89_NAMELESS struct { UINT64 Mantissa; @@ -492,6 +875,8 @@ typedef union WHV_X64_FP_REGISTER { WHV_UINT128 AsUINT128; } WHV_X64_FP_REGISTER; +C_ASSERT(sizeof(WHV_X64_FP_REGISTER) == 16); + typedef union WHV_X64_FP_CONTROL_STATUS_REGISTER { __C89_NAMELESS struct { UINT16 FpControl; @@ -511,6 +896,8 @@ typedef union WHV_X64_FP_CONTROL_STATUS_REGISTER { WHV_UINT128 AsUINT128; } WHV_X64_FP_CONTROL_STATUS_REGISTER; +C_ASSERT(sizeof(WHV_X64_FP_CONTROL_STATUS_REGISTER) == 16); + typedef union WHV_X64_XMM_CONTROL_STATUS_REGISTER { __C89_NAMELESS struct { __C89_NAMELESS union { @@ -527,6 +914,8 @@ typedef union WHV_X64_XMM_CONTROL_STATUS_REGISTER { WHV_UINT128 AsUINT128; } WHV_X64_XMM_CONTROL_STATUS_REGISTER; +C_ASSERT(sizeof(WHV_X64_FP_CONTROL_STATUS_REGISTER) == 16); + typedef struct WHV_X64_SEGMENT_REGISTER { UINT64 Base; UINT32 Limit; @@ -547,12 +936,16 @@ typedef struct WHV_X64_SEGMENT_REGISTER { }; } WHV_X64_SEGMENT_REGISTER; +C_ASSERT(sizeof(WHV_X64_SEGMENT_REGISTER) == 16); + typedef struct WHV_X64_TABLE_REGISTER { UINT16 Pad[3]; UINT16 Limit; UINT64 Base; } WHV_X64_TABLE_REGISTER; +C_ASSERT(sizeof(WHV_X64_TABLE_REGISTER) == 16); + typedef union WHV_X64_INTERRUPT_STATE_REGISTER { __C89_NAMELESS struct { UINT64 InterruptShadow:1; @@ -562,6 +955,8 @@ typedef union WHV_X64_INTERRUPT_STATE_REGISTER { UINT64 AsUINT64; } WHV_X64_INTERRUPT_STATE_REGISTER; +C_ASSERT(sizeof(WHV_X64_INTERRUPT_STATE_REGISTER) == 8); + typedef union WHV_X64_PENDING_INTERRUPTION_REGISTER { __C89_NAMELESS struct { UINT32 InterruptionPending:1; @@ -590,7 +985,6 @@ typedef union WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER { C_ASSERT(sizeof(WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER) == sizeof(UINT64)); - typedef enum WHV_X64_PENDING_EVENT_TYPE { WHvX64PendingEventException = 0, WHvX64PendingEventExtInt = 5 @@ -652,6 +1046,14 @@ typedef union WHV_X64_PENDING_DEBUG_EXCEPTION { C_ASSERT(sizeof(WHV_X64_PENDING_DEBUG_EXCEPTION) == sizeof(UINT64)); +typedef struct WHV_SYNIC_SINT_DELIVERABLE_CONTEXT { + UINT16 DeliverableSints; + UINT16 Reserved1; + UINT32 Reserved2; +} WHV_SYNIC_SINT_DELIVERABLE_CONTEXT; + +C_ASSERT(sizeof(WHV_SYNIC_SINT_DELIVERABLE_CONTEXT) == 8); + typedef union WHV_REGISTER_VALUE { WHV_UINT128 Reg128; UINT64 Reg64; @@ -672,6 +1074,8 @@ typedef union WHV_REGISTER_VALUE { WHV_X64_PENDING_DEBUG_EXCEPTION PendingDebugException; } WHV_REGISTER_VALUE; +C_ASSERT(sizeof(WHV_REGISTER_VALUE) == 16); + typedef enum WHV_RUN_VP_EXIT_REASON { WHvRunVpExitReasonNone = 0x00000000, WHvRunVpExitReasonMemoryAccess = 0x00000001, @@ -682,6 +1086,7 @@ typedef enum WHV_RUN_VP_EXIT_REASON { WHvRunVpExitReasonX64InterruptWindow = 0x00000007, WHvRunVpExitReasonX64Halt = 0x00000008, WHvRunVpExitReasonX64ApicEoi = 0x00000009, + WHvRunVpExitReasonSynicSintDeliverable = 0x0000000A, WHvRunVpExitReasonX64MsrAccess = 0x00001000, WHvRunVpExitReasonX64Cpuid = 0x00001001, WHvRunVpExitReasonException = 0x00001002, @@ -689,6 +1094,7 @@ typedef enum WHV_RUN_VP_EXIT_REASON { WHvRunVpExitReasonX64ApicSmiTrap = 0x00001004, WHvRunVpExitReasonHypercall = 0x00001005, WHvRunVpExitReasonX64ApicInitSipiTrap = 0x00001006, + WHvRunVpExitReasonX64ApicWriteTrap = 0x00001007, WHvRunVpExitReasonCanceled = 0x00002001 } WHV_RUN_VP_EXIT_REASON; @@ -720,11 +1126,7 @@ typedef struct WHV_VP_EXIT_CONTEXT { UINT64 Rflags; } WHV_VP_EXIT_CONTEXT; -typedef enum WHV_MEMORY_ACCESS_TYPE { - WHvMemoryAccessRead = 0, - WHvMemoryAccessWrite = 1, - WHvMemoryAccessExecute = 2 -} WHV_MEMORY_ACCESS_TYPE; +C_ASSERT(sizeof(WHV_VP_EXIT_CONTEXT) == 40); typedef union WHV_MEMORY_ACCESS_INFO { __C89_NAMELESS struct { @@ -736,6 +1138,8 @@ typedef union WHV_MEMORY_ACCESS_INFO { UINT32 AsUINT32; } WHV_MEMORY_ACCESS_INFO; +C_ASSERT(sizeof(WHV_MEMORY_ACCESS_INFO) == 4); + typedef struct WHV_MEMORY_ACCESS_CONTEXT { UINT8 InstructionByteCount; UINT8 Reserved[3]; @@ -745,6 +1149,8 @@ typedef struct WHV_MEMORY_ACCESS_CONTEXT { WHV_GUEST_VIRTUAL_ADDRESS Gva; } WHV_MEMORY_ACCESS_CONTEXT; +C_ASSERT(sizeof(WHV_MEMORY_ACCESS_CONTEXT) == 40); + typedef union WHV_X64_IO_PORT_ACCESS_INFO { __C89_NAMELESS struct { UINT32 IsWrite : 1; @@ -773,6 +1179,8 @@ typedef struct WHV_X64_IO_PORT_ACCESS_CONTEXT { WHV_X64_SEGMENT_REGISTER Es; } WHV_X64_IO_PORT_ACCESS_CONTEXT; +C_ASSERT(sizeof(WHV_X64_IO_PORT_ACCESS_CONTEXT) == 96); + typedef union WHV_X64_MSR_ACCESS_INFO { __C89_NAMELESS struct { UINT32 IsWrite : 1; @@ -790,6 +1198,8 @@ typedef struct WHV_X64_MSR_ACCESS_CONTEXT { UINT64 Rdx; } WHV_X64_MSR_ACCESS_CONTEXT; +C_ASSERT(sizeof(WHV_X64_MSR_ACCESS_CONTEXT) == 24); + typedef struct WHV_X64_CPUID_ACCESS_CONTEXT { UINT64 Rax; UINT64 Rcx; @@ -801,6 +1211,8 @@ typedef struct WHV_X64_CPUID_ACCESS_CONTEXT { UINT64 DefaultResultRbx; } WHV_X64_CPUID_ACCESS_CONTEXT; +C_ASSERT(sizeof(WHV_X64_CPUID_ACCESS_CONTEXT) == 64); + typedef union WHV_VP_EXCEPTION_INFO { __C89_NAMELESS struct { UINT32 ErrorCodeValid : 1; @@ -823,6 +1235,8 @@ typedef struct WHV_VP_EXCEPTION_CONTEXT { UINT64 ExceptionParameter; } WHV_VP_EXCEPTION_CONTEXT; +C_ASSERT(sizeof(WHV_VP_EXCEPTION_CONTEXT) == 40); + typedef enum WHV_X64_UNSUPPORTED_FEATURE_CODE { WHvUnsupportedFeatureIntercept = 1, WHvUnsupportedFeatureTaskSwitchTss = 2 @@ -834,6 +1248,8 @@ typedef struct WHV_X64_UNSUPPORTED_FEATURE_CONTEXT { UINT64 FeatureParameter; } WHV_X64_UNSUPPORTED_FEATURE_CONTEXT; +C_ASSERT(sizeof(WHV_X64_UNSUPPORTED_FEATURE_CONTEXT) == 16); + typedef enum WHV_RUN_VP_CANCEL_REASON { WhvRunVpCancelReasonUser = 0 } WHV_RUN_VP_CANCEL_REASON; @@ -842,6 +1258,8 @@ typedef struct WHV_RUN_VP_CANCELED_CONTEXT { WHV_RUN_VP_CANCEL_REASON CancelReason; } WHV_RUN_VP_CANCELED_CONTEXT; +C_ASSERT(sizeof(WHV_RUN_VP_CANCELED_CONTEXT) == 4); + typedef enum WHV_X64_PENDING_INTERRUPTION_TYPE { WHvX64PendingInterrupt = 0, WHvX64PendingNmi = 2, @@ -852,10 +1270,14 @@ typedef struct WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT { WHV_X64_PENDING_INTERRUPTION_TYPE DeliverableType; } WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT, *PWHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT; +C_ASSERT(sizeof(WHV_X64_INTERRUPTION_DELIVERABLE_CONTEXT) == 4); + typedef struct WHV_X64_APIC_EOI_CONTEXT { UINT32 InterruptVector; } WHV_X64_APIC_EOI_CONTEXT; +C_ASSERT(sizeof(WHV_X64_APIC_EOI_CONTEXT) == 4); + typedef union WHV_X64_RDTSC_INFO { __C89_NAMELESS struct { UINT64 IsRdtscp : 1; @@ -864,6 +1286,8 @@ typedef union WHV_X64_RDTSC_INFO { UINT64 AsUINT64; } WHV_X64_RDTSC_INFO; +C_ASSERT(sizeof(WHV_X64_RDTSC_INFO) == 8); + typedef struct WHV_X64_RDTSC_CONTEXT { UINT64 TscAux; UINT64 VirtualOffset; @@ -872,10 +1296,14 @@ typedef struct WHV_X64_RDTSC_CONTEXT { WHV_X64_RDTSC_INFO RdtscInfo; } WHV_X64_RDTSC_CONTEXT; +C_ASSERT(sizeof(WHV_X64_RDTSC_CONTEXT) == 40); + typedef struct WHV_X64_APIC_SMI_CONTEXT { UINT64 ApicIcr; } WHV_X64_APIC_SMI_CONTEXT; +C_ASSERT(sizeof(WHV_X64_APIC_SMI_CONTEXT) == 8); + #define WHV_HYPERCALL_CONTEXT_MAX_XMM_REGISTERS 6 typedef struct _WHV_HYPERCALL_CONTEXT { @@ -891,10 +1319,30 @@ typedef struct _WHV_HYPERCALL_CONTEXT { UINT64 Reserved1[2]; } WHV_HYPERCALL_CONTEXT, *PWHV_HYPERCALL_CONTEXT; +C_ASSERT(sizeof(WHV_HYPERCALL_CONTEXT) == 176); + typedef struct WHV_X64_APIC_INIT_SIPI_CONTEXT { UINT64 ApicIcr; } WHV_X64_APIC_INIT_SIPI_CONTEXT; +C_ASSERT(sizeof(WHV_X64_APIC_INIT_SIPI_CONTEXT) == 8); + +typedef enum WHV_X64_APIC_WRITE_TYPE { + WHvX64ApicWriteTypeLdr = 0xD0, + WHvX64ApicWriteTypeDfr = 0xE0, + WHvX64ApicWriteTypeSvr = 0xF0, + WHvX64ApicWriteTypeLint0 = 0x350, + WHvX64ApicWriteTypeLint1 = 0x360 +} WHV_X64_APIC_WRITE_TYPE; + +typedef struct WHV_X64_APIC_WRITE_CONTEXT { + WHV_X64_APIC_WRITE_TYPE Type; + UINT32 Reserved; + UINT64 WriteValue; +} WHV_X64_APIC_WRITE_CONTEXT; + +C_ASSERT(sizeof(WHV_X64_APIC_WRITE_CONTEXT) == 16); + typedef struct WHV_RUN_VP_EXIT_CONTEXT { WHV_RUN_VP_EXIT_REASON ExitReason; UINT32 Reserved; @@ -913,9 +1361,13 @@ typedef struct WHV_RUN_VP_EXIT_CONTEXT { WHV_X64_APIC_SMI_CONTEXT ApicSmi; WHV_HYPERCALL_CONTEXT Hypercall; WHV_X64_APIC_INIT_SIPI_CONTEXT ApicInitSipi; + WHV_X64_APIC_WRITE_CONTEXT ApicWrite; + WHV_SYNIC_SINT_DELIVERABLE_CONTEXT SynicSintDeliverable; }; } WHV_RUN_VP_EXIT_CONTEXT; +C_ASSERT(sizeof(WHV_RUN_VP_EXIT_CONTEXT) == 224); + typedef enum WHV_INTERRUPT_TYPE { WHvX64InterruptTypeFixed = 0, WHvX64InterruptTypeLowestPriority = 1, @@ -944,6 +1396,8 @@ typedef struct WHV_INTERRUPT_CONTROL { UINT32 Vector; } WHV_INTERRUPT_CONTROL; +C_ASSERT(sizeof(WHV_INTERRUPT_CONTROL) == 16); + typedef struct WHV_DOORBELL_MATCH_DATA { WHV_GUEST_PHYSICAL_ADDRESS GuestAddress; UINT64 Value; @@ -953,6 +1407,8 @@ typedef struct WHV_DOORBELL_MATCH_DATA { UINT32 Reserved : 30; } WHV_DOORBELL_MATCH_DATA; +C_ASSERT(sizeof(WHV_DOORBELL_MATCH_DATA) == 24); + typedef enum WHV_PARTITION_COUNTER_SET { WHvPartitionCounterSetMemory } WHV_PARTITION_COUNTER_SET; @@ -963,11 +1419,14 @@ typedef struct WHV_PARTITION_MEMORY_COUNTERS { UINT64 Mapped1GPageCount; } WHV_PARTITION_MEMORY_COUNTERS; +C_ASSERT(sizeof(WHV_PARTITION_MEMORY_COUNTERS) == 24); + typedef enum WHV_PROCESSOR_COUNTER_SET { WHvProcessorCounterSetRuntime, WHvProcessorCounterSetIntercepts, WHvProcessorCounterSetEvents, - WHvProcessorCounterSetApic + WHvProcessorCounterSetApic, + WHvProcessorCounterSetSyntheticFeatures } WHV_PROCESSOR_COUNTER_SET; typedef struct WHV_PROCESSOR_RUNTIME_COUNTERS { @@ -975,11 +1434,15 @@ typedef struct WHV_PROCESSOR_RUNTIME_COUNTERS { UINT64 HypervisorRuntime100ns; } WHV_PROCESSOR_RUNTIME_COUNTERS; +C_ASSERT(sizeof(WHV_PROCESSOR_RUNTIME_COUNTERS) == 16); + typedef struct WHV_PROCESSOR_INTERCEPT_COUNTER { UINT64 Count; UINT64 Time100ns; } WHV_PROCESSOR_INTERCEPT_COUNTER; +C_ASSERT(sizeof(WHV_PROCESSOR_INTERCEPT_COUNTER) == 16); + typedef struct WHV_PROCESSOR_INTERCEPT_COUNTERS { WHV_PROCESSOR_INTERCEPT_COUNTER PageInvalidations; WHV_PROCESSOR_INTERCEPT_COUNTER ControlRegisterAccesses; @@ -992,14 +1455,21 @@ typedef struct WHV_PROCESSOR_INTERCEPT_COUNTERS { WHV_PROCESSOR_INTERCEPT_COUNTER EmulatedInstructions; WHV_PROCESSOR_INTERCEPT_COUNTER DebugRegisterAccesses; WHV_PROCESSOR_INTERCEPT_COUNTER PageFaultIntercepts; + WHV_PROCESSOR_INTERCEPT_COUNTER NestedPageFaultIntercepts; + WHV_PROCESSOR_INTERCEPT_COUNTER Hypercalls; + WHV_PROCESSOR_INTERCEPT_COUNTER RdpmcInstructions; } WHV_PROCESSOR_ACTIVITY_COUNTERS; +C_ASSERT(sizeof(WHV_PROCESSOR_ACTIVITY_COUNTERS) == 224); + typedef struct WHV_PROCESSOR_EVENT_COUNTERS { UINT64 PageFaultCount; UINT64 ExceptionCount; UINT64 InterruptCount; } WHV_PROCESSOR_GUEST_EVENT_COUNTERS; +C_ASSERT(sizeof(WHV_PROCESSOR_GUEST_EVENT_COUNTERS) == 24); + typedef struct WHV_PROCESSOR_APIC_COUNTERS { UINT64 MmioAccessCount; UINT64 EoiAccessCount; @@ -1008,4 +1478,233 @@ typedef struct WHV_PROCESSOR_APIC_COUNTERS { UINT64 SelfIpiCount; } WHV_PROCESSOR_APIC_COUNTERS; +C_ASSERT(sizeof(WHV_PROCESSOR_APIC_COUNTERS) == 40); + +typedef struct WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS { + UINT64 SyntheticInterruptsCount; + UINT64 LongSpinWaitHypercallsCount; + UINT64 OtherHypercallsCount; + UINT64 SyntheticInterruptHypercallsCount; + UINT64 VirtualInterruptHypercallsCount; + UINT64 VirtualMmuHypercallsCount; +} WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS; + +C_ASSERT(sizeof(WHV_PROCESSOR_SYNTHETIC_FEATURES_COUNTERS) == 48); + +typedef enum WHV_ADVISE_GPA_RANGE_CODE { + WHvAdviseGpaRangeCodePopulate = 0x00000000, + WHvAdviseGpaRangeCodePin = 0x00000001, + WHvAdviseGpaRangeCodeUnpin = 0x00000002 +} WHV_ADVISE_GPA_RANGE_CODE; + +typedef enum WHV_VIRTUAL_PROCESSOR_STATE_TYPE { + WHvVirtualProcessorStateTypeSynicMessagePage = 0x00000000, + WHvVirtualProcessorStateTypeSynicEventFlagPage = 0x00000001, + WHvVirtualProcessorStateTypeSynicTimerState = 0x00000002, + WHvVirtualProcessorStateTypeInterruptControllerState2 = 0x00001000, + WHvVirtualProcessorStateTypeXsaveState = 0x00001001 +} WHV_VIRTUAL_PROCESSOR_STATE_TYPE; + +typedef struct WHV_SYNIC_EVENT_PARAMETERS { + UINT32 VpIndex; + UINT8 TargetSint; + UINT8 Reserved; + UINT16 FlagNumber; +} WHV_SYNIC_EVENT_PARAMETERS; + +C_ASSERT(sizeof(WHV_SYNIC_EVENT_PARAMETERS) == 8); + +typedef enum WHV_ALLOCATE_VPCI_RESOURCE_FLAGS { + WHvAllocateVpciResourceFlagNone = 0x00000000, + WHvAllocateVpciResourceFlagAllowDirectP2P = 0x00000001 +} WHV_ALLOCATE_VPCI_RESOURCE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(WHV_ALLOCATE_VPCI_RESOURCE_FLAGS); + +#define WHV_MAX_DEVICE_ID_SIZE_IN_CHARS 200 + +typedef struct WHV_SRIOV_RESOURCE_DESCRIPTOR { + WCHAR PnpInstanceId[WHV_MAX_DEVICE_ID_SIZE_IN_CHARS]; + LUID VirtualFunctionId; + UINT16 VirtualFunctionIndex; + UINT16 Reserved; +} WHV_SRIOV_RESOURCE_DESCRIPTOR; + +C_ASSERT(sizeof(WHV_SRIOV_RESOURCE_DESCRIPTOR) == 412); + +typedef enum WHV_VPCI_DEVICE_NOTIFICATION_TYPE { + WHvVpciDeviceNotificationUndefined = 0, + WHvVpciDeviceNotificationMmioRemapping = 1, + WHvVpciDeviceNotificationSurpriseRemoval = 2 +} WHV_VPCI_DEVICE_NOTIFICATION_TYPE; + +typedef struct WHV_VPCI_DEVICE_NOTIFICATION { + WHV_VPCI_DEVICE_NOTIFICATION_TYPE NotificationType; + UINT32 Reserved1; + __C89_NAMELESS union { + UINT64 Reserved2; + }; +} WHV_VPCI_DEVICE_NOTIFICATION; + +C_ASSERT(sizeof(WHV_VPCI_DEVICE_NOTIFICATION) == 16); + +typedef enum WHV_CREATE_VPCI_DEVICE_FLAGS { + WHvCreateVpciDeviceFlagNone = 0x00000000, + WHvCreateVpciDeviceFlagPhysicallyBacked = 0x00000001, + WHvCreateVpciDeviceFlagUseLogicalInterrupts = 0x00000002 +} WHV_CREATE_VPCI_DEVICE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(WHV_CREATE_VPCI_DEVICE_FLAGS); + +typedef enum WHV_VPCI_DEVICE_PROPERTY_CODE { + WHvVpciDevicePropertyCodeUndefined = 0, + WHvVpciDevicePropertyCodeHardwareIDs = 1, + WHvVpciDevicePropertyCodeProbedBARs = 2 +} WHV_VPCI_DEVICE_PROPERTY_CODE; + +typedef struct WHV_VPCI_HARDWARE_IDS { + UINT16 VendorID; + UINT16 DeviceID; + UINT8 RevisionID; + UINT8 ProgIf; + UINT8 SubClass; + UINT8 BaseClass; + UINT16 SubVendorID; + UINT16 SubSystemID; +} WHV_VPCI_HARDWARE_IDS; + +C_ASSERT(sizeof(WHV_VPCI_HARDWARE_IDS) == 12); + +#define WHV_VPCI_TYPE0_BAR_COUNT 6 + +typedef struct WHV_VPCI_PROBED_BARS { + UINT32 Value[WHV_VPCI_TYPE0_BAR_COUNT]; +} WHV_VPCI_PROBED_BARS; + +C_ASSERT(sizeof(WHV_VPCI_PROBED_BARS) == 24); + +typedef enum WHV_VPCI_MMIO_RANGE_FLAGS { + WHvVpciMmioRangeFlagReadAccess = 0x00000001, + WHvVpciMmioRangeFlagWriteAccess = 0x00000002 +} WHV_VPCI_MMIO_RANGE_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(WHV_VPCI_MMIO_RANGE_FLAGS); + +typedef enum WHV_VPCI_DEVICE_REGISTER_SPACE { + WHvVpciConfigSpace = -1, + WHvVpciBar0 = 0, + WHvVpciBar1 = 1, + WHvVpciBar2 = 2, + WHvVpciBar3 = 3, + WHvVpciBar4 = 4, + WHvVpciBar5 = 5 +} WHV_VPCI_DEVICE_REGISTER_SPACE; + +typedef struct WHV_VPCI_MMIO_MAPPING { + WHV_VPCI_DEVICE_REGISTER_SPACE Location; + WHV_VPCI_MMIO_RANGE_FLAGS Flags; + UINT64 SizeInBytes; + UINT64 OffsetInBytes; + PVOID VirtualAddress; +} WHV_VPCI_MMIO_MAPPING; + +C_ASSERT(sizeof(WHV_VPCI_MMIO_MAPPING) == 32); + +typedef struct WHV_VPCI_DEVICE_REGISTER { + WHV_VPCI_DEVICE_REGISTER_SPACE Location; + UINT32 SizeInBytes; + UINT64 OffsetInBytes; +} WHV_VPCI_DEVICE_REGISTER; + +C_ASSERT(sizeof(WHV_VPCI_DEVICE_REGISTER) == 16); + +typedef enum WHV_VPCI_INTERRUPT_TARGET_FLAGS { + WHvVpciInterruptTargetFlagNone = 0x00000000, + WHvVpciInterruptTargetFlagMulticast = 0x00000001 +} WHV_VPCI_INTERRUPT_TARGET_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(WHV_VPCI_INTERRUPT_TARGET_FLAGS); + +typedef struct WHV_VPCI_INTERRUPT_TARGET { + UINT32 Vector; + WHV_VPCI_INTERRUPT_TARGET_FLAGS Flags; + UINT32 ProcessorCount; + UINT32 Processors[ANYSIZE_ARRAY]; +} WHV_VPCI_INTERRUPT_TARGET; + +C_ASSERT(sizeof(WHV_VPCI_INTERRUPT_TARGET) == 16); + +typedef enum WHV_TRIGGER_TYPE { + WHvTriggerTypeInterrupt = 0, + WHvTriggerTypeSynicEvent = 1, + WHvTriggerTypeDeviceInterrupt = 2 +} WHV_TRIGGER_TYPE; + +typedef struct WHV_TRIGGER_PARAMETERS { + WHV_TRIGGER_TYPE TriggerType; + UINT32 Reserved; + __C89_NAMELESS union { + WHV_INTERRUPT_CONTROL Interrupt; + WHV_SYNIC_EVENT_PARAMETERS SynicEvent; + __C89_NAMELESS struct { + UINT64 LogicalDeviceId; + UINT64 MsiAddress; + UINT32 MsiData; + UINT32 Reserved; + } DeviceInterrupt; + }; +} WHV_TRIGGER_PARAMETERS; + +C_ASSERT(sizeof(WHV_TRIGGER_PARAMETERS) == 32); + +typedef PVOID WHV_TRIGGER_HANDLE; + +typedef enum WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE { + WHvVirtualProcessorPropertyCodeNumaNode = 0x00000000 +} WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE; + +typedef struct WHV_VIRTUAL_PROCESSOR_PROPERTY { + WHV_VIRTUAL_PROCESSOR_PROPERTY_CODE PropertyCode; + UINT32 Reserved; + __C89_NAMELESS union { + USHORT NumaNode; + UINT64 Padding; + }; +} WHV_VIRTUAL_PROCESSOR_PROPERTY; + +C_ASSERT(sizeof(WHV_VIRTUAL_PROCESSOR_PROPERTY) == 16); + +typedef enum WHV_NOTIFICATION_PORT_TYPE { + WHvNotificationPortTypeEvent = 2, + WHvNotificationPortTypeDoorbell = 4 +} WHV_NOTIFICATION_PORT_TYPE; + +typedef struct WHV_NOTIFICATION_PORT_PARAMETERS { + WHV_NOTIFICATION_PORT_TYPE NotificationPortType; + UINT32 Reserved; + __C89_NAMELESS union { + WHV_DOORBELL_MATCH_DATA Doorbell; + __C89_NAMELESS struct { + UINT32 ConnectionId; + } Event; + }; +} WHV_NOTIFICATION_PORT_PARAMETERS; + +C_ASSERT(sizeof(WHV_NOTIFICATION_PORT_PARAMETERS) == 32); + +typedef enum WHV_NOTIFICATION_PORT_PROPERTY_CODE { + WHvNotificationPortPropertyPreferredTargetVp = 1, + WHvNotificationPortPropertyPreferredTargetDuration = 5 +} WHV_NOTIFICATION_PORT_PROPERTY_CODE; + +typedef UINT64 WHV_NOTIFICATION_PORT_PROPERTY; + +#define WHV_ANY_VP (0xFFFFFFFF) + +#define WHV_NOTIFICATION_PORT_PREFERRED_DURATION_MAX (0xFFFFFFFFFFFFFFFFULL) + +typedef PVOID WHV_NOTIFICATION_PORT_HANDLE; + +#define WHV_SYNIC_MESSAGE_SIZE 256 + #endif /* _WINHVAPIDEFS_H_ */ diff --git a/lib/libc/include/any-windows-any/wininet.h b/lib/libc/include/any-windows-any/wininet.h index bb19d65d25..61c3a11b70 100644 --- a/lib/libc/include/any-windows-any/wininet.h +++ b/lib/libc/include/any-windows-any/wininet.h @@ -61,6 +61,9 @@ extern "C" { #define INTERNET_REQFLAG_CACHE_WRITE_DISABLED 0x00000040 #define INTERNET_REQFLAG_NET_TIMEOUT 0x00000080 +#define INTERNET_FLAG_IDN_DIRECT 0x00000001 +#define INTERNET_FLAG_IDN_PROXY 0x00000002 + #define INTERNET_FLAG_RELOAD 0x80000000 #define INTERNET_FLAG_RAW_DATA 0x40000000 @@ -104,6 +107,7 @@ extern "C" { #define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY #define SECURITY_INTERNET_MASK (INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP) +#define SECURITY_IGNORE_ERROR_MASK (INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_REVOCATION | SECURITY_FLAG_IGNORE_WEAK_SIGNATURE) #define INTERNET_FLAGS_MASK (INTERNET_FLAG_RELOAD | INTERNET_FLAG_RAW_DATA | INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_ASYNC | INTERNET_FLAG_PASSIVE | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_MAKE_PERSISTENT | INTERNET_FLAG_FROM_CACHE | INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_READ_PREFETCH | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_AUTH | INTERNET_FLAG_CACHE_IF_NET_FAIL | SECURITY_INTERNET_MASK | INTERNET_FLAG_RESYNCHRONIZE | INTERNET_FLAG_HYPERLINK | INTERNET_FLAG_NO_UI | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_CACHE_ASYNC | INTERNET_FLAG_FORMS_SUBMIT | INTERNET_FLAG_NEED_FILE | INTERNET_FLAG_RESTRICTED_ZONE | INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_FWD_BACK | INTERNET_FLAG_BGUPDATE) #define INTERNET_ERROR_MASK_INSERT_CDROM 0x1 @@ -476,6 +480,7 @@ extern "C" { #define INTERNET_OPTION_ERROR_MASK 62 #define INTERNET_OPTION_FROM_CACHE_TIMEOUT 63 #define INTERNET_OPTION_BYPASS_EDITED_ENTRY 64 +#define INTERNET_OPTION_HTTP_DECODING 65 #define INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO 67 #define INTERNET_OPTION_CODEPAGE 68 #define INTERNET_OPTION_CACHE_TIMESTAMPS 69 @@ -507,11 +512,47 @@ extern "C" { #define INTERNET_OPTION_DATAFILE_EXT 96 +#define INTERNET_OPTION_CODEPAGE_PATH 100 +#define INTERNET_OPTION_CODEPAGE_EXTRA 101 +#define INTERNET_OPTION_IDN 102 +#define INTERNET_OPTION_MAX_CONNS_PER_PROXY 103 +#define INTERNET_OPTION_SUPPRESS_SERVER_AUTH 104 +#define INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT 105 + +#define INTERNET_OPTION_ENABLE_REDIRECT_CACHE_READ 122 + +#define INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH 147 +#define INTERNET_OPTION_ENABLE_HTTP_PROTOCOL 148 +#define INTERNET_OPTION_HTTP_PROTOCOL_USED 149 + +#define INTERNET_OPTION_ENCODE_EXTRA 155 + +#define INTERNET_OPTION_HSTS 157 + +#define INTERNET_OPTION_ENTERPRISE_CONTEXT 159 + +#define INTERNET_OPTION_CONNECTION_FILTER 162 +#define INTERNET_OPTION_REFERER_TOKEN_BINDING_HOSTNAME 163 + +#define INTERNET_OPTION_TOKEN_BINDING_PUBLIC_KEY 181 + +#define INTERNET_OPTION_COOKIES_SAME_SITE_LEVEL 187 + #define INTERNET_FIRST_OPTION INTERNET_OPTION_CALLBACK #define INTERNET_LAST_OPTION INTERNET_OPTION_DATAFILE_EXT #define INTERNET_PRIORITY_FOREGROUND 1000 +#define HTTP_COOKIES_SAME_SITE_LEVEL_UNKNOWN 0x0 +#define HTTP_COOKIES_SAME_SITE_LEVEL_SAME_SITE 0x1 +#define HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE_LAX 0x2 +#define HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE 0x3 + +#define HTTP_COOKIES_SAME_SITE_LEVEL_MAX HTTP_COOKIES_SAME_SITE_LEVEL_CROSS_SITE + +#define HTTP_PROTOCOL_FLAG_HTTP2 0x2 +#define HTTP_PROTOCOL_MASK HTTP_PROTOCOL_FLAG_HTTP2 + #define INTERNET_HANDLE_TYPE_INTERNET 1 #define INTERNET_HANDLE_TYPE_CONNECT_FTP 2 #define INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3 @@ -530,6 +571,7 @@ extern "C" { #define AUTH_FLAG_DISABLE_NEGOTIATE 0x00000001 #define AUTH_FLAG_ENABLE_NEGOTIATE 0x00000002 #define AUTH_FLAG_DISABLE_BASIC_CLEARCHANNEL 0x00000004 +#define AUTH_FLAG_DISABLE_SERVER_AUTH 0x00000008 #define SECURITY_FLAG_SECURE 0x00000001 #define SECURITY_FLAG_STRENGTH_WEAK 0x10000000 @@ -552,6 +594,7 @@ extern "C" { #define SECURITY_FLAG_IGNORE_REVOCATION 0x00000080 #define SECURITY_FLAG_IGNORE_UNKNOWN_CA 0x00000100 #define SECURITY_FLAG_IGNORE_WRONG_USAGE 0x00000200 +#define SECURITY_FLAG_IGNORE_WEAK_SIGNATURE 0x00010000 #define SECURITY_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_CN_INVALID #define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID @@ -561,6 +604,8 @@ extern "C" { #define SECURITY_SET_MASK (SECURITY_FLAG_IGNORE_REVOCATION | SECURITY_FLAG_IGNORE_UNKNOWN_CA | SECURITY_FLAG_IGNORE_CERT_CN_INVALID | SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | SECURITY_FLAG_IGNORE_WRONG_USAGE) +#define SECURITY_FLAG_OPT_IN_WEAK_SIGNATURE 0x00020000 + #define AUTODIAL_MODE_NEVER 1 #define AUTODIAL_MODE_ALWAYS 2 #define AUTODIAL_MODE_NO_NETWORK_PRESENT 4 @@ -1035,6 +1080,33 @@ extern "C" { #define HTTP_QUERY_PASSPORT_URLS 77 #define HTTP_QUERY_PASSPORT_CONFIG 78 +#define HTTP_QUERY_X_CONTENT_TYPE_OPTIONS 79 +#define HTTP_QUERY_P3P 80 +#define HTTP_QUERY_X_P2P_PEERDIST 81 +#define HTTP_QUERY_TRANSLATE 82 +#define HTTP_QUERY_X_UA_COMPATIBLE 83 +#define HTTP_QUERY_DEFAULT_STYLE 84 +#define HTTP_QUERY_X_FRAME_OPTIONS 85 +#define HTTP_QUERY_X_XSS_PROTECTION 86 + +#define HTTP_QUERY_SET_COOKIE2 87 + +#define HTTP_QUERY_DO_NOT_TRACK 88 + +#define HTTP_QUERY_KEEP_ALIVE 89 + +#define HTTP_QUERY_HTTP2_SETTINGS 90 + +#define HTTP_QUERY_STRICT_TRANSPORT_SECURITY 91 + +#define HTTP_QUERY_TOKEN_BINDING 92 + +#define HTTP_QUERY_INCLUDE_REFERRED_TOKEN_BINDING_ID 93 +#define HTTP_QUERY_INCLUDE_REFERER_TOKEN_BINDING_ID HTTP_QUERY_INCLUDE_REFERRED_TOKEN_BINDING_ID + +#define HTTP_QUERY_PUBLIC_KEY_PINS 94 +#define HTTP_QUERY_PUBLIC_KEY_PINS_REPORT_ONLY 95 + #define HTTP_QUERY_MAX 78 #define HTTP_QUERY_CUSTOM 65535 @@ -1042,7 +1114,9 @@ extern "C" { #define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000 #define HTTP_QUERY_FLAG_NUMBER 0x20000000 #define HTTP_QUERY_FLAG_COALESCE 0x10000000 -#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS | HTTP_QUERY_FLAG_SYSTEMTIME | HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_FLAG_COALESCE) +#define HTTP_QUERY_FLAG_NUMBER64 0x08000000 +#define HTTP_QUERY_FLAG_COALESCE_WITH_COMMA 0x04000000 +#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS | HTTP_QUERY_FLAG_SYSTEMTIME | HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_FLAG_COALESCE | HTTP_QUERY_FLAG_NUMBER64 | HTTP_QUERY_FLAG_COALESCE_WITH_COMMA) #define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK) #define HTTP_STATUS_CONTINUE 100 @@ -1063,6 +1137,7 @@ extern "C" { #define HTTP_STATUS_NOT_MODIFIED 304 #define HTTP_STATUS_USE_PROXY 305 #define HTTP_STATUS_REDIRECT_KEEP_VERB 307 +#define HTTP_STATUS_PERMANENT_REDIRECT 308 #define HTTP_STATUS_BAD_REQUEST 400 #define HTTP_STATUS_DENIED 401 @@ -1080,6 +1155,7 @@ extern "C" { #define HTTP_STATUS_REQUEST_TOO_LARGE 413 #define HTTP_STATUS_URI_TOO_LONG 414 #define HTTP_STATUS_UNSUPPORTED_MEDIA 415 +#define HTTP_STATUS_MISDIRECTED_REQUEST 421 #define HTTP_STATUS_RETRY_WITH 449 #define HTTP_STATUS_SERVER_ERROR 500 @@ -1133,6 +1209,16 @@ extern "C" { BOOLAPI HttpQueryInfoA(HINTERNET hRequest,DWORD dwInfoLevel,LPVOID lpBuffer,LPDWORD lpdwBufferLength,LPDWORD lpdwIndex); BOOLAPI HttpQueryInfoW(HINTERNET hRequest,DWORD dwInfoLevel,LPVOID lpBuffer,LPDWORD lpdwBufferLength,LPDWORD lpdwIndex); + typedef struct { + PWSTR pwszName; + PWSTR pwszValue; + PWSTR pwszDomain; + PWSTR pwszPath; + DWORD dwFlags; + FILETIME ftExpires; + WINBOOL fExpiresSet; + } INTERNET_COOKIE2; + #define INTERNET_COOKIE_IS_SECURE 0x01 #define INTERNET_COOKIE_IS_SESSION 0x02 @@ -1146,6 +1232,16 @@ extern "C" { #define INTERNET_COOKIE_IE6 0x400 #define INTERNET_COOKIE_IS_LEGACY 0x800 +#define INTERNET_COOKIE_NON_SCRIPT 0x00001000 +#define INTERNET_COOKIE_HTTPONLY 0x00002000 +#define INTERNET_COOKIE_HOST_ONLY 0x00004000 +#define INTERNET_COOKIE_APPLY_HOST_ONLY 0x00008000 + +#define INTERNET_COOKIE_HOST_ONLY_APPLIED 0x00080000 +#define INTERNET_COOKIE_SAME_SITE_STRICT 0x00100000 +#define INTERNET_COOKIE_SAME_SITE_LAX 0x00200000 +#define INTERNET_COOKIE_SAME_SITE_LEVEL_CROSS_SITE 0x00400000 + #define InternetSetCookie __MINGW_NAME_AW(InternetSetCookie) #define InternetGetCookie __MINGW_NAME_AW(InternetGetCookie) #define InternetSetCookieEx __MINGW_NAME_AW(InternetSetCookieEx) diff --git a/lib/libc/include/any-windows-any/winineti.h b/lib/libc/include/any-windows-any/winineti.h index 691ffe07dd..3af7083013 100644 --- a/lib/libc/include/any-windows-any/winineti.h +++ b/lib/libc/include/any-windows-any/winineti.h @@ -129,6 +129,7 @@ WINBOOL WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW,LPDWORD, #define GetUrlCacheConfigInfo __MINGW_NAME_AW(GetUrlCacheConfigInfo) WINBOOL WINAPI IncrementUrlCacheHeaderData(DWORD,LPDWORD); WINBOOL WINAPI InternetQueryFortezzaStatus(DWORD*,DWORD_PTR); +WINBOOL WINAPI IsHostInProxyBypassList(INTERNET_SCHEME,LPCSTR,DWORD); WINBOOL WINAPI IsUrlCacheEntryExpiredA(LPCSTR,DWORD,FILETIME*); WINBOOL WINAPI IsUrlCacheEntryExpiredW(LPCWSTR,DWORD,FILETIME*); #define IsUrlCacheEntryExpired __MINGW_NAME_AW(IsUrlCacheEntryExpired) diff --git a/lib/libc/include/any-windows-any/winioctl.h b/lib/libc/include/any-windows-any/winioctl.h index 76664e577d..d282d255b5 100644 --- a/lib/libc/include/any-windows-any/winioctl.h +++ b/lib/libc/include/any-windows-any/winioctl.h @@ -19,7 +19,17 @@ DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,0x53f56310,0xb6bf,0x11d0,0x94,0xf2,0 DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,0x53f56311,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b); DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,0x53f56312,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b); DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,0x2accfe60,0xc130,0x11d2,0xb0,0x82,0x00,0xa0,0xc9,0x1e,0xfb,0x8b); +DEFINE_GUID(GUID_DEVINTERFACE_VMLUN,0x6f416619,0x9f29,0x42a5,0xb2,0x0b,0x37,0xe2,0x19,0xca,0x02,0xb0); +DEFINE_GUID(GUID_DEVINTERFACE_SES,0x1790c9ec,0x47d5,0x4df3,0xb5,0xaf,0x9a,0xdf,0x3c,0xf2,0x3e,0x48); +DEFINE_GUID(GUID_DEVINTERFACE_ZNSDISK,0xb87941c5,0xffdb,0x43c7,0xb6,0xb1,0x20,0xb6,0x32,0xf0,0xb1,0x09); +#define WDI_STORAGE_PREDICT_FAILURE_DPS_GUID {0xe9f2d03a,0x747c,0x41c2,{0xbb,0x9a,0x02,0xc6,0x2b,0x6d,0x5f,0xcb}}; + +DEFINE_GUID(GUID_DEVINTERFACE_SERVICE_VOLUME,0x6ead3d82,0x25ec,0x46bc,0xb7,0xfd,0xc1,0xf0,0xdf,0x8f,0x50,0x37); DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,0x7f108a28,0x9833,0x4b3b,0xb7,0x80,0x2c,0x6b,0x5f,0xa5,0xc0,0x62); +DEFINE_GUID(GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB,0x27447c21,0xbcc3,0x4d07,0xa0,0x5b,0xa3,0x39,0x5b,0xb4,0xee,0xe7); +DEFINE_GUID(GUID_DEVINTERFACE_SCM_PHYSICAL_DEVICE,0x4283609d,0x4dc2,0x43be,0xbb,0xb4,0x4f,0x15,0xdf,0xce,0x2c,0x61); +DEFINE_GUID(GUID_SCM_PD_HEALTH_NOTIFICATION,0x9da2d386,0x72f5,0x4ee3,0x81,0x55,0xec,0xa0,0x67,0x8e,0x3b,0x6); +DEFINE_GUID(GUID_SCM_PD_PASSTHROUGH_INVDIMM,0x4309ac30,0x0d11,0x11e4,0x91,0x91,0x08,0x00,0x20,0x0c,0x9a,0x66); DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,0x86e0d1e0,0x8089,0x11d0,0x9c,0xe4,0x08,0x00,0x3e,0x30,0x1f,0x73); DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0xBF,0xC1,0x08,0x00,0x2B,0xE1,0x03,0x18); @@ -38,6 +48,23 @@ DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0x #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR #endif /* DEFINE_GUID */ +#ifdef DEFINE_DEVPROPKEY + +#ifndef __WRAPPED__ +#define __WRAPPED__ +#endif + +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Portable,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,2); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Removable_Media,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,3); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_System_Critical,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,4); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Disk_Number,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,5); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Partition_Number,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,6); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Mbr_Type,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,7); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Gpt_Type,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,8); +DEFINE_DEVPROPKEY(DEVPKEY_Storage_Gpt_Name,0x4d1ebee8,0x803,0x4774,0x98,0x42,0xb7,0x7d,0xb5,0x2,0x65,0xe9,9); + +#endif /* DEFINE_DEVPROPKEY */ + #ifndef _WINIOCTL_ #define _WINIOCTL_ @@ -133,10 +160,15 @@ DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0x #define FILE_DEVICE_HOLOGRAPHIC 0x0000005b #define FILE_DEVICE_SDFXHCI 0x0000005c #define FILE_DEVICE_UCMUCSI 0x0000005d +#define FILE_DEVICE_PRM 0x0000005e +#define FILE_DEVICE_EVENT_COLLECTOR 0x0000005f +#define FILE_DEVICE_USB4 0x00000060 +#define FILE_DEVICE_SOUNDWIRE 0x00000061 #define CTL_CODE(DeviceType,Function,Method,Access) (((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)) #define DEVICE_TYPE_FROM_CTL_CODE(ctrlCode) (((DWORD)(ctrlCode & 0xffff0000)) >> 16) +#define METHOD_FROM_CTL_CODE(ctrlCode) ((DWORD)(ctrlCode & 3)) #define METHOD_BUFFERED 0 #define METHOD_IN_DIRECT 1 @@ -189,17 +221,59 @@ extern "C" { #define IOCTL_STORAGE_PERSISTENT_RESERVE_OUT CTL_CODE(IOCTL_STORAGE_BASE, 0x0407, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE,0x0420,METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_STORAGE_GET_DEVICE_NUMBER_EX CTL_CODE(IOCTL_STORAGE_BASE,0x0421,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE,0x0440,METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_STORAGE_FAILURE_PREDICTION_CONFIG CTL_CODE(IOCTL_STORAGE_BASE,0x0441,METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_STORAGE_GET_COUNTERS CTL_CODE(IOCTL_STORAGE_BASE,0x442,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_STORAGE_READ_CAPACITY CTL_CODE(IOCTL_STORAGE_BASE,0x0450,METHOD_BUFFERED,FILE_READ_ACCESS) +#define IOCTL_STORAGE_GET_DEVICE_TELEMETRY CTL_CODE(IOCTL_STORAGE_BASE, 0x0470, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_DEVICE_TELEMETRY_NOTIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0471, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_DEVICE_TELEMETRY_QUERY_CAPS CTL_CODE(IOCTL_STORAGE_BASE, 0x0472, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_GET_DEVICE_TELEMETRY_RAW CTL_CODE(IOCTL_STORAGE_BASE, 0x0473, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +#define IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD CTL_CODE(IOCTL_STORAGE_BASE, 0x0480, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +#define IOCTL_STORAGE_PROTOCOL_COMMAND CTL_CODE(IOCTL_STORAGE_BASE, 0x04F0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +#define IOCTL_STORAGE_SET_PROPERTY CTL_CODE(IOCTL_STORAGE_BASE, 0x04FF, METHOD_BUFFERED, FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_QUERY_PROPERTY CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES CTL_CODE(IOCTL_STORAGE_BASE, 0x0502, METHOD_BUFFERED, FILE_READ_ACCESS) + +#define IOCTL_STORAGE_REINITIALIZE_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0590, METHOD_BUFFERED, FILE_WRITE_ACCESS) + #define IOCTL_STORAGE_GET_BC_PROPERTIES CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_STORAGE_ALLOCATE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0601, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define IOCTL_STORAGE_FREE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0602, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + #define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK CTL_CODE(IOCTL_STORAGE_BASE, 0x0621, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK CTL_CODE(IOCTL_STORAGE_BASE, 0x0622, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + #define OBSOLETE_IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) #define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_FIRMWARE_GET_INFO CTL_CODE(IOCTL_STORAGE_BASE, 0x0700, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_FIRMWARE_DOWNLOAD CTL_CODE(IOCTL_STORAGE_BASE, 0x0701, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_FIRMWARE_ACTIVATE CTL_CODE(IOCTL_STORAGE_BASE, 0x0702, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +#define IOCTL_STORAGE_ENABLE_IDLE_POWER CTL_CODE(IOCTL_STORAGE_BASE, 0x0720, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_GET_IDLE_POWERUP_REASON CTL_CODE(IOCTL_STORAGE_BASE, 0x0721, METHOD_BUFFERED, FILE_ANY_ACCESS) + +#define IOCTL_STORAGE_POWER_ACTIVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0722, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_POWER_IDLE CTL_CODE(IOCTL_STORAGE_BASE, 0x0723, METHOD_BUFFERED, FILE_ANY_ACCESS) + +#define IOCTL_STORAGE_EVENT_NOTIFICATION CTL_CODE(IOCTL_STORAGE_BASE, 0x0724, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_DEVICE_POWER_CAP CTL_CODE(IOCTL_STORAGE_BASE, 0x0725, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_RPMB_COMMAND CTL_CODE(IOCTL_STORAGE_BASE, 0x0726, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT CTL_CODE(IOCTL_STORAGE_BASE, 0x0727, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +#define IOCTL_STORAGE_DIAGNOSTIC CTL_CODE(IOCTL_STORAGE_BASE, 0x0728, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0729, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE CTL_CODE(IOCTL_STORAGE_BASE, 0x0730, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG CTL_CODE(IOCTL_STORAGE_BASE, 0x0731, METHOD_BUFFERED, FILE_ANY_ACCESS) + typedef struct _STORAGE_READ_CAPACITY { ULONG Version; ULONG Size; @@ -320,6 +394,27 @@ typedef struct _STORAGE_READ_CAPACITY { DWORD PartitionNumber; } STORAGE_DEVICE_NUMBER,*PSTORAGE_DEVICE_NUMBER; + typedef struct _STORAGE_DEVICE_NUMBERS { + DWORD Version; + DWORD Size; + DWORD NumberOfDevices; + STORAGE_DEVICE_NUMBER Devices[ANYSIZE_ARRAY]; + } STORAGE_DEVICE_NUMBERS,*PSTORAGE_DEVICE_NUMBERS; + +#define STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT 0x1 +#define STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID 0x2 +#define STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID 0x4 + + typedef struct _STORAGE_DEVICE_NUMBER_EX { + DWORD Version; + DWORD Size; + DWORD Flags; + DEVICE_TYPE DeviceType; + DWORD DeviceNumber; + GUID DeviceGuid; + DWORD PartitionNumber; + } STORAGE_DEVICE_NUMBER_EX,*PSTORAGE_DEVICE_NUMBER_EX; + typedef struct _STORAGE_BUS_RESET_REQUEST { BYTE PathId; } STORAGE_BUS_RESET_REQUEST,*PSTORAGE_BUS_RESET_REQUEST; @@ -368,7 +463,7 @@ typedef struct _STORAGE_READ_CAPACITY { #define TAPE_RESET_STATISTICS __MSABI_LONG(2) typedef enum _STORAGE_MEDIA_TYPE { - DDS_4mm = 0x20, + DDS_4mm = 0x20, MiniQic, Travan, QIC, @@ -470,6 +565,8 @@ typedef struct _STORAGE_READ_CAPACITY { BusTypeMaxReserved = 0x7F } STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE; +#define SupportsDeviceSharing(BusType) ((BusType == BusTypeScsi) || (BusType == BusTypeFibre) || (BusType == BusTypeiScsi) || (BusType == BusTypeSas) || (BusType == BusTypeSpaces)) + typedef struct _DEVICE_MEDIA_INFO { union { struct { @@ -516,6 +613,16 @@ typedef struct _STORAGE_READ_CAPACITY { BYTE VendorSpecific[512]; } STORAGE_PREDICT_FAILURE,*PSTORAGE_PREDICT_FAILURE; + typedef struct _STORAGE_FAILURE_PREDICTION_CONFIG { + DWORD Version; + DWORD Size; + BOOLEAN Set; + BOOLEAN Enabled; + WORD Reserved; + } STORAGE_FAILURE_PREDICTION_CONFIG,*PSTORAGE_FAILURE_PREDICTION_CONFIG; + +#define STORAGE_FAILURE_PREDICTION_CONFIG_V1 1 + #ifdef __cplusplus } #endif @@ -705,6 +812,9 @@ typedef struct _PARTITION_INFORMATION_MBR { BOOLEAN BootIndicator; BOOLEAN RecognizedPartition; DWORD HiddenSectors; +#if NTDDI_VERSION > NTDDI_WINBLUE + GUID PartitionId; +#endif } PARTITION_INFORMATION_MBR,*PPARTITION_INFORMATION_MBR; typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR; @@ -745,6 +855,9 @@ typedef struct _PARTITION_INFORMATION_EX { LARGE_INTEGER PartitionLength; DWORD PartitionNumber; BOOLEAN RewritePartition; +#if NTDDI_VERSION >= NTDDI_WIN10_RS3 + BOOLEAN IsServicePartition; +#endif __C89_NAMELESS union { PARTITION_INFORMATION_MBR Mbr; PARTITION_INFORMATION_GPT Gpt; @@ -1865,16 +1978,42 @@ typedef struct _STORAGE_DESCRIPTOR_HEADER { } STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER; typedef enum _STORAGE_PROPERTY_ID { - StorageDeviceProperty = 0, - StorageAdapterProperty = 1, - StorageDeviceIdProperty = 2, - StorageDeviceUniqueIdProperty = 3, - StorageDeviceWriteCacheProperty = 4, - StorageMiniportProperty = 5, - StorageAccessAlignmentProperty = 6, - StorageDeviceSeekPenaltyProperty = 7, - StorageDeviceTrimProperty = 8, - StorageDeviceWriteAggregationProperty = 9 + StorageDeviceProperty = 0, + StorageAdapterProperty, + StorageDeviceIdProperty, + StorageDeviceUniqueIdProperty, + StorageDeviceWriteCacheProperty, + StorageMiniportProperty, + StorageAccessAlignmentProperty, + StorageDeviceSeekPenaltyProperty, + StorageDeviceTrimProperty, + StorageDeviceWriteAggregationProperty, + StorageDeviceDeviceTelemetryProperty, + StorageDeviceLBProvisioningProperty, + StorageDevicePowerProperty, + StorageDeviceCopyOffloadProperty, + StorageDeviceResiliencyProperty, + StorageDeviceMediumProductType, + StorageAdapterRpmbProperty, + StorageAdapterCryptoProperty, + StorageDeviceIoCapabilityProperty = 48, + StorageAdapterProtocolSpecificProperty, + StorageDeviceProtocolSpecificProperty, + StorageAdapterTemperatureProperty, + StorageDeviceTemperatureProperty, + StorageAdapterPhysicalTopologyProperty, + StorageDevicePhysicalTopologyProperty, + StorageDeviceAttributesProperty, + StorageDeviceManagementStatus, + StorageAdapterSerialNumberProperty, + StorageDeviceLocationProperty, + StorageDeviceNumaProperty, + StorageDeviceZonedDeviceProperty, + StorageDeviceUnsafeShutdownCount, + StorageDeviceEnduranceProperty, + StorageDeviceLedStateProperty, + StorageDeviceSelfEncryptionProperty = 64, + StorageFruIdProperty } STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID; typedef enum _STORAGE_QUERY_TYPE { @@ -1884,12 +2023,24 @@ typedef enum _STORAGE_QUERY_TYPE { PropertyQueryMaxDefined = 3 } STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE; +typedef enum _STORAGE_SET_TYPE { + PropertyStandardSet = 0, + PropertyExistsSet, + PropertySetMaxDefined +} STORAGE_SET_TYPE, *PSTORAGE_SET_TYPE; + typedef struct _STORAGE_PROPERTY_QUERY { STORAGE_PROPERTY_ID PropertyId; STORAGE_QUERY_TYPE QueryType; BYTE AdditionalParameters[1]; } STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY; +typedef struct _STORAGE_PROPERTY_SET { + STORAGE_PROPERTY_ID PropertyId; + STORAGE_SET_TYPE SetType; + BYTE AdditionalParameters[1]; +} STORAGE_PROPERTY_SET, *PSTORAGE_PROPERTY_SET; + typedef struct _STORAGE_DEVICE_DESCRIPTOR { DWORD Version; DWORD Size; @@ -1919,8 +2070,30 @@ typedef struct _STORAGE_ADAPTER_DESCRIPTOR { BYTE BusType; WORD BusMajorVersion; WORD BusMinorVersion; +#if NTDDI_VERSION >= NTDDI_WIN8 + BYTE SrbType; + BYTE AddressType; +#endif } STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR; +#if NTDDI_VERSION >= NTDDI_WIN8 + +#define NO_SRBTYPE_ADAPTER_DESCRIPTOR_SIZE UFIELD_OFFSET(STORAGE_ADAPTER_DESCRIPTOR, SrbType) + +#ifndef SRB_TYPE_SCSI_REQUEST_BLOCK +#define SRB_TYPE_SCSI_REQUEST_BLOCK 0 +#endif + +#ifndef SRB_TYPE_STORAGE_REQUEST_BLOCK +#define SRB_TYPE_STORAGE_REQUEST_BLOCK 1 +#endif + +#ifndef STORAGE_ADDRESS_TYPE_BTL8 +#define STORAGE_ADDRESS_TYPE_BTL8 0 +#endif + +#endif + typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR { DWORD Version; DWORD Size; @@ -2302,9 +2475,14 @@ typedef struct _STORAGE_WRITE_CACHE_PROPERTY { } STORAGE_WRITE_CACHE_PROPERTY, *PSTORAGE_WRITE_CACHE_PROPERTY; typedef enum _STORAGE_PORT_CODE_SET { - StoragePortCodeSetReserved = 0, - StoragePortCodeSetStorport = 1, - StoragePortCodeSetSCSIport = 2 + StoragePortCodeSetReserved = 0, + StoragePortCodeSetStorport = 1, + StoragePortCodeSetSCSIport = 2, + StoragePortCodeSetSpaceport = 3, + StoragePortCodeSetATAport = 4, + StoragePortCodeSetUSBport = 5, + StoragePortCodeSetSBP2port = 6, + StoragePortCodeSetSDport = 7 } STORAGE_PORT_CODE_SET, *PSTORAGE_PORT_CODE_SET; typedef struct _STORAGE_MINIPORT_DESCRIPTOR { @@ -2366,6 +2544,13 @@ typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR { DWORD BytesPerPhysicalSector; DWORD BytesOffsetForSectorAlignment; } STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR, *PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR; + +typedef struct _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD MediumProductType; +} STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR, *PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR; + #endif /*(_WIN32_WINNT >= 0x0600)*/ typedef struct _DEVICE_SEEK_PENALTY_DESCRIPTOR { @@ -2386,6 +2571,268 @@ typedef struct _DEVICE_TRIM_DESCRIPTOR { BOOLEAN TrimEnabled; } DEVICE_TRIM_DESCRIPTOR, *PDEVICE_TRIM_DESCRIPTOR; +typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR { + DWORD Version; + DWORD Size; + BYTE ThinProvisioningEnabled : 1; + BYTE ThinProvisioningReadZeros : 1; + BYTE AnchorSupported : 3; + BYTE UnmapGranularityAlignmentValid : 1; + BYTE GetFreeSpaceSupported : 1; + BYTE MapSupported : 1; + BYTE Reserved1[7]; + DWORDLONG OptimalUnmapGranularity; + DWORDLONG UnmapGranularityAlignment; +#if NTDDI_VERSION >= NTDDI_WINBLUE + DWORD MaxUnmapLbaCount; + DWORD MaxUnmapBlockDescriptorCount; +#endif +} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR; + +#define DEVICE_LB_PROVISIONING_DESCRIPTOR_V1_SIZE RTL_SIZEOF_THROUGH_FIELD(DEVICE_LB_PROVISIONING_DESCRIPTOR, UnmapGranularityAlignment) + +typedef struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES { + DWORD Size; + DWORD Version; + BYTE AvailableMappingResourcesValid : 1; + BYTE UsedMappingResourcesValid : 1; + BYTE Reserved0 : 6; + BYTE Reserved1[3]; + BYTE AvailableMappingResourcesScope : 2; + BYTE UsedMappingResourcesScope : 2; + BYTE Reserved2 : 4; + BYTE Reserved3[3]; + DWORDLONG AvailableMappingResources; + DWORDLONG UsedMappingResources; +} STORAGE_LB_PROVISIONING_MAP_RESOURCES, *PSTORAGE_LB_PROVISIONING_MAP_RESOURCES; + +typedef struct _DEVICE_POWER_DESCRIPTOR { + DWORD Version; + DWORD Size; + BOOLEAN DeviceAttentionSupported; + BOOLEAN AsynchronousNotificationSupported; + BOOLEAN IdlePowerManagementEnabled; + BOOLEAN D3ColdEnabled; + BOOLEAN D3ColdSupported; + BOOLEAN NoVerifyDuringIdlePower; + BYTE Reserved[2]; + DWORD IdleTimeoutInMS; +} DEVICE_POWER_DESCRIPTOR, *PDEVICE_POWER_DESCRIPTOR; + +typedef struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD MaximumTokenLifetime; + DWORD DefaultTokenLifetime; + DWORDLONG MaximumTransferSize; + DWORDLONG OptimalTransferCount; + DWORD MaximumDataDescriptors; + DWORD MaximumTransferLengthPerDescriptor; + DWORD OptimalTransferLengthPerDescriptor; + WORD OptimalTransferLengthGranularity; + BYTE Reserved[2]; +} DEVICE_COPY_OFFLOAD_DESCRIPTOR, *PDEVICE_COPY_OFFLOAD_DESCRIPTOR; + +typedef struct _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD NameOffset; + DWORD NumberOfLogicalCopies; + DWORD NumberOfPhysicalCopies; + DWORD PhysicalDiskRedundancy; + DWORD NumberOfColumns; + DWORD Interleave; +} STORAGE_DEVICE_RESILIENCY_DESCRIPTOR, *PSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR; + +typedef enum _STORAGE_RPMB_FRAME_TYPE { + StorageRpmbFrameTypeUnknown = 0, + StorageRpmbFrameTypeStandard, + StorageRpmbFrameTypeMax +} STORAGE_RPMB_FRAME_TYPE, *PSTORAGE_RPMB_FRAME_TYPE; + +#define STORAGE_RPMB_DESCRIPTOR_VERSION_1 1 + +#define STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE 512 + +typedef struct _STORAGE_RPMB_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD SizeInBytes; + DWORD MaxReliableWriteSizeInBytes; + STORAGE_RPMB_FRAME_TYPE FrameFormat; +} STORAGE_RPMB_DESCRIPTOR, *PSTORAGE_RPMB_DESCRIPTOR; + +typedef enum _STORAGE_CRYPTO_ALGORITHM_ID { + StorageCryptoAlgorithmUnknown = 0, + StorageCryptoAlgorithmXTSAES = 1, + StorageCryptoAlgorithmBitlockerAESCBC, + StorageCryptoAlgorithmAESECB, + StorageCryptoAlgorithmESSIVAESCBC, + StorageCryptoAlgorithmMax +} STORAGE_CRYPTO_ALGORITHM_ID, *PSTORAGE_CRYPTO_ALGORITHM_ID; + +typedef enum _STORAGE_CRYPTO_KEY_SIZE { + StorageCryptoKeySizeUnknown = 0, + StorageCryptoKeySize128Bits = 1, + StorageCryptoKeySize192Bits, + StorageCryptoKeySize256Bits, + StorageCryptoKeySize512Bits +} STORAGE_CRYPTO_KEY_SIZE, *PSTORAGE_CRYPTO_KEY_SIZE; + +#define STORAGE_CRYPTO_CAPABILITY_VERSION_1 1 + +typedef struct _STORAGE_CRYPTO_CAPABILITY { + DWORD Version; + DWORD Size; + DWORD CryptoCapabilityIndex; + STORAGE_CRYPTO_ALGORITHM_ID AlgorithmId; + STORAGE_CRYPTO_KEY_SIZE KeySize; + DWORD DataUnitSizeBitmask; +} STORAGE_CRYPTO_CAPABILITY, *PSTORAGE_CRYPTO_CAPABILITY; + +#define STORAGE_CRYPTO_DESCRIPTOR_VERSION_1 1 + +typedef struct _STORAGE_CRYPTO_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD NumKeysSupported; + DWORD NumCryptoCapabilities; + STORAGE_CRYPTO_CAPABILITY CryptoCapabilities[ANYSIZE_ARRAY]; +} STORAGE_CRYPTO_DESCRIPTOR, *PSTORAGE_CRYPTO_DESCRIPTOR; + +#define STORAGE_TIER_NAME_LENGTH (256) +#define STORAGE_TIER_DESCRIPTION_LENGTH (512) + +#define STORAGE_TIER_FLAG_NO_SEEK_PENALTY (0x00020000) +#define STORAGE_TIER_FLAG_WRITE_BACK_CACHE (0x00200000) +#define STORAGE_TIER_FLAG_READ_CACHE (0x00400000) +#define STORAGE_TIER_FLAG_PARITY (0x00800000) +#define STORAGE_TIER_FLAG_SMR (0x01000000) + +typedef enum _STORAGE_TIER_MEDIA_TYPE { + StorageTierMediaTypeUnspecified = 0, + StorageTierMediaTypeDisk = 1, + StorageTierMediaTypeSsd = 2, + StorageTierMediaTypeScm = 4, + StorageTierMediaTypeMax +} STORAGE_TIER_MEDIA_TYPE, *PSTORAGE_TIER_MEDIA_TYPE; + +typedef enum _STORAGE_TIER_CLASS { + StorageTierClassUnspecified = 0, + StorageTierClassCapacity, + StorageTierClassPerformance, + StorageTierClassMax +} STORAGE_TIER_CLASS, *PSTORAGE_TIER_CLASS; + +typedef struct _STORAGE_TIER { + GUID Id; + WCHAR Name[STORAGE_TIER_NAME_LENGTH]; + WCHAR Description[STORAGE_TIER_NAME_LENGTH]; + DWORDLONG Flags; + DWORDLONG ProvisionedCapacity; + STORAGE_TIER_MEDIA_TYPE MediaType; + STORAGE_TIER_CLASS Class; +} STORAGE_TIER, *PSTORAGE_TIER; + +typedef struct _STORAGE_DEVICE_TIERING_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD Flags; + DWORD TotalNumberOfTiers; + DWORD NumberOfTiersReturned; + STORAGE_TIER Tiers[ANYSIZE_ARRAY]; +} STORAGE_DEVICE_TIERING_DESCRIPTOR, *PSTORAGE_DEVICE_TIERING_DESCRIPTOR; + +typedef struct _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR { + DWORD Version; + DWORD Size; + DWORD NumberOfFaultDomains; + GUID FaultDomainIds[ANYSIZE_ARRAY]; +} STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR, *PSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR; + +typedef enum _STORAGE_PROTOCOL_TYPE { + ProtocolTypeUnknown = 0x00, + ProtocolTypeScsi, + ProtocolTypeAta, + ProtocolTypeNvme, + ProtocolTypeSd, + ProtocolTypeUfs, + ProtocolTypeProprietary = 0x7E, + ProtocolTypeMaxReserved = 0x7F +} STORAGE_PROTOCOL_TYPE, *PSTORAGE_PROTOCOL_TYPE; + +typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE { + NVMeDataTypeUnknown = 0, + NVMeDataTypeIdentify, + NVMeDataTypeLogPage, + NVMeDataTypeFeature +} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE; + +typedef enum _STORAGE_PROTOCOL_ATA_DATA_TYPE { + AtaDataTypeUnknown = 0, + AtaDataTypeIdentify, + AtaDataTypeLogPage +} STORAGE_PROTOCOL_ATA_DATA_TYPE, *PSTORAGE_PROTOCOL_ATA_DATA_TYPE; + +typedef enum _STORAGE_PROTOCOL_UFS_DATA_TYPE { + UfsDataTypeUnknown = 0, + UfsDataTypeQueryDescriptor, + UfsDataTypeQueryAttribute, + UfsDataTypeQueryFlag, + UfsDataTypeQueryDmeAttribute, + UfsDataTypeQueryDmePeerAttribute, + UfsDataTypeMax +} STORAGE_PROTOCOL_UFS_DATA_TYPE, *PSTORAGE_PROTOCOL_UFS_DATA_TYPE; + +typedef union _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE { + __C89_NAMELESS struct { + DWORD RetainAsynEvent : 1; + DWORD LogSpecificField : 4; + DWORD Reserved : 27; + }; + DWORD AsUlong; +} STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE, *PSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE; + +typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA { + STORAGE_PROTOCOL_TYPE ProtocolType; + DWORD DataType; + DWORD ProtocolDataRequestValue; + DWORD ProtocolDataRequestSubValue; + DWORD ProtocolDataOffset; + DWORD ProtocolDataLength; + DWORD FixedProtocolReturnData; + DWORD ProtocolDataRequestSubValue2; + DWORD ProtocolDataRequestSubValue3; + DWORD ProtocolDataRequestSubValue4; +} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA; + +typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT { + STORAGE_PROTOCOL_TYPE ProtocolType; + DWORD DataType; + DWORD ProtocolDataValue; + DWORD ProtocolDataSubValue; + DWORD ProtocolDataOffset; + DWORD ProtocolDataLength; + DWORD FixedProtocolReturnData; + DWORD ProtocolDataSubValue2; + DWORD ProtocolDataSubValue3; + DWORD ProtocolDataSubValue4; + DWORD ProtocolDataSubValue5; + DWORD Reserved[5]; +} STORAGE_PROTOCOL_SPECIFIC_DATA_EXT, *PSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT; + +typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR { + DWORD Version; + DWORD Size; + STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData; +} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR; + +typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT { + DWORD Version; + DWORD Size; + STORAGE_PROTOCOL_SPECIFIC_DATA_EXT ProtocolSpecificData; +} STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT; + #if (_WIN32_WINNT >= 0x0601) typedef struct _REQUEST_OPLOCK_INPUT_BUFFER { WORD StructureVersion; diff --git a/lib/libc/include/any-windows-any/winnt.h b/lib/libc/include/any-windows-any/winnt.h index 5133c1fc9d..9e660bc86e 100644 --- a/lib/libc/include/any-windows-any/winnt.h +++ b/lib/libc/include/any-windows-any/winnt.h @@ -4180,6 +4180,44 @@ __buildmemorybarrier() PVOID UmsCompletionList; } UMS_CREATE_THREAD_ATTRIBUTES,*PUMS_CREATE_THREAD_ATTRIBUTES; +#define COMPONENT_KTM 0x01 +#define COMPONENT_VALID_FLAGS COMPONENT_KTM + + typedef struct _COMPONENT_FILTER { + DWORD ComponentFlags; + } COMPONENT_FILTER,*PCOMPONENT_FILTER; + +#define DYNAMIC_EH_CONTINUATION_TARGET_ADD 0x00000001 +#define DYNAMIC_EH_CONTINUATION_TARGET_PROCESSED 0x00000002 + + typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGET { + ULONG_PTR TargetAddress; + ULONG_PTR Flags; + } PROCESS_DYNAMIC_EH_CONTINUATION_TARGET,*PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET; + + typedef struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION { + WORD NumberOfTargets; + WORD Reserved; + DWORD Reserved2; + PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets; + } PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION,*PPROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION; + +#define DYNAMIC_ENFORCED_ADDRESS_RANGE_ADD 0x00000001 +#define DYNAMIC_ENFORCED_ADDRESS_RANGE_PROCESSED 0x00000002 + + typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE { + ULONG_PTR BaseAddress; + SIZE_T Size; + DWORD Flags; + } PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE,*PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE; + + typedef struct _PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION { + WORD NumberOfRanges; + WORD Reserved; + DWORD Reserved2; + PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE Ranges; + } PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION,*PPROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION; + typedef struct _QUOTA_LIMITS { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; @@ -4252,6 +4290,8 @@ __buildmemorybarrier() ProcessPayloadRestrictionPolicy, ProcessChildProcessPolicy, ProcessSideChannelIsolationPolicy, + ProcessUserShadowStackPolicy, + ProcessRedirectionTrustPolicy, MaxProcessMitigationPolicy } PROCESS_MITIGATION_POLICY,*PPROCESS_MITIGATION_POLICY; @@ -4426,6 +4466,36 @@ __buildmemorybarrier() }; } PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY, *PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY; + typedef struct _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY { + __C89_NAMELESS union { + DWORD Flags; + __C89_NAMELESS struct { + DWORD EnableUserShadowStack : 1; + DWORD AuditUserShadowStack : 1; + DWORD SetContextIpValidation : 1; + DWORD AuditSetContextIpValidation : 1; + DWORD EnableUserShadowStackStrictMode : 1; + DWORD BlockNonCetBinaries : 1; + DWORD BlockNonCetBinariesNonEhcont : 1; + DWORD AuditBlockNonCetBinaries : 1; + DWORD CetDynamicApisOutOfProcOnly : 1; + DWORD SetContextIpValidationRelaxedMode : 1; + DWORD ReservedFlags : 22; + }; + }; + } PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY, *PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY; + + typedef struct _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY { + __C89_NAMELESS union { + DWORD Flags; + __C89_NAMELESS struct { + DWORD EnforceRedirectionTrust : 1; + DWORD AuditRedirectionTrust : 1; + DWORD ReservedFlags : 30; + }; + }; + } PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY, *PPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY; + typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { LARGE_INTEGER TotalUserTime; LARGE_INTEGER TotalKernelTime; @@ -4758,6 +4828,16 @@ __buildmemorybarrier() DWORD64 CycleTime; } SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION,*PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION; + typedef struct _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION { + DWORD Machine : 16; + DWORD KernelMode : 1; + DWORD UserMode : 1; + DWORD Native : 1; + DWORD Process : 1; + DWORD WoW64Container : 1; + DWORD ReservedZero0 : 11; + } SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION,*PSYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION; + #define PROCESSOR_INTEL_386 386 #define PROCESSOR_INTEL_486 486 #define PROCESSOR_INTEL_PENTIUM 586 @@ -4834,19 +4914,58 @@ __buildmemorybarrier() #define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE 31 #define PF_RDTSCP_INSTRUCTION_AVAILABLE 32 #define PF_RDPID_INSTRUCTION_AVAILABLE 33 +#define PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE 34 +#define PF_MONITORX_INSTRUCTION_AVAILABLE 35 +#define PF_SSSE3_INSTRUCTIONS_AVAILABLE 36 +#define PF_SSE4_1_INSTRUCTIONS_AVAILABLE 37 +#define PF_SSE4_2_INSTRUCTIONS_AVAILABLE 38 +#define PF_AVX_INSTRUCTIONS_AVAILABLE 39 +#define PF_AVX2_INSTRUCTIONS_AVAILABLE 40 +#define PF_AVX512F_INSTRUCTIONS_AVAILABLE 41 +#define PF_ERMS_AVAILABLE 42 +#define PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE 43 +#define PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE 44 #define XSTATE_LEGACY_FLOATING_POINT (0) #define XSTATE_LEGACY_SSE (1) #define XSTATE_GSSE (2) #define XSTATE_AVX (XSTATE_GSSE) +#define XSTATE_MPX_BNDREGS (3) +#define XSTATE_MPX_BNDCSR (4) +#define XSTATE_AVX512_KMASK (5) +#define XSTATE_AVX512_ZMM_H (6) +#define XSTATE_AVX512_ZMM (7) +#define XSTATE_IPT (8) +#define XSTATE_PASID (10) +#define XSTATE_CET_U (11) +#define XSTATE_CET_S (12) +#define XSTATE_AMX_TILE_CONFIG (17) +#define XSTATE_AMX_TILE_DATA (18) +#define XSTATE_LWP (62) +#define MAXIMUM_XSTATE_FEATURES (64) #define XSTATE_MASK_LEGACY_FLOATING_POINT (1ULL << (XSTATE_LEGACY_FLOATING_POINT)) #define XSTATE_MASK_LEGACY_SSE (1ULL << (XSTATE_LEGACY_SSE)) #define XSTATE_MASK_LEGACY (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE) #define XSTATE_MASK_GSSE (1LLU << (XSTATE_GSSE)) #define XSTATE_MASK_AVX (XSTATE_MASK_GSSE) - -#define MAXIMUM_XSTATE_FEATURES (64) +#define XSTATE_MASK_MPX ((1LLU << (XSTATE_MPX_BNDREGS)) | (1LLU << (XSTATE_MPX_BNDCSR))) +#define XSTATE_MASK_AVX512 ((1LLU << (XSTATE_AVX512_KMASK)) | (1LLU << (XSTATE_AVX512_ZMM_H)) | (1LLU << (XSTATE_AVX512_ZMM))) +#define XSTATE_MASK_IPT (1LLU << (XSTATE_IPT)) +#define XSTATE_MASK_PASID (1LLU << (XSTATE_PASID)) +#define XSTATE_MASK_CET_U (1LLU << (XSTATE_CET_U)) +#define XSTATE_MASK_CET_S (1LLU << (XSTATE_CET_S)) +#define XSTATE_MASK_AMX_TILE_CONFIG (1LLU << (XSTATE_AMX_TILE_CONFIG)) +#define XSTATE_MASK_AMX_TILE_DATA (1LLU << (XSTATE_AMX_TILE_DATA)) +#define XSTATE_MASK_LWP (1LLU << (XSTATE_LWP)) +#if defined(_AMD64_) || defined(__x86_64__) +#define XSTATE_MASK_ALLOWED (XSTATE_MASK_LEGACY | XSTATE_MASK_AVX | XSTATE_MASK_MPX | XSTATE_MASK_AVX512 | XSTATE_MASK_IPT | XSTATE_MASK_PASID | XSTATE_MASK_CET_U | XSTATE_MASK_AMX_TILE_CONFIG | XSTATE_MASK_AMX_TILE_DATA | XSTATE_MASK_LWP) +#elif defined(_X86_) || defined(__i386__) +#define XSTATE_MASK_ALLOWED (XSTATE_MASK_LEGACY | XSTATE_MASK_AVX | XSTATE_MASK_MPX | XSTATE_MASK_AVX512 | XSTATE_MASK_IPT | XSTATE_MASK_CET_U | XSTATE_MASK_LWP) +#endif +#define XSTATE_MASK_PERSISTENT ((1LLU << (XSTATE_MPX_BNDCSR)) | XSTATE_MASK_LWP) +#define XSTATE_MASK_USER_VISIBLE_SUPERVISOR (XSTATE_MASK_CET_U) +#define XSTATE_MASK_LARGE_FEATURES (XSTATE_MASK_AMX_TILE_DATA) typedef struct _XSTATE_FEATURE { DWORD Offset; diff --git a/lib/libc/include/any-windows-any/winsock2.h b/lib/libc/include/any-windows-any/winsock2.h index 99f4c249d6..fce0729b51 100644 --- a/lib/libc/include/any-windows-any/winsock2.h +++ b/lib/libc/include/any-windows-any/winsock2.h @@ -1011,6 +1011,9 @@ typedef unsigned int GROUP; #ifndef __INSIDE_CYGWIN__ WINSOCK_API_LINKAGE u_long WSAAPI htonl(u_long hostlong); WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort); +#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 + __forceinline unsigned __int64 htonll(unsigned __int64 Value) { return (((unsigned __int64)htonl(Value & 0xFFFFFFFFUL)) << 32) | htonl((u_long)(Value >> 32)); } +#endif #endif /* !__INSIDE_CYGWIN__ */ WINSOCK_API_LINKAGE unsigned __LONG32 WSAAPI inet_addr(const char *cp); WINSOCK_API_LINKAGE char *WSAAPI inet_ntoa(struct in_addr in); @@ -1018,6 +1021,9 @@ typedef unsigned int GROUP; #ifndef __INSIDE_CYGWIN__ WINSOCK_API_LINKAGE u_long WSAAPI ntohl(u_long netlong); WINSOCK_API_LINKAGE u_short WSAAPI ntohs(u_short netshort); +#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 + __forceinline unsigned __int64 ntohll(unsigned __int64 Value) { return (((unsigned __int64)ntohl(Value & 0xFFFFFFFFUL)) << 32) | ntohl((u_long)(Value >> 32)); } +#endif #endif /* !__INSIDE_CYGWIN__ */ WINSOCK_API_LINKAGE int WSAAPI recv(SOCKET s,char *buf,int len,int flags); WINSOCK_API_LINKAGE int WSAAPI recvfrom(SOCKET s,char *buf,int len,int flags,struct sockaddr *from,int *fromlen); @@ -1032,6 +1038,7 @@ typedef unsigned int GROUP; WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyaddr(const char *addr,int len,int type); WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyname(const char *name); WINSOCK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen); + WINSOCK_API_LINKAGE int WSAAPI GetHostNameW(PWSTR name, int namelen); WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyport(int port,const char *proto); WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyname(const char *name,const char *proto); WINSOCK_API_LINKAGE struct protoent *WSAAPI getprotobynumber(int number); diff --git a/lib/libc/include/any-windows-any/winsvc.h b/lib/libc/include/any-windows-any/winsvc.h index 182db889da..aa7ba1ac91 100644 --- a/lib/libc/include/any-windows-any/winsvc.h +++ b/lib/libc/include/any-windows-any/winsvc.h @@ -48,6 +48,12 @@ extern "C" { #define SERVICE_CONTROL_HARDWAREPROFILECHANGE 0x0000000C #define SERVICE_CONTROL_POWEREVENT 0x0000000D #define SERVICE_CONTROL_SESSIONCHANGE 0x0000000E +#define SERVICE_CONTROL_PRESHUTDOWN 0x0000000F +#define SERVICE_CONTROL_TIMECHANGE 0x00000010 +#define SERVICE_CONTROL_USER_LOGOFF 0x00000011 +#define SERVICE_CONTROL_TRIGGEREVENT 0x00000020 +#define SERVICE_CONTROL_LOWRESOURCES 0x00000060 +#define SERVICE_CONTROL_SYSTEMLOWRESOURCES 0x00000061 #define SERVICE_STOPPED 0x00000001 #define SERVICE_START_PENDING 0x00000002 @@ -65,6 +71,12 @@ extern "C" { #define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 0x00000020 #define SERVICE_ACCEPT_POWEREVENT 0x00000040 #define SERVICE_ACCEPT_SESSIONCHANGE 0x00000080 +#define SERVICE_ACCEPT_PRESHUTDOWN 0x00000100 +#define SERVICE_ACCEPT_TIMECHANGE 0x00000200 +#define SERVICE_ACCEPT_TRIGGEREVENT 0x00000400 +#define SERVICE_ACCEPT_USER_LOGOFF 0x00000800 +#define SERVICE_ACCEPT_LOWRESOURCES 0x00002000 +#define SERVICE_ACCEPT_SYSTEMLOWRESOURCES 0x00004000 #define SC_MANAGER_CONNECT 0x0001 #define SC_MANAGER_CREATE_SERVICE 0x0002 @@ -91,6 +103,107 @@ extern "C" { #define SERVICE_CONFIG_DESCRIPTION 1 #define SERVICE_CONFIG_FAILURE_ACTIONS 2 +#define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3 +#define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4 +#define SERVICE_CONFIG_SERVICE_SID_INFO 5 +#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6 +#define SERVICE_CONFIG_PRESHUTDOWN_INFO 7 +#define SERVICE_CONFIG_TRIGGER_INFO 8 +#define SERVICE_CONFIG_PREFERRED_NODE 9 +#define SERVICE_CONFIG_LAUNCH_PROTECTED 12 + +#define SERVICE_NOTIFY_STATUS_CHANGE_1 1 +#define SERVICE_NOTIFY_STATUS_CHANGE_2 2 + +#define SERVICE_NOTIFY_STATUS_CHANGE SERVICE_NOTIFY_STATUS_CHANGE_2 + +#define SERVICE_NOTIFY_STOPPED 0x00000001 +#define SERVICE_NOTIFY_START_PENDING 0x00000002 +#define SERVICE_NOTIFY_STOP_PENDING 0x00000004 +#define SERVICE_NOTIFY_RUNNING 0x00000008 +#define SERVICE_NOTIFY_CONTINUE_PENDING 0x00000010 +#define SERVICE_NOTIFY_PAUSE_PENDING 0x00000020 +#define SERVICE_NOTIFY_PAUSED 0x00000040 +#define SERVICE_NOTIFY_CREATED 0x00000080 +#define SERVICE_NOTIFY_DELETED 0x00000100 +#define SERVICE_NOTIFY_DELETE_PENDING 0x00000200 + +#define SERVICE_STOP_REASON_FLAG_MIN 0x00000000 +#define SERVICE_STOP_REASON_FLAG_UNPLANNED 0x10000000 +#define SERVICE_STOP_REASON_FLAG_CUSTOM 0x20000000 +#define SERVICE_STOP_REASON_FLAG_PLANNED 0x40000000 +#define SERVICE_STOP_REASON_FLAG_MAX 0x80000000 + +#define SERVICE_STOP_REASON_MAJOR_MIN 0x00000000 +#define SERVICE_STOP_REASON_MAJOR_OTHER 0x00010000 +#define SERVICE_STOP_REASON_MAJOR_HARDWARE 0x00020000 +#define SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM 0x00030000 +#define SERVICE_STOP_REASON_MAJOR_SOFTWARE 0x00040000 +#define SERVICE_STOP_REASON_MAJOR_APPLICATION 0x00050000 +#define SERVICE_STOP_REASON_MAJOR_NONE 0x00060000 +#define SERVICE_STOP_REASON_MAJOR_MAX 0x00070000 +#define SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM 0x00400000 +#define SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM 0x00ff0000 + +#define SERVICE_STOP_REASON_MINOR_MIN 0x00000000 +#define SERVICE_STOP_REASON_MINOR_OTHER 0x00000001 +#define SERVICE_STOP_REASON_MINOR_MAINTENANCE 0x00000002 +#define SERVICE_STOP_REASON_MINOR_INSTALLATION 0x00000003 +#define SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004 +#define SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005 +#define SERVICE_STOP_REASON_MINOR_HUNG 0x00000006 +#define SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007 +#define SERVICE_STOP_REASON_MINOR_DISK 0x00000008 +#define SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009 +#define SERVICE_STOP_REASON_MINOR_ENVIRONMENT 0x0000000a +#define SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER 0x0000000b +#define SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c +#define SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d +#define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e +#define SERVICE_STOP_REASON_MINOR_SECURITYFIX 0x0000000f +#define SERVICE_STOP_REASON_MINOR_SECURITY 0x00000010 +#define SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011 +#define SERVICE_STOP_REASON_MINOR_WMI 0x00000012 +#define SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013 +#define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x00000014 +#define SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL 0x00000015 +#define SERVICE_STOP_REASON_MINOR_MMC 0x00000016 +#define SERVICE_STOP_REASON_MINOR_NONE 0x00000017 +#define SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT 0x00000018 +#define SERVICE_STOP_REASON_MINOR_MAX 0x00000019 +#define SERVICE_STOP_REASON_MINOR_MIN_CUSTOM 0x00000100 +#define SERVICE_STOP_REASON_MINOR_MAX_CUSTOM 0x0000FFFF + +#define SERVICE_CONTROL_STATUS_REASON_INFO 1 + +#define SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL 1 +#define SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY 2 +#define SERVICE_TRIGGER_TYPE_DOMAIN_JOIN 3 +#define SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT 4 +#define SERVICE_TRIGGER_TYPE_GROUP_POLICY 5 +#define SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT 6 +#define SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE 7 +#define SERVICE_TRIGGER_TYPE_CUSTOM 20 +#define SERVICE_TRIGGER_TYPE_AGGREGATE 30 + +#define SERVICE_TRIGGER_DATA_TYPE_BINARY 1 +#define SERVICE_TRIGGER_DATA_TYPE_STRING 2 +#define SERVICE_TRIGGER_DATA_TYPE_LEVEL 3 +#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4 +#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5 + +#define SERVICE_START_REASON_DEMAND 0x00000001 +#define SERVICE_START_REASON_AUTO 0x00000002 +#define SERVICE_START_REASON_TRIGGER 0x00000004 +#define SERVICE_START_REASON_RESTART_ON_FAILURE 0x00000008 +#define SERVICE_START_REASON_DELAYEDAUTO 0x00000010 + +#define SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON 1 + +#define SERVICE_LAUNCH_PROTECTED_NONE 0 +#define SERVICE_LAUNCH_PROTECTED_WINDOWS 1 +#define SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT 2 +#define SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT 3 typedef struct _SERVICE_DESCRIPTIONA { LPSTR lpDescription; @@ -366,7 +479,6 @@ __MINGW_TYPEDEF_AW(PSERVICE_CONTROL_STATUS_REASON_PARAMS) #define SERVICE_STOP_REASON_MINOR_MMC 0x00000016 #define SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY 0x00000011 #define SERVICE_STOP_REASON_MINOR_NETWORKCARD 0x00000009 -#define SERVICE_STOP_REASON_MINOR_NONE 0x00060000 #define SERVICE_STOP_REASON_MINOR_OTHER 0x00000001 #define SERVICE_STOP_REASON_MINOR_OTHERDRIVER 0x0000000c #define SERVICE_STOP_REASON_MINOR_RECONFIG 0x00000005 @@ -376,7 +488,6 @@ __MINGW_TYPEDEF_AW(PSERVICE_CONTROL_STATUS_REASON_PARAMS) #define SERVICE_STOP_REASON_MINOR_SERVICEPACK 0x0000000d #define SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL 0x00000013 #define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE 0x0000000e -#define SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL 0x0000000e #define SERVICE_STOP_REASON_MINOR_UNSTABLE 0x00000007 #define SERVICE_STOP_REASON_MINOR_UPGRADE 0x00000004 #define SERVICE_STOP_REASON_MINOR_WMI 0x00000012 diff --git a/lib/libc/include/any-windows-any/winuser.h b/lib/libc/include/any-windows-any/winuser.h index 01f2a5be42..7252a53ea5 100644 --- a/lib/libc/include/any-windows-any/winuser.h +++ b/lib/libc/include/any-windows-any/winuser.h @@ -2241,7 +2241,10 @@ extern "C" { #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) WINUSERAPI WINBOOL WINAPI GetLayeredWindowAttributes (HWND hwnd, COLORREF *pcrKey, BYTE *pbAlpha, DWORD *pdwFlags); -#define PW_CLIENTONLY 0x00000001 +#define PW_CLIENTONLY 0x00000001 +#if _WIN32_WINNT >= 0x0603 +#define PW_RENDERFULLCONTENT 0x00000002 +#endif WINUSERAPI WINBOOL WINAPI PrintWindow (HWND hwnd, HDC hdcBlt, UINT nFlags); WINUSERAPI WINBOOL WINAPI SetLayeredWindowAttributes (HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); diff --git a/lib/libc/include/any-windows-any/wmcodecdsp.h b/lib/libc/include/any-windows-any/wmcodecdsp.h index 1c31b3280e..f0ab13622a 100644 --- a/lib/libc/include/any-windows-any/wmcodecdsp.h +++ b/lib/libc/include/any-windows-any/wmcodecdsp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmcodecdsp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmcodecdsp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmcontainer.h b/lib/libc/include/any-windows-any/wmcontainer.h index 8d3eb16a99..6b9e5b857c 100644 --- a/lib/libc/include/any-windows-any/wmcontainer.h +++ b/lib/libc/include/any-windows-any/wmcontainer.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmcontainer.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmcontainer.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmdrmsdk.h b/lib/libc/include/any-windows-any/wmdrmsdk.h index 0cd5db2c01..62286b5f8e 100644 --- a/lib/libc/include/any-windows-any/wmdrmsdk.h +++ b/lib/libc/include/any-windows-any/wmdrmsdk.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmdrmsdk.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmdrmsdk.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmp.h b/lib/libc/include/any-windows-any/wmp.h index 2eb7a53fc7..46dd351b82 100644 --- a/lib/libc/include/any-windows-any/wmp.h +++ b/lib/libc/include/any-windows-any/wmp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmprealestate.h b/lib/libc/include/any-windows-any/wmprealestate.h index 526ca1b7da..1c5f13b5a1 100644 --- a/lib/libc/include/any-windows-any/wmprealestate.h +++ b/lib/libc/include/any-windows-any/wmprealestate.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmprealestate.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmprealestate.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmpservices.h b/lib/libc/include/any-windows-any/wmpservices.h index 4cea73b586..cb391299ec 100644 --- a/lib/libc/include/any-windows-any/wmpservices.h +++ b/lib/libc/include/any-windows-any/wmpservices.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmpservices.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmpservices.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wmsbuffer.h b/lib/libc/include/any-windows-any/wmsbuffer.h index 280908ccdc..c54846d468 100644 --- a/lib/libc/include/any-windows-any/wmsbuffer.h +++ b/lib/libc/include/any-windows-any/wmsbuffer.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmsbuffer.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmsbuffer.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -26,6 +26,22 @@ interface INSSBuffer; #endif /* __cplusplus */ #endif +#ifndef __INSSBuffer2_FWD_DEFINED__ +#define __INSSBuffer2_FWD_DEFINED__ +typedef interface INSSBuffer2 INSSBuffer2; +#ifdef __cplusplus +interface INSSBuffer2; +#endif /* __cplusplus */ +#endif + +#ifndef __INSSBuffer3_FWD_DEFINED__ +#define __INSSBuffer3_FWD_DEFINED__ +typedef interface INSSBuffer3 INSSBuffer3; +#ifdef __cplusplus +interface INSSBuffer3; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <objidl.h> @@ -157,6 +173,303 @@ static FORCEINLINE HRESULT INSSBuffer_GetBufferAndLength(INSSBuffer* This,BYTE * #endif /* __INSSBuffer_INTERFACE_DEFINED__ */ +/***************************************************************************** + * INSSBuffer2 interface + */ +#ifndef __INSSBuffer2_INTERFACE_DEFINED__ +#define __INSSBuffer2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_INSSBuffer2, 0x4f528693, 0x1035, 0x43fe, 0xb4,0x28, 0x75,0x75,0x61,0xad,0x3a,0x68); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4f528693-1035-43fe-b428-757561ad3a68") +INSSBuffer2 : public INSSBuffer +{ + virtual HRESULT STDMETHODCALLTYPE GetSampleProperties( + DWORD size, + BYTE *props) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetSampleProperties( + DWORD size, + BYTE *props) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(INSSBuffer2, 0x4f528693, 0x1035, 0x43fe, 0xb4,0x28, 0x75,0x75,0x61,0xad,0x3a,0x68) +#endif +#else +typedef struct INSSBuffer2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + INSSBuffer2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + INSSBuffer2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + INSSBuffer2 *This); + + /*** INSSBuffer methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLength)( + INSSBuffer2 *This, + DWORD *pdwLength); + + HRESULT (STDMETHODCALLTYPE *SetLength)( + INSSBuffer2 *This, + DWORD dwLength); + + HRESULT (STDMETHODCALLTYPE *GetMaxLength)( + INSSBuffer2 *This, + DWORD *pdwLength); + + HRESULT (STDMETHODCALLTYPE *GetBuffer)( + INSSBuffer2 *This, + BYTE **ppdwBuffer); + + HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)( + INSSBuffer2 *This, + BYTE **ppdwBuffer, + DWORD *pdwLength); + + /*** INSSBuffer2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSampleProperties)( + INSSBuffer2 *This, + DWORD size, + BYTE *props); + + HRESULT (STDMETHODCALLTYPE *SetSampleProperties)( + INSSBuffer2 *This, + DWORD size, + BYTE *props); + + END_INTERFACE +} INSSBuffer2Vtbl; + +interface INSSBuffer2 { + CONST_VTBL INSSBuffer2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define INSSBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define INSSBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define INSSBuffer2_Release(This) (This)->lpVtbl->Release(This) +/*** INSSBuffer methods ***/ +#define INSSBuffer2_GetLength(This,pdwLength) (This)->lpVtbl->GetLength(This,pdwLength) +#define INSSBuffer2_SetLength(This,dwLength) (This)->lpVtbl->SetLength(This,dwLength) +#define INSSBuffer2_GetMaxLength(This,pdwLength) (This)->lpVtbl->GetMaxLength(This,pdwLength) +#define INSSBuffer2_GetBuffer(This,ppdwBuffer) (This)->lpVtbl->GetBuffer(This,ppdwBuffer) +#define INSSBuffer2_GetBufferAndLength(This,ppdwBuffer,pdwLength) (This)->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength) +/*** INSSBuffer2 methods ***/ +#define INSSBuffer2_GetSampleProperties(This,size,props) (This)->lpVtbl->GetSampleProperties(This,size,props) +#define INSSBuffer2_SetSampleProperties(This,size,props) (This)->lpVtbl->SetSampleProperties(This,size,props) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT INSSBuffer2_QueryInterface(INSSBuffer2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG INSSBuffer2_AddRef(INSSBuffer2* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG INSSBuffer2_Release(INSSBuffer2* This) { + return This->lpVtbl->Release(This); +} +/*** INSSBuffer methods ***/ +static FORCEINLINE HRESULT INSSBuffer2_GetLength(INSSBuffer2* This,DWORD *pdwLength) { + return This->lpVtbl->GetLength(This,pdwLength); +} +static FORCEINLINE HRESULT INSSBuffer2_SetLength(INSSBuffer2* This,DWORD dwLength) { + return This->lpVtbl->SetLength(This,dwLength); +} +static FORCEINLINE HRESULT INSSBuffer2_GetMaxLength(INSSBuffer2* This,DWORD *pdwLength) { + return This->lpVtbl->GetMaxLength(This,pdwLength); +} +static FORCEINLINE HRESULT INSSBuffer2_GetBuffer(INSSBuffer2* This,BYTE **ppdwBuffer) { + return This->lpVtbl->GetBuffer(This,ppdwBuffer); +} +static FORCEINLINE HRESULT INSSBuffer2_GetBufferAndLength(INSSBuffer2* This,BYTE **ppdwBuffer,DWORD *pdwLength) { + return This->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength); +} +/*** INSSBuffer2 methods ***/ +static FORCEINLINE HRESULT INSSBuffer2_GetSampleProperties(INSSBuffer2* This,DWORD size,BYTE *props) { + return This->lpVtbl->GetSampleProperties(This,size,props); +} +static FORCEINLINE HRESULT INSSBuffer2_SetSampleProperties(INSSBuffer2* This,DWORD size,BYTE *props) { + return This->lpVtbl->SetSampleProperties(This,size,props); +} +#endif +#endif + +#endif + + +#endif /* __INSSBuffer2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * INSSBuffer3 interface + */ +#ifndef __INSSBuffer3_INTERFACE_DEFINED__ +#define __INSSBuffer3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_INSSBuffer3, 0xc87ceaaf, 0x75be, 0x4bc4, 0x84,0xeb, 0xac,0x27,0x98,0x50,0x76,0x72); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c87ceaaf-75be-4bc4-84eb-ac2798507672") +INSSBuffer3 : public INSSBuffer2 +{ + virtual HRESULT STDMETHODCALLTYPE SetProperty( + GUID id, + void *value, + DWORD size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetProperty( + GUID id, + void *value, + DWORD *size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(INSSBuffer3, 0xc87ceaaf, 0x75be, 0x4bc4, 0x84,0xeb, 0xac,0x27,0x98,0x50,0x76,0x72) +#endif +#else +typedef struct INSSBuffer3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + INSSBuffer3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + INSSBuffer3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + INSSBuffer3 *This); + + /*** INSSBuffer methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLength)( + INSSBuffer3 *This, + DWORD *pdwLength); + + HRESULT (STDMETHODCALLTYPE *SetLength)( + INSSBuffer3 *This, + DWORD dwLength); + + HRESULT (STDMETHODCALLTYPE *GetMaxLength)( + INSSBuffer3 *This, + DWORD *pdwLength); + + HRESULT (STDMETHODCALLTYPE *GetBuffer)( + INSSBuffer3 *This, + BYTE **ppdwBuffer); + + HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)( + INSSBuffer3 *This, + BYTE **ppdwBuffer, + DWORD *pdwLength); + + /*** INSSBuffer2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSampleProperties)( + INSSBuffer3 *This, + DWORD size, + BYTE *props); + + HRESULT (STDMETHODCALLTYPE *SetSampleProperties)( + INSSBuffer3 *This, + DWORD size, + BYTE *props); + + /*** INSSBuffer3 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetProperty)( + INSSBuffer3 *This, + GUID id, + void *value, + DWORD size); + + HRESULT (STDMETHODCALLTYPE *GetProperty)( + INSSBuffer3 *This, + GUID id, + void *value, + DWORD *size); + + END_INTERFACE +} INSSBuffer3Vtbl; + +interface INSSBuffer3 { + CONST_VTBL INSSBuffer3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define INSSBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define INSSBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define INSSBuffer3_Release(This) (This)->lpVtbl->Release(This) +/*** INSSBuffer methods ***/ +#define INSSBuffer3_GetLength(This,pdwLength) (This)->lpVtbl->GetLength(This,pdwLength) +#define INSSBuffer3_SetLength(This,dwLength) (This)->lpVtbl->SetLength(This,dwLength) +#define INSSBuffer3_GetMaxLength(This,pdwLength) (This)->lpVtbl->GetMaxLength(This,pdwLength) +#define INSSBuffer3_GetBuffer(This,ppdwBuffer) (This)->lpVtbl->GetBuffer(This,ppdwBuffer) +#define INSSBuffer3_GetBufferAndLength(This,ppdwBuffer,pdwLength) (This)->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength) +/*** INSSBuffer2 methods ***/ +#define INSSBuffer3_GetSampleProperties(This,size,props) (This)->lpVtbl->GetSampleProperties(This,size,props) +#define INSSBuffer3_SetSampleProperties(This,size,props) (This)->lpVtbl->SetSampleProperties(This,size,props) +/*** INSSBuffer3 methods ***/ +#define INSSBuffer3_SetProperty(This,id,value,size) (This)->lpVtbl->SetProperty(This,id,value,size) +#define INSSBuffer3_GetProperty(This,id,value,size) (This)->lpVtbl->GetProperty(This,id,value,size) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT INSSBuffer3_QueryInterface(INSSBuffer3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG INSSBuffer3_AddRef(INSSBuffer3* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG INSSBuffer3_Release(INSSBuffer3* This) { + return This->lpVtbl->Release(This); +} +/*** INSSBuffer methods ***/ +static FORCEINLINE HRESULT INSSBuffer3_GetLength(INSSBuffer3* This,DWORD *pdwLength) { + return This->lpVtbl->GetLength(This,pdwLength); +} +static FORCEINLINE HRESULT INSSBuffer3_SetLength(INSSBuffer3* This,DWORD dwLength) { + return This->lpVtbl->SetLength(This,dwLength); +} +static FORCEINLINE HRESULT INSSBuffer3_GetMaxLength(INSSBuffer3* This,DWORD *pdwLength) { + return This->lpVtbl->GetMaxLength(This,pdwLength); +} +static FORCEINLINE HRESULT INSSBuffer3_GetBuffer(INSSBuffer3* This,BYTE **ppdwBuffer) { + return This->lpVtbl->GetBuffer(This,ppdwBuffer); +} +static FORCEINLINE HRESULT INSSBuffer3_GetBufferAndLength(INSSBuffer3* This,BYTE **ppdwBuffer,DWORD *pdwLength) { + return This->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength); +} +/*** INSSBuffer2 methods ***/ +static FORCEINLINE HRESULT INSSBuffer3_GetSampleProperties(INSSBuffer3* This,DWORD size,BYTE *props) { + return This->lpVtbl->GetSampleProperties(This,size,props); +} +static FORCEINLINE HRESULT INSSBuffer3_SetSampleProperties(INSSBuffer3* This,DWORD size,BYTE *props) { + return This->lpVtbl->SetSampleProperties(This,size,props); +} +/*** INSSBuffer3 methods ***/ +static FORCEINLINE HRESULT INSSBuffer3_SetProperty(INSSBuffer3* This,GUID id,void *value,DWORD size) { + return This->lpVtbl->SetProperty(This,id,value,size); +} +static FORCEINLINE HRESULT INSSBuffer3_GetProperty(INSSBuffer3* This,GUID id,void *value,DWORD *size) { + return This->lpVtbl->GetProperty(This,id,value,size); +} +#endif +#endif + +#endif + + +#endif /* __INSSBuffer3_INTERFACE_DEFINED__ */ + /* Begin additional prototypes for all interfaces */ diff --git a/lib/libc/include/any-windows-any/wmsdkidl.h b/lib/libc/include/any-windows-any/wmsdkidl.h index 497b10ebc0..3feae052aa 100644 --- a/lib/libc/include/any-windows-any/wmsdkidl.h +++ b/lib/libc/include/any-windows-any/wmsdkidl.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wmsdkidl.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wmsdkidl.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -34,6 +34,14 @@ interface IWMReaderCallback; #endif /* __cplusplus */ #endif +#ifndef __IWMReaderCallbackAdvanced_FWD_DEFINED__ +#define __IWMReaderCallbackAdvanced_FWD_DEFINED__ +typedef interface IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced; +#ifdef __cplusplus +interface IWMReaderCallbackAdvanced; +#endif /* __cplusplus */ +#endif + #ifndef __IWMStreamList_FWD_DEFINED__ #define __IWMStreamList_FWD_DEFINED__ typedef interface IWMStreamList IWMStreamList; @@ -458,6 +466,22 @@ interface IWMLicenseRestore; #endif /* __cplusplus */ #endif +#ifndef __IWMIStreamProps_FWD_DEFINED__ +#define __IWMIStreamProps_FWD_DEFINED__ +typedef interface IWMIStreamProps IWMIStreamProps; +#ifdef __cplusplus +interface IWMIStreamProps; +#endif /* __cplusplus */ +#endif + +#ifndef __IWMCredentialCallback_FWD_DEFINED__ +#define __IWMCredentialCallback_FWD_DEFINED__ +typedef interface IWMCredentialCallback IWMCredentialCallback; +#ifdef __cplusplus +interface IWMCredentialCallback; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include <oaidl.h> @@ -519,6 +543,11 @@ typedef struct _WMReaderClientInfo { QWORD qwHostVersion; WCHAR *wszPlayerUserAgent; } WM_READER_CLIENTINFO; +enum { + WM_SF_CLEANPOINT = 0x1, + WM_SF_DISCONTINUITY = 0x2, + WM_SF_DATALOSS = 0x4 +}; typedef enum WMT_ATTR_DATATYPE { WMT_TYPE_DWORD = 0, WMT_TYPE_STRING = 1, @@ -826,6 +855,172 @@ static FORCEINLINE HRESULT IWMReaderCallback_OnSample(IWMReaderCallback* This,DW #endif /* __IWMReaderCallback_INTERFACE_DEFINED__ */ /***************************************************************************** + * IWMReaderCallbackAdvanced interface + */ +#ifndef __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ +#define __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("96406beb-2b2b-11d3-b36b-00c04f6108ff") +IWMReaderCallbackAdvanced : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE OnStreamSample( + WORD stream_number, + QWORD pts, + QWORD duration, + DWORD flags, + INSSBuffer *sample, + void *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnTime( + QWORD time, + void *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnStreamSelection( + WORD count, + WORD *stream_numbers, + WMT_STREAM_SELECTION *selections, + void *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE OnOutputPropsChanged( + DWORD output_number, + WM_MEDIA_TYPE *mt, + void *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE AllocateForStream( + WORD stream_number, + DWORD size, + INSSBuffer **sample, + void *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE AllocateForOutput( + DWORD output_number, + DWORD size, + INSSBuffer **sample, + void *context) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMReaderCallbackAdvanced, 0x96406beb, 0x2b2b, 0x11d3, 0xb3,0x6b, 0x00,0xc0,0x4f,0x61,0x08,0xff) +#endif +#else +typedef struct IWMReaderCallbackAdvancedVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMReaderCallbackAdvanced *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMReaderCallbackAdvanced *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMReaderCallbackAdvanced *This); + + /*** IWMReaderCallbackAdvanced methods ***/ + HRESULT (STDMETHODCALLTYPE *OnStreamSample)( + IWMReaderCallbackAdvanced *This, + WORD stream_number, + QWORD pts, + QWORD duration, + DWORD flags, + INSSBuffer *sample, + void *context); + + HRESULT (STDMETHODCALLTYPE *OnTime)( + IWMReaderCallbackAdvanced *This, + QWORD time, + void *context); + + HRESULT (STDMETHODCALLTYPE *OnStreamSelection)( + IWMReaderCallbackAdvanced *This, + WORD count, + WORD *stream_numbers, + WMT_STREAM_SELECTION *selections, + void *context); + + HRESULT (STDMETHODCALLTYPE *OnOutputPropsChanged)( + IWMReaderCallbackAdvanced *This, + DWORD output_number, + WM_MEDIA_TYPE *mt, + void *context); + + HRESULT (STDMETHODCALLTYPE *AllocateForStream)( + IWMReaderCallbackAdvanced *This, + WORD stream_number, + DWORD size, + INSSBuffer **sample, + void *context); + + HRESULT (STDMETHODCALLTYPE *AllocateForOutput)( + IWMReaderCallbackAdvanced *This, + DWORD output_number, + DWORD size, + INSSBuffer **sample, + void *context); + + END_INTERFACE +} IWMReaderCallbackAdvancedVtbl; + +interface IWMReaderCallbackAdvanced { + CONST_VTBL IWMReaderCallbackAdvancedVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMReaderCallbackAdvanced_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMReaderCallbackAdvanced_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMReaderCallbackAdvanced_Release(This) (This)->lpVtbl->Release(This) +/*** IWMReaderCallbackAdvanced methods ***/ +#define IWMReaderCallbackAdvanced_OnStreamSample(This,stream_number,pts,duration,flags,sample,context) (This)->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context) +#define IWMReaderCallbackAdvanced_OnTime(This,time,context) (This)->lpVtbl->OnTime(This,time,context) +#define IWMReaderCallbackAdvanced_OnStreamSelection(This,count,stream_numbers,selections,context) (This)->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context) +#define IWMReaderCallbackAdvanced_OnOutputPropsChanged(This,output_number,mt,context) (This)->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context) +#define IWMReaderCallbackAdvanced_AllocateForStream(This,stream_number,size,sample,context) (This)->lpVtbl->AllocateForStream(This,stream_number,size,sample,context) +#define IWMReaderCallbackAdvanced_AllocateForOutput(This,output_number,size,sample,context) (This)->lpVtbl->AllocateForOutput(This,output_number,size,sample,context) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_QueryInterface(IWMReaderCallbackAdvanced* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMReaderCallbackAdvanced_AddRef(IWMReaderCallbackAdvanced* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMReaderCallbackAdvanced_Release(IWMReaderCallbackAdvanced* This) { + return This->lpVtbl->Release(This); +} +/*** IWMReaderCallbackAdvanced methods ***/ +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_OnStreamSample(IWMReaderCallbackAdvanced* This,WORD stream_number,QWORD pts,QWORD duration,DWORD flags,INSSBuffer *sample,void *context) { + return This->lpVtbl->OnStreamSample(This,stream_number,pts,duration,flags,sample,context); +} +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_OnTime(IWMReaderCallbackAdvanced* This,QWORD time,void *context) { + return This->lpVtbl->OnTime(This,time,context); +} +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_OnStreamSelection(IWMReaderCallbackAdvanced* This,WORD count,WORD *stream_numbers,WMT_STREAM_SELECTION *selections,void *context) { + return This->lpVtbl->OnStreamSelection(This,count,stream_numbers,selections,context); +} +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_OnOutputPropsChanged(IWMReaderCallbackAdvanced* This,DWORD output_number,WM_MEDIA_TYPE *mt,void *context) { + return This->lpVtbl->OnOutputPropsChanged(This,output_number,mt,context); +} +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_AllocateForStream(IWMReaderCallbackAdvanced* This,WORD stream_number,DWORD size,INSSBuffer **sample,void *context) { + return This->lpVtbl->AllocateForStream(This,stream_number,size,sample,context); +} +static FORCEINLINE HRESULT IWMReaderCallbackAdvanced_AllocateForOutput(IWMReaderCallbackAdvanced* This,DWORD output_number,DWORD size,INSSBuffer **sample,void *context) { + return This->lpVtbl->AllocateForOutput(This,output_number,size,sample,context); +} +#endif +#endif + +#endif + + +#endif /* __IWMReaderCallbackAdvanced_INTERFACE_DEFINED__ */ + +/***************************************************************************** * IWMStreamList interface */ #ifndef __IWMStreamList_INTERFACE_DEFINED__ @@ -6757,7 +6952,7 @@ IWMReaderAllocatorEx : public IUnknown void *pvContext) = 0; virtual HRESULT STDMETHODCALLTYPE AllocateForOutputEx( - WORD wOutputNum, + DWORD output, DWORD cbBuffer, INSSBuffer **ppBuffer, DWORD dwFlags, @@ -6798,7 +6993,7 @@ typedef struct IWMReaderAllocatorExVtbl { HRESULT (STDMETHODCALLTYPE *AllocateForOutputEx)( IWMReaderAllocatorEx *This, - WORD wOutputNum, + DWORD output, DWORD cbBuffer, INSSBuffer **ppBuffer, DWORD dwFlags, @@ -6821,7 +7016,7 @@ interface IWMReaderAllocatorEx { #define IWMReaderAllocatorEx_Release(This) (This)->lpVtbl->Release(This) /*** IWMReaderAllocatorEx methods ***/ #define IWMReaderAllocatorEx_AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) -#define IWMReaderAllocatorEx_AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) +#define IWMReaderAllocatorEx_AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) (This)->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext) #else /*** IUnknown methods ***/ static FORCEINLINE HRESULT IWMReaderAllocatorEx_QueryInterface(IWMReaderAllocatorEx* This,REFIID riid,void **ppvObject) { @@ -6837,8 +7032,8 @@ static FORCEINLINE ULONG IWMReaderAllocatorEx_Release(IWMReaderAllocatorEx* This static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForStreamEx(IWMReaderAllocatorEx* This,WORD wStreamNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) { return This->lpVtbl->AllocateForStreamEx(This,wStreamNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext); } -static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAllocatorEx* This,WORD wOutputNum,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) { - return This->lpVtbl->AllocateForOutputEx(This,wOutputNum,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext); +static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAllocatorEx* This,DWORD output,DWORD cbBuffer,INSSBuffer **ppBuffer,DWORD dwFlags,QWORD cnsSampleTime,QWORD cnsSampleDuration,void *pvContext) { + return This->lpVtbl->AllocateForOutputEx(This,output,cbBuffer,ppBuffer,dwFlags,cnsSampleTime,cnsSampleDuration,pvContext); } #endif #endif @@ -11857,6 +12052,180 @@ static FORCEINLINE HRESULT IWMLicenseRestore_CancelLicenseRestore(IWMLicenseRest #endif /* __IWMLicenseRestore_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IWMIStreamProps interface + */ +#ifndef __IWMIStreamProps_INTERFACE_DEFINED__ +#define __IWMIStreamProps_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6816dad3-2b4b-4c8e-8149-874c3483a753") +IWMIStreamProps : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetProperty( + const WCHAR *name, + WMT_ATTR_DATATYPE *type, + BYTE *value, + DWORD *size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMIStreamProps, 0x6816dad3, 0x2b4b, 0x4c8e, 0x81,0x49, 0x87,0x4c,0x34,0x83,0xa7,0x53) +#endif +#else +typedef struct IWMIStreamPropsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMIStreamProps *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMIStreamProps *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMIStreamProps *This); + + /*** IWMIStreamProps methods ***/ + HRESULT (STDMETHODCALLTYPE *GetProperty)( + IWMIStreamProps *This, + const WCHAR *name, + WMT_ATTR_DATATYPE *type, + BYTE *value, + DWORD *size); + + END_INTERFACE +} IWMIStreamPropsVtbl; + +interface IWMIStreamProps { + CONST_VTBL IWMIStreamPropsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMIStreamProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMIStreamProps_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMIStreamProps_Release(This) (This)->lpVtbl->Release(This) +/*** IWMIStreamProps methods ***/ +#define IWMIStreamProps_GetProperty(This,name,type,value,size) (This)->lpVtbl->GetProperty(This,name,type,value,size) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMIStreamProps_QueryInterface(IWMIStreamProps* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMIStreamProps_AddRef(IWMIStreamProps* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMIStreamProps_Release(IWMIStreamProps* This) { + return This->lpVtbl->Release(This); +} +/*** IWMIStreamProps methods ***/ +static FORCEINLINE HRESULT IWMIStreamProps_GetProperty(IWMIStreamProps* This,const WCHAR *name,WMT_ATTR_DATATYPE *type,BYTE *value,DWORD *size) { + return This->lpVtbl->GetProperty(This,name,type,value,size); +} +#endif +#endif + +#endif + + +#endif /* __IWMIStreamProps_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWMCredentialCallback interface + */ +#ifndef __IWMCredentialCallback_INTERFACE_DEFINED__ +#define __IWMCredentialCallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("342e0eb7-e651-450c-975b-2ace2c90c48e") +IWMCredentialCallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AcquireCredentials( + WCHAR *realm, + WCHAR *site, + WCHAR *username, + DWORD username_size, + WCHAR *password, + DWORD password_size, + HRESULT hr, + DWORD *flags) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMCredentialCallback, 0x342e0eb7, 0xe651, 0x450c, 0x97,0x5b, 0x2a,0xce,0x2c,0x90,0xc4,0x8e) +#endif +#else +typedef struct IWMCredentialCallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMCredentialCallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMCredentialCallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMCredentialCallback *This); + + /*** IWMCredentialCallback methods ***/ + HRESULT (STDMETHODCALLTYPE *AcquireCredentials)( + IWMCredentialCallback *This, + WCHAR *realm, + WCHAR *site, + WCHAR *username, + DWORD username_size, + WCHAR *password, + DWORD password_size, + HRESULT hr, + DWORD *flags); + + END_INTERFACE +} IWMCredentialCallbackVtbl; + +interface IWMCredentialCallback { + CONST_VTBL IWMCredentialCallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMCredentialCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMCredentialCallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMCredentialCallback_Release(This) (This)->lpVtbl->Release(This) +/*** IWMCredentialCallback methods ***/ +#define IWMCredentialCallback_AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags) (This)->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMCredentialCallback_QueryInterface(IWMCredentialCallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMCredentialCallback_AddRef(IWMCredentialCallback* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMCredentialCallback_Release(IWMCredentialCallback* This) { + return This->lpVtbl->Release(This); +} +/*** IWMCredentialCallback methods ***/ +static FORCEINLINE HRESULT IWMCredentialCallback_AcquireCredentials(IWMCredentialCallback* This,WCHAR *realm,WCHAR *site,WCHAR *username,DWORD username_size,WCHAR *password,DWORD password_size,HRESULT hr,DWORD *flags) { + return This->lpVtbl->AcquireCredentials(This,realm,site,username,username_size,password,password_size,hr,flags); +} +#endif +#endif + +#endif + + +#endif /* __IWMCredentialCallback_INTERFACE_DEFINED__ */ + HRESULT WINAPI WMCheckURLExtension(LPCWSTR); HRESULT WINAPI WMCheckURLScheme(LPCWSTR); HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**); diff --git a/lib/libc/include/any-windows-any/wmsecure.h b/lib/libc/include/any-windows-any/wmsecure.h new file mode 100644 index 0000000000..e6c796e3f0 --- /dev/null +++ b/lib/libc/include/any-windows-any/wmsecure.h @@ -0,0 +1,472 @@ +/*** Autogenerated by WIDL 7.0 from include/wmsecure.idl - Do not edit ***/ + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include <rpc.h> +#include <rpcndr.h> +#endif + +#ifndef COM_NO_WINDOWS_H +#include <windows.h> +#include <ole2.h> +#endif + +#ifndef __wmsecure_h__ +#define __wmsecure_h__ + +/* Forward declarations */ + +#ifndef __IWMAuthorizer_FWD_DEFINED__ +#define __IWMAuthorizer_FWD_DEFINED__ +typedef interface IWMAuthorizer IWMAuthorizer; +#ifdef __cplusplus +interface IWMAuthorizer; +#endif /* __cplusplus */ +#endif + +#ifndef __IWMSecureChannel_FWD_DEFINED__ +#define __IWMSecureChannel_FWD_DEFINED__ +typedef interface IWMSecureChannel IWMSecureChannel; +#ifdef __cplusplus +interface IWMSecureChannel; +#endif /* __cplusplus */ +#endif + +#ifndef __IWMGetSecureChannel_FWD_DEFINED__ +#define __IWMGetSecureChannel_FWD_DEFINED__ +typedef interface IWMGetSecureChannel IWMGetSecureChannel; +#ifdef __cplusplus +interface IWMGetSecureChannel; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include <oaidl.h> +#include <ocidl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************** + * IWMAuthorizer interface + */ +#ifndef __IWMAuthorizer_INTERFACE_DEFINED__ +#define __IWMAuthorizer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMAuthorizer, 0xd9b67d36, 0xa9ad, 0x4eb4, 0xba,0xef, 0xdb,0x28,0x4e,0xf5,0x50,0x4c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d9b67d36-a9ad-4eb4-baef-db284ef5504c") +IWMAuthorizer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetCertCount( + DWORD *count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCert( + DWORD index, + BYTE **data) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSharedData( + DWORD index, + const BYTE *data, + BYTE *cert, + BYTE **ret_data) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMAuthorizer, 0xd9b67d36, 0xa9ad, 0x4eb4, 0xba,0xef, 0xdb,0x28,0x4e,0xf5,0x50,0x4c) +#endif +#else +typedef struct IWMAuthorizerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMAuthorizer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMAuthorizer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMAuthorizer *This); + + /*** IWMAuthorizer methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCertCount)( + IWMAuthorizer *This, + DWORD *count); + + HRESULT (STDMETHODCALLTYPE *GetCert)( + IWMAuthorizer *This, + DWORD index, + BYTE **data); + + HRESULT (STDMETHODCALLTYPE *GetSharedData)( + IWMAuthorizer *This, + DWORD index, + const BYTE *data, + BYTE *cert, + BYTE **ret_data); + + END_INTERFACE +} IWMAuthorizerVtbl; + +interface IWMAuthorizer { + CONST_VTBL IWMAuthorizerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMAuthorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMAuthorizer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMAuthorizer_Release(This) (This)->lpVtbl->Release(This) +/*** IWMAuthorizer methods ***/ +#define IWMAuthorizer_GetCertCount(This,count) (This)->lpVtbl->GetCertCount(This,count) +#define IWMAuthorizer_GetCert(This,index,data) (This)->lpVtbl->GetCert(This,index,data) +#define IWMAuthorizer_GetSharedData(This,index,data,cert,ret_data) (This)->lpVtbl->GetSharedData(This,index,data,cert,ret_data) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMAuthorizer_QueryInterface(IWMAuthorizer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMAuthorizer_AddRef(IWMAuthorizer* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMAuthorizer_Release(IWMAuthorizer* This) { + return This->lpVtbl->Release(This); +} +/*** IWMAuthorizer methods ***/ +static FORCEINLINE HRESULT IWMAuthorizer_GetCertCount(IWMAuthorizer* This,DWORD *count) { + return This->lpVtbl->GetCertCount(This,count); +} +static FORCEINLINE HRESULT IWMAuthorizer_GetCert(IWMAuthorizer* This,DWORD index,BYTE **data) { + return This->lpVtbl->GetCert(This,index,data); +} +static FORCEINLINE HRESULT IWMAuthorizer_GetSharedData(IWMAuthorizer* This,DWORD index,const BYTE *data,BYTE *cert,BYTE **ret_data) { + return This->lpVtbl->GetSharedData(This,index,data,cert,ret_data); +} +#endif +#endif + +#endif + + +#endif /* __IWMAuthorizer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWMSecureChannel interface + */ +#ifndef __IWMSecureChannel_INTERFACE_DEFINED__ +#define __IWMSecureChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMSecureChannel, 0x2720598a, 0xd0f2, 0x4189, 0xbd,0x10, 0x91,0xc4,0x6e,0xf0,0x93,0x6f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2720598a-d0f2-4189-bd10-91c46ef0936f") +IWMSecureChannel : public IWMAuthorizer +{ + virtual HRESULT STDMETHODCALLTYPE WMSC_AddCertificate( + IWMAuthorizer *cert) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_AddSignature( + BYTE *signature, + DWORD size) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Connect( + IWMSecureChannel *peer) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_IsConnected( + WINBOOL *connected) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Disconnect( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_GetValidCertificate( + BYTE **cert, + DWORD *signature) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Encrypt( + BYTE *data, + DWORD size) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Decrypt( + BYTE *data, + DWORD size) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Lock( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_Unlock( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE WMSC_SetSharedData( + DWORD index, + BYTE *data) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMSecureChannel, 0x2720598a, 0xd0f2, 0x4189, 0xbd,0x10, 0x91,0xc4,0x6e,0xf0,0x93,0x6f) +#endif +#else +typedef struct IWMSecureChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMSecureChannel *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMSecureChannel *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMSecureChannel *This); + + /*** IWMAuthorizer methods ***/ + HRESULT (STDMETHODCALLTYPE *GetCertCount)( + IWMSecureChannel *This, + DWORD *count); + + HRESULT (STDMETHODCALLTYPE *GetCert)( + IWMSecureChannel *This, + DWORD index, + BYTE **data); + + HRESULT (STDMETHODCALLTYPE *GetSharedData)( + IWMSecureChannel *This, + DWORD index, + const BYTE *data, + BYTE *cert, + BYTE **ret_data); + + /*** IWMSecureChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *WMSC_AddCertificate)( + IWMSecureChannel *This, + IWMAuthorizer *cert); + + HRESULT (STDMETHODCALLTYPE *WMSC_AddSignature)( + IWMSecureChannel *This, + BYTE *signature, + DWORD size); + + HRESULT (STDMETHODCALLTYPE *WMSC_Connect)( + IWMSecureChannel *This, + IWMSecureChannel *peer); + + HRESULT (STDMETHODCALLTYPE *WMSC_IsConnected)( + IWMSecureChannel *This, + WINBOOL *connected); + + HRESULT (STDMETHODCALLTYPE *WMSC_Disconnect)( + IWMSecureChannel *This); + + HRESULT (STDMETHODCALLTYPE *WMSC_GetValidCertificate)( + IWMSecureChannel *This, + BYTE **cert, + DWORD *signature); + + HRESULT (STDMETHODCALLTYPE *WMSC_Encrypt)( + IWMSecureChannel *This, + BYTE *data, + DWORD size); + + HRESULT (STDMETHODCALLTYPE *WMSC_Decrypt)( + IWMSecureChannel *This, + BYTE *data, + DWORD size); + + HRESULT (STDMETHODCALLTYPE *WMSC_Lock)( + IWMSecureChannel *This); + + HRESULT (STDMETHODCALLTYPE *WMSC_Unlock)( + IWMSecureChannel *This); + + HRESULT (STDMETHODCALLTYPE *WMSC_SetSharedData)( + IWMSecureChannel *This, + DWORD index, + BYTE *data); + + END_INTERFACE +} IWMSecureChannelVtbl; + +interface IWMSecureChannel { + CONST_VTBL IWMSecureChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMSecureChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMSecureChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMSecureChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IWMAuthorizer methods ***/ +#define IWMSecureChannel_GetCertCount(This,count) (This)->lpVtbl->GetCertCount(This,count) +#define IWMSecureChannel_GetCert(This,index,data) (This)->lpVtbl->GetCert(This,index,data) +#define IWMSecureChannel_GetSharedData(This,index,data,cert,ret_data) (This)->lpVtbl->GetSharedData(This,index,data,cert,ret_data) +/*** IWMSecureChannel methods ***/ +#define IWMSecureChannel_WMSC_AddCertificate(This,cert) (This)->lpVtbl->WMSC_AddCertificate(This,cert) +#define IWMSecureChannel_WMSC_AddSignature(This,signature,size) (This)->lpVtbl->WMSC_AddSignature(This,signature,size) +#define IWMSecureChannel_WMSC_Connect(This,peer) (This)->lpVtbl->WMSC_Connect(This,peer) +#define IWMSecureChannel_WMSC_IsConnected(This,connected) (This)->lpVtbl->WMSC_IsConnected(This,connected) +#define IWMSecureChannel_WMSC_Disconnect(This) (This)->lpVtbl->WMSC_Disconnect(This) +#define IWMSecureChannel_WMSC_GetValidCertificate(This,cert,signature) (This)->lpVtbl->WMSC_GetValidCertificate(This,cert,signature) +#define IWMSecureChannel_WMSC_Encrypt(This,data,size) (This)->lpVtbl->WMSC_Encrypt(This,data,size) +#define IWMSecureChannel_WMSC_Decrypt(This,data,size) (This)->lpVtbl->WMSC_Decrypt(This,data,size) +#define IWMSecureChannel_WMSC_Lock(This) (This)->lpVtbl->WMSC_Lock(This) +#define IWMSecureChannel_WMSC_Unlock(This) (This)->lpVtbl->WMSC_Unlock(This) +#define IWMSecureChannel_WMSC_SetSharedData(This,index,data) (This)->lpVtbl->WMSC_SetSharedData(This,index,data) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMSecureChannel_QueryInterface(IWMSecureChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMSecureChannel_AddRef(IWMSecureChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMSecureChannel_Release(IWMSecureChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IWMAuthorizer methods ***/ +static FORCEINLINE HRESULT IWMSecureChannel_GetCertCount(IWMSecureChannel* This,DWORD *count) { + return This->lpVtbl->GetCertCount(This,count); +} +static FORCEINLINE HRESULT IWMSecureChannel_GetCert(IWMSecureChannel* This,DWORD index,BYTE **data) { + return This->lpVtbl->GetCert(This,index,data); +} +static FORCEINLINE HRESULT IWMSecureChannel_GetSharedData(IWMSecureChannel* This,DWORD index,const BYTE *data,BYTE *cert,BYTE **ret_data) { + return This->lpVtbl->GetSharedData(This,index,data,cert,ret_data); +} +/*** IWMSecureChannel methods ***/ +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_AddCertificate(IWMSecureChannel* This,IWMAuthorizer *cert) { + return This->lpVtbl->WMSC_AddCertificate(This,cert); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_AddSignature(IWMSecureChannel* This,BYTE *signature,DWORD size) { + return This->lpVtbl->WMSC_AddSignature(This,signature,size); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Connect(IWMSecureChannel* This,IWMSecureChannel *peer) { + return This->lpVtbl->WMSC_Connect(This,peer); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_IsConnected(IWMSecureChannel* This,WINBOOL *connected) { + return This->lpVtbl->WMSC_IsConnected(This,connected); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Disconnect(IWMSecureChannel* This) { + return This->lpVtbl->WMSC_Disconnect(This); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_GetValidCertificate(IWMSecureChannel* This,BYTE **cert,DWORD *signature) { + return This->lpVtbl->WMSC_GetValidCertificate(This,cert,signature); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Encrypt(IWMSecureChannel* This,BYTE *data,DWORD size) { + return This->lpVtbl->WMSC_Encrypt(This,data,size); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Decrypt(IWMSecureChannel* This,BYTE *data,DWORD size) { + return This->lpVtbl->WMSC_Decrypt(This,data,size); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Lock(IWMSecureChannel* This) { + return This->lpVtbl->WMSC_Lock(This); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Unlock(IWMSecureChannel* This) { + return This->lpVtbl->WMSC_Unlock(This); +} +static FORCEINLINE HRESULT IWMSecureChannel_WMSC_SetSharedData(IWMSecureChannel* This,DWORD index,BYTE *data) { + return This->lpVtbl->WMSC_SetSharedData(This,index,data); +} +#endif +#endif + +#endif + + +#endif /* __IWMSecureChannel_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IWMGetSecureChannel interface + */ +#ifndef __IWMGetSecureChannel_INTERFACE_DEFINED__ +#define __IWMGetSecureChannel_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWMGetSecureChannel, 0x94bc0598, 0xc3d2, 0x11d3, 0xbe,0xdf, 0x00,0xc0,0x4f,0x61,0x29,0x86); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("94bc0598-c3d2-11d3-bedf-00c04f612986") +IWMGetSecureChannel : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetPeerSecureChannelInterface( + IWMSecureChannel **channel) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWMGetSecureChannel, 0x94bc0598, 0xc3d2, 0x11d3, 0xbe,0xdf, 0x00,0xc0,0x4f,0x61,0x29,0x86) +#endif +#else +typedef struct IWMGetSecureChannelVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWMGetSecureChannel *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWMGetSecureChannel *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWMGetSecureChannel *This); + + /*** IWMGetSecureChannel methods ***/ + HRESULT (STDMETHODCALLTYPE *GetPeerSecureChannelInterface)( + IWMGetSecureChannel *This, + IWMSecureChannel **channel); + + END_INTERFACE +} IWMGetSecureChannelVtbl; + +interface IWMGetSecureChannel { + CONST_VTBL IWMGetSecureChannelVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWMGetSecureChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWMGetSecureChannel_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWMGetSecureChannel_Release(This) (This)->lpVtbl->Release(This) +/*** IWMGetSecureChannel methods ***/ +#define IWMGetSecureChannel_GetPeerSecureChannelInterface(This,channel) (This)->lpVtbl->GetPeerSecureChannelInterface(This,channel) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWMGetSecureChannel_QueryInterface(IWMGetSecureChannel* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWMGetSecureChannel_AddRef(IWMGetSecureChannel* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWMGetSecureChannel_Release(IWMGetSecureChannel* This) { + return This->lpVtbl->Release(This); +} +/*** IWMGetSecureChannel methods ***/ +static FORCEINLINE HRESULT IWMGetSecureChannel_GetPeerSecureChannelInterface(IWMGetSecureChannel* This,IWMSecureChannel **channel) { + return This->lpVtbl->GetPeerSecureChannelInterface(This,channel); +} +#endif +#endif + +#endif + + +#endif /* __IWMGetSecureChannel_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __wmsecure_h__ */ diff --git a/lib/libc/include/any-windows-any/wpcapi.h b/lib/libc/include/any-windows-any/wpcapi.h index 66f69dcaaf..f1aa499b45 100644 --- a/lib/libc/include/any-windows-any/wpcapi.h +++ b/lib/libc/include/any-windows-any/wpcapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wpcapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wpcapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/ws2ipdef.h b/lib/libc/include/any-windows-any/ws2ipdef.h index 188b2f41ef..d440bbcb8b 100644 --- a/lib/libc/include/any-windows-any/ws2ipdef.h +++ b/lib/libc/include/any-windows-any/ws2ipdef.h @@ -192,11 +192,6 @@ typedef enum _MULTICAST_MODE_TYPE { MCAST_EXCLUDE } MULTICAST_MODE_TYPE; -typedef struct ip_mreq { - IN_ADDR imr_multiaddr; - IN_ADDR imr_interface; -} IP_MREQ, *PIP_MREQ; - typedef struct ip_mreq_source { IN_ADDR imr_multiaddr; IN_ADDR imr_sourceaddr; diff --git a/lib/libc/include/any-windows-any/wsdattachment.h b/lib/libc/include/any-windows-any/wsdattachment.h index 21c619dae1..45a56db50e 100644 --- a/lib/libc/include/any-windows-any/wsdattachment.h +++ b/lib/libc/include/any-windows-any/wsdattachment.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsdattachment.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsdattachment.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsdbase.h b/lib/libc/include/any-windows-any/wsdbase.h index 2ce4ee16a7..7cc5d63b1d 100644 --- a/lib/libc/include/any-windows-any/wsdbase.h +++ b/lib/libc/include/any-windows-any/wsdbase.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsdbase.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsdbase.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsdclient.h b/lib/libc/include/any-windows-any/wsdclient.h index b4de44aee5..4358883c0e 100644 --- a/lib/libc/include/any-windows-any/wsdclient.h +++ b/lib/libc/include/any-windows-any/wsdclient.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsdclient.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsdclient.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsddisco.h b/lib/libc/include/any-windows-any/wsddisco.h index 1286f2a701..866abc07a2 100644 --- a/lib/libc/include/any-windows-any/wsddisco.h +++ b/lib/libc/include/any-windows-any/wsddisco.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsddisco.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsddisco.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsdhost.h b/lib/libc/include/any-windows-any/wsdhost.h index 60750c0c31..f9282ed4b9 100644 --- a/lib/libc/include/any-windows-any/wsdhost.h +++ b/lib/libc/include/any-windows-any/wsdhost.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsdhost.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsdhost.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsdxml.h b/lib/libc/include/any-windows-any/wsdxml.h index eb9ed9f00d..ef56c130aa 100644 --- a/lib/libc/include/any-windows-any/wsdxml.h +++ b/lib/libc/include/any-windows-any/wsdxml.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsdxml.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsdxml.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wsmandisp.h b/lib/libc/include/any-windows-any/wsmandisp.h index 47a5de4de1..7dcd52b4b8 100644 --- a/lib/libc/include/any-windows-any/wsmandisp.h +++ b/lib/libc/include/any-windows-any/wsmandisp.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wsmandisp.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wsmandisp.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wtypes.h b/lib/libc/include/any-windows-any/wtypes.h index 773716df81..64815709dd 100644 --- a/lib/libc/include/any-windows-any/wtypes.h +++ b/lib/libc/include/any-windows-any/wtypes.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wtypes.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wtypes.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wtypesbase.h b/lib/libc/include/any-windows-any/wtypesbase.h index 9304ac8345..54ba6d4ab4 100644 --- a/lib/libc/include/any-windows-any/wtypesbase.h +++ b/lib/libc/include/any-windows-any/wtypesbase.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wtypesbase.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wtypesbase.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/wuapi.h b/lib/libc/include/any-windows-any/wuapi.h index 99dd4144ee..ea28f20a78 100644 --- a/lib/libc/include/any-windows-any/wuapi.h +++ b/lib/libc/include/any-windows-any/wuapi.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/wuapi.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/wuapi.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ @@ -274,6 +274,14 @@ interface ISystemInformation; #endif /* __cplusplus */ #endif +#ifndef __IWindowsUpdateAgentInfo_FWD_DEFINED__ +#define __IWindowsUpdateAgentInfo_FWD_DEFINED__ +typedef interface IWindowsUpdateAgentInfo IWindowsUpdateAgentInfo; +#ifdef __cplusplus +interface IWindowsUpdateAgentInfo; +#endif /* __cplusplus */ +#endif + #ifndef __AutomaticUpdates_FWD_DEFINED__ #define __AutomaticUpdates_FWD_DEFINED__ #ifdef __cplusplus @@ -310,6 +318,15 @@ typedef struct SystemInformation SystemInformation; #endif /* defined __cplusplus */ #endif /* defined __SystemInformation_FWD_DEFINED__ */ +#ifndef __WindowsUpdateAgentInfo_FWD_DEFINED__ +#define __WindowsUpdateAgentInfo_FWD_DEFINED__ +#ifdef __cplusplus +typedef class WindowsUpdateAgentInfo WindowsUpdateAgentInfo; +#else +typedef struct WindowsUpdateAgentInfo WindowsUpdateAgentInfo; +#endif /* defined __cplusplus */ +#endif /* defined __WindowsUpdateAgentInfo_FWD_DEFINED__ */ + /* Headers for imported files */ #include <oaidl.h> @@ -6904,6 +6921,133 @@ static FORCEINLINE HRESULT ISystemInformation_get_RebootRequired(ISystemInformat #endif /* __ISystemInformation_INTERFACE_DEFINED__ */ /***************************************************************************** + * IWindowsUpdateAgentInfo interface + */ +#ifndef __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__ +#define __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IWindowsUpdateAgentInfo, 0x85713fa1, 0x7796, 0x4fa2, 0xbe,0x3b, 0xe2,0xd6,0x12,0x4d,0xd3,0x73); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("85713fa1-7796-4fa2-be3b-e2d6124dd373") +IWindowsUpdateAgentInfo : public IDispatch +{ + virtual HRESULT STDMETHODCALLTYPE GetInfo( + VARIANT varInfoIdentifier, + VARIANT *retval) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IWindowsUpdateAgentInfo, 0x85713fa1, 0x7796, 0x4fa2, 0xbe,0x3b, 0xe2,0xd6,0x12,0x4d,0xd3,0x73) +#endif +#else +typedef struct IWindowsUpdateAgentInfoVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IWindowsUpdateAgentInfo *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IWindowsUpdateAgentInfo *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IWindowsUpdateAgentInfo *This); + + /*** IDispatch methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)( + IWindowsUpdateAgentInfo *This, + UINT *pctinfo); + + HRESULT (STDMETHODCALLTYPE *GetTypeInfo)( + IWindowsUpdateAgentInfo *This, + UINT iTInfo, + LCID lcid, + ITypeInfo **ppTInfo); + + HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)( + IWindowsUpdateAgentInfo *This, + REFIID riid, + LPOLESTR *rgszNames, + UINT cNames, + LCID lcid, + DISPID *rgDispId); + + HRESULT (STDMETHODCALLTYPE *Invoke)( + IWindowsUpdateAgentInfo *This, + DISPID dispIdMember, + REFIID riid, + LCID lcid, + WORD wFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *puArgErr); + + /*** IWindowsUpdateAgentInfo methods ***/ + HRESULT (STDMETHODCALLTYPE *GetInfo)( + IWindowsUpdateAgentInfo *This, + VARIANT varInfoIdentifier, + VARIANT *retval); + + END_INTERFACE +} IWindowsUpdateAgentInfoVtbl; + +interface IWindowsUpdateAgentInfo { + CONST_VTBL IWindowsUpdateAgentInfoVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IWindowsUpdateAgentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IWindowsUpdateAgentInfo_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IWindowsUpdateAgentInfo_Release(This) (This)->lpVtbl->Release(This) +/*** IDispatch methods ***/ +#define IWindowsUpdateAgentInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo) +#define IWindowsUpdateAgentInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo) +#define IWindowsUpdateAgentInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) +#define IWindowsUpdateAgentInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) +/*** IWindowsUpdateAgentInfo methods ***/ +#define IWindowsUpdateAgentInfo_GetInfo(This,varInfoIdentifier,retval) (This)->lpVtbl->GetInfo(This,varInfoIdentifier,retval) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_QueryInterface(IWindowsUpdateAgentInfo* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IWindowsUpdateAgentInfo_AddRef(IWindowsUpdateAgentInfo* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IWindowsUpdateAgentInfo_Release(IWindowsUpdateAgentInfo* This) { + return This->lpVtbl->Release(This); +} +/*** IDispatch methods ***/ +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_GetTypeInfoCount(IWindowsUpdateAgentInfo* This,UINT *pctinfo) { + return This->lpVtbl->GetTypeInfoCount(This,pctinfo); +} +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_GetTypeInfo(IWindowsUpdateAgentInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) { + return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo); +} +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_GetIDsOfNames(IWindowsUpdateAgentInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) { + return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId); +} +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_Invoke(IWindowsUpdateAgentInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) { + return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr); +} +/*** IWindowsUpdateAgentInfo methods ***/ +static FORCEINLINE HRESULT IWindowsUpdateAgentInfo_GetInfo(IWindowsUpdateAgentInfo* This,VARIANT varInfoIdentifier,VARIANT *retval) { + return This->lpVtbl->GetInfo(This,varInfoIdentifier,retval); +} +#endif +#endif + +#endif + + +#endif /* __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__ */ + +/***************************************************************************** * AutomaticUpdates coclass */ @@ -6955,6 +7099,19 @@ __CRT_UUID_DECL(SystemInformation, 0xc01b9ba0, 0xbea7, 0x41ba, 0xb6,0x04, 0xd0,0 #endif #endif +/***************************************************************************** + * WindowsUpdateAgentInfo coclass + */ + +DEFINE_GUID(CLSID_WindowsUpdateAgentInfo, 0xc2e88c2f, 0x6f5b, 0x4aaa, 0x89,0x4b, 0x55,0xc8,0x47,0xad,0x3a,0x2d); + +#ifdef __cplusplus +class DECLSPEC_UUID("c2e88c2f-6f5b-4aaa-894b-55c847ad3a2d") WindowsUpdateAgentInfo; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(WindowsUpdateAgentInfo, 0xc2e88c2f, 0x6f5b, 0x4aaa, 0x89,0x4b, 0x55,0xc8,0x47,0xad,0x3a,0x2d) +#endif +#endif + #endif /* __WUApiLib_LIBRARY_DEFINED__ */ /* Begin additional prototypes for all interfaces */ diff --git a/lib/libc/include/any-windows-any/wuerror.h b/lib/libc/include/any-windows-any/wuerror.h new file mode 100644 index 0000000000..62048e1afb --- /dev/null +++ b/lib/libc/include/any-windows-any/wuerror.h @@ -0,0 +1,482 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _WUERROR_ +#define _WUERROR_ + +#ifdef RC_INVOKED +#define _HRESULT_TYPEDEF_(_sc) _sc +#else +#define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc) +#endif + +#define WU_S_SERVICE_STOP _HRESULT_TYPEDEF_(0x00240001) +#define WU_S_SELFUPDATE _HRESULT_TYPEDEF_(0x00240002) +#define WU_S_UPDATE_ERROR _HRESULT_TYPEDEF_(0x00240003) +#define WU_S_MARKED_FOR_DISCONNECT _HRESULT_TYPEDEF_(0x00240004) +#define WU_S_REBOOT_REQUIRED _HRESULT_TYPEDEF_(0x00240005) +#define WU_S_ALREADY_INSTALLED _HRESULT_TYPEDEF_(0x00240006) +#define WU_S_ALREADY_UNINSTALLED _HRESULT_TYPEDEF_(0x00240007) +#define WU_S_ALREADY_DOWNLOADED _HRESULT_TYPEDEF_(0x00240008) +#define WU_S_SOME_UPDATES_SKIPPED_ON_BATTERY _HRESULT_TYPEDEF_(0x00240009) +#define WU_S_ALREADY_REVERTED _HRESULT_TYPEDEF_(0x0024000A) +#define WU_S_SEARCH_CRITERIA_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x00240010) +#define WU_S_UH_INSTALLSTILLPENDING _HRESULT_TYPEDEF_(0x00242015) +#define WU_S_UH_DOWNLOAD_SIZE_CALCULATED _HRESULT_TYPEDEF_(0x00242016) +#define WU_S_SIH_NOOP _HRESULT_TYPEDEF_(0x00245001) +#define WU_S_DM_ALREADYDOWNLOADING _HRESULT_TYPEDEF_(0x00246001) +#define WU_S_METADATA_SKIPPED_BY_ENFORCEMENTMODE _HRESULT_TYPEDEF_(0x00247101) +#define WU_S_METADATA_IGNORED_SIGNATURE_VERIFICATION _HRESULT_TYPEDEF_(0x00247102) +#define WU_S_SEARCH_LOAD_SHEDDING _HRESULT_TYPEDEF_(0x00248001) +#define WU_E_NO_SERVICE _HRESULT_TYPEDEF_(0x80240001) +#define WU_E_MAX_CAPACITY_REACHED _HRESULT_TYPEDEF_(0x80240002) +#define WU_E_UNKNOWN_ID _HRESULT_TYPEDEF_(0x80240003) +#define WU_E_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x80240004) +#define WU_E_RANGEOVERLAP _HRESULT_TYPEDEF_(0x80240005) +#define WU_E_TOOMANYRANGES _HRESULT_TYPEDEF_(0x80240006) +#define WU_E_INVALIDINDEX _HRESULT_TYPEDEF_(0x80240007) +#define WU_E_ITEMNOTFOUND _HRESULT_TYPEDEF_(0x80240008) +#define WU_E_OPERATIONINPROGRESS _HRESULT_TYPEDEF_(0x80240009) +#define WU_E_COULDNOTCANCEL _HRESULT_TYPEDEF_(0x8024000A) +#define WU_E_CALL_CANCELLED _HRESULT_TYPEDEF_(0x8024000B) +#define WU_E_NOOP _HRESULT_TYPEDEF_(0x8024000C) +#define WU_E_XML_MISSINGDATA _HRESULT_TYPEDEF_(0x8024000D) +#define WU_E_XML_INVALID _HRESULT_TYPEDEF_(0x8024000E) +#define WU_E_CYCLE_DETECTED _HRESULT_TYPEDEF_(0x8024000F) +#define WU_E_TOO_DEEP_RELATION _HRESULT_TYPEDEF_(0x80240010) +#define WU_E_INVALID_RELATIONSHIP _HRESULT_TYPEDEF_(0x80240011) +#define WU_E_REG_VALUE_INVALID _HRESULT_TYPEDEF_(0x80240012) +#define WU_E_DUPLICATE_ITEM _HRESULT_TYPEDEF_(0x80240013) +#define WU_E_INVALID_INSTALL_REQUESTED _HRESULT_TYPEDEF_(0x80240014) +#define WU_E_INSTALL_NOT_ALLOWED _HRESULT_TYPEDEF_(0x80240016) +#define WU_E_NOT_APPLICABLE _HRESULT_TYPEDEF_(0x80240017) +#define WU_E_NO_USERTOKEN _HRESULT_TYPEDEF_(0x80240018) +#define WU_E_EXCLUSIVE_INSTALL_CONFLICT _HRESULT_TYPEDEF_(0x80240019) +#define WU_E_POLICY_NOT_SET _HRESULT_TYPEDEF_(0x8024001A) +#define WU_E_SELFUPDATE_IN_PROGRESS _HRESULT_TYPEDEF_(0x8024001B) +#define WU_E_INVALID_UPDATE _HRESULT_TYPEDEF_(0x8024001D) +#define WU_E_SERVICE_STOP _HRESULT_TYPEDEF_(0x8024001E) +#define WU_E_NO_CONNECTION _HRESULT_TYPEDEF_(0x8024001F) +#define WU_E_NO_INTERACTIVE_USER _HRESULT_TYPEDEF_(0x80240020) +#define WU_E_TIME_OUT _HRESULT_TYPEDEF_(0x80240021) +#define WU_E_ALL_UPDATES_FAILED _HRESULT_TYPEDEF_(0x80240022) +#define WU_E_EULAS_DECLINED _HRESULT_TYPEDEF_(0x80240023) +#define WU_E_NO_UPDATE _HRESULT_TYPEDEF_(0x80240024) +#define WU_E_USER_ACCESS_DISABLED _HRESULT_TYPEDEF_(0x80240025) +#define WU_E_INVALID_UPDATE_TYPE _HRESULT_TYPEDEF_(0x80240026) +#define WU_E_URL_TOO_LONG _HRESULT_TYPEDEF_(0x80240027) +#define WU_E_UNINSTALL_NOT_ALLOWED _HRESULT_TYPEDEF_(0x80240028) +#define WU_E_INVALID_PRODUCT_LICENSE _HRESULT_TYPEDEF_(0x80240029) +#define WU_E_MISSING_HANDLER _HRESULT_TYPEDEF_(0x8024002A) +#define WU_E_LEGACYSERVER _HRESULT_TYPEDEF_(0x8024002B) +#define WU_E_BIN_SOURCE_ABSENT _HRESULT_TYPEDEF_(0x8024002C) +#define WU_E_SOURCE_ABSENT _HRESULT_TYPEDEF_(0x8024002D) +#define WU_E_WU_DISABLED _HRESULT_TYPEDEF_(0x8024002E) +#define WU_E_CALL_CANCELLED_BY_POLICY _HRESULT_TYPEDEF_(0x8024002F) +#define WU_E_INVALID_PROXY_SERVER _HRESULT_TYPEDEF_(0x80240030) +#define WU_E_INVALID_FILE _HRESULT_TYPEDEF_(0x80240031) +#define WU_E_INVALID_CRITERIA _HRESULT_TYPEDEF_(0x80240032) +#define WU_E_EULA_UNAVAILABLE _HRESULT_TYPEDEF_(0x80240033) +#define WU_E_DOWNLOAD_FAILED _HRESULT_TYPEDEF_(0x80240034) +#define WU_E_UPDATE_NOT_PROCESSED _HRESULT_TYPEDEF_(0x80240035) +#define WU_E_INVALID_OPERATION _HRESULT_TYPEDEF_(0x80240036) +#define WU_E_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80240037) +#define WU_E_WINHTTP_INVALID_FILE _HRESULT_TYPEDEF_(0x80240038) +#define WU_E_TOO_MANY_RESYNC _HRESULT_TYPEDEF_(0x80240039) +#define WU_E_NO_SERVER_CORE_SUPPORT _HRESULT_TYPEDEF_(0x80240040) +#define WU_E_SYSPREP_IN_PROGRESS _HRESULT_TYPEDEF_(0x80240041) +#define WU_E_UNKNOWN_SERVICE _HRESULT_TYPEDEF_(0x80240042) +#define WU_E_NO_UI_SUPPORT _HRESULT_TYPEDEF_(0x80240043) +#define WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED _HRESULT_TYPEDEF_(0x80240044) +#define WU_E_UNSUPPORTED_SEARCHSCOPE _HRESULT_TYPEDEF_(0x80240045) +#define WU_E_BAD_FILE_URL _HRESULT_TYPEDEF_(0x80240046) +#define WU_E_REVERT_NOT_ALLOWED _HRESULT_TYPEDEF_(0x80240047) +#define WU_E_INVALID_NOTIFICATION_INFO _HRESULT_TYPEDEF_(0x80240048) +#define WU_E_OUTOFRANGE _HRESULT_TYPEDEF_(0x80240049) +#define WU_E_SETUP_IN_PROGRESS _HRESULT_TYPEDEF_(0x8024004A) +#define WU_E_ORPHANED_DOWNLOAD_JOB _HRESULT_TYPEDEF_(0x8024004B) +#define WU_E_LOW_BATTERY _HRESULT_TYPEDEF_(0x8024004C) +#define WU_E_INFRASTRUCTUREFILE_INVALID_FORMAT _HRESULT_TYPEDEF_(0x8024004D) +#define WU_E_INFRASTRUCTUREFILE_REQUIRES_SSL _HRESULT_TYPEDEF_(0x8024004E) +#define WU_E_IDLESHUTDOWN_OPCOUNT_DISCOVERY _HRESULT_TYPEDEF_(0x8024004F) +#define WU_E_IDLESHUTDOWN_OPCOUNT_SEARCH _HRESULT_TYPEDEF_(0x80240050) +#define WU_E_IDLESHUTDOWN_OPCOUNT_DOWNLOAD _HRESULT_TYPEDEF_(0x80240051) +#define WU_E_IDLESHUTDOWN_OPCOUNT_INSTALL _HRESULT_TYPEDEF_(0x80240052) +#define WU_E_IDLESHUTDOWN_OPCOUNT_OTHER _HRESULT_TYPEDEF_(0x80240053) +#define WU_E_INTERACTIVE_CALL_CANCELLED _HRESULT_TYPEDEF_(0x80240054) +#define WU_E_AU_CALL_CANCELLED _HRESULT_TYPEDEF_(0x80240055) +#define WU_E_SYSTEM_UNSUPPORTED _HRESULT_TYPEDEF_(0x80240056) +#define WU_E_NO_SUCH_HANDLER_PLUGIN _HRESULT_TYPEDEF_(0x80240057) +#define WU_E_INVALID_SERIALIZATION_VERSION _HRESULT_TYPEDEF_(0x80240058) +#define WU_E_NETWORK_COST_EXCEEDS_POLICY _HRESULT_TYPEDEF_(0x80240059) +#define WU_E_CALL_CANCELLED_BY_HIDE _HRESULT_TYPEDEF_(0x8024005A) +#define WU_E_CALL_CANCELLED_BY_INVALID _HRESULT_TYPEDEF_(0x8024005B) +#define WU_E_INVALID_VOLUMEID _HRESULT_TYPEDEF_(0x8024005C) +#define WU_E_UNRECOGNIZED_VOLUMEID _HRESULT_TYPEDEF_(0x8024005D) +#define WU_E_EXTENDEDERROR_NOTSET _HRESULT_TYPEDEF_(0x8024005E) +#define WU_E_EXTENDEDERROR_FAILED _HRESULT_TYPEDEF_(0x8024005F) +#define WU_E_IDLESHUTDOWN_OPCOUNT_SERVICEREGISTRATION _HRESULT_TYPEDEF_(0x80240060) +#define WU_E_FILETRUST_SHA2SIGNATURE_MISSING _HRESULT_TYPEDEF_(0x80240061) +#define WU_E_UPDATE_NOT_APPROVED _HRESULT_TYPEDEF_(0x80240062) +#define WU_E_CALL_CANCELLED_BY_INTERACTIVE_SEARCH _HRESULT_TYPEDEF_(0x80240063) +#define WU_E_INSTALL_JOB_RESUME_NOT_ALLOWED _HRESULT_TYPEDEF_(0x80240064) +#define WU_E_INSTALL_JOB_NOT_SUSPENDED _HRESULT_TYPEDEF_(0x80240065) +#define WU_E_INSTALL_USERCONTEXT_ACCESSDENIED _HRESULT_TYPEDEF_(0x80240066) +#define WU_E_UNEXPECTED _HRESULT_TYPEDEF_(0x80240FFF) +#define WU_E_MSI_WRONG_VERSION _HRESULT_TYPEDEF_(0x80241001) +#define WU_E_MSI_NOT_CONFIGURED _HRESULT_TYPEDEF_(0x80241002) +#define WU_E_MSP_DISABLED _HRESULT_TYPEDEF_(0x80241003) +#define WU_E_MSI_WRONG_APP_CONTEXT _HRESULT_TYPEDEF_(0x80241004) +#define WU_E_MSI_NOT_PRESENT _HRESULT_TYPEDEF_(0x80241005) +#define WU_E_MSP_UNEXPECTED _HRESULT_TYPEDEF_(0x80241FFF) +#define WU_E_PT_SOAPCLIENT_BASE _HRESULT_TYPEDEF_(0x80244000) +#define WU_E_PT_SOAPCLIENT_INITIALIZE _HRESULT_TYPEDEF_(0x80244001) +#define WU_E_PT_SOAPCLIENT_OUTOFMEMORY _HRESULT_TYPEDEF_(0x80244002) +#define WU_E_PT_SOAPCLIENT_GENERATE _HRESULT_TYPEDEF_(0x80244003) +#define WU_E_PT_SOAPCLIENT_CONNECT _HRESULT_TYPEDEF_(0x80244004) +#define WU_E_PT_SOAPCLIENT_SEND _HRESULT_TYPEDEF_(0x80244005) +#define WU_E_PT_SOAPCLIENT_SERVER _HRESULT_TYPEDEF_(0x80244006) +#define WU_E_PT_SOAPCLIENT_SOAPFAULT _HRESULT_TYPEDEF_(0x80244007) +#define WU_E_PT_SOAPCLIENT_PARSEFAULT _HRESULT_TYPEDEF_(0x80244008) +#define WU_E_PT_SOAPCLIENT_READ _HRESULT_TYPEDEF_(0x80244009) +#define WU_E_PT_SOAPCLIENT_PARSE _HRESULT_TYPEDEF_(0x8024400A) +#define WU_E_PT_SOAP_VERSION _HRESULT_TYPEDEF_(0x8024400B) +#define WU_E_PT_SOAP_MUST_UNDERSTAND _HRESULT_TYPEDEF_(0x8024400C) +#define WU_E_PT_SOAP_CLIENT _HRESULT_TYPEDEF_(0x8024400D) +#define WU_E_PT_SOAP_SERVER _HRESULT_TYPEDEF_(0x8024400E) +#define WU_E_PT_WMI_ERROR _HRESULT_TYPEDEF_(0x8024400F) +#define WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS _HRESULT_TYPEDEF_(0x80244010) +#define WU_E_PT_SUS_SERVER_NOT_SET _HRESULT_TYPEDEF_(0x80244011) +#define WU_E_PT_DOUBLE_INITIALIZATION _HRESULT_TYPEDEF_(0x80244012) +#define WU_E_PT_INVALID_COMPUTER_NAME _HRESULT_TYPEDEF_(0x80244013) +#define WU_E_PT_REFRESH_CACHE_REQUIRED _HRESULT_TYPEDEF_(0x80244015) +#define WU_E_PT_HTTP_STATUS_BAD_REQUEST _HRESULT_TYPEDEF_(0x80244016) +#define WU_E_PT_HTTP_STATUS_DENIED _HRESULT_TYPEDEF_(0x80244017) +#define WU_E_PT_HTTP_STATUS_FORBIDDEN _HRESULT_TYPEDEF_(0x80244018) +#define WU_E_PT_HTTP_STATUS_NOT_FOUND _HRESULT_TYPEDEF_(0x80244019) +#define WU_E_PT_HTTP_STATUS_BAD_METHOD _HRESULT_TYPEDEF_(0x8024401A) +#define WU_E_PT_HTTP_STATUS_PROXY_AUTH_REQ _HRESULT_TYPEDEF_(0x8024401B) +#define WU_E_PT_HTTP_STATUS_REQUEST_TIMEOUT _HRESULT_TYPEDEF_(0x8024401C) +#define WU_E_PT_HTTP_STATUS_CONFLICT _HRESULT_TYPEDEF_(0x8024401D) +#define WU_E_PT_HTTP_STATUS_GONE _HRESULT_TYPEDEF_(0x8024401E) +#define WU_E_PT_HTTP_STATUS_SERVER_ERROR _HRESULT_TYPEDEF_(0x8024401F) +#define WU_E_PT_HTTP_STATUS_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80244020) +#define WU_E_PT_HTTP_STATUS_BAD_GATEWAY _HRESULT_TYPEDEF_(0x80244021) +#define WU_E_PT_HTTP_STATUS_SERVICE_UNAVAIL _HRESULT_TYPEDEF_(0x80244022) +#define WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT _HRESULT_TYPEDEF_(0x80244023) +#define WU_E_PT_HTTP_STATUS_VERSION_NOT_SUP _HRESULT_TYPEDEF_(0x80244024) +#define WU_E_PT_FILE_LOCATIONS_CHANGED _HRESULT_TYPEDEF_(0x80244025) +#define WU_E_PT_REGISTRATION_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80244026) +#define WU_E_PT_NO_AUTH_PLUGINS_REQUESTED _HRESULT_TYPEDEF_(0x80244027) +#define WU_E_PT_NO_AUTH_COOKIES_CREATED _HRESULT_TYPEDEF_(0x80244028) +#define WU_E_PT_INVALID_CONFIG_PROP _HRESULT_TYPEDEF_(0x80244029) +#define WU_E_PT_CONFIG_PROP_MISSING _HRESULT_TYPEDEF_(0x8024402A) +#define WU_E_PT_HTTP_STATUS_NOT_MAPPED _HRESULT_TYPEDEF_(0x8024402B) +#define WU_E_PT_WINHTTP_NAME_NOT_RESOLVED _HRESULT_TYPEDEF_(0x8024402C) +#define WU_E_PT_LOAD_SHEDDING _HRESULT_TYPEDEF_(0x8024402D) +#define WU_E_PT_SAME_REDIR_ID _HRESULT_TYPEDEF_(0x8024502D) +#define WU_E_PT_NO_MANAGED_RECOVER _HRESULT_TYPEDEF_(0x8024502E) +#define WU_E_PT_ECP_SUCCEEDED_WITH_ERRORS _HRESULT_TYPEDEF_(0x8024402F) +#define WU_E_PT_ECP_INIT_FAILED _HRESULT_TYPEDEF_(0x80244030) +#define WU_E_PT_ECP_INVALID_FILE_FORMAT _HRESULT_TYPEDEF_(0x80244031) +#define WU_E_PT_ECP_INVALID_METADATA _HRESULT_TYPEDEF_(0x80244032) +#define WU_E_PT_ECP_FAILURE_TO_EXTRACT_DIGEST _HRESULT_TYPEDEF_(0x80244033) +#define WU_E_PT_ECP_FAILURE_TO_DECOMPRESS_CAB_FILE _HRESULT_TYPEDEF_(0x80244034) +#define WU_E_PT_ECP_FILE_LOCATION_ERROR _HRESULT_TYPEDEF_(0x80244035) +#define WU_E_PT_CATALOG_SYNC_REQUIRED _HRESULT_TYPEDEF_(0x80240436) +#define WU_E_PT_SECURITY_VERIFICATION_FAILURE _HRESULT_TYPEDEF_(0x80240437) +#define WU_E_PT_ENDPOINT_UNREACHABLE _HRESULT_TYPEDEF_(0x80240438) +#define WU_E_PT_INVALID_FORMAT _HRESULT_TYPEDEF_(0x80240439) +#define WU_E_PT_INVALID_URL _HRESULT_TYPEDEF_(0x8024043A) +#define WU_E_PT_NWS_NOT_LOADED _HRESULT_TYPEDEF_(0x8024043B) +#define WU_E_PT_PROXY_AUTH_SCHEME_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8024043C) +#define WU_E_SERVICEPROP_NOTAVAIL _HRESULT_TYPEDEF_(0x8024043D) +#define WU_E_PT_ENDPOINT_REFRESH_REQUIRED _HRESULT_TYPEDEF_(0x8024043E) +#define WU_E_PT_ENDPOINTURL_NOTAVAIL _HRESULT_TYPEDEF_(0x8024043F) +#define WU_E_PT_ENDPOINT_DISCONNECTED _HRESULT_TYPEDEF_(0x80240440) +#define WU_E_PT_INVALID_OPERATION _HRESULT_TYPEDEF_(0x80240441) +#define WU_E_PT_OBJECT_FAULTED _HRESULT_TYPEDEF_(0x80240442) +#define WU_E_PT_NUMERIC_OVERFLOW _HRESULT_TYPEDEF_(0x80240443) +#define WU_E_PT_OPERATION_ABORTED _HRESULT_TYPEDEF_(0x80240444) +#define WU_E_PT_OPERATION_ABANDONED _HRESULT_TYPEDEF_(0x80240445) +#define WU_E_PT_QUOTA_EXCEEDED _HRESULT_TYPEDEF_(0x80240446) +#define WU_E_PT_NO_TRANSLATION_AVAILABLE _HRESULT_TYPEDEF_(0x80240447) +#define WU_E_PT_ADDRESS_IN_USE _HRESULT_TYPEDEF_(0x80240448) +#define WU_E_PT_ADDRESS_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x80240449) +#define WU_E_PT_OTHER _HRESULT_TYPEDEF_(0x8024044A) +#define WU_E_PT_SECURITY_SYSTEM_FAILURE _HRESULT_TYPEDEF_(0x8024044B) +#define WU_E_PT_UNEXPECTED _HRESULT_TYPEDEF_(0x80244FFF) +#define WU_E_REDIRECTOR_LOAD_XML _HRESULT_TYPEDEF_(0x80245001) +#define WU_E_REDIRECTOR_S_FALSE _HRESULT_TYPEDEF_(0x80245002) +#define WU_E_REDIRECTOR_ID_SMALLER _HRESULT_TYPEDEF_(0x80245003) +#define WU_E_REDIRECTOR_UNKNOWN_SERVICE _HRESULT_TYPEDEF_(0x80245004) +#define WU_E_REDIRECTOR_UNSUPPORTED_CONTENTTYPE _HRESULT_TYPEDEF_(0x80245005) +#define WU_E_REDIRECTOR_INVALID_RESPONSE _HRESULT_TYPEDEF_(0x80245006) +#define WU_E_REDIRECTOR_ATTRPROVIDER_EXCEEDED_MAX_NAMEVALUE _HRESULT_TYPEDEF_(0x80245008) +#define WU_E_REDIRECTOR_ATTRPROVIDER_INVALID_NAME _HRESULT_TYPEDEF_(0x80245009) +#define WU_E_REDIRECTOR_ATTRPROVIDER_INVALID_VALUE _HRESULT_TYPEDEF_(0x8024500A) +#define WU_E_REDIRECTOR_SLS_GENERIC_ERROR _HRESULT_TYPEDEF_(0x8024500B) +#define WU_E_REDIRECTOR_CONNECT_POLICY _HRESULT_TYPEDEF_(0x8024500C) +#define WU_E_REDIRECTOR_ONLINE_DISALLOWED _HRESULT_TYPEDEF_(0x8024500D) +#define WU_E_REDIRECTOR_UNEXPECTED _HRESULT_TYPEDEF_(0x802450FF) +#define WU_E_SIH_VERIFY_DOWNLOAD_ENGINE _HRESULT_TYPEDEF_(0x80245101) +#define WU_E_SIH_VERIFY_DOWNLOAD_PAYLOAD _HRESULT_TYPEDEF_(0x80245102) +#define WU_E_SIH_VERIFY_STAGE_ENGINE _HRESULT_TYPEDEF_(0x80245103) +#define WU_E_SIH_VERIFY_STAGE_PAYLOAD _HRESULT_TYPEDEF_(0x80245104) +#define WU_E_SIH_ACTION_NOT_FOUND _HRESULT_TYPEDEF_(0x80245105) +#define WU_E_SIH_SLS_PARSE _HRESULT_TYPEDEF_(0x80245106) +#define WU_E_SIH_INVALIDHASH _HRESULT_TYPEDEF_(0x80245107) +#define WU_E_SIH_NO_ENGINE _HRESULT_TYPEDEF_(0x80245108) +#define WU_E_SIH_POST_REBOOT_INSTALL_FAILED _HRESULT_TYPEDEF_(0x80245109) +#define WU_E_SIH_POST_REBOOT_NO_CACHED_SLS_RESPONSE _HRESULT_TYPEDEF_(0x8024510A) +#define WU_E_SIH_PARSE _HRESULT_TYPEDEF_(0x8024510B) +#define WU_E_SIH_SECURITY _HRESULT_TYPEDEF_(0x8024510C) +#define WU_E_SIH_PPL _HRESULT_TYPEDEF_(0x8024510D) +#define WU_E_SIH_POLICY _HRESULT_TYPEDEF_(0x8024510E) +#define WU_E_SIH_STDEXCEPTION _HRESULT_TYPEDEF_(0x8024510F) +#define WU_E_SIH_NONSTDEXCEPTION _HRESULT_TYPEDEF_(0x80245110) +#define WU_E_SIH_ENGINE_EXCEPTION _HRESULT_TYPEDEF_(0x80245111) +#define WU_E_SIH_BLOCKED_FOR_PLATFORM _HRESULT_TYPEDEF_(0x80245112) +#define WU_E_SIH_ANOTHER_INSTANCE_RUNNING _HRESULT_TYPEDEF_(0x80245113) +#define WU_E_SIH_DNSRESILIENCY_OFF _HRESULT_TYPEDEF_(0x80245114) +#define WU_E_SIH_UNEXPECTED _HRESULT_TYPEDEF_(0x802451FF) +#define WU_E_DRV_PRUNED _HRESULT_TYPEDEF_(0x8024C001) +#define WU_E_DRV_NOPROP_OR_LEGACY _HRESULT_TYPEDEF_(0x8024C002) +#define WU_E_DRV_REG_MISMATCH _HRESULT_TYPEDEF_(0x8024C003) +#define WU_E_DRV_NO_METADATA _HRESULT_TYPEDEF_(0x8024C004) +#define WU_E_DRV_MISSING_ATTRIBUTE _HRESULT_TYPEDEF_(0x8024C005) +#define WU_E_DRV_SYNC_FAILED _HRESULT_TYPEDEF_(0x8024C006) +#define WU_E_DRV_NO_PRINTER_CONTENT _HRESULT_TYPEDEF_(0x8024C007) +#define WU_E_DRV_DEVICE_PROBLEM _HRESULT_TYPEDEF_(0x8024C008) +#define WU_E_DRV_UNEXPECTED _HRESULT_TYPEDEF_(0x8024CFFF) +#define WU_E_DS_SHUTDOWN _HRESULT_TYPEDEF_(0x80248000) +#define WU_E_DS_INUSE _HRESULT_TYPEDEF_(0x80248001) +#define WU_E_DS_INVALID _HRESULT_TYPEDEF_(0x80248002) +#define WU_E_DS_TABLEMISSING _HRESULT_TYPEDEF_(0x80248003) +#define WU_E_DS_TABLEINCORRECT _HRESULT_TYPEDEF_(0x80248004) +#define WU_E_DS_INVALIDTABLENAME _HRESULT_TYPEDEF_(0x80248005) +#define WU_E_DS_BADVERSION _HRESULT_TYPEDEF_(0x80248006) +#define WU_E_DS_NODATA _HRESULT_TYPEDEF_(0x80248007) +#define WU_E_DS_MISSINGDATA _HRESULT_TYPEDEF_(0x80248008) +#define WU_E_DS_MISSINGREF _HRESULT_TYPEDEF_(0x80248009) +#define WU_E_DS_UNKNOWNHANDLER _HRESULT_TYPEDEF_(0x8024800A) +#define WU_E_DS_CANTDELETE _HRESULT_TYPEDEF_(0x8024800B) +#define WU_E_DS_LOCKTIMEOUTEXPIRED _HRESULT_TYPEDEF_(0x8024800C) +#define WU_E_DS_NOCATEGORIES _HRESULT_TYPEDEF_(0x8024800D) +#define WU_E_DS_ROWEXISTS _HRESULT_TYPEDEF_(0x8024800E) +#define WU_E_DS_STOREFILELOCKED _HRESULT_TYPEDEF_(0x8024800F) +#define WU_E_DS_CANNOTREGISTER _HRESULT_TYPEDEF_(0x80248010) +#define WU_E_DS_UNABLETOSTART _HRESULT_TYPEDEF_(0x80248011) +#define WU_E_DS_DUPLICATEUPDATEID _HRESULT_TYPEDEF_(0x80248013) +#define WU_E_DS_UNKNOWNSERVICE _HRESULT_TYPEDEF_(0x80248014) +#define WU_E_DS_SERVICEEXPIRED _HRESULT_TYPEDEF_(0x80248015) +#define WU_E_DS_DECLINENOTALLOWED _HRESULT_TYPEDEF_(0x80248016) +#define WU_E_DS_TABLESESSIONMISMATCH _HRESULT_TYPEDEF_(0x80248017) +#define WU_E_DS_SESSIONLOCKMISMATCH _HRESULT_TYPEDEF_(0x80248018) +#define WU_E_DS_NEEDWINDOWSSERVICE _HRESULT_TYPEDEF_(0x80248019) +#define WU_E_DS_INVALIDOPERATION _HRESULT_TYPEDEF_(0x8024801A) +#define WU_E_DS_SCHEMAMISMATCH _HRESULT_TYPEDEF_(0x8024801B) +#define WU_E_DS_RESETREQUIRED _HRESULT_TYPEDEF_(0x8024801C) +#define WU_E_DS_IMPERSONATED _HRESULT_TYPEDEF_(0x8024801D) +#define WU_E_DS_DATANOTAVAILABLE _HRESULT_TYPEDEF_(0x8024801E) +#define WU_E_DS_DATANOTLOADED _HRESULT_TYPEDEF_(0x8024801F) +#define WU_E_DS_NODATA_NOSUCHREVISION _HRESULT_TYPEDEF_(0x80248020) +#define WU_E_DS_NODATA_NOSUCHUPDATE _HRESULT_TYPEDEF_(0x80248021) +#define WU_E_DS_NODATA_EULA _HRESULT_TYPEDEF_(0x80248022) +#define WU_E_DS_NODATA_SERVICE _HRESULT_TYPEDEF_(0x80248023) +#define WU_E_DS_NODATA_COOKIE _HRESULT_TYPEDEF_(0x80248024) +#define WU_E_DS_NODATA_TIMER _HRESULT_TYPEDEF_(0x80248025) +#define WU_E_DS_NODATA_CCR _HRESULT_TYPEDEF_(0x80248026) +#define WU_E_DS_NODATA_FILE _HRESULT_TYPEDEF_(0x80248027) +#define WU_E_DS_NODATA_DOWNLOADJOB _HRESULT_TYPEDEF_(0x80248028) +#define WU_E_DS_NODATA_TMI _HRESULT_TYPEDEF_(0x80248029) +#define WU_E_DS_UNEXPECTED _HRESULT_TYPEDEF_(0x80248FFF) +#define WU_E_INVENTORY_PARSEFAILED _HRESULT_TYPEDEF_(0x80249001) +#define WU_E_INVENTORY_GET_INVENTORY_TYPE_FAILED _HRESULT_TYPEDEF_(0x80249002) +#define WU_E_INVENTORY_RESULT_UPLOAD_FAILED _HRESULT_TYPEDEF_(0x80249003) +#define WU_E_INVENTORY_UNEXPECTED _HRESULT_TYPEDEF_(0x80249004) +#define WU_E_INVENTORY_WMI_ERROR _HRESULT_TYPEDEF_(0x80249005) +#define WU_E_AU_NOSERVICE _HRESULT_TYPEDEF_(0x8024A000) +#define WU_E_AU_NONLEGACYSERVER _HRESULT_TYPEDEF_(0x8024A002) +#define WU_E_AU_LEGACYCLIENTDISABLED _HRESULT_TYPEDEF_(0x8024A003) +#define WU_E_AU_PAUSED _HRESULT_TYPEDEF_(0x8024A004) +#define WU_E_AU_NO_REGISTERED_SERVICE _HRESULT_TYPEDEF_(0x8024A005) +#define WU_E_AU_DETECT_SVCID_MISMATCH _HRESULT_TYPEDEF_(0x8024A006) +#define WU_E_REBOOT_IN_PROGRESS _HRESULT_TYPEDEF_(0x8024A007) +#define WU_E_AU_OOBE_IN_PROGRESS _HRESULT_TYPEDEF_(0x8024A008) +#define WU_E_AU_UNEXPECTED _HRESULT_TYPEDEF_(0x8024AFFF) +#define WU_E_UH_REMOTEUNAVAILABLE _HRESULT_TYPEDEF_(0x80242000) +#define WU_E_UH_LOCALONLY _HRESULT_TYPEDEF_(0x80242001) +#define WU_E_UH_UNKNOWNHANDLER _HRESULT_TYPEDEF_(0x80242002) +#define WU_E_UH_REMOTEALREADYACTIVE _HRESULT_TYPEDEF_(0x80242003) +#define WU_E_UH_DOESNOTSUPPORTACTION _HRESULT_TYPEDEF_(0x80242004) +#define WU_E_UH_WRONGHANDLER _HRESULT_TYPEDEF_(0x80242005) +#define WU_E_UH_INVALIDMETADATA _HRESULT_TYPEDEF_(0x80242006) +#define WU_E_UH_INSTALLERHUNG _HRESULT_TYPEDEF_(0x80242007) +#define WU_E_UH_OPERATIONCANCELLED _HRESULT_TYPEDEF_(0x80242008) +#define WU_E_UH_BADHANDLERXML _HRESULT_TYPEDEF_(0x80242009) +#define WU_E_UH_CANREQUIREINPUT _HRESULT_TYPEDEF_(0x8024200A) +#define WU_E_UH_INSTALLERFAILURE _HRESULT_TYPEDEF_(0x8024200B) +#define WU_E_UH_FALLBACKTOSELFCONTAINED _HRESULT_TYPEDEF_(0x8024200C) +#define WU_E_UH_NEEDANOTHERDOWNLOAD _HRESULT_TYPEDEF_(0x8024200D) +#define WU_E_UH_NOTIFYFAILURE _HRESULT_TYPEDEF_(0x8024200E) +#define WU_E_UH_INCONSISTENT_FILE_NAMES _HRESULT_TYPEDEF_(0x8024200F) +#define WU_E_UH_FALLBACKERROR _HRESULT_TYPEDEF_(0x80242010) +#define WU_E_UH_TOOMANYDOWNLOADREQUESTS _HRESULT_TYPEDEF_(0x80242011) +#define WU_E_UH_UNEXPECTEDCBSRESPONSE _HRESULT_TYPEDEF_(0x80242012) +#define WU_E_UH_BADCBSPACKAGEID _HRESULT_TYPEDEF_(0x80242013) +#define WU_E_UH_POSTREBOOTSTILLPENDING _HRESULT_TYPEDEF_(0x80242014) +#define WU_E_UH_POSTREBOOTRESULTUNKNOWN _HRESULT_TYPEDEF_(0x80242015) +#define WU_E_UH_POSTREBOOTUNEXPECTEDSTATE _HRESULT_TYPEDEF_(0x80242016) +#define WU_E_UH_NEW_SERVICING_STACK_REQUIRED _HRESULT_TYPEDEF_(0x80242017) +#define WU_E_UH_CALLED_BACK_FAILURE _HRESULT_TYPEDEF_(0x80242018) +#define WU_E_UH_CUSTOMINSTALLER_INVALID_SIGNATURE _HRESULT_TYPEDEF_(0x80242019) +#define WU_E_UH_UNSUPPORTED_INSTALLCONTEXT _HRESULT_TYPEDEF_(0x8024201A) +#define WU_E_UH_INVALID_TARGETSESSION _HRESULT_TYPEDEF_(0x8024201B) +#define WU_E_UH_DECRYPTFAILURE _HRESULT_TYPEDEF_(0x8024201C) +#define WU_E_UH_HANDLER_DISABLEDUNTILREBOOT _HRESULT_TYPEDEF_(0x8024201D) +#define WU_E_UH_APPX_NOT_PRESENT _HRESULT_TYPEDEF_(0x8024201E) +#define WU_E_UH_NOTREADYTOCOMMIT _HRESULT_TYPEDEF_(0x8024201F) +#define WU_E_UH_APPX_INVALID_PACKAGE_VOLUME _HRESULT_TYPEDEF_(0x80242020) +#define WU_E_UH_APPX_DEFAULT_PACKAGE_VOLUME_UNAVAILABLE _HRESULT_TYPEDEF_(0x80242021) +#define WU_E_UH_APPX_INSTALLED_PACKAGE_VOLUME_UNAVAILABLE _HRESULT_TYPEDEF_(0x80242022) +#define WU_E_UH_APPX_PACKAGE_FAMILY_NOT_FOUND _HRESULT_TYPEDEF_(0x80242023) +#define WU_E_UH_APPX_SYSTEM_VOLUME_NOT_FOUND _HRESULT_TYPEDEF_(0x80242024) +#define WU_E_UH_UNEXPECTED _HRESULT_TYPEDEF_(0x80242FFF) +#define WU_E_DM_URLNOTAVAILABLE _HRESULT_TYPEDEF_(0x80246001) +#define WU_E_DM_INCORRECTFILEHASH _HRESULT_TYPEDEF_(0x80246002) +#define WU_E_DM_UNKNOWNALGORITHM _HRESULT_TYPEDEF_(0x80246003) +#define WU_E_DM_NEEDDOWNLOADREQUEST _HRESULT_TYPEDEF_(0x80246004) +#define WU_E_DM_NONETWORK _HRESULT_TYPEDEF_(0x80246005) +#define WU_E_DM_WRONGBITSVERSION _HRESULT_TYPEDEF_(0x80246006) +#define WU_E_DM_NOTDOWNLOADED _HRESULT_TYPEDEF_(0x80246007) +#define WU_E_DM_FAILTOCONNECTTOBITS _HRESULT_TYPEDEF_(0x80246008) +#define WU_E_DM_BITSTRANSFERERROR _HRESULT_TYPEDEF_(0x80246009) +#define WU_E_DM_DOWNLOADLOCATIONCHANGED _HRESULT_TYPEDEF_(0x8024600A) +#define WU_E_DM_CONTENTCHANGED _HRESULT_TYPEDEF_(0x8024600B) +#define WU_E_DM_DOWNLOADLIMITEDBYUPDATESIZE _HRESULT_TYPEDEF_(0x8024600C) +#define WU_E_DM_UNAUTHORIZED _HRESULT_TYPEDEF_(0x8024600E) +#define WU_E_DM_BG_ERROR_TOKEN_REQUIRED _HRESULT_TYPEDEF_(0x8024600F) +#define WU_E_DM_DOWNLOADSANDBOXNOTFOUND _HRESULT_TYPEDEF_(0x80246010) +#define WU_E_DM_DOWNLOADFILEPATHUNKNOWN _HRESULT_TYPEDEF_(0x80246011) +#define WU_E_DM_DOWNLOADFILEMISSING _HRESULT_TYPEDEF_(0x80246012) +#define WU_E_DM_UPDATEREMOVED _HRESULT_TYPEDEF_(0x80246013) +#define WU_E_DM_READRANGEFAILED _HRESULT_TYPEDEF_(0x80246014) +#define WU_E_DM_UNAUTHORIZED_NO_USER _HRESULT_TYPEDEF_(0x80246016) +#define WU_E_DM_UNAUTHORIZED_LOCAL_USER _HRESULT_TYPEDEF_(0x80246017) +#define WU_E_DM_UNAUTHORIZED_DOMAIN_USER _HRESULT_TYPEDEF_(0x80246018) +#define WU_E_DM_UNAUTHORIZED_MSA_USER _HRESULT_TYPEDEF_(0x80246019) +#define WU_E_DM_FALLINGBACKTOBITS _HRESULT_TYPEDEF_(0x8024601A) +#define WU_E_DM_DOWNLOAD_VOLUME_CONFLICT _HRESULT_TYPEDEF_(0x8024601B) +#define WU_E_DM_SANDBOX_HASH_MISMATCH _HRESULT_TYPEDEF_(0x8024601C) +#define WU_E_DM_HARDRESERVEID_CONFLICT _HRESULT_TYPEDEF_(0x8024601D) +#define WU_E_DM_DOSVC_REQUIRED _HRESULT_TYPEDEF_(0x8024601E) +#define WU_E_DM_UNEXPECTED _HRESULT_TYPEDEF_(0x80246FFF) +#define WU_E_SETUP_INVALID_INFDATA _HRESULT_TYPEDEF_(0x8024D001) +#define WU_E_SETUP_INVALID_IDENTDATA _HRESULT_TYPEDEF_(0x8024D002) +#define WU_E_SETUP_ALREADY_INITIALIZED _HRESULT_TYPEDEF_(0x8024D003) +#define WU_E_SETUP_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x8024D004) +#define WU_E_SETUP_SOURCE_VERSION_MISMATCH _HRESULT_TYPEDEF_(0x8024D005) +#define WU_E_SETUP_TARGET_VERSION_GREATER _HRESULT_TYPEDEF_(0x8024D006) +#define WU_E_SETUP_REGISTRATION_FAILED _HRESULT_TYPEDEF_(0x8024D007) +#define WU_E_SELFUPDATE_SKIP_ON_FAILURE _HRESULT_TYPEDEF_(0x8024D008) +#define WU_E_SETUP_SKIP_UPDATE _HRESULT_TYPEDEF_(0x8024D009) +#define WU_E_SETUP_UNSUPPORTED_CONFIGURATION _HRESULT_TYPEDEF_(0x8024D00A) +#define WU_E_SETUP_BLOCKED_CONFIGURATION _HRESULT_TYPEDEF_(0x8024D00B) +#define WU_E_SETUP_REBOOT_TO_FIX _HRESULT_TYPEDEF_(0x8024D00C) +#define WU_E_SETUP_ALREADYRUNNING _HRESULT_TYPEDEF_(0x8024D00D) +#define WU_E_SETUP_REBOOTREQUIRED _HRESULT_TYPEDEF_(0x8024D00E) +#define WU_E_SETUP_HANDLER_EXEC_FAILURE _HRESULT_TYPEDEF_(0x8024D00F) +#define WU_E_SETUP_INVALID_REGISTRY_DATA _HRESULT_TYPEDEF_(0x8024D010) +#define WU_E_SELFUPDATE_REQUIRED _HRESULT_TYPEDEF_(0x8024D011) +#define WU_E_SELFUPDATE_REQUIRED_ADMIN _HRESULT_TYPEDEF_(0x8024D012) +#define WU_E_SETUP_WRONG_SERVER_VERSION _HRESULT_TYPEDEF_(0x8024D013) +#define WU_E_SETUP_DEFERRABLE_REBOOT_PENDING _HRESULT_TYPEDEF_(0x8024D014) +#define WU_E_SETUP_NON_DEFERRABLE_REBOOT_PENDING _HRESULT_TYPEDEF_(0x8024D015) +#define WU_E_SETUP_FAIL _HRESULT_TYPEDEF_(0x8024D016) +#define WU_E_SETUP_UNEXPECTED _HRESULT_TYPEDEF_(0x8024DFFF) +#define WU_E_EE_UNKNOWN_EXPRESSION _HRESULT_TYPEDEF_(0x8024E001) +#define WU_E_EE_INVALID_EXPRESSION _HRESULT_TYPEDEF_(0x8024E002) +#define WU_E_EE_MISSING_METADATA _HRESULT_TYPEDEF_(0x8024E003) +#define WU_E_EE_INVALID_VERSION _HRESULT_TYPEDEF_(0x8024E004) +#define WU_E_EE_NOT_INITIALIZED _HRESULT_TYPEDEF_(0x8024E005) +#define WU_E_EE_INVALID_ATTRIBUTEDATA _HRESULT_TYPEDEF_(0x8024E006) +#define WU_E_EE_CLUSTER_ERROR _HRESULT_TYPEDEF_(0x8024E007) +#define WU_E_EE_UNEXPECTED _HRESULT_TYPEDEF_(0x8024EFFF) +#define WU_E_INSTALLATION_RESULTS_UNKNOWN_VERSION _HRESULT_TYPEDEF_(0x80243001) +#define WU_E_INSTALLATION_RESULTS_INVALID_DATA _HRESULT_TYPEDEF_(0x80243002) +#define WU_E_INSTALLATION_RESULTS_NOT_FOUND _HRESULT_TYPEDEF_(0x80243003) +#define WU_E_TRAYICON_FAILURE _HRESULT_TYPEDEF_(0x80243004) +#define WU_E_NON_UI_MODE _HRESULT_TYPEDEF_(0x80243FFD) +#define WU_E_WUCLTUI_UNSUPPORTED_VERSION _HRESULT_TYPEDEF_(0x80243FFE) +#define WU_E_AUCLIENT_UNEXPECTED _HRESULT_TYPEDEF_(0x80243FFF) +#define WU_E_REPORTER_EVENTCACHECORRUPT _HRESULT_TYPEDEF_(0x8024F001) +#define WU_E_REPORTER_EVENTNAMESPACEPARSEFAILED _HRESULT_TYPEDEF_(0x8024F002) +#define WU_E_INVALID_EVENT _HRESULT_TYPEDEF_(0x8024F003) +#define WU_E_SERVER_BUSY _HRESULT_TYPEDEF_(0x8024F004) +#define WU_E_CALLBACK_COOKIE_NOT_FOUND _HRESULT_TYPEDEF_(0x8024F005) +#define WU_E_REPORTER_UNEXPECTED _HRESULT_TYPEDEF_(0x8024FFFF) +#define WU_E_OL_INVALID_SCANFILE _HRESULT_TYPEDEF_(0x80247001) +#define WU_E_OL_NEWCLIENT_REQUIRED _HRESULT_TYPEDEF_(0x80247002) +#define WU_E_INVALID_EVENT_PAYLOAD _HRESULT_TYPEDEF_(0x80247003) +#define WU_E_INVALID_EVENT_PAYLOADSIZE _HRESULT_TYPEDEF_(0x80247004) +#define WU_E_SERVICE_NOT_REGISTERED _HRESULT_TYPEDEF_(0x80247005) +#define WU_E_OL_UNEXPECTED _HRESULT_TYPEDEF_(0x80247FFF) +#define WU_E_METADATA_NOOP _HRESULT_TYPEDEF_(0x80247100) +#define WU_E_METADATA_CONFIG_INVALID_BINARY_ENCODING _HRESULT_TYPEDEF_(0x80247101) +#define WU_E_METADATA_FETCH_CONFIG _HRESULT_TYPEDEF_(0x80247102) +#define WU_E_METADATA_INVALID_PARAMETER _HRESULT_TYPEDEF_(0x80247104) +#define WU_E_METADATA_UNEXPECTED _HRESULT_TYPEDEF_(0x80247105) +#define WU_E_METADATA_NO_VERIFICATION_DATA _HRESULT_TYPEDEF_(0x80247106) +#define WU_E_METADATA_BAD_FRAGMENTSIGNING_CONFIG _HRESULT_TYPEDEF_(0x80247107) +#define WU_E_METADATA_FAILURE_PROCESSING_FRAGMENTSIGNING_CONFIG _HRESULT_TYPEDEF_(0x80247108) +#define WU_E_METADATA_XML_MISSING _HRESULT_TYPEDEF_(0x80247120) +#define WU_E_METADATA_XML_FRAGMENTSIGNING_MISSING _HRESULT_TYPEDEF_(0x80247121) +#define WU_E_METADATA_XML_MODE_MISSING _HRESULT_TYPEDEF_(0x80247122) +#define WU_E_METADATA_XML_MODE_INVALID _HRESULT_TYPEDEF_(0x80247123) +#define WU_E_METADATA_XML_VALIDITY_INVALID _HRESULT_TYPEDEF_(0x80247124) +#define WU_E_METADATA_XML_LEAFCERT_MISSING _HRESULT_TYPEDEF_(0x80247125) +#define WU_E_METADATA_XML_INTERMEDIATECERT_MISSING _HRESULT_TYPEDEF_(0x80247126) +#define WU_E_METADATA_XML_LEAFCERT_ID_MISSING _HRESULT_TYPEDEF_(0x80247127) +#define WU_E_METADATA_XML_BASE64CERDATA_MISSING _HRESULT_TYPEDEF_(0x80247128) +#define WU_E_METADATA_BAD_SIGNATURE _HRESULT_TYPEDEF_(0x80247140) +#define WU_E_METADATA_UNSUPPORTED_HASH_ALG _HRESULT_TYPEDEF_(0x80247141) +#define WU_E_METADATA_SIGNATURE_VERIFY_FAILED _HRESULT_TYPEDEF_(0x80247142) +#define WU_E_METADATATRUST_CERTIFICATECHAIN_VERIFICATION _HRESULT_TYPEDEF_(0x80247150) +#define WU_E_METADATATRUST_UNTRUSTED_CERTIFICATECHAIN _HRESULT_TYPEDEF_(0x80247151) +#define WU_E_METADATA_TIMESTAMP_TOKEN_MISSING _HRESULT_TYPEDEF_(0x80247160) +#define WU_E_METADATA_TIMESTAMP_TOKEN_VERIFICATION_FAILED _HRESULT_TYPEDEF_(0x80247161) +#define WU_E_METADATA_TIMESTAMP_TOKEN_UNTRUSTED _HRESULT_TYPEDEF_(0x80247162) +#define WU_E_METADATA_TIMESTAMP_TOKEN_VALIDITY_WINDOW _HRESULT_TYPEDEF_(0x80247163) +#define WU_E_METADATA_TIMESTAMP_TOKEN_SIGNATURE _HRESULT_TYPEDEF_(0x80247164) +#define WU_E_METADATA_TIMESTAMP_TOKEN_CERTCHAIN _HRESULT_TYPEDEF_(0x80247165) +#define WU_E_METADATA_TIMESTAMP_TOKEN_REFRESHONLINE _HRESULT_TYPEDEF_(0x80247166) +#define WU_E_METADATA_TIMESTAMP_TOKEN_ALL_BAD _HRESULT_TYPEDEF_(0x80247167) +#define WU_E_METADATA_TIMESTAMP_TOKEN_NODATA _HRESULT_TYPEDEF_(0x80247168) +#define WU_E_METADATA_TIMESTAMP_TOKEN_CACHELOOKUP _HRESULT_TYPEDEF_(0x80247169) +#define WU_E_METADATA_TIMESTAMP_TOKEN_VALIDITYWINDOW_UNEXPECTED _HRESULT_TYPEDEF_(0x8024717E) +#define WU_E_METADATA_TIMESTAMP_TOKEN_UNEXPECTED _HRESULT_TYPEDEF_(0x8024717F) +#define WU_E_METADATA_CERT_MISSING _HRESULT_TYPEDEF_(0x80247180) +#define WU_E_METADATA_LEAFCERT_BAD_TRANSPORT_ENCODING _HRESULT_TYPEDEF_(0x80247181) +#define WU_E_METADATA_INTCERT_BAD_TRANSPORT_ENCODING _HRESULT_TYPEDEF_(0x80247182) +#define WU_E_METADATA_CERT_UNTRUSTED _HRESULT_TYPEDEF_(0x80247183) +#define WU_E_WUTASK_INPROGRESS _HRESULT_TYPEDEF_(0x8024B001) +#define WU_E_WUTASK_STATUS_DISABLED _HRESULT_TYPEDEF_(0x8024B002) +#define WU_E_WUTASK_NOT_STARTED _HRESULT_TYPEDEF_(0x8024B003) +#define WU_E_WUTASK_RETRY _HRESULT_TYPEDEF_(0x8024B004) +#define WU_E_WUTASK_CANCELINSTALL_DISALLOWED _HRESULT_TYPEDEF_(0x8024B005) +#define WU_E_UNKNOWN_HARDWARECAPABILITY _HRESULT_TYPEDEF_(0x8024B101) +#define WU_E_BAD_XML_HARDWARECAPABILITY _HRESULT_TYPEDEF_(0x8024B102) +#define WU_E_WMI_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8024B103) +#define WU_E_UPDATE_MERGE_NOT_ALLOWED _HRESULT_TYPEDEF_(0x8024B104) +#define WU_E_SKIPPED_UPDATE_INSTALLATION _HRESULT_TYPEDEF_(0x8024B105) +#define WU_E_SLS_INVALID_REVISION _HRESULT_TYPEDEF_(0x8024B201) +#define WU_E_FILETRUST_DUALSIGNATURE_RSA _HRESULT_TYPEDEF_(0x8024B301) +#define WU_E_FILETRUST_DUALSIGNATURE_ECC _HRESULT_TYPEDEF_(0x8024B302) +#define WU_E_TRUST_SUBJECT_NOT_TRUSTED _HRESULT_TYPEDEF_(0x8024B303) +#define WU_E_TRUST_PROVIDER_UNKNOWN _HRESULT_TYPEDEF_(0x8024B304) + +#endif /* _WUERROR_ */ diff --git a/lib/libc/include/any-windows-any/xapo.h b/lib/libc/include/any-windows-any/xapo.h index eb53899633..5d1525be1a 100644 --- a/lib/libc/include/any-windows-any/xapo.h +++ b/lib/libc/include/any-windows-any/xapo.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xapo.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xapo.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xaudio2.h b/lib/libc/include/any-windows-any/xaudio2.h index 4c886257d3..b9b4a8e2bd 100644 --- a/lib/libc/include/any-windows-any/xaudio2.h +++ b/lib/libc/include/any-windows-any/xaudio2.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xaudio2.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xaudio2.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xaudio2fx.h b/lib/libc/include/any-windows-any/xaudio2fx.h index 281bf0430e..1aedecf452 100644 --- a/lib/libc/include/any-windows-any/xaudio2fx.h +++ b/lib/libc/include/any-windows-any/xaudio2fx.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xaudio2fx.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xaudio2fx.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xmllite.h b/lib/libc/include/any-windows-any/xmllite.h index bedfd969b9..0e71e21747 100644 --- a/lib/libc/include/any-windows-any/xmllite.h +++ b/lib/libc/include/any-windows-any/xmllite.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xmllite.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xmllite.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xpsdigitalsignature.h b/lib/libc/include/any-windows-any/xpsdigitalsignature.h index 05174a06c0..0dfce45698 100644 --- a/lib/libc/include/any-windows-any/xpsdigitalsignature.h +++ b/lib/libc/include/any-windows-any/xpsdigitalsignature.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xpsdigitalsignature.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xpsdigitalsignature.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xpsobjectmodel.h b/lib/libc/include/any-windows-any/xpsobjectmodel.h index ac9bd0cc50..537c45f361 100644 --- a/lib/libc/include/any-windows-any/xpsobjectmodel.h +++ b/lib/libc/include/any-windows-any/xpsobjectmodel.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xpsobjectmodel.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xpsobjectmodel.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xpsobjectmodel_1.h b/lib/libc/include/any-windows-any/xpsobjectmodel_1.h index fbad38055a..3eb842dca0 100644 --- a/lib/libc/include/any-windows-any/xpsobjectmodel_1.h +++ b/lib/libc/include/any-windows-any/xpsobjectmodel_1.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xpsobjectmodel_1.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xpsobjectmodel_1.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xpsprint.h b/lib/libc/include/any-windows-any/xpsprint.h index 79a7f3e866..84febdd3de 100644 --- a/lib/libc/include/any-windows-any/xpsprint.h +++ b/lib/libc/include/any-windows-any/xpsprint.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xpsprint.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xpsprint.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/include/any-windows-any/xpsrassvc.h b/lib/libc/include/any-windows-any/xpsrassvc.h index b4599b0968..ec6d1d6128 100644 --- a/lib/libc/include/any-windows-any/xpsrassvc.h +++ b/lib/libc/include/any-windows-any/xpsrassvc.h @@ -1,4 +1,4 @@ -/*** Autogenerated by WIDL 6.4 from include/xpsrassvc.idl - Do not edit ***/ +/*** Autogenerated by WIDL 7.0 from include/xpsrassvc.idl - Do not edit ***/ #ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ diff --git a/lib/libc/mingw/crt/charmax.c b/lib/libc/mingw/crt/charmax.c index 08aa5a1d3e..5106d1e0d1 100644 --- a/lib/libc/mingw/crt/charmax.c +++ b/lib/libc/mingw/crt/charmax.c @@ -10,7 +10,7 @@ __declspec(dllimport) int __lconv_init (void); -int mingw_initcharmax = 0; +int __mingw_initcharmax = 0; int _charmax = 255; diff --git a/lib/libc/mingw/crt/crtdll.c b/lib/libc/mingw/crt/crtdll.c index 51b8d35141..08cd5922a8 100644 --- a/lib/libc/mingw/crt/crtdll.c +++ b/lib/libc/mingw/crt/crtdll.c @@ -48,7 +48,7 @@ static int __proc_attached = 0; static _onexit_table_t atexit_table; -extern int mingw_app_type; +extern int __mingw_app_type; extern WINBOOL WINAPI DllMain (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved); @@ -145,7 +145,7 @@ int __mingw_init_ehandler (void); WINBOOL WINAPI DllMainCRTStartup (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) { - mingw_app_type = 0; + __mingw_app_type = 0; if (dwReason == DLL_PROCESS_ATTACH) { #if defined(__x86_64__) && !defined(__SEH__) diff --git a/lib/libc/mingw/crt/crtexe.c b/lib/libc/mingw/crt/crtexe.c index 646054320c..c6d43168ba 100644 --- a/lib/libc/mingw/crt/crtexe.c +++ b/lib/libc/mingw/crt/crtexe.c @@ -66,7 +66,7 @@ extern _CRTALLOC(".CRT$XCZ") _PVFV __xc_z[]; /* TLS initialization hook. */ extern const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback; -extern int mingw_app_type; +extern int __mingw_app_type; HINSTANCE __mingw_winmain_hInstance; _TCHAR *__mingw_winmain_lpCmdLine; @@ -99,8 +99,8 @@ static void duplicate_ppstrings (int ac, char ***av); static int __cdecl pre_c_init (void); static void __cdecl pre_cpp_init (void); -_CRTALLOC(".CRT$XIAA") _PIFV mingw_pcinit = pre_c_init; -_CRTALLOC(".CRT$XCAA") _PVFV mingw_pcppinit = pre_cpp_init; +_CRTALLOC(".CRT$XIAA") _PIFV __mingw_pcinit = pre_c_init; +_CRTALLOC(".CRT$XCAA") _PVFV __mingw_pcppinit = pre_cpp_init; extern int _MINGW_INSTALL_DEBUG_MATHERR; @@ -126,7 +126,7 @@ static int __cdecl pre_c_init (void) { managedapp = check_managed_app (); - if (mingw_app_type) + if (__mingw_app_type) __set_app_type(_GUI_APP); else __set_app_type (_CONSOLE_APP); @@ -172,7 +172,7 @@ int WinMainCRTStartup (void) #ifdef SEH_INLINE_ASM asm ("\t.l_startw:\n"); #endif - mingw_app_type = 1; + __mingw_app_type = 1; ret = __tmainCRTStartup (); #ifdef SEH_INLINE_ASM asm ("\tnop\n" @@ -198,7 +198,7 @@ int mainCRTStartup (void) #ifdef SEH_INLINE_ASM asm ("\t.l_start:\n"); #endif - mingw_app_type = 0; + __mingw_app_type = 0; ret = __tmainCRTStartup (); #ifdef SEH_INLINE_ASM asm ("\tnop\n" @@ -226,7 +226,7 @@ __tmainCRTStartup (void) WINBOOL inDoubleQuote = FALSE; memset (&StartupInfo, 0, sizeof (STARTUPINFO)); - if (mingw_app_type) + if (__mingw_app_type) GetStartupInfo (&StartupInfo); { void *lock_free = NULL; @@ -304,7 +304,7 @@ __tmainCRTStartup (void) __mingw_winmain_lpCmdLine = lpszCommandLine; } - if (mingw_app_type) + if (__mingw_app_type) { __mingw_winmain_nShowCmd = StartupInfo.dwFlags & STARTF_USESHOWWINDOW ? StartupInfo.wShowWindow : SW_SHOWDEFAULT; @@ -329,10 +329,9 @@ __tmainCRTStartup (void) return mainret; } -extern int mingw_initltsdrot_force; -extern int mingw_initltsdyn_force; -extern int mingw_initltssuo_force; -extern int mingw_initcharmax; +extern int __mingw_initltsdrot_force; +extern int __mingw_initltsdyn_force; +extern int __mingw_initltssuo_force; static int __cdecl check_managed_app (void) @@ -343,10 +342,9 @@ check_managed_app (void) PIMAGE_OPTIONAL_HEADER64 pNTHeader64; /* Force to be linked. */ - mingw_initltsdrot_force=1; - mingw_initltsdyn_force=1; - mingw_initltssuo_force=1; - mingw_initcharmax=1; + __mingw_initltsdrot_force=1; + __mingw_initltsdyn_force=1; + __mingw_initltssuo_force=1; pDOSHeader = (PIMAGE_DOS_HEADER) &__ImageBase; if (pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE) diff --git a/lib/libc/mingw/crt/mingw_helpers.c b/lib/libc/mingw/crt/mingw_helpers.c index f5ce286ef5..84413cdb7c 100644 --- a/lib/libc/mingw/crt/mingw_helpers.c +++ b/lib/libc/mingw/crt/mingw_helpers.c @@ -5,4 +5,4 @@ */ /* 0:console, 1:windows. */ -int mingw_app_type = 0; +int __mingw_app_type = 0; diff --git a/lib/libc/mingw/crt/pseudo-reloc.c b/lib/libc/mingw/crt/pseudo-reloc.c index c31da96810..d4589ca663 100644 --- a/lib/libc/mingw/crt/pseudo-reloc.c +++ b/lib/libc/mingw/crt/pseudo-reloc.c @@ -21,6 +21,7 @@ #include <stdarg.h> #include <memory.h> #include <internal.h> +#include <stdint.h> #if defined(__CYGWIN__) #include <wchar.h> @@ -47,7 +48,7 @@ extern char __RUNTIME_PSEUDO_RELOC_LIST__; extern char __RUNTIME_PSEUDO_RELOC_LIST_END__; -extern char __MINGW_LSYMBOL(_image_base__); +extern IMAGE_DOS_HEADER __MINGW_LSYMBOL(_image_base__); void _pei386_runtime_relocator (void); @@ -311,6 +312,7 @@ do_pseudo_reloc (void * start, void * end, void * base) ptrdiff_t reloc_target = (ptrdiff_t) ((char *)end - (char*)start); runtime_pseudo_reloc_v2 *v2_hdr = (runtime_pseudo_reloc_v2 *) start; runtime_pseudo_reloc_item_v2 *r; + unsigned int bits; /* A valid relocation list will contain at least one entry, and * one v1 data structure (the smallest one) requires two DWORDs. @@ -440,6 +442,23 @@ do_pseudo_reloc (void * start, void * end, void * base) reldata -= ((ptrdiff_t) base + r->sym); reldata += addr_imp; + bits = r->flags & 0xff; + if (bits < sizeof(ptrdiff_t)*8) + { + /* Check for overflows. We don't know if the target address is + * interpreted as a relative offset or as a truncated absolute + * address - to avoid false positives, allow offsets within the + * whole range of signed and unsigned N bits numbers, but error + * out for anything outside of that. Thus for relative offsets, + * this won't catch offsets that are only barely too large. */ + ptrdiff_t max_unsigned = (1LL << bits) - 1; + ptrdiff_t min_signed = UINTPTR_MAX << (bits - 1); + if (reldata > max_unsigned || reldata < min_signed) + __report_error ("%d bit pseudo relocation at %p out of range, " + "targeting %p, yielding the value %p.\n", + bits, reloc_target, addr_imp, reldata); + } + /* Write the new relocation value back to *reloc_target */ switch ((r->flags & 0xff)) { diff --git a/lib/libc/mingw/crt/tlssup.c b/lib/libc/mingw/crt/tlssup.c index 582fa8519e..47beb27fcc 100644 --- a/lib/libc/mingw/crt/tlssup.c +++ b/lib/libc/mingw/crt/tlssup.c @@ -170,6 +170,6 @@ __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved) _CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = (PIMAGE_TLS_CALLBACK) __dyn_tls_dtor; -int mingw_initltsdrot_force = 0; -int mingw_initltsdyn_force = 0; -int mingw_initltssuo_force = 0; +int __mingw_initltsdrot_force = 0; +int __mingw_initltsdyn_force = 0; +int __mingw_initltssuo_force = 0; diff --git a/lib/libc/mingw/gdtoa/strtopx.c b/lib/libc/mingw/gdtoa/strtopx.c index 64db719e04..51f5ef42de 100644 --- a/lib/libc/mingw/gdtoa/strtopx.c +++ b/lib/libc/mingw/gdtoa/strtopx.c @@ -127,4 +127,18 @@ long double __cdecl __mingw_strtold (const char * __restrict__ src, char ** __restrict__ endptr) __attribute__((alias("__strtold"))); +long double __cdecl +strtold (const char * __restrict__ src, char ** __restrict__ endptr) + __attribute__((alias("__strtold"))); + +#elif defined(__arm__) || defined(__aarch64__) || defined(_ARM_) || defined(_ARM64_) +/* For ARM, where long double == double, provide the long double function as + * an alias for __strtod. Do this in a separate object file from other + * functions, to avoid linker conflicts if object files import both 'strtold' + * from libucrt*.a and the object file providing '__strtod'. */ +long double __cdecl +strtold (const char * __restrict__ src, char ** __restrict__ endptr) +{ + return __mingw_strtod(src, endptr); +} #endif diff --git a/lib/libc/mingw/include/config.h b/lib/libc/mingw/include/config.h index 2c96636426..2e74ae1d19 100644 --- a/lib/libc/mingw/include/config.h +++ b/lib/libc/mingw/include/config.h @@ -1,18 +1,15 @@ /* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ -/* Whether the linker provides __CTOR_LIST__ */ -#define HAVE_CTOR_LIST 1 - /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 -/* Define to 1 if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 +/* Define to 1 if you have the <stdio.h> header file. */ +#define HAVE_STDIO_H 1 + /* Define to 1 if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 @@ -52,7 +49,9 @@ /* Define to the version of this package. */ #define PACKAGE_VERSION "4.0b" -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #define STDC_HEADERS 1 /* Version number of package */ diff --git a/lib/libc/mingw/include/msvcrt.h b/lib/libc/mingw/include/msvcrt.h index d5346254f0..c6f1052247 100644 --- a/lib/libc/mingw/include/msvcrt.h +++ b/lib/libc/mingw/include/msvcrt.h @@ -1,7 +1,7 @@ #include <winbase.h> -#ifndef __LIBMSVCRT__ -#error "This file should only be used in libmsvcrt.a" +#ifndef __LIBMSVCRT_OS__ +#error "This file should only be used in libmsvcrt-os.a" #endif static inline HANDLE __mingw_get_msvcrt_handle(void) diff --git a/lib/libc/mingw/lib64/bthprops.def b/lib/libc/mingw/lib-common/bthprops.def index e72ff87fca..e72ff87fca 100644 --- a/lib/libc/mingw/lib64/bthprops.def +++ b/lib/libc/mingw/lib-common/bthprops.def diff --git a/lib/libc/mingw/libarm32/fwpuclnt.def b/lib/libc/mingw/lib-common/fwpuclnt.def index 6f29ed7198..33497ddd55 100644 --- a/lib/libc/mingw/libarm32/fwpuclnt.def +++ b/lib/libc/mingw/lib-common/fwpuclnt.def @@ -1,7 +1,7 @@ ; ; Definition file of fwpuclnt.dll ; Automatic generated by gendef -; written by Kai Tietz 2008-2014 +; written by Kai Tietz 2008 ; LIBRARY "fwpuclnt.dll" EXPORTS @@ -9,12 +9,14 @@ FwpiExpandCriteria0 FwpiFreeCriteria0 FwpiVpnTriggerAddAppSids FwpiVpnTriggerAddFilePaths +FwpiVpnTriggerAddSecurityDescriptor FwpiVpnTriggerConfigureParameters FwpiVpnTriggerEventSubscribe0 FwpiVpnTriggerEventUnsubscribe0 FwpiVpnTriggerInitializeNrptTriggering FwpiVpnTriggerRemoveAppSids FwpiVpnTriggerRemoveFilePaths +FwpiVpnTriggerRemoveSecurityDescriptor FwpiVpnTriggerResetNrptTriggering FwpiVpnTriggerSetStateDisconnected FwpiVpnTriggerUninitializeNrptTriggering @@ -40,6 +42,8 @@ FwpmConnectionSetSecurityInfo0 FwpmConnectionSubscribe0 FwpmConnectionUnsubscribe0 FwpmDiagnoseNetFailure0 +FwpmDynamicKeywordSubscribe0 +FwpmDynamicKeywordUnsubscribe0 FwpmEngineClose0 FwpmEngineGetOption0 FwpmEngineGetSecurityInfo0 @@ -49,6 +53,7 @@ FwpmEngineSetSecurityInfo0 FwpmEventProviderCreate0 FwpmEventProviderDestroy0 FwpmEventProviderFireNetEvent0 +FwpmEventProviderFireNetEventEx0 FwpmEventProviderIsNetEventTypeEnabled0 FwpmFilterAdd0 FwpmFilterCreateEnumHandle0 @@ -66,9 +71,15 @@ FwpmFilterUnsubscribeChanges0 FwpmFreeMemory0 FwpmGetAppIdFromFileName0 FwpmGetSidFromOnlineId0 +FwpmIPsecS2STunnelAddConditions0 +FwpmIPsecS2STunnelAddInterfaceToCompartment0 +FwpmIPsecS2STunnelGetInterfaceForCompartment0 +FwpmIPsecS2STunnelRemoveConditions0 +FwpmIPsecS2STunnelRemoveInterfaceFromCompartment0 FwpmIPsecTunnelAdd0 FwpmIPsecTunnelAdd1 FwpmIPsecTunnelAdd2 +FwpmIPsecTunnelAdd3 FwpmIPsecTunnelAddConditions0 FwpmIPsecTunnelDeleteByKey0 FwpmLayerCreateEnumHandle0 @@ -79,12 +90,19 @@ FwpmLayerGetByKey0 FwpmLayerGetSecurityInfoByKey0 FwpmLayerSetSecurityInfoByKey0 FwpmNetEventCreateEnumHandle0 +FwpmNetEventCreateEnumHandleEx FwpmNetEventDestroyEnumHandle0 FwpmNetEventEnum0 FwpmNetEventEnum1 FwpmNetEventEnum2 +FwpmNetEventEnum3 +FwpmNetEventEnum4 +FwpmNetEventEnum5 FwpmNetEventSubscribe0 FwpmNetEventSubscribe1 +FwpmNetEventSubscribe2 +FwpmNetEventSubscribe3 +FwpmNetEventSubscribe4 FwpmNetEventSubscriptionsGet0 FwpmNetEventUnsubscribe0 FwpmNetEventsGetSecurityInfo0 @@ -95,6 +113,7 @@ FwpmProviderAdd0 FwpmProviderContextAdd0 FwpmProviderContextAdd1 FwpmProviderContextAdd2 +FwpmProviderContextAdd3 FwpmProviderContextCreateEnumHandle0 FwpmProviderContextDeleteById0 FwpmProviderContextDeleteByKey0 @@ -102,12 +121,15 @@ FwpmProviderContextDestroyEnumHandle0 FwpmProviderContextEnum0 FwpmProviderContextEnum1 FwpmProviderContextEnum2 +FwpmProviderContextEnum3 FwpmProviderContextGetById0 FwpmProviderContextGetById1 FwpmProviderContextGetById2 +FwpmProviderContextGetById3 FwpmProviderContextGetByKey0 FwpmProviderContextGetByKey1 FwpmProviderContextGetByKey2 +FwpmProviderContextGetByKey3 FwpmProviderContextGetSecurityInfoByKey0 FwpmProviderContextSetSecurityInfoByKey0 FwpmProviderContextSubscribeChanges0 @@ -149,6 +171,10 @@ FwpmvSwitchEventUnsubscribe0 FwpmvSwitchEventsGetSecurityInfo0 FwpmvSwitchEventsSetSecurityInfo0 FwppConnectionGetByIPsecInfo +FwppConnectionGetByS2STunnelId +FwppConnectionGetS2STunnelId +FwppGetMD5HashBytes +FwppIPsecSaContextCreate FwpsAleEndpointCreateEnumHandle0 FwpsAleEndpointDestroyEnumHandle0 FwpsAleEndpointEnum0 diff --git a/lib/libc/mingw/lib64/glu32.def b/lib/libc/mingw/lib-common/glu32.def index 690469d141..690469d141 100644 --- a/lib/libc/mingw/lib64/glu32.def +++ b/lib/libc/mingw/lib-common/glu32.def diff --git a/lib/libc/mingw/lib-common/msvcrt.def.in b/lib/libc/mingw/lib-common/msvcrt.def.in index 0ea9d388fb..942c4c4ebe 100644 --- a/lib/libc/mingw/lib-common/msvcrt.def.in +++ b/lib/libc/mingw/lib-common/msvcrt.def.in @@ -930,7 +930,7 @@ _scalb F_X64(_scalbf) _scanf_l _scanf_s_l -_scprintf +F_NON_I386(_scprintf) ; i386 _scprintf replaced by emu _scprintf_l _scprintf_p_l _scwprintf @@ -1111,7 +1111,7 @@ _vprintf_l _vprintf_p _vprintf_p_l _vprintf_s_l -_vscprintf +F_NON_I386(_vscprintf) ; i386 _vscprintf replaced by emu _vscprintf_l _vscprintf_p_l _vscwprintf diff --git a/lib/libc/mingw/lib-common/mswsock.def b/lib/libc/mingw/lib-common/mswsock.def index 889f2f1f77..b557a10e71 100644 --- a/lib/libc/mingw/lib-common/mswsock.def +++ b/lib/libc/mingw/lib-common/mswsock.def @@ -22,6 +22,8 @@ MigrateWinsockConfiguration MigrateWinsockConfigurationEx NPLoadNameSpaces NSPStartup +; MSDN says ProcessSocketNotifications is from ws2_32.dll, not mswsock.dll +; ProcessSocketNotifications SetServiceA SetServiceW StartWsdpService diff --git a/lib/libc/mingw/lib-common/ntdll.def.in b/lib/libc/mingw/lib-common/ntdll.def.in index 0ad5922a08..8d91bb5470 100644 --- a/lib/libc/mingw/lib-common/ntdll.def.in +++ b/lib/libc/mingw/lib-common/ntdll.def.in @@ -256,6 +256,7 @@ NtAccessCheckByTypeAndAuditAlarm NtAccessCheckByTypeResultList NtAccessCheckByTypeResultListAndAuditAlarm NtAccessCheckByTypeResultListAndAuditAlarmByHandle +NtAcquireCrossVmMutant NtAcquireProcessActivityReference NtAddAtom NtAddAtomEx @@ -310,6 +311,8 @@ NtCancelSynchronousIoFile NtCancelTimer NtCancelTimer2 NtCancelWaitCompletionPacket +NtChangeProcessState +NtChangeThreadState NtClearEvent NtClose NtCloseObjectAuditAlarm @@ -325,8 +328,10 @@ NtCompleteConnectPort NtCompressKey NtConnectPort NtContinue +NtContinueEx NtConvertBetweenAuxiliaryCounterAndPerformanceCounter NtCreateCrossVmEvent +NtCreateCrossVmMutant NtCreateDebugObject NtCreateDirectoryObject NtCreateDirectoryObjectEx @@ -337,6 +342,7 @@ NtCreateEventPair NtCreateFile NtCreateIRTimer NtCreateIoCompletion +NtCreateIoRing NtCreateJobObject NtCreateJobSet NtCreateKey @@ -352,6 +358,7 @@ NtCreatePort NtCreatePrivateNamespace NtCreateProcess NtCreateProcessEx +NtCreateProcessStateChange NtCreateProfile NtCreateProfileEx NtCreateRegistryTransaction @@ -362,6 +369,7 @@ NtCreateSemaphore NtCreateSymbolicLinkObject NtCreateThread NtCreateThreadEx +NtCreateThreadStateChange NtCreateTimer NtCreateTimer2 NtCreateToken @@ -387,6 +395,7 @@ NtDeleteValueKey NtDeleteWnfStateData NtDeleteWnfStateName NtDeviceIoControlFile +NtDirectGraphicsCall NtDisableLastKnownGood NtDisplayString NtDrawText @@ -543,6 +552,7 @@ NtQueryInformationWorkerFactory NtQueryInstallUILanguage NtQueryIntervalProfile NtQueryIoCompletion +NtQueryIoRingCapabilities NtQueryKey NtQueryLicenseValue NtQueryMultipleValueKey @@ -573,6 +583,7 @@ NtQueryWnfStateData NtQueryWnfStateNameInformation NtQueueApcThread NtQueueApcThreadEx +NtQueueApcThreadEx2 NtRaiseException NtRaiseHardError NtReadFile @@ -580,6 +591,7 @@ NtReadFileScatter NtReadOnlyEnlistment NtReadRequestData NtReadVirtualMemory +NtReadVirtualMemoryEx NtRecoverEnlistment NtRecoverResourceManager NtRecoverTransactionManager @@ -639,6 +651,7 @@ NtSetIRTimer NtSetInformationDebugObject NtSetInformationEnlistment NtSetInformationFile +NtSetInformationIoRing NtSetInformationJobObject NtSetInformationKey NtSetInformationObject @@ -679,6 +692,7 @@ NtSignalAndWaitForSingleObject NtSinglePhaseReject NtStartProfile NtStopProfile +NtSubmitIoRing NtSubscribeWnfStateChange NtSuspendProcess NtSuspendThread @@ -836,6 +850,7 @@ RtlCanonicalizeDomainName RtlCapabilityCheck RtlCapabilityCheckForSingleSessionSku RtlCaptureContext +RtlCaptureContext2 RtlCaptureStackBackTrace RtlCharToInteger RtlCheckBootStatusIntegrity @@ -864,6 +879,8 @@ RtlCommitDebugInfo RtlCommitMemoryStream RtlCompactHeap RtlCompareAltitudes +RtlCompareExchangePointerMapping +RtlCompareExchangePropertyStore RtlCompareMemory RtlCompareMemoryUlong RtlCompareString @@ -877,6 +894,7 @@ RtlComputePrivatizedDllName_U RtlConnectToSm RtlConsoleMultiByteToUnicodeN RtlConstructCrossVmEventPath +RtlConstructCrossVmMutexPath RtlContractHashTable RtlConvertDeviceFamilyInfoToString RtlConvertExclusiveToShared @@ -957,6 +975,7 @@ RtlDecompressBuffer RtlDecompressBufferEx RtlDecompressFragment RtlDefaultNpAcl +RtlDelayExecution RtlDelete RtlDeleteAce RtlDeleteAtomFromAtomTable @@ -1071,6 +1090,7 @@ RtlFindActivationContextSectionString RtlFindCharInUnicodeString RtlFindClearBits RtlFindClearBitsAndSet +RtlFindClearBitsAndSetEx F_X64(RtlFindClearBitsEx) RtlFindClearRuns RtlFindClosestEncodableLength @@ -1149,6 +1169,7 @@ RtlGetFullPathName_UEx RtlGetFullPathName_UstrEx RtlGetFunctionTableListHead RtlGetGroupSecurityDescriptor +RtlGetImageFileMachines RtlGetIntegerAtom RtlGetInterruptTimePrecise RtlGetLastNtStatus @@ -1172,6 +1193,7 @@ RtlGetPersistedStateLocation RtlGetProcessHeaps RtlGetProcessPreferredUILanguages RtlGetProductInfo +RtlGetReturnAddressHijackTarget RtlGetSaclSecurityDescriptor RtlGetSearchPath RtlGetSecurityDescriptorRMControl @@ -1180,7 +1202,9 @@ RtlGetSetBootStatusData RtlGetSuiteMask RtlGetSystemBootStatus RtlGetSystemBootStatusEx +RtlGetSystemGlobalData RtlGetSystemPreferredUILanguages +RtlGetSystemTimeAndBias RtlGetSystemTimePrecise RtlGetThreadErrorMode RtlGetThreadLangIdByIndex @@ -1282,6 +1306,7 @@ RtlIpv6StringToAddressExA RtlIpv6StringToAddressExW RtlIpv6StringToAddressW RtlIsActivationContextActive +RtlIsApiSetImplemented RtlIsCapabilitySid RtlIsCloudFilesPlaceholder RtlIsCriticalSectionLocked @@ -1290,7 +1315,9 @@ RtlIsCurrentProcess RtlIsCurrentThread RtlIsCurrentThreadAttachExempt RtlIsDosDeviceName_U +RtlIsEcCode RtlIsElevatedRid +RtlIsEnclaveFeaturePresent RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl RtlIsMultiSessionSku @@ -1364,6 +1391,7 @@ RtlNewSecurityObjectWithMultipleInheritance RtlNormalizeProcessParams F_X86_ANY(RtlNormalizeSecurityDescriptor) RtlNormalizeString +RtlNotifyFeatureUsage RtlNtPathNameToDosPathName RtlNtStatusToDosError RtlNtStatusToDosErrorNoTeb @@ -1380,6 +1408,7 @@ RtlNumberOfSetBitsUlongPtr RtlOemStringToUnicodeSize RtlOemStringToUnicodeString RtlOemToUnicodeN +RtlOpenCrossProcessEmulatorWorkConnection RtlOpenCurrentUser RtlOsDeploymentState RtlOwnerAcesPresent @@ -1394,6 +1423,7 @@ RtlProtectHeap RtlPublishWnfStateData RtlPushFrame RtlQueryActivationContextApplicationSettings +RtlQueryAllFeatureConfigurations RtlQueryAtomInAtomTable RtlQueryCriticalSectionOwner RtlQueryDepthSList @@ -1401,6 +1431,9 @@ RtlQueryDynamicTimeZoneInformation RtlQueryElevationFlags RtlQueryEnvironmentVariable RtlQueryEnvironmentVariable_U +RtlQueryFeatureConfiguration +RtlQueryFeatureConfigurationChangeStamp +RtlQueryFeatureUsageNotificationSubscriptions RtlQueryHeapInformation RtlQueryImageMitigationPolicy RtlQueryInformationAcl @@ -1413,11 +1446,13 @@ RtlQueryPackageIdentity RtlQueryPackageIdentityEx RtlQueryPerformanceCounter RtlQueryPerformanceFrequency +RtlQueryPointerMapping RtlQueryProcessBackTraceInformation RtlQueryProcessDebugInformation RtlQueryProcessHeapInformation RtlQueryProcessLockInformation RtlQueryProcessPlaceholderCompatibilityMode +RtlQueryPropertyStore RtlQueryProtectedPolicy RtlQueryRegistryValueWithFallback RtlQueryRegistryValues @@ -1439,6 +1474,7 @@ RtlQueueApcWow64Thread RtlQueueWorkItem RtlRaiseCustomSystemEventTrigger RtlRaiseException +RtlRaiseNoncontinuableException RtlRaiseStatus RtlRandom RtlRandomEx @@ -1450,6 +1486,7 @@ RtlReadOutOfProcessMemoryStream RtlReadThreadProfilingData RtlRealPredecessor RtlRealSuccessor +RtlRegisterFeatureConfigurationChangeNotification RtlRegisterForWnfMetaNotification RtlRegisterSecureMemoryCacheCallback RtlRegisterThreadWithCsrss @@ -1465,7 +1502,9 @@ RtlReleaseSRWLockExclusive RtlReleaseSRWLockShared RtlRemoteCall RtlRemoveEntryHashTable +RtlRemovePointerMapping RtlRemovePrivileges +RtlRemovePropertyStore RtlRemoveVectoredContinueHandler RtlRemoveVectoredExceptionHandler RtlReplaceSidInSd @@ -1515,6 +1554,7 @@ RtlSetEnvironmentStrings RtlSetEnvironmentVar RtlSetEnvironmentVariable RtlSetExtendedFeaturesMask +RtlSetFeatureConfigurations RtlSetGroupSecurityDescriptor RtlSetHeapInformation RtlSetImageMitigationPolicy @@ -1571,6 +1611,7 @@ RtlStringFromGUIDEx RtlStronglyEnumerateEntryHashTable RtlSubAuthorityCountSid RtlSubAuthoritySid +RtlSubscribeForFeatureUsageNotification RtlSubscribeWnfStateChangeNotification RtlSubtreePredecessor RtlSubtreeSuccessor @@ -1626,6 +1667,8 @@ RtlUnlockMemoryBlockLookaside RtlUnlockMemoryStreamRegion RtlUnlockMemoryZone RtlUnlockModuleSection +RtlUnregisterFeatureConfigurationChangeNotification +RtlUnsubscribeFromFeatureUsageNotifications RtlUnsubscribeWnfNotificationWaitForCompletion RtlUnsubscribeWnfNotificationWithCompletionCallback RtlUnsubscribeWnfStateChangeNotification @@ -1659,6 +1702,7 @@ RtlValidateProcessHeaps RtlValidateUnicodeString RtlVerifyVersionInfo RtlVirtualUnwind +RtlVirtualUnwind2 RtlWaitForWnfMetaNotification RtlWaitOnAddress RtlWakeAddressAll @@ -1674,6 +1718,8 @@ RtlWerpReportException RtlWnfCompareChangeStamp RtlWnfDllUnloadCallback RtlWow64CallFunction64 +RtlWow64ChangeProcessState +RtlWow64ChangeThreadState RtlWow64EnableFsRedirection RtlWow64EnableFsRedirectionEx F64(RtlWow64GetCpuAreaInfo) @@ -1870,6 +1916,7 @@ ZwAccessCheckByTypeAndAuditAlarm ZwAccessCheckByTypeResultList ZwAccessCheckByTypeResultListAndAuditAlarm ZwAccessCheckByTypeResultListAndAuditAlarmByHandle +ZwAcquireCrossVmMutant ZwAcquireProcessActivityReference ZwAddAtom ZwAddAtomEx @@ -1924,6 +1971,8 @@ ZwCancelSynchronousIoFile ZwCancelTimer ZwCancelTimer2 ZwCancelWaitCompletionPacket +ZwChangeProcessState +ZwChangeThreadState ZwClearEvent ZwClose ZwCloseObjectAuditAlarm @@ -1939,8 +1988,10 @@ ZwCompleteConnectPort ZwCompressKey ZwConnectPort ZwContinue +ZwContinueEx ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter ZwCreateCrossVmEvent +ZwCreateCrossVmMutant ZwCreateDebugObject ZwCreateDirectoryObject ZwCreateDirectoryObjectEx @@ -1951,6 +2002,7 @@ ZwCreateEventPair ZwCreateFile ZwCreateIRTimer ZwCreateIoCompletion +ZwCreateIoRing ZwCreateJobObject ZwCreateJobSet ZwCreateKey @@ -1966,6 +2018,7 @@ ZwCreatePort ZwCreatePrivateNamespace ZwCreateProcess ZwCreateProcessEx +ZwCreateProcessStateChange ZwCreateProfile ZwCreateProfileEx ZwCreateRegistryTransaction @@ -1976,6 +2029,7 @@ ZwCreateSemaphore ZwCreateSymbolicLinkObject ZwCreateThread ZwCreateThreadEx +ZwCreateThreadStateChange ZwCreateTimer ZwCreateTimer2 ZwCreateToken @@ -2001,6 +2055,7 @@ ZwDeleteValueKey ZwDeleteWnfStateData ZwDeleteWnfStateName ZwDeviceIoControlFile +ZwDirectGraphicsCall ZwDisableLastKnownGood ZwDisplayString ZwDrawText @@ -2156,6 +2211,7 @@ ZwQueryInformationWorkerFactory ZwQueryInstallUILanguage ZwQueryIntervalProfile ZwQueryIoCompletion +ZwQueryIoRingCapabilities ZwQueryKey ZwQueryLicenseValue ZwQueryMultipleValueKey @@ -2186,6 +2242,7 @@ ZwQueryWnfStateData ZwQueryWnfStateNameInformation ZwQueueApcThread ZwQueueApcThreadEx +ZwQueueApcThreadEx2 ZwRaiseException ZwRaiseHardError ZwReadFile @@ -2193,6 +2250,7 @@ ZwReadFileScatter ZwReadOnlyEnlistment ZwReadRequestData ZwReadVirtualMemory +ZwReadVirtualMemoryEx ZwRecoverEnlistment ZwRecoverResourceManager ZwRecoverTransactionManager @@ -2252,6 +2310,7 @@ ZwSetIRTimer ZwSetInformationDebugObject ZwSetInformationEnlistment ZwSetInformationFile +ZwSetInformationIoRing ZwSetInformationJobObject ZwSetInformationKey ZwSetInformationObject @@ -2292,6 +2351,7 @@ ZwSignalAndWaitForSingleObject ZwSinglePhaseReject ZwStartProfile ZwStopProfile +ZwSubmitIoRing ZwSubscribeWnfStateChange ZwSuspendProcess ZwSuspendThread diff --git a/lib/libc/mingw/lib64/opengl32.def b/lib/libc/mingw/lib-common/opengl32.def index 2111eb047c..2111eb047c 100644 --- a/lib/libc/mingw/lib64/opengl32.def +++ b/lib/libc/mingw/lib-common/opengl32.def diff --git a/lib/libc/mingw/lib-common/query.def b/lib/libc/mingw/lib-common/query.def new file mode 100644 index 0000000000..008ccc90fc --- /dev/null +++ b/lib/libc/mingw/lib-common/query.def @@ -0,0 +1,17 @@ +; +; Definition file of query.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "query.dll" +EXPORTS +LoadBinaryFilter +LoadTextFilter +BindIFilterFromStorage +BindIFilterFromStream +DllCanUnloadNow +DllGetClassObject +DllRegisterServer +DllUnregisterServer +LoadIFilter +LoadIFilterEx diff --git a/lib/libc/mingw/lib-common/tbs.def b/lib/libc/mingw/lib-common/tbs.def index a4093d9890..59b9dfe043 100644 --- a/lib/libc/mingw/lib-common/tbs.def +++ b/lib/libc/mingw/lib-common/tbs.def @@ -11,10 +11,12 @@ GetDeviceID GetDeviceIDString GetDeviceIDWithTimeout Tbsi_Context_Create +Tbsi_Create_Windows_Key Tbsi_FilterLog Tbsi_GetDeviceInfo Tbsi_Get_OwnerAuth Tbsi_Get_TCG_Log +Tbsi_Get_TCG_Log_Ex Tbsi_Physical_Presence_Command Tbsi_Revoke_Attestation Tbsi_ShaHash @@ -22,4 +24,5 @@ Tbsip_Cancel_Commands Tbsip_Context_Close Tbsip_Submit_Command Tbsip_Submit_Command_NonBlocking +Tbsip_TestInterruptInformation Tbsip_TestMorBit diff --git a/lib/libc/mingw/lib-common/ws2_32.def.in b/lib/libc/mingw/lib-common/ws2_32.def.in index 4789b77d87..b49c4b87d3 100644 --- a/lib/libc/mingw/lib-common/ws2_32.def.in +++ b/lib/libc/mingw/lib-common/ws2_32.def.in @@ -38,6 +38,7 @@ GetHostNameW GetNameInfoW InetNtopW InetPtonW +ProcessSocketNotifications SetAddrInfoExA SetAddrInfoExW WPUCompleteOverlappedRequest diff --git a/lib/libc/mingw/lib32/authz.def b/lib/libc/mingw/lib32/authz.def index 262a2da26d..764bd9dd80 100644 --- a/lib/libc/mingw/lib32/authz.def +++ b/lib/libc/mingw/lib32/authz.def @@ -8,26 +8,38 @@ EXPORTS AuthzAccessCheck@36 AuthzAddSidsToContext@24 AuthzCachedAccessCheck@20 +AuthzComputeEffectivePermission@60 AuthzEnumerateSecurityEventSources@16 AuthzEvaluateSacl@24 AuthzFreeAuditEvent@4 +AuthzFreeCentralAccessPolicyCache@0 AuthzFreeContext@4 AuthzFreeHandle@4 AuthzFreeResourceManager@4 AuthzGetInformationFromContext@20 +AuthzInitializeCompoundContext@12 AuthzInitializeContextFromAuthzContext@28 AuthzInitializeContextFromSid@32 AuthzInitializeContextFromToken@32 -AuthzInitializeObjectAccessAuditEvent -AuthzInitializeObjectAccessAuditEvent2 +AuthzInitializeObjectAccessAuditEvent@0 +AuthzInitializeObjectAccessAuditEvent2@0 +AuthzInitializeRemoteAccessCheck@4 +AuthzInitializeRemoteResourceManager@8 AuthzInitializeResourceManager@24 +AuthzInitializeResourceManagerEx@12 AuthzInstallSecurityEventSource@8 +AuthzModifyClaims@16 AuthzModifySecurityAttributes@12 +AuthzModifySids@16 AuthzOpenObjectAudit@32 +AuthzRegisterCapChangeNotification@12 AuthzRegisterSecurityEventSource@12 -AuthzReportSecurityEvent +AuthzReportSecurityEvent@0 AuthzReportSecurityEventFromParams@20 +AuthzSetAppContainerInformation@16 +AuthzShutdownRemoteAccessCheck@0 AuthzUninstallSecurityEventSource@8 +AuthzUnregisterCapChangeNotification@4 AuthzUnregisterSecurityEventSource@8 AuthziAccessCheckEx@40 AuthziAllocateAuditParams@8 @@ -38,9 +50,9 @@ AuthziFreeAuditQueue@4 AuthziGenerateAdminAlertAuditW@16 AuthziInitializeAuditEvent@44 AuthziInitializeAuditEventType@20 -AuthziInitializeAuditParams +AuthziInitializeAuditParams@0 AuthziInitializeAuditParamsFromArray@20 -AuthziInitializeAuditParamsWithRM +AuthziInitializeAuditParamsWithRM@0 AuthziInitializeAuditQueue@20 AuthziInitializeContextFromSid@32 AuthziLogAuditEvent@12 @@ -48,6 +60,18 @@ AuthziModifyAuditEvent2@32 AuthziModifyAuditEvent@28 AuthziModifyAuditEventType@20 AuthziModifyAuditQueue@24 +AuthziQueryAuditPolicy@0 +AuthziSetAuditPolicy@0 AuthziModifySecurityAttributes@12 AuthziQuerySecurityAttributes@24 -AuthziSourceAudit +AuthziSourceAudit@0 +FreeClaimDefinitions@8 +FreeClaimDictionary@4 +GenerateNewCAPID@4 +GetCentralAccessPoliciesByCapID@28 +GetCentralAccessPoliciesByDN@20 +GetClaimDefinitions@16 +GetClaimDomainInfo@12 +GetDefaultCAPESecurityDescriptor@4 +InitializeClaimDictionary@12 +RefreshClaimDictionary@4 diff --git a/lib/libc/mingw/lib32/fwpuclnt.def b/lib/libc/mingw/lib32/fwpuclnt.def index 03c006c5b4..fd33788529 100644 --- a/lib/libc/mingw/lib32/fwpuclnt.def +++ b/lib/libc/mingw/lib32/fwpuclnt.def @@ -5,6 +5,21 @@ ; LIBRARY "fwpuclnt.dll" EXPORTS +FwpiExpandCriteria0@20 +FwpiFreeCriteria0@8 +FwpiVpnTriggerAddAppSids@12 +FwpiVpnTriggerAddFilePaths@12 +FwpiVpnTriggerAddSecurityDescriptor@8 +FwpiVpnTriggerConfigureParameters@8 +FwpiVpnTriggerEventSubscribe0@20 +FwpiVpnTriggerEventUnsubscribe0@8 +FwpiVpnTriggerInitializeNrptTriggering@8 +FwpiVpnTriggerRemoveAppSids@4 +FwpiVpnTriggerRemoveFilePaths@4 +FwpiVpnTriggerRemoveSecurityDescriptor@4 +FwpiVpnTriggerResetNrptTriggering@4 +FwpiVpnTriggerSetStateDisconnected@8 +FwpiVpnTriggerUninitializeNrptTriggering@4 FwpmCalloutAdd0@16 FwpmCalloutCreateEnumHandle0@12 FwpmCalloutDeleteById0@8 @@ -18,7 +33,17 @@ FwpmCalloutSetSecurityInfoByKey0@28 FwpmCalloutSubscribeChanges0@20 FwpmCalloutSubscriptionsGet0@12 FwpmCalloutUnsubscribeChanges0@8 +FwpmConnectionCreateEnumHandle0@12 +FwpmConnectionDestroyEnumHandle0@8 +FwpmConnectionEnum0@20 +FwpmConnectionGetById0@16 +FwpmConnectionGetSecurityInfo0@28 +FwpmConnectionSetSecurityInfo0@24 +FwpmConnectionSubscribe0@20 +FwpmConnectionUnsubscribe0@8 FwpmDiagnoseNetFailure0@12 +FwpmDynamicKeywordSubscribe0@16 +FwpmDynamicKeywordUnsubscribe0@4 FwpmEngineClose0@4 FwpmEngineGetOption0@12 FwpmEngineGetSecurityInfo0@28 @@ -27,7 +52,8 @@ FwpmEngineSetOption0@12 FwpmEngineSetSecurityInfo0@24 FwpmEventProviderCreate0@8 FwpmEventProviderDestroy0@4 -FwpmEventProviderFireNetEvent0@12 +FwpmEventProviderFireNetEvent0@16 +FwpmEventProviderFireNetEventEx0@20 FwpmEventProviderIsNetEventTypeEnabled0@12 FwpmFilterAdd0@16 FwpmFilterCreateEnumHandle0@12 @@ -44,7 +70,17 @@ FwpmFilterSubscriptionsGet0@12 FwpmFilterUnsubscribeChanges0@8 FwpmFreeMemory0@4 FwpmGetAppIdFromFileName0@8 +FwpmGetSidFromOnlineId0@8 +FwpmIPsecS2STunnelAddConditions0@28 +FwpmIPsecS2STunnelAddInterfaceToCompartment0@12 +FwpmIPsecS2STunnelGetInterfaceForCompartment0@12 +FwpmIPsecS2STunnelRemoveConditions0@28 +FwpmIPsecS2STunnelRemoveInterfaceFromCompartment0@8 FwpmIPsecTunnelAdd0@28 +FwpmIPsecTunnelAdd1@32 +FwpmIPsecTunnelAdd2@32 +FwpmIPsecTunnelAdd3@32 +FwpmIPsecTunnelAddConditions0@20 FwpmIPsecTunnelDeleteByKey0@8 FwpmLayerCreateEnumHandle0@12 FwpmLayerDestroyEnumHandle0@8 @@ -54,19 +90,46 @@ FwpmLayerGetByKey0@12 FwpmLayerGetSecurityInfoByKey0@32 FwpmLayerSetSecurityInfoByKey0@28 FwpmNetEventCreateEnumHandle0@12 +FwpmNetEventCreateEnumHandleEx@16 FwpmNetEventDestroyEnumHandle0@8 FwpmNetEventEnum0@20 +FwpmNetEventEnum1@20 +FwpmNetEventEnum2@20 +FwpmNetEventEnum3@20 +FwpmNetEventEnum4@20 +FwpmNetEventEnum5@20 +FwpmNetEventSubscribe0@20 +FwpmNetEventSubscribe1@20 +FwpmNetEventSubscribe2@20 +FwpmNetEventSubscribe3@20 +FwpmNetEventSubscribe4@20 +FwpmNetEventSubscriptionsGet0@12 +FwpmNetEventUnsubscribe0@8 FwpmNetEventsGetSecurityInfo0@28 +FwpmNetEventsLost0@8 FwpmNetEventsSetSecurityInfo0@24 +FwpmProcessNameResolutionEvent0@16 FwpmProviderAdd0@12 FwpmProviderContextAdd0@16 +FwpmProviderContextAdd1@16 +FwpmProviderContextAdd2@16 +FwpmProviderContextAdd3@16 FwpmProviderContextCreateEnumHandle0@12 FwpmProviderContextDeleteById0@12 FwpmProviderContextDeleteByKey0@8 FwpmProviderContextDestroyEnumHandle0@8 FwpmProviderContextEnum0@20 +FwpmProviderContextEnum1@20 +FwpmProviderContextEnum2@20 +FwpmProviderContextEnum3@20 FwpmProviderContextGetById0@16 +FwpmProviderContextGetById1@16 +FwpmProviderContextGetById2@16 +FwpmProviderContextGetById3@16 FwpmProviderContextGetByKey0@12 +FwpmProviderContextGetByKey1@12 +FwpmProviderContextGetByKey2@12 +FwpmProviderContextGetByKey3@12 FwpmProviderContextGetSecurityInfoByKey0@32 FwpmProviderContextSetSecurityInfoByKey0@28 FwpmProviderContextSubscribeChanges0@20 @@ -96,51 +159,127 @@ FwpmSubLayerSetSecurityInfoByKey0@28 FwpmSubLayerSubscribeChanges0@20 FwpmSubLayerSubscriptionsGet0@12 FwpmSubLayerUnsubscribeChanges0@8 +FwpmSystemPortsGet0@8 +FwpmSystemPortsSubscribe0@20 +FwpmSystemPortsUnsubscribe0@8 FwpmTraceRestoreDefaults0@0 FwpmTransactionAbort0@4 FwpmTransactionBegin0@8 FwpmTransactionCommit0@4 +FwpmvSwitchEventSubscribe0@20 +FwpmvSwitchEventUnsubscribe0@8 +FwpmvSwitchEventsGetSecurityInfo0@28 +FwpmvSwitchEventsSetSecurityInfo0@24 +FwppConnectionGetByIPsecInfo@20 +FwppConnectionGetByS2STunnelId@16 +FwppConnectionGetS2STunnelId@16 +FwppGetMD5HashBytes@16 +FwppIPsecSaContextCreate@36 +FwpsAleEndpointCreateEnumHandle0@12 +FwpsAleEndpointDestroyEnumHandle0@8 +FwpsAleEndpointEnum0@20 +FwpsAleEndpointGetById0@16 +FwpsAleEndpointGetSecurityInfo0@28 +FwpsAleEndpointSetSecurityInfo0@24 FwpsAleExplicitCredentialsQuery0@16 +FwpsAleGetPortStatus0@12 FwpsClassifyUser0@28 FwpsFreeMemory0@4 FwpsGetInProcReplicaOffset0@4 FwpsLayerCreateInProcReplica0@8 FwpsLayerReleaseInProcReplica0@8 FwpsOpenToken0@20 +FwpsQueryIPsecDosFWUsed0@8 +FwpsQueryIPsecOffloadDone0@8 +GetUnifiedTraceHandle@4 +IPsecDospGetSecurityInfo0@28 +IPsecDospGetStatistics0@8 +IPsecDospSetSecurityInfo0@24 +IPsecDospStateCreateEnumHandle0@12 +IPsecDospStateDestroyEnumHandle0@8 +IPsecDospStateEnum0@20 +IPsecGetKeyFromDictator0@16 IPsecGetStatistics0@8 +IPsecGetStatistics1@8 +IPsecKeyDictationCheck0@16 +IPsecKeyManagerAddAndRegister0@16 +IPsecKeyManagerGetSecurityInfoByKey0@32 +IPsecKeyManagerSetSecurityInfoByKey0@28 +IPsecKeyManagerUnregisterAndDelete0@8 +IPsecKeyManagersGet0@12 IPsecKeyModuleAdd0@12 -IPsecKeyModuleCompleteAcquire0@16 IPsecKeyModuleDelete0@8 +IPsecKeyModuleUpdateAcquire0@20 +IPsecKeyNotification0@12 IPsecSaContextAddInbound0@16 +IPsecSaContextAddInbound1@16 +IPsecSaContextAddInboundAndTrackConnection@28 IPsecSaContextAddOutbound0@16 +IPsecSaContextAddOutbound1@16 +IPsecSaContextAddOutboundAndTrackConnection@28 IPsecSaContextCreate0@16 +IPsecSaContextCreate1@20 IPsecSaContextCreateEnumHandle0@12 IPsecSaContextDeleteById0@12 IPsecSaContextDestroyEnumHandle0@8 IPsecSaContextEnum0@20 +IPsecSaContextEnum1@20 IPsecSaContextExpire0@12 IPsecSaContextGetById0@16 +IPsecSaContextGetById1@16 IPsecSaContextGetSpi0@20 +IPsecSaContextGetSpi1@20 +IPsecSaContextSetSpi0@20 +IPsecSaContextSubscribe0@20 +IPsecSaContextSubscriptionsGet0@12 +IPsecSaContextUnsubscribe0@8 +IPsecSaContextUpdate0@16 IPsecSaCreateEnumHandle0@12 IPsecSaDbGetSecurityInfo0@28 IPsecSaDbSetSecurityInfo0@24 IPsecSaDestroyEnumHandle0@8 IPsecSaEnum0@20 +IPsecSaEnum1@20 IPsecSaInitiateAsync0@16 IkeextGetConfigParameters0@4 IkeextGetStatistics0@8 +IkeextGetStatistics1@8 IkeextSaCreateEnumHandle0@12 IkeextSaDbGetSecurityInfo0@28 IkeextSaDbSetSecurityInfo0@24 IkeextSaDeleteById0@12 IkeextSaDestroyEnumHandle0@8 IkeextSaEnum0@20 +IkeextSaEnum1@20 +IkeextSaEnum2@20 IkeextSaGetById0@16 +IkeextSaGetById1@20 +IkeextSaGetById2@20 +IkeextSaUpdateAdditionalAddressesByTunnelId0@24 +IkeextSaUpdatePreferredAddressesByTunnelId0@24 IkeextSetConfigParameters0@4 +NamespaceCallout@12 +WFPRIODequeueCompletion@12 WSADeleteSocketPeerTargetName@20 WSAImpersonateSocketPeer@12 WSAQuerySocketSecurity@28 WSARevertImpersonation@0 WSASetSocketPeerTargetName@20 WSASetSocketSecurity@20 -wfpdiagW@16 +WfpCloseDPConfigureHandle@4 ; forwards to NtClose in ntdll.dll +WfpConfigureDPSecurityDescriptor@12 +WfpCreateDPConfigureHandle@4 +WfpRIOChannelClose@4 ; forwards to NtClose in ntdll.dll +WfpRIOCleanupRequestQueue@8 +WfpRIOCloseCompletionQueue@8 +WfpRIOCreateChannel@12 +WfpRIOCreateCompletionQueue@16 +WfpRIOCreateRequestQueue@36 +WfpRIODeregisterBuffer@12 +WfpRIOIndicateActivityThreshold@8 +WfpRIONotify@8 +WfpRIOReceive@28 +WfpRIORegisterBuffer@16 +WfpRIOResume@4 +WfpRIOSend@28 +WfpRIOSuspend@4 diff --git a/lib/libc/mingw/lib32/ksuser.def b/lib/libc/mingw/lib32/ksuser.def index 63a6916186..fe97a06a22 100644 --- a/lib/libc/mingw/lib32/ksuser.def +++ b/lib/libc/mingw/lib32/ksuser.def @@ -1,6 +1,15 @@ -LIBRARY ksuser.dll +; +; Definition file of ksuser.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "ksuser.dll" EXPORTS +KsCreateAllocator2@12 KsCreateAllocator@12 +KsCreateClock2@12 KsCreateClock@12 +KsCreatePin2@16 KsCreatePin@16 +KsCreateTopologyNode2@16 KsCreateTopologyNode@16 diff --git a/lib/libc/mingw/lib32/mswsock.def b/lib/libc/mingw/lib32/mswsock.def index 3e74f87a11..90c20dcd79 100644 --- a/lib/libc/mingw/lib32/mswsock.def +++ b/lib/libc/mingw/lib32/mswsock.def @@ -1,4 +1,9 @@ -LIBRARY MSWSOCK.DLL +; +; Definition file of MSWSOCK.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "MSWSOCK.dll" EXPORTS AcceptEx@32 EnumProtocolsA@12 @@ -10,14 +15,53 @@ GetNameByTypeA@12 GetNameByTypeW@12 GetServiceA@28 GetServiceW@28 +GetSocketErrorMessageW@4 GetTypeByNameA@8 GetTypeByNameW@8 MigrateWinsockConfiguration@12 +MigrateWinsockConfigurationEx@20 NPLoadNameSpaces@12 +NSPStartup@8 +; MSDN says ProcessSocketNotifications is from ws2_32.dll, not mswsock.dll +; ProcessSocketNotifications@28 SetServiceA@24 SetServiceW@24 +StartWsdpService@0 +StopWsdpService@0 +Tcpip4_WSHAddressToString@20 +Tcpip4_WSHEnumProtocols@16 +Tcpip4_WSHGetBroadcastSockaddr@12 +Tcpip4_WSHGetProviderGuid@8 +Tcpip4_WSHGetSockaddrType@12 +Tcpip4_WSHGetSocketInformation@32 +Tcpip4_WSHGetWSAProtocolInfo@12 +Tcpip4_WSHGetWildcardSockaddr@12 +Tcpip4_WSHGetWinsockMapping@8 +Tcpip4_WSHIoctl@52 +Tcpip4_WSHJoinLeaf@52 +Tcpip4_WSHNotify@20 +Tcpip4_WSHOpenSocket2@32 +Tcpip4_WSHOpenSocket@24 +Tcpip4_WSHSetSocketInformation@32 +Tcpip4_WSHStringToAddress@20 +Tcpip6_WSHAddressToString@20 +Tcpip6_WSHEnumProtocols@16 +Tcpip6_WSHGetProviderGuid@8 +Tcpip6_WSHGetSockaddrType@12 +Tcpip6_WSHGetSocketInformation@32 +Tcpip6_WSHGetWSAProtocolInfo@12 +Tcpip6_WSHGetWildcardSockaddr@12 +Tcpip6_WSHGetWinsockMapping@8 +Tcpip6_WSHIoctl@52 +Tcpip6_WSHJoinLeaf@52 +Tcpip6_WSHNotify@20 +Tcpip6_WSHOpenSocket2@32 +Tcpip6_WSHOpenSocket@24 +Tcpip6_WSHSetSocketInformation@32 +Tcpip6_WSHStringToAddress@20 TransmitFile@28 WSARecvEx@16 +WSPStartup@76 dn_expand@20 getnetbyname@4 inet_network@4 diff --git a/lib/libc/mingw/lib32/ntdll.def b/lib/libc/mingw/lib32/ntdll.def index 48b32ff699..5f6ff3a02d 100644 --- a/lib/libc/mingw/lib32/ntdll.def +++ b/lib/libc/mingw/lib32/ntdll.def @@ -229,6 +229,7 @@ NtAccessCheckByTypeAndAuditAlarm@64 NtAccessCheckByTypeResultList@44 NtAccessCheckByTypeResultListAndAuditAlarm@64 NtAccessCheckByTypeResultListAndAuditAlarmByHandle@68 +NtAcquireCrossVmMutant@8 NtAcquireProcessActivityReference@12 NtAcquireCMFViewOwnership@12 NtAddAtom@12 @@ -284,6 +285,8 @@ NtCancelSynchronousIoFile@12 NtCancelTimer2@8 NtCancelTimer@8 NtCancelWaitCompletionPacket@8 +NtChangeProcessState@24 +NtChangeThreadState@24 NtClearEvent@4 NtClose@4 NtCloseObjectAuditAlarm@12 @@ -299,8 +302,10 @@ NtCompleteConnectPort@4 NtCompressKey@4 NtConnectPort@32 NtContinue@8 +NtContinueEx@8 NtConvertBetweenAuxiliaryCounterAndPerformanceCounter@16 NtCreateCrossVmEvent@24 +NtCreateCrossVmMutant@24 NtCreateDebugObject@16 NtCreateDirectoryObject@12 NtCreateDirectoryObjectEx@20 @@ -311,6 +316,7 @@ NtCreateEventPair@12 NtCreateFile@44 NtCreateIRTimer@12 NtCreateIoCompletion@16 +NtCreateIoRing@20 NtCreateJobObject@12 NtCreateJobSet@12 NtCreateKey@28 @@ -326,6 +332,7 @@ NtCreatePort@20 NtCreatePrivateNamespace@16 NtCreateProcess@32 NtCreateProcessEx@36 +NtCreateProcessStateChange@20 NtCreateProfile@36 NtCreateProfileEx@40 NtCreateRegistryTransaction@16 @@ -336,6 +343,7 @@ NtCreateSemaphore@20 NtCreateSymbolicLinkObject@16 NtCreateThread@32 NtCreateThreadEx@44 +NtCreateThreadStateChange@20 NtCreateTimer2@20 NtCreateTimer@16 NtCreateToken@52 @@ -362,6 +370,7 @@ NtDeleteValueKey@8 NtDeleteWnfStateData@8 NtDeleteWnfStateName@4 NtDeviceIoControlFile@40 +NtDirectGraphicsCall@20 NtDisableLastKnownGood@0 NtDisplayString@4 NtDrawText@4 @@ -420,6 +429,7 @@ NtListenPort@8 NtLoadDriver@4 NtLoadEnclaveData@36 NtLoadKey2@12 +NtLoadKey3@32 NtLoadKey@8 NtLoadKeyEx@32 NtLockFile@40 @@ -517,6 +527,7 @@ NtQueryInformationWorkerFactory@20 NtQueryInstallUILanguage@4 NtQueryIntervalProfile@8 NtQueryIoCompletion@20 +NtQueryIoRingCapabilities@8 NtQueryKey@20 NtQueryLicenseValue@20 NtQueryMultipleValueKey@24 @@ -546,6 +557,7 @@ NtQueryVolumeInformationFile@20 NtQueryWnfStateData@24 NtQueryWnfStateNameInformation@20 NtQueueApcThread@20 +NtQueueApcThreadEx2@28 NtQueueApcThreadEx@24 NtRaiseException@12 NtRaiseHardError@24 @@ -554,6 +566,7 @@ NtReadFileScatter@36 NtReadOnlyEnlistment@8 NtReadRequestData@24 NtReadVirtualMemory@20 +NtReadVirtualMemoryEx@24 NtRecoverEnlistment@8 NtRecoverResourceManager@4 NtRecoverTransactionManager@4 @@ -614,6 +627,7 @@ NtSetIRTimer@8 NtSetInformationDebugObject@20 NtSetInformationEnlistment@16 NtSetInformationFile@20 +NtSetInformationIoRing@16 NtSetInformationJobObject@16 NtSetInformationKey@16 NtSetInformationObject@16 @@ -654,6 +668,7 @@ NtSignalAndWaitForSingleObject@16 NtSinglePhaseReject@8 NtStartProfile@4 NtStopProfile@4 +NtSubmitIoRing@16 NtSubscribeWnfStateChange@16 NtSuspendProcess@4 NtSuspendThread@8 @@ -832,6 +847,8 @@ RtlCommitDebugInfo@8 RtlCommitMemoryStream@8 RtlCompactHeap@8 RtlCompareAltitudes@8 +RtlCompareExchangePointerMapping@16 +RtlCompareExchangePropertyStore@16 RtlCompareMemory@12 RtlCompareMemoryUlong@12 RtlCompareString@12 @@ -844,6 +861,7 @@ RtlComputePrivatizedDllName_U@12 RtlConnectToSm@16 RtlConsoleMultiByteToUnicodeN@24 RtlConstructCrossVmEventPath@12 +RtlConstructCrossVmMutexPath@12 RtlContractHashTable@4 RtlConvertDeviceFamilyInfoToString@16 RtlConvertExclusiveToShared@4 @@ -919,6 +937,7 @@ RtlDecompressBuffer@24 RtlDecompressBufferEx@28 RtlDecompressFragment@32 RtlDefaultNpAcl@4 +RtlDelayExecution@8 RtlDelete@4 RtlDeleteAce@8 RtlDeleteAtomFromAtomTable@8 @@ -1099,6 +1118,7 @@ RtlGetFullPathName_U@16 RtlGetFullPathName_UEx@20 RtlGetFullPathName_UstrEx@32 RtlGetGroupSecurityDescriptor@12 +RtlGetImageFileMachines@8 RtlGetIntegerAtom@8 RtlGetInterruptTimePrecise@4 RtlGetLastNtStatus@0 @@ -1122,6 +1142,7 @@ RtlGetPersistedStateLocation@28 RtlGetProcessHeaps@8 RtlGetProcessPreferredUILanguages@16 RtlGetProductInfo@20 +RtlGetReturnAddressHijackTarget@0 RtlGetSaclSecurityDescriptor@16 RtlGetSearchPath@4 RtlGetSecurityDescriptorRMControl@8 @@ -1130,7 +1151,9 @@ RtlGetSetBootStatusData@24 RtlGetSuiteMask@0 RtlGetSystemBootStatus@16 RtlGetSystemBootStatusEx@12 +RtlGetSystemGlobalData@12 RtlGetSystemPreferredUILanguages@20 +RtlGetSystemTimeAndBias@12 RtlGetSystemTimePrecise@0 RtlGetThreadErrorMode@0 RtlGetThreadLangIdByIndex@16 @@ -1232,6 +1255,7 @@ RtlIpv6StringToAddressExA@16 RtlIpv6StringToAddressExW@16 RtlIpv6StringToAddressW@12 RtlIsActivationContextActive@4 +RtlIsApiSetImplemented@4 RtlIsCapabilitySid@4 RtlIsCloudFilesPlaceholder@8 RtlIsCriticalSectionLocked@4 @@ -1241,6 +1265,7 @@ RtlIsCurrentThread@4 RtlIsCurrentThreadAttachExempt@0 RtlIsDosDeviceName_U@4 RtlIsElevatedRid@4 +RtlIsEnclaveFeaturePresent@4 RtlIsGenericTableEmpty@4 RtlIsGenericTableEmptyAvl@4 RtlIsMultiSessionSku@0 @@ -1321,6 +1346,7 @@ RtlNewSecurityObjectWithMultipleInheritance@36 RtlNormalizeProcessParams@4 RtlNormalizeSecurityDescriptor@20 RtlNormalizeString@20 +RtlNotifyFeatureUsage@4 RtlNtPathNameToDosPathName@16 RtlNtStatusToDosError@4 RtlNtStatusToDosErrorNoTeb@4 @@ -1347,6 +1373,7 @@ RtlProtectHeap@8 RtlPublishWnfStateData@24 RtlPushFrame@4 RtlQueryActivationContextApplicationSettings@28 +RtlQueryAllFeatureConfigurations@16 RtlQueryAtomInAtomTable@24 RtlQueryCriticalSectionOwner@4 RtlQueryDepthSList@4 @@ -1354,6 +1381,9 @@ RtlQueryDynamicTimeZoneInformation@4 RtlQueryElevationFlags@4 RtlQueryEnvironmentVariable@24 RtlQueryEnvironmentVariable_U@12 +RtlQueryFeatureConfiguration@16 +RtlQueryFeatureConfigurationChangeStamp@0 +RtlQueryFeatureUsageNotificationSubscriptions@8 RtlQueryHeapInformation@20 RtlQueryImageMitigationPolicy@20 RtlQueryInformationAcl@16 @@ -1366,11 +1396,13 @@ RtlQueryPackageIdentity@24 RtlQueryPackageIdentityEx@28 RtlQueryPerformanceCounter@4 RtlQueryPerformanceFrequency@4 +RtlQueryPointerMapping@8 RtlQueryProcessBackTraceInformation@4 RtlQueryProcessDebugInformation@12 RtlQueryProcessHeapInformation@4 RtlQueryProcessLockInformation@4 RtlQueryProcessPlaceholderCompatibilityMode@0 +RtlQueryPropertyStore@8 RtlQueryProtectedPolicy@8 RtlQueryRegistryValueWithFallback@28 RtlQueryRegistryValues@20 @@ -1402,6 +1434,7 @@ RtlReadOutOfProcessMemoryStream@16 RtlReadThreadProfilingData@12 RtlRealPredecessor@4 RtlRealSuccessor@4 +RtlRegisterFeatureConfigurationChangeNotification@16 RtlRegisterForWnfMetaNotification@24 RtlRegisterSecureMemoryCacheCallback@4 RtlRegisterThreadWithCsrss@0 @@ -1417,7 +1450,9 @@ RtlReleaseSRWLockExclusive@4 RtlReleaseSRWLockShared@4 RtlRemoteCall@28 RtlRemoveEntryHashTable@12 +RtlRemovePointerMapping@8 RtlRemovePrivileges@12 +RtlRemovePropertyStore@8 RtlRemoveVectoredContinueHandler@4 RtlRemoveVectoredExceptionHandler@4 RtlReplaceSidInSd@16 @@ -1431,6 +1466,7 @@ RtlResetMemoryZone@4 RtlResetNtUserPfn@0 RtlResetRtlTranslations@4 RtlRestoreBootStatusDefaults@4 +RtlRestoreContext@8 RtlRestoreLastWin32Error@4 RtlRestoreSystemBootStatusDefaults@0 RtlRestoreThreadPreferredUILanguages@4 @@ -1463,6 +1499,7 @@ RtlSetEnvironmentStrings@8 RtlSetEnvironmentVar@20 RtlSetEnvironmentVariable@12 RtlSetExtendedFeaturesMask@12 +RtlSetFeatureConfigurations@16 RtlSetGroupSecurityDescriptor@12 RtlSetHeapInformation@16 RtlSetImageMitigationPolicy@20 @@ -1518,6 +1555,7 @@ RtlStringFromGUIDEx@12 RtlStronglyEnumerateEntryHashTable@8 RtlSubAuthorityCountSid@4 RtlSubAuthoritySid@8 +RtlSubscribeForFeatureUsageNotification@8 RtlSubscribeWnfStateChangeNotification@36 RtlSubtreePredecessor@4 RtlSubtreeSuccessor@4 @@ -1569,6 +1607,8 @@ RtlUnlockMemoryBlockLookaside@4 RtlUnlockMemoryStreamRegion@24 RtlUnlockMemoryZone@4 RtlUnlockModuleSection@4 +RtlUnregisterFeatureConfigurationChangeNotification@4 +RtlUnsubscribeFromFeatureUsageNotifications@8 RtlUnsubscribeWnfNotificationWaitForCompletion@4 RtlUnsubscribeWnfNotificationWithCompletionCallback@12 RtlUnsubscribeWnfStateChangeNotification@4 @@ -1789,6 +1829,7 @@ ZwAccessCheckByTypeAndAuditAlarm@64 ZwAccessCheckByTypeResultList@44 ZwAccessCheckByTypeResultListAndAuditAlarm@64 ZwAccessCheckByTypeResultListAndAuditAlarmByHandle@68 +ZwAcquireCrossVmMutant@8 ZwAcquireCMFViewOwnership@12 ZwAcquireProcessActivityReference@12 ZwAddAtom@12 @@ -1844,6 +1885,8 @@ ZwCancelSynchronousIoFile@12 ZwCancelTimer2@8 ZwCancelTimer@8 ZwCancelWaitCompletionPacket@8 +ZwChangeProcessState@24 +ZwChangeThreadState@24 ZwClearEvent@4 ZwClose@4 ZwCloseObjectAuditAlarm@12 @@ -1859,8 +1902,10 @@ ZwCompleteConnectPort@4 ZwCompressKey@4 ZwConnectPort@32 ZwContinue@8 +ZwContinueEx@8 ZwConvertBetweenAuxiliaryCounterAndPerformanceCounter@16 ZwCreateCrossVmEvent@24 +ZwCreateCrossVmMutant@24 ZwCreateDebugObject@16 ZwCreateDirectoryObject@12 ZwCreateDirectoryObjectEx@20 @@ -1871,6 +1916,7 @@ ZwCreateEventPair@12 ZwCreateFile@44 ZwCreateIRTimer@12 ZwCreateIoCompletion@16 +ZwCreateIoRing@20 ZwCreateJobObject@12 ZwCreateJobSet@12 ZwCreateKey@28 @@ -1886,6 +1932,7 @@ ZwCreatePort@20 ZwCreatePrivateNamespace@16 ZwCreateProcess@32 ZwCreateProcessEx@36 +ZwCreateProcessStateChange@20 ZwCreateProfile@36 ZwCreateProfileEx@40 ZwCreateRegistryTransaction@16 @@ -1896,6 +1943,7 @@ ZwCreateSemaphore@20 ZwCreateSymbolicLinkObject@16 ZwCreateThread@32 ZwCreateThreadEx@44 +ZwCreateThreadStateChange@20 ZwCreateTimer2@20 ZwCreateTimer@16 ZwCreateToken@52 @@ -1921,6 +1969,7 @@ ZwDeleteValueKey@8 ZwDeleteWnfStateData@8 ZwDeleteWnfStateName@4 ZwDeviceIoControlFile@40 +ZwDirectGraphicsCall@20 ZwDisableLastKnownGood@0 ZwDisplayString@4 ZwDrawText@4 @@ -1979,6 +2028,7 @@ ZwListenPort@8 ZwLoadDriver@4 ZwLoadEnclaveData@36 ZwLoadKey2@12 +ZwLoadKey3@32 ZwLoadKey@8 ZwLoadKeyEx@32 ZwLockFile@40 @@ -2076,6 +2126,7 @@ ZwQueryInformationWorkerFactory@20 ZwQueryInstallUILanguage@4 ZwQueryIntervalProfile@8 ZwQueryIoCompletion@20 +ZwQueryIoRingCapabilities@8 ZwQueryKey@20 ZwQueryLicenseValue@20 ZwQueryMultipleValueKey@24 @@ -2105,6 +2156,7 @@ ZwQueryVolumeInformationFile@20 ZwQueryWnfStateData@24 ZwQueryWnfStateNameInformation@20 ZwQueueApcThread@20 +ZwQueueApcThreadEx2@28 ZwQueueApcThreadEx@24 ZwRaiseException@12 ZwRaiseHardError@24 @@ -2113,6 +2165,7 @@ ZwReadFileScatter@36 ZwReadOnlyEnlistment@8 ZwReadRequestData@24 ZwReadVirtualMemory@20 +ZwReadVirtualMemoryEx@24 ZwRecoverEnlistment@8 ZwRecoverResourceManager@4 ZwRecoverTransactionManager@4 @@ -2173,6 +2226,7 @@ ZwSetIRTimer@8 ZwSetInformationDebugObject@20 ZwSetInformationEnlistment@16 ZwSetInformationFile@20 +ZwSetInformationIoRing@16 ZwSetInformationJobObject@16 ZwSetInformationKey@16 ZwSetInformationObject@16 @@ -2213,6 +2267,7 @@ ZwSignalAndWaitForSingleObject@16 ZwSinglePhaseReject@8 ZwStartProfile@4 ZwStopProfile@4 +ZwSubmitIoRing@16 ZwSubscribeWnfStateChange@16 ZwSuspendProcess@4 ZwSuspendThread@8 diff --git a/lib/libc/mingw/lib32/query.def b/lib/libc/mingw/lib32/query.def new file mode 100644 index 0000000000..3c90963440 --- /dev/null +++ b/lib/libc/mingw/lib32/query.def @@ -0,0 +1,17 @@ +; +; Definition file of query.dll +; Automatic generated by gendef +; written by Kai Tietz 2008 +; +LIBRARY "query.dll" +EXPORTS +LoadBinaryFilter@8 +LoadTextFilter@8 +BindIFilterFromStorage@12 +BindIFilterFromStream@12 +DllCanUnloadNow +DllGetClassObject@12 +DllRegisterServer +DllUnregisterServer +LoadIFilter@12 +LoadIFilterEx@16 diff --git a/lib/libc/mingw/lib32/tbs.def b/lib/libc/mingw/lib32/tbs.def index 13bdf3831f..1ea9f8bb27 100644 --- a/lib/libc/mingw/lib32/tbs.def +++ b/lib/libc/mingw/lib32/tbs.def @@ -5,9 +5,24 @@ ; LIBRARY "tbs.dll" EXPORTS +Tbsi_Create_Attestation_From_Log@36 +Tbsi_Get_TCG_Logs@24 +GetDeviceID@16 +GetDeviceIDString@16 +GetDeviceIDWithTimeout@20 Tbsi_Context_Create@8 +Tbsi_Create_Windows_Key@4 +Tbsi_FilterLog@24 +Tbsi_GetDeviceInfo@8 +Tbsi_Get_OwnerAuth@16 Tbsi_Get_TCG_Log@12 +Tbsi_Get_TCG_Log_Ex@12 Tbsi_Physical_Presence_Command@20 +Tbsi_Revoke_Attestation@0 +Tbsi_ShaHash@32 Tbsip_Cancel_Commands@4 Tbsip_Context_Close@4 Tbsip_Submit_Command@28 +Tbsip_Submit_Command_NonBlocking@28 +Tbsip_TestInterruptInformation@4 +Tbsip_TestMorBit@4 diff --git a/lib/libc/mingw/lib32/user32.def b/lib/libc/mingw/lib32/user32.def index c20d16835a..cd0cd1841f 100644 --- a/lib/libc/mingw/lib32/user32.def +++ b/lib/libc/mingw/lib32/user32.def @@ -1,12 +1,13 @@ LIBRARY USER32.dll EXPORTS -;ord_1500@16 @1500 -;ord_1501@4 @1501 -;ord_1502@12 @1502 +GetPointerFrameArrivalTimes@12 +Wow64Transition DATA ActivateKeyboardLayout@8 AddClipboardFormatListener@4 +AddVisualIdentifier@8 AdjustWindowRect@12 AdjustWindowRectEx@16 +AdjustWindowRectExForDpi@20 AlignRects@16 AllowForegroundActivation@0 AllowSetForegroundWindow@4 @@ -14,6 +15,7 @@ AnimateWindow@12 AnyPopup@0 AppendMenuA@16 AppendMenuW@16 +AreDpiAwarenessContextsEqual@8 ArrangeIconicWindows@4 AttachThreadInput@12 BeginDeferWindowPos@4 @@ -46,19 +48,13 @@ ChangeDisplaySettingsW@8 ChangeMenuA@20 ChangeMenuW@20 ChangeWindowMessageFilter@8 +DwmGetDxRgn@12 ChangeWindowMessageFilterEx@16 CharLowerA@4 CharLowerBuffA@8 CharLowerBuffW@8 CharLowerW@4 CharNextA@4 -;ord_1550@12 @1550 -;ord_1551@8 @1551 -;ord_1552@8 @1552 -;ord_1553@12 @1553 -;ord_1554@8 @1554 -;ord_1555@16 @1555 -;ord_1556@4 @1556 CharNextExA@12 CharNextW@4 CharPrevA@8 @@ -73,6 +69,7 @@ CharUpperBuffA@8 CharUpperBuffW@8 CharUpperW@4 CheckDesktopByThreadId@4 +CheckBannedOneCoreTransformApi@4 CheckDBCSEnabledExt@0 CheckDlgButton@12 CheckMenuItem@12 @@ -123,10 +120,12 @@ CreateMDIWindowA@40 CreateMDIWindowW@40 CreateMenu@0 CreatePopupMenu@0 +CreateSyntheticPointerDevice@12 CreateSystemThreads@16 ; ReactOS has the @8 variant CreateWindowExA@48 CreateWindowExW@48 CreateWindowInBand@52 +CreateWindowInBandEx@56 CreateWindowIndirect@4 CreateWindowStationA@16 CreateWindowStationW@16 @@ -185,6 +184,7 @@ DestroyDCompositionHwndTarget@8 DestroyIcon@4 DestroyMenu@4 DestroyReasons@4 +DestroySyntheticPointerDevice@4 DestroyWindow@4 DeviceEventWorker@24 ; No documentation whatsoever, ReactOS has a stub with @20 - https://www.reactos.org/archives/public/ros-diffs/2011-February/040308.html DialogBoxIndirectParamA@20 @@ -231,14 +231,18 @@ DrawTextW@20 DwmGetDxSharedSurface@24 DwmGetRemoteSessionOcclusionEvent@0 DwmGetRemoteSessionOcclusionState@0 +DwmKernelShutdown@0 +DwmKernelStartup@0 DwmLockScreenUpdates@4 DwmStartRedirection@8 ; Mentioned on http://habrahabr.ru/post/145174/ , enables GDI virtualization (for security purposes) DwmStopRedirection@0 DwmValidateWindow@8 -EditWndProc@16 +EditWndProc@20 EmptyClipboard@0 EnableMenuItem@12 EnableMouseInPointer@4 +EnableNonClientDpiScaling@4 +EnableOneCoreTransformMode@0 EnableScrollBar@12 EnableSessionForMMCSS@4 EnableWindow@8 @@ -293,6 +297,7 @@ GetAppCompatFlags2@4 GetAppCompatFlags@8 ; ReactOS has @4 version http://doxygen.reactos.org/d9/d71/undocuser_8h_a9b76cdc68c523a061c86a40367049ed2.html GetAsyncKeyState@4 GetAutoRotationState@4 +GetAwarenessFromDpiAwarenessContext@4 GetCIMSSM@4 GetCapture@0 GetCaretBlinkTime@0 @@ -326,6 +331,8 @@ GetDCEx@12 GetDesktopID@8 GetDesktopWindow@0 GetDialogBaseUnits@0 +GetDialogControlDpiChangeBehavior@4 +GetDialogDpiChangeBehavior@4 GetDisplayAutoRotationPreferences@4 GetDisplayConfigBufferSizes@12 GetDlgCtrlID@4 @@ -334,7 +341,12 @@ GetDlgItemInt@16 GetDlgItemTextA@16 GetDlgItemTextW@16 GetDoubleClickTime@0 +GetDpiAwarenessContextForProcess@4 GetDpiForMonitorInternal@16 +GetDpiForSystem@0 +GetDpiForWindow@4 +GetDpiFromDpiAwarenessContext@4 +GetExtendedPointerDeviceProperty@8 GetFocus@0 GetForegroundWindow@0 GetGUIThreadInfo@8 @@ -365,6 +377,7 @@ GetLayeredWindowAttributes@16 GetListBoxInfo@4 GetMagnificationDesktopColorEffect@4 GetMagnificationDesktopMagnification@12 +GetMagnificationDesktopSamplingMode@4 GetMagnificationLensCtxInformation@16 GetMenu@4 GetMenuBarInfo@16 @@ -396,6 +409,8 @@ GetPhysicalCursorPos@4 GetPointerCursorId@8 GetPointerDevice@8 GetPointerDeviceCursors@12 +GetPointerDeviceInputSpace@8 +GetPointerDeviceOrientation@8 GetPointerDeviceProperties@12 GetPointerDeviceRects@12 GetPointerDevices@8 @@ -403,6 +418,7 @@ GetPointerFrameInfo@12 GetPointerFrameInfoHistory@16 GetPointerFramePenInfo@12 GetPointerFramePenInfoHistory@16 +GetPointerFrameTimes@12 GetPointerFrameTouchInfo@12 GetPointerFrameTouchInfoHistory@16 GetPointerInfo@8 @@ -429,22 +445,26 @@ GetRawInputDeviceList@12 GetRawPointerDeviceData@20 GetReasonTitleFromReasonCode@12 GetRegisteredRawInputDevices@12 -GetQueueStatus@4 GetScrollBarInfo@12 GetScrollInfo@12 GetScrollPos@8 GetScrollRange@16 GetSendMessageReceiver@4 +GetShellChangeNotifyWindow@0 GetShellWindow@0 GetSubMenu@8 GetSysColor@4 GetSysColorBrush@4 +GetSystemDpiForProcess@4 GetSystemMenu@8 GetSystemMetrics@4 +GetSystemMetricsForDpi@8 GetTabbedTextExtentA@20 GetTabbedTextExtentW@20 GetTaskmanWindow@0 GetThreadDesktop@4 +GetThreadDpiAwarenessContext@0 +GetThreadDpiHostingBehavior@0 GetTitleBarInfo@8 GetTopLevelWindow@4 GetTopWindow@4 @@ -464,6 +484,8 @@ GetWindowCompositionInfo@8 GetWindowContextHelpId@4 GetWindowDC@4 GetWindowDisplayAffinity@8 +GetWindowDpiAwarenessContext@4 +GetWindowDpiHostingBehavior@4 GetWindowFeedbackSetting@20 GetWindowInfo@8 GetWindowLongA@8 @@ -473,6 +495,7 @@ GetWindowModuleFileName@12 GetWindowModuleFileNameA@12 GetWindowModuleFileNameW@12 GetWindowPlacement@8 +GetWindowProcessHandle@8 GetWindowRect@8 GetWindowRgn@8 GetWindowRgnBox@8 @@ -499,25 +522,34 @@ ImpersonateDdeClientWindow@8 InSendMessage@0 InSendMessageEx@4 InflateRect@12 +InheritWindowMonitor@8 +InitDManipHook@0 +InitializeGenericHidInjection@8 +InitializeInputDeviceInjection@28 InitializeLpkHooks@4 InitializeWin32EntryTable@4 +InitializePointerDeviceInjection@20 +InitializePointerDeviceInjectionEx@24 InitializeTouchInjection@8 +InjectDeviceInput@12 +InjectGenericHidInput@12 +InjectKeyboardInput@8 +InjectMouseInput@8 +InjectPointerInput@12 +InjectSyntheticPointerInput@12 InjectTouchInput@8 +InputSpaceRegionFromPoint@20 InsertMenuA@20 InsertMenuItemA@16 InsertMenuItemW@16 InsertMenuW@20 InternalGetWindowIcon@8 -;ord_2001@4 @2001 -;ord_2002@4 @2002 InternalGetWindowText@12 IntersectRect@12 -;ord_2005@4 @2005 InvalidateRect@12 InvalidateRgn@12 InvertRect@8 IsCharAlphaA@4 -;ord_2010@16 @2010 IsCharAlphaNumericA@4 IsCharAlphaNumericW@4 IsCharAlphaW@4 @@ -539,16 +571,20 @@ IsInDesktopWindowBand@4 IsMenu@4 IsProcess16Bit@0 IsMouseInPointerEnabled@0 +IsOneCoreTransformMode@0 IsProcessDPIAware@0 IsQueueAttached@0 IsRectEmpty@4 IsSETEnabled@0 IsServerSideWindow@4 IsThreadDesktopComposited@0 +IsThreadTSFEventAware@4 IsTopLevelWindow@4 IsTouchWindow@8 +IsValidDpiAwarenessContext@4 IsWinEventHookInstalled@4 IsWindow@4 +IsWindowArranged@4 IsWindowEnabled@4 IsWindowInDestroy@4 IsWindowRedirectedForPrint@4 @@ -565,12 +601,8 @@ LoadBitmapW@8 LoadCursorA@8 LoadCursorFromFileA@4 LoadCursorFromFileW@4 -;ord_2000@0 @2000 -;ord_2001@4 @2001 -;ord_2002@4 @2002 LoadCursorW@8 LoadIconA@8 -;ord_2005@4 @2005 LoadIconW@8 LoadImageA@24 LoadImageW@24 @@ -596,11 +628,19 @@ LookupIconIdFromDirectoryEx@20 MBToWCSEx@24 MBToWCSExt@20 MB_GetString@4 +MITGetCursorUpdateHandle@0 +MITSetForegroundRoutingInfo@8 +MITSetInputDelegationMode@8 +MITSetLastInputRecipient@4 +MITSynthesizeTouchInput@4 +MakeThreadTSFEventAware@4 MapDialogRect@8 +MapPointsByVisualIdentifier@20 MapVirtualKeyA@8 MapVirtualKeyExA@12 MapVirtualKeyExW@12 MapVirtualKeyW@8 +MapVisualRelativePoints@28 MapWindowPoints@16 MenuItemFromPoint@16 MenuWindowProcA@20 @@ -665,6 +705,28 @@ QueryBSDRWindow@0 QueryDisplayConfig@24 QuerySendMessage@4 QueryUserCounters@20 +RIMAddInputObserver@32 +RIMAreSiblingDevices@12 +RIMDeviceIoControl@36 +RIMEnableMonitorMappingForDevice@12 +RIMFreeInputBuffer@8 +RIMGetDevicePreparsedData@16 +RIMGetDevicePreparsedDataLockfree@12 +RIMGetDeviceProperties@12 +RIMGetDevicePropertiesLockfree@8 +RIMGetPhysicalDeviceRect@12 +RIMGetSourceProcessId@12 +RIMObserveNextInput@4 +RIMOnPnpNotification@4 +RIMOnTimerNotification@8 +RIMQueryDevicePath@8 +RIMReadInput@28 +RIMRegisterForInput@40 +RIMRemoveInputObserver@4 +RIMSetExtendedDeviceProperty@12 +RIMSetTestModeStatus@4 +RIMUnregisterForInput@4 +RIMUpdateInputObserverRegistration@16 RealChildWindowFromPoint@12 RealGetWindowClass@12 RealGetWindowClassA@12 @@ -680,17 +742,18 @@ RegisterClassExW@4 RegisterClassW@4 RegisterClipboardFormatA@4 RegisterClipboardFormatW@4 +RegisterDManipHook@0 RegisterDeviceNotificationA@12 RegisterDeviceNotificationW@12 RegisterErrorReportingDialog@8 RegisterFrostWindow@8 RegisterGhostWindow@8 RegisterHotKey@16 -RegisterPowerSettingNotification@12 RegisterLogonProcess@8 RegisterMessagePumpHook@4 RegisterPointerDeviceNotifications@8 RegisterPointerInputTarget@8 +RegisterPointerInputTargetEx@12 RegisterPowerSettingNotification@12 RegisterRawInputDevices@12 RegisterServicesProcess@4 @@ -706,10 +769,14 @@ RegisterWindowMessageA@4 RegisterWindowMessageW@4 ReleaseCapture@0 ReleaseDC@8 +ReleaseDwmHitTestWaiters@0 RemoveClipboardFormatListener@4 +RemoveInjectionDevice@4 RemoveMenu@12 RemovePropA@8 RemovePropW@8 +RemoveThreadTSFEventAwareness@4 +RemoveVisualIdentifier@4 ReplyMessage@4 ResolveDesktopForWOW@4 ReuseDDElParam@20 @@ -747,14 +814,19 @@ SetCursorContents@8 SetCursorPos@8 SetDebugErrorLevel@4 SetDeskWallpaper@4 +SetDesktopColorTransform@4 +SetDialogControlDpiChangeBehavior@12 +SetDialogDpiChangeBehavior@12 SetDisplayAutoRotationPreferences@4 SetDisplayConfig@20 SetDlgItemInt@16 SetDlgItemTextA@12 SetDlgItemTextW@12 SetDoubleClickTime@4 +SetFeatureReportResponse@12 SetFocus@4 SetForegroundWindow@4 +SetFullscreenMagnifierOffsetsDWMUpdated@12 SetGestureConfig@20 SetImmersiveBackgroundWindow@4 SetInternalWindowPos@16 @@ -764,6 +836,8 @@ SetLayeredWindowAttributes@16 SetLogonNotifyWindow@4 SetMagnificationDesktopColorEffect@4 SetMagnificationDesktopMagnification@16 +SetMagnificationDesktopMagnifierOffsetsDWMUpdated@4 +SetMagnificationDesktopSamplingMode@4 SetMagnificationLensCtxInformation@16 SetMenu@8 SetMenuContextHelpId@8 @@ -777,8 +851,10 @@ SetMessageQueue@4 SetMirrorRendering@8 SetParent@8 SetPhysicalCursorPos@8 +SetPointerDeviceInputSpace@12 SetProcessDPIAware@0 SetProcessDefaultLayout@4 +SetProcessDpiAwarenessContext@4 SetProcessDpiAwarenessInternal@4 SetProcessRestrictionExemption@4 SetProcessWindowStation@4 @@ -790,6 +866,7 @@ SetRectEmpty@4 SetScrollInfo@16 SetScrollPos@16 SetScrollRange@20 +SetShellChangeNotifyWindow@4 SetShellWindow@4 SetShellWindowEx@8 SetSysColors@12 @@ -799,6 +876,8 @@ SetSystemMenu@8 SetSystemTimer@16 SetTaskmanWindow@4 SetThreadDesktop@4 +SetThreadDpiAwarenessContext@4 +SetThreadDpiHostingBehavior@4 SetThreadInputBlocked@8 SetTimer@16 SetUserObjectInformationA@16 @@ -823,6 +902,7 @@ SetWindowTextW@8 SetWindowWord@12 SetWindowsHookA@8 SetWindowsHookExA@16 +SetWindowsHookExAW@20 SetWindowsHookExW@16 SetWindowsHookW@8 SfmDxBindSwapChain@12 @@ -854,6 +934,7 @@ SwitchDesktop@4 SwitchDesktopWithFade@12 ; Same as SwithDesktop(), only with fade (done at log-in), only usable by winlogon - http://blog.airesoft.co.uk/2010/08/things-microsoft-can-do-that-you-cant/ SwitchToThisWindow@8 SystemParametersInfoA@16 +SystemParametersInfoForDpi@20 SystemParametersInfoW@16 TabbedTextOutA@32 TabbedTextOutW@32 @@ -885,6 +966,7 @@ UnregisterDeviceNotification@4 UnregisterHotKey@8 UnregisterMessagePumpHook@0 UnregisterPointerInputTarget@8 +UnregisterPointerInputTargetEx@8 UnregisterPowerSettingNotification@4 UnregisterSessionPort@0 UnregisterSuspendResumeNotification@4 @@ -934,65 +1016,10 @@ wsprintfA wsprintfW wvsprintfA@12 wvsprintfW@12 -;ord_2500@16 @2500 -;ord_2501@12 @2501 -;ord_2502@8 @2502 -;ord_2503@24 @2503 -;ord_2504@8 @2504 -;ord_2505@8 @2505 -;ord_2506@12 @2506 -;ord_2507@4 @2507 -;ord_2508@8 @2508 -;ord_2509@4 @2509 -;ord_2510@12 @2510 -;ord_2511@8 @2511 -;ord_2512@12 @2512 -;ord_2513@4 @2513 -;ord_2514@8 @2514 -;ord_2515@8 @2515 -;ord_2516@12 @2516 -;ord_2517@4 @2517 -;ord_2518@0 @2518 -;ord_2519@4 @2519 -;ord_2520@0 @2520 -;ord_2521@8 @2521 -;ord_2522@4 @2522 -;ord_2523@8 @2523 -;ord_2524@8 @2524 -;ord_2525@12 @2525 -;ord_2526@12 @2526 -;ord_2527@12 @2527 +DelegateInput@24 +UndelegateInput@8 +HandleDelegatedInput@8 +GetProcessUIContextInformation@8 IsThreadMessageQueueAttached@4 -;ord_2529@4 @2529 -;ord_2530@8 @2530 -;ord_2531@16 @2531 -;ord_2532@8 @2532 -;ord_2533@4 @2533 -;ord_2534@8 @2534 -;ord_2535@0 @2535 -;ord_2536@8 @2536 -;ord_2537@16 @2537 -;ord_2538@4 @2538 -;ord_2539@4 @2539 -;ord_2540@4 @2540 -;ord_2541@0 @2541 -;ord_2544@4 @2544 -;ord_2545@8 @2545 -;ord_2546@4 @2546 -;ord_2547@4 @2547 -;ord_2548@4 @2548 -;ord_2549@4 @2549 -;ord_2550@8 @2550 -;ord_2551@20 @2551 -;ord_2552@8 @2552 -;ord_2553@32 @2553 -;ord_2554@12 @2554 -;ord_2555@16 @2555 -;ord_2556@8 @2556 -;ord_2557@12 @2557 -;ord_2558@12 @2558 -;ord_2559@16 @2559 -;ord_2560@20 @2560 -;ord_2561@0 @2561 -;ord_2562@0 @2562 -;ord_2563@0 @2563 +ReportInertia@20 +SetCoreWindow@8 diff --git a/lib/libc/mingw/lib32/ws2_32.def b/lib/libc/mingw/lib32/ws2_32.def index 19f3f69dbc..f78defcfb1 100644 --- a/lib/libc/mingw/lib32/ws2_32.def +++ b/lib/libc/mingw/lib32/ws2_32.def @@ -33,14 +33,19 @@ FreeAddrInfoEx@4 FreeAddrInfoExW@4 FreeAddrInfoW@4 GetAddrInfoExA@40 +GetAddrInfoExCancel@4 +GetAddrInfoExOverlappedResult@4 GetAddrInfoExW@40 GetAddrInfoW@16 +GetHostNameW@8 GetNameInfoW@28 InetNtopW@16 InetPtonW@12 +ProcessSocketNotifications@28 SetAddrInfoExA@48 SetAddrInfoExW@48 WPUCompleteOverlappedRequest@20 +WPUGetProviderPathEx@20 WSAAccept@20 WSAAddressToStringA@20 WSAAddressToStringW@20 @@ -126,21 +131,30 @@ WSAStringToAddressW@20 WSAUnadvertiseProvider@4 WSAWaitForMultipleEvents@20 WSCDeinstallProvider@8 +WSCDeinstallProviderEx@12 WSCEnableNSProvider@8 WSCEnumProtocols@16 +WSCEnumProtocolsEx@20 WSCGetApplicationCategory@24 +WSCGetApplicationCategoryEx@28 WSCGetProviderInfo@24 WSCGetProviderPath@16 WSCInstallNameSpace@20 +WSCInstallNameSpaceEx2@28 WSCInstallNameSpaceEx@24 WSCInstallProvider@20 WSCInstallProviderAndChains@32 +WSCInstallProviderEx@28 WSCSetApplicationCategory@28 +WSCSetApplicationCategoryEx@32 WSCSetProviderInfo@24 WSCUnInstallNameSpace@4 +WSCUnInstallNameSpaceEx2@8 WSCUpdateProvider@20 +WSCUpdateProviderEx@24 WSCWriteNameSpaceOrder@8 WSCWriteProviderOrder@8 +WSCWriteProviderOrderEx@12 WahCloseApcHelper@4 WahCloseHandleHelper@4 WahCloseNotificationHandleHelper@4 diff --git a/lib/libc/mingw/lib64/fwpuclnt.def b/lib/libc/mingw/lib64/fwpuclnt.def deleted file mode 100644 index c23e0929fe..0000000000 --- a/lib/libc/mingw/lib64/fwpuclnt.def +++ /dev/null @@ -1,146 +0,0 @@ -; -; Definition file of fwpuclnt.dll -; Automatic generated by gendef -; written by Kai Tietz 2008 -; -LIBRARY "fwpuclnt.dll" -EXPORTS -FwpmCalloutAdd0 -FwpmCalloutCreateEnumHandle0 -FwpmCalloutDeleteById0 -FwpmCalloutDeleteByKey0 -FwpmCalloutDestroyEnumHandle0 -FwpmCalloutEnum0 -FwpmCalloutGetById0 -FwpmCalloutGetByKey0 -FwpmCalloutGetSecurityInfoByKey0 -FwpmCalloutSetSecurityInfoByKey0 -FwpmCalloutSubscribeChanges0 -FwpmCalloutSubscriptionsGet0 -FwpmCalloutUnsubscribeChanges0 -FwpmDiagnoseNetFailure0 -FwpmEngineClose0 -FwpmEngineGetOption0 -FwpmEngineGetSecurityInfo0 -FwpmEngineOpen0 -FwpmEngineSetOption0 -FwpmEngineSetSecurityInfo0 -FwpmEventProviderCreate0 -FwpmEventProviderDestroy0 -FwpmEventProviderFireNetEvent0 -FwpmEventProviderIsNetEventTypeEnabled0 -FwpmFilterAdd0 -FwpmFilterCreateEnumHandle0 -FwpmFilterDeleteById0 -FwpmFilterDeleteByKey0 -FwpmFilterDestroyEnumHandle0 -FwpmFilterEnum0 -FwpmFilterGetById0 -FwpmFilterGetByKey0 -FwpmFilterGetSecurityInfoByKey0 -FwpmFilterSetSecurityInfoByKey0 -FwpmFilterSubscribeChanges0 -FwpmFilterSubscriptionsGet0 -FwpmFilterUnsubscribeChanges0 -FwpmFreeMemory0 -FwpmGetAppIdFromFileName0 -FwpmIPsecTunnelAdd0 -FwpmIPsecTunnelDeleteByKey0 -FwpmLayerCreateEnumHandle0 -FwpmLayerDestroyEnumHandle0 -FwpmLayerEnum0 -FwpmLayerGetById0 -FwpmLayerGetByKey0 -FwpmLayerGetSecurityInfoByKey0 -FwpmLayerSetSecurityInfoByKey0 -FwpmNetEventCreateEnumHandle0 -FwpmNetEventDestroyEnumHandle0 -FwpmNetEventEnum0 -FwpmNetEventsGetSecurityInfo0 -FwpmNetEventsSetSecurityInfo0 -FwpmProviderAdd0 -FwpmProviderContextAdd0 -FwpmProviderContextCreateEnumHandle0 -FwpmProviderContextDeleteById0 -FwpmProviderContextDeleteByKey0 -FwpmProviderContextDestroyEnumHandle0 -FwpmProviderContextEnum0 -FwpmProviderContextGetById0 -FwpmProviderContextGetByKey0 -FwpmProviderContextGetSecurityInfoByKey0 -FwpmProviderContextSetSecurityInfoByKey0 -FwpmProviderContextSubscribeChanges0 -FwpmProviderContextSubscriptionsGet0 -FwpmProviderContextUnsubscribeChanges0 -FwpmProviderCreateEnumHandle0 -FwpmProviderDeleteByKey0 -FwpmProviderDestroyEnumHandle0 -FwpmProviderEnum0 -FwpmProviderGetByKey0 -FwpmProviderGetSecurityInfoByKey0 -FwpmProviderSetSecurityInfoByKey0 -FwpmProviderSubscribeChanges0 -FwpmProviderSubscriptionsGet0 -FwpmProviderUnsubscribeChanges0 -FwpmSessionCreateEnumHandle0 -FwpmSessionDestroyEnumHandle0 -FwpmSessionEnum0 -FwpmSubLayerAdd0 -FwpmSubLayerCreateEnumHandle0 -FwpmSubLayerDeleteByKey0 -FwpmSubLayerDestroyEnumHandle0 -FwpmSubLayerEnum0 -FwpmSubLayerGetByKey0 -FwpmSubLayerGetSecurityInfoByKey0 -FwpmSubLayerSetSecurityInfoByKey0 -FwpmSubLayerSubscribeChanges0 -FwpmSubLayerSubscriptionsGet0 -FwpmSubLayerUnsubscribeChanges0 -FwpmTraceRestoreDefaults0 -FwpmTransactionAbort0 -FwpmTransactionBegin0 -FwpmTransactionCommit0 -FwpsAleExplicitCredentialsQuery0 -FwpsClassifyUser0 -FwpsFreeMemory0 -FwpsGetInProcReplicaOffset0 -FwpsLayerCreateInProcReplica0 -FwpsLayerReleaseInProcReplica0 -FwpsOpenToken0 -IPsecGetStatistics0 -IPsecKeyModuleAdd0 -IPsecKeyModuleCompleteAcquire0 -IPsecKeyModuleDelete0 -IPsecSaContextAddInbound0 -IPsecSaContextAddOutbound0 -IPsecSaContextCreate0 -IPsecSaContextCreateEnumHandle0 -IPsecSaContextDeleteById0 -IPsecSaContextDestroyEnumHandle0 -IPsecSaContextEnum0 -IPsecSaContextExpire0 -IPsecSaContextGetById0 -IPsecSaContextGetSpi0 -IPsecSaCreateEnumHandle0 -IPsecSaDbGetSecurityInfo0 -IPsecSaDbSetSecurityInfo0 -IPsecSaDestroyEnumHandle0 -IPsecSaEnum0 -IPsecSaInitiateAsync0 -IkeextGetConfigParameters0 -IkeextGetStatistics0 -IkeextSaCreateEnumHandle0 -IkeextSaDbGetSecurityInfo0 -IkeextSaDbSetSecurityInfo0 -IkeextSaDeleteById0 -IkeextSaDestroyEnumHandle0 -IkeextSaEnum0 -IkeextSaGetById0 -IkeextSetConfigParameters0 -WSADeleteSocketPeerTargetName -WSAImpersonateSocketPeer -WSAQuerySocketSecurity -WSARevertImpersonation -WSASetSocketPeerTargetName -WSASetSocketSecurity -wfpdiagW diff --git a/lib/libc/mingw/lib64/query.def b/lib/libc/mingw/lib64/query.def deleted file mode 100644 index 86ac59ced7..0000000000 --- a/lib/libc/mingw/lib64/query.def +++ /dev/null @@ -1,1447 +0,0 @@ -; -; Exports of file query.dll -; -; Autogenerated by gen_exportdef -; Written by Kai Tietz, 2007 -; -LIBRARY query.dll -EXPORTS -; class CCoTaskAllocator CoTaskAllocator -?CoTaskAllocator@@3VCCoTaskAllocator@@A DATA -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct tagPROPVARIANT & __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@AEAUtagPROPVARIANT@@AEAVPMemoryAllocator@@@Z -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(class PDeSerStream & __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@AEAVPDeSerStream@@AEAVPMemoryAllocator@@@Z -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(char const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@PEBDAEAVPMemoryAllocator@@@Z -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(unsigned short const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@PEBGAEAVPMemoryAllocator@@@Z -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(struct _GUID const * __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@PEBU_GUID@@AEAVPMemoryAllocator@@@Z -; public: __cdecl CAllocStorageVariant::CAllocStorageVariant(enum VARENUM,unsigned long,class PMemoryAllocator & __ptr64) __ptr64 -??0CAllocStorageVariant@@QEAA@W4VARENUM@@KAEAVPMemoryAllocator@@@Z -; public: __cdecl CCatState::CCatState(void) __ptr64 -??0CCatState@@QEAA@XZ -; public: __cdecl CCategorizationSet::CCategorizationSet(class CCategorizationSet const & __ptr64) __ptr64 -??0CCategorizationSet@@QEAA@AEBV0@@Z -; public: __cdecl CCategorizationSet::CCategorizationSet(unsigned int) __ptr64 -??0CCategorizationSet@@QEAA@I@Z -; public: __cdecl CCiAdminParams::CCiAdminParams(class CLangList * __ptr64) __ptr64 -??0CCiAdminParams@@QEAA@PEAVCLangList@@@Z -; public: __cdecl CCiRegParams::CCiRegParams(unsigned short const * __ptr64) __ptr64 -??0CCiRegParams@@QEAA@PEBG@Z -; public: __cdecl CColumnSet::CColumnSet(unsigned int) __ptr64 -??0CColumnSet@@QEAA@I@Z -; public: __cdecl CColumns::CColumns(class CColumns const & __ptr64) __ptr64 -??0CColumns@@QEAA@AEBV0@@Z -; public: __cdecl CColumns::CColumns(unsigned int) __ptr64 -??0CColumns@@QEAA@I@Z -; public: __cdecl CContentRestriction::CContentRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long,unsigned long) __ptr64 -??0CContentRestriction@@QEAA@PEBGAEBVCFullPropSpec@@KK@Z -; public: __cdecl CDFA::CDFA(unsigned short const * __ptr64,class CTimeLimit & __ptr64,unsigned char) __ptr64 -??0CDFA@@QEAA@PEBGAEAVCTimeLimit@@E@Z -; public: __cdecl CDbColId::CDbColId(struct _GUID const & __ptr64,unsigned short const * __ptr64) __ptr64 -??0CDbColId@@QEAA@AEBU_GUID@@PEBG@Z -; public: __cdecl CDbColId::CDbColId(struct tagDBID const & __ptr64) __ptr64 -??0CDbColId@@QEAA@AEBUtagDBID@@@Z -; public: __cdecl CDbColId::CDbColId(class CDbColId const & __ptr64) __ptr64 -??0CDbColId@@QEAA@AEBV0@@Z -; public: __cdecl CDbColId::CDbColId(void) __ptr64 -??0CDbColId@@QEAA@XZ -; public: __cdecl CDbColumns::CDbColumns(unsigned int) __ptr64 -??0CDbColumns@@QEAA@I@Z -; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long,unsigned long) __ptr64 -??0CDbContentRestriction@@QEAA@PEBGAEBUtagDBID@@KK@Z -; public: __cdecl CDbContentRestriction::CDbContentRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long,unsigned long) __ptr64 -??0CDbContentRestriction@@QEAA@PEBGAEBVCDbColumnNode@@KK@Z -; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,struct tagDBID const & __ptr64,unsigned long) __ptr64 -??0CDbNatLangRestriction@@QEAA@PEBGAEBUtagDBID@@K@Z -; public: __cdecl CDbNatLangRestriction::CDbNatLangRestriction(unsigned short const * __ptr64,class CDbColumnNode const & __ptr64,unsigned long) __ptr64 -??0CDbNatLangRestriction@@QEAA@PEBGAEBVCDbColumnNode@@K@Z -; public: __cdecl CDbQueryResults::CDbQueryResults(void) __ptr64 -??0CDbQueryResults@@QEAA@XZ -; public: __cdecl CDbSelectNode::CDbSelectNode(void) __ptr64 -??0CDbSelectNode@@QEAA@XZ -; public: __cdecl CDbSortSet::CDbSortSet(unsigned int) __ptr64 -??0CDbSortSet@@QEAA@I@Z -; public: __cdecl CDefColumnRegEntry::CDefColumnRegEntry(void) __ptr64 -??0CDefColumnRegEntry@@QEAA@XZ -; public: __cdecl CDriveInfo::CDriveInfo(unsigned short const * __ptr64,unsigned long) __ptr64 -??0CDriveInfo@@QEAA@PEBGK@Z -; public: __cdecl CDynStream::CDynStream(class PMmStream * __ptr64) __ptr64 -??0CDynStream@@QEAA@PEAVPMmStream@@@Z -; public: __cdecl CEventItem::CEventItem(unsigned short,unsigned short,unsigned long,unsigned short,unsigned long,void const * __ptr64) __ptr64 -??0CEventItem@@QEAA@GGKGKPEBX@Z -; public: __cdecl CEventLog::CEventLog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64 -??0CEventLog@@QEAA@PEBG0@Z -; public: __cdecl CException::CException(long) __ptr64 -??0CException@@QEAA@J@Z -; public: __cdecl CException::CException(void) __ptr64 -??0CException@@QEAA@XZ -; public: __cdecl CFileBuffer::CFileBuffer(class CFileMapView & __ptr64,unsigned int) __ptr64 -??0CFileBuffer@@QEAA@AEAVCFileMapView@@I@Z -; public: __cdecl CFileMapView::CFileMapView(unsigned short const * __ptr64) __ptr64 -??0CFileMapView@@QEAA@PEBG@Z -; public: __cdecl CFilterDaemon::CFilterDaemon(class CiProxy & __ptr64,class CCiFrameworkParams & __ptr64,class CLangList & __ptr64,unsigned char * __ptr64,unsigned long,struct ICiCFilterClient * __ptr64) __ptr64 -??0CFilterDaemon@@QEAA@AEAVCiProxy@@AEAVCCiFrameworkParams@@AEAVCLangList@@PEAEKPEAUICiCFilterClient@@@Z -; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64) __ptr64 -??0CFullPath@@QEAA@PEBG@Z -; public: __cdecl CFullPath::CFullPath(unsigned short const * __ptr64,unsigned int) __ptr64 -??0CFullPath@@QEAA@PEBGI@Z -; public: __cdecl CFullPropSpec::CFullPropSpec(class PDeSerStream & __ptr64) __ptr64 -??0CFullPropSpec@@QEAA@AEAVPDeSerStream@@@Z -; public: __cdecl CFullPropSpec::CFullPropSpec(class CFullPropSpec const & __ptr64) __ptr64 -??0CFullPropSpec@@QEAA@AEBV0@@Z -; public: __cdecl CFullPropSpec::CFullPropSpec(void) __ptr64 -??0CFullPropSpec@@QEAA@XZ -; public: __cdecl CFwAsyncWorkItem::CFwAsyncWorkItem(class CWorkManager & __ptr64,class CWorkQueue & __ptr64) __ptr64 -??0CFwAsyncWorkItem@@QEAA@AEAVCWorkManager@@AEAVCWorkQueue@@@Z -; public: __cdecl CFwEventItem::CFwEventItem(unsigned short,unsigned long,unsigned short,unsigned long,void * __ptr64) __ptr64 -??0CFwEventItem@@QEAA@GKGKPEAX@Z -; public: __cdecl CGenericCiProxy::CGenericCiProxy(class CSharedNameGen & __ptr64,unsigned long,unsigned long) __ptr64 -??0CGenericCiProxy@@QEAA@AEAVCSharedNameGen@@KK@Z -; public: __cdecl CGetDbProps::CGetDbProps(void) __ptr64 -??0CGetDbProps@@QEAA@XZ -; public: __cdecl CImpersonateRemoteAccess::CImpersonateRemoteAccess(class CImpersonationTokenCache * __ptr64) __ptr64 -??0CImpersonateRemoteAccess@@QEAA@PEAVCImpersonationTokenCache@@@Z -; public: __cdecl CImpersonationTokenCache::CImpersonationTokenCache(unsigned short const * __ptr64) __ptr64 -??0CImpersonationTokenCache@@QEAA@PEBG@Z -; public: __cdecl CIndexTable::CIndexTable(class CiStorage & __ptr64,class CTransaction & __ptr64) __ptr64 -??0CIndexTable@@QEAA@AEAVCiStorage@@AEAVCTransaction@@@Z -; public: __cdecl CInternalPropertyRestriction::CInternalPropertyRestriction(unsigned long,unsigned long,class CStorageVariant const & __ptr64,class CRestriction * __ptr64) __ptr64 -??0CInternalPropertyRestriction@@QEAA@KKAEBVCStorageVariant@@PEAVCRestriction@@@Z -; public: __cdecl CKeyArray::CKeyArray(int,int) __ptr64 -??0CKeyArray@@QEAA@HH@Z -; public: __cdecl CLangList::CLangList(struct ICiCLangRes * __ptr64,unsigned long) __ptr64 -??0CLangList@@QEAA@PEAUICiCLangRes@@K@Z -; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(unsigned long) __ptr64 -??0CLocalGlobalPropertyList@@QEAA@K@Z -; public: __cdecl CLocalGlobalPropertyList::CLocalGlobalPropertyList(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64 -??0CLocalGlobalPropertyList@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z -; public: __cdecl CMachineAdmin::CMachineAdmin(unsigned short const * __ptr64,int) __ptr64 -??0CMachineAdmin@@QEAA@PEBGH@Z -; public: __cdecl CMemSerStream::CMemSerStream(unsigned int) __ptr64 -??0CMemSerStream@@QEAA@I@Z -; public: __cdecl CMemSerStream::CMemSerStream(unsigned char * __ptr64,unsigned long) __ptr64 -??0CMemSerStream@@QEAA@PEAEK@Z -; public: __cdecl CMetaDataMgr::CMetaDataMgr(int,enum CiVRootTypeEnum,unsigned long,unsigned short const * __ptr64) __ptr64 -??0CMetaDataMgr@@QEAA@HW4CiVRootTypeEnum@@KPEBG@Z -; public: __cdecl CMmStream::CMmStream(unsigned long,int) __ptr64 -??0CMmStream@@QEAA@KH@Z -; public: __cdecl CMmStreamConsecBuf::CMmStreamConsecBuf(void) __ptr64 -??0CMmStreamConsecBuf@@QEAA@XZ -; public: __cdecl CNatLanguageRestriction::CNatLanguageRestriction(unsigned short const * __ptr64,class CFullPropSpec const & __ptr64,unsigned long) __ptr64 -??0CNatLanguageRestriction@@QEAA@PEBGAEBVCFullPropSpec@@K@Z -; public: __cdecl CNodeRestriction::CNodeRestriction(unsigned long,unsigned int) __ptr64 -??0CNodeRestriction@@QEAA@KI@Z -; public: __cdecl CNormalizer::CNormalizer(class PNoiseList & __ptr64) __ptr64 -??0CNormalizer@@QEAA@AEAVPNoiseList@@@Z -; public: __cdecl CPathParser::CPathParser(unsigned short const * __ptr64,unsigned long) __ptr64 -??0CPathParser@@QEAA@PEBGK@Z -; public: __cdecl CPerfMon::CPerfMon(unsigned short const * __ptr64) __ptr64 -??0CPerfMon@@QEAA@PEBG@Z -; public: __cdecl CPersDeComp::CPersDeComp(class PDirectory & __ptr64,unsigned long,class CPhysIndex & __ptr64,unsigned long,int,int) __ptr64 -??0CPersDeComp@@QEAA@AEAVPDirectory@@KAEAVCPhysIndex@@KHH@Z -; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,unsigned int,class PMmStream * __ptr64,int,unsigned int,int) __ptr64 -??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KIPEAVPMmStream@@HIH@Z -; protected: __cdecl CPhysStorage::CPhysStorage(class PStorage & __ptr64,class PStorageObject & __ptr64,unsigned long,class PMmStream * __ptr64,enum CPhysStorage::EOpenMode,int,unsigned int,int) __ptr64 -??0CPhysStorage@@IEAA@AEAVPStorage@@AEAVPStorageObject@@KPEAVPMmStream@@W4EOpenMode@1@HIH@Z -; public: __cdecl CPidLookupTable::CPidLookupTable(void) __ptr64 -??0CPidLookupTable@@QEAA@XZ -; public: __cdecl CPidRemapper::CPidRemapper(class XInterface<struct IPropertyMapper> & __ptr64) __ptr64 -??0CPidRemapper@@QEAA@AEAV?$XInterface@UIPropertyMapper@@@@@Z -; public: __cdecl CPidRemapper::CPidRemapper(class CPidMapper const & __ptr64,class XInterface<struct IPropertyMapper> & __ptr64,class CRestriction * __ptr64,class CColumnSet * __ptr64,class CSortSet * __ptr64) __ptr64 -??0CPidRemapper@@QEAA@AEBVCPidMapper@@AEAV?$XInterface@UIPropertyMapper@@@@PEAVCRestriction@@PEAVCColumnSet@@PEAVCSortSet@@@Z -; public: __cdecl CPropListFile::CPropListFile(class CEmptyPropertyList * __ptr64,int,unsigned short const * __ptr64,unsigned long) __ptr64 -??0CPropListFile@@QEAA@PEAVCEmptyPropertyList@@HPEBGK@Z -; public: __cdecl CPropNameArray::CPropNameArray(class PDeSerStream & __ptr64) __ptr64 -??0CPropNameArray@@QEAA@AEAVPDeSerStream@@@Z -; public: __cdecl CPropNameArray::CPropNameArray(unsigned int) __ptr64 -??0CPropNameArray@@QEAA@I@Z -; public: __cdecl CPropStoreManager::CPropStoreManager(unsigned long) __ptr64 -??0CPropStoreManager@@QEAA@K@Z -; public: __cdecl CPropertyRestriction::CPropertyRestriction(unsigned long,class CFullPropSpec const & __ptr64,class CStorageVariant const & __ptr64) __ptr64 -??0CPropertyRestriction@@QEAA@KAEBVCFullPropSpec@@AEBVCStorageVariant@@@Z -; public: __cdecl CPropertyRestriction::CPropertyRestriction(void) __ptr64 -??0CPropertyRestriction@@QEAA@XZ -; public: __cdecl CPropertyStoreWids::CPropertyStoreWids(class CPropStoreManager & __ptr64) __ptr64 -??0CPropertyStoreWids@@QEAA@AEAVCPropStoreManager@@@Z -; public: __cdecl CPropertyValueParser::CPropertyValueParser(class CQueryScanner & __ptr64,unsigned short,unsigned long) __ptr64 -??0CPropertyValueParser@@QEAA@AEAVCQueryScanner@@GK@Z -; public: __cdecl CQueryScanner::CQueryScanner(unsigned short const * __ptr64,int,unsigned long,int) __ptr64 -??0CQueryScanner@@QEAA@PEBGHKH@Z -; public: __cdecl CRangeKeyRepository::CRangeKeyRepository(void) __ptr64 -??0CRangeKeyRepository@@QEAA@XZ -; public: __cdecl CRcovStrmAppendTrans::CRcovStrmAppendTrans(class PRcovStorageObj & __ptr64) __ptr64 -??0CRcovStrmAppendTrans@@QEAA@AEAVPRcovStorageObj@@@Z -; public: __cdecl CRcovStrmMDTrans::CRcovStrmMDTrans(class PRcovStorageObj & __ptr64,enum CRcovStrmMDTrans::MDOp,unsigned long) __ptr64 -??0CRcovStrmMDTrans@@QEAA@AEAVPRcovStorageObj@@W4MDOp@0@K@Z -; protected: __cdecl CRcovStrmTrans::CRcovStrmTrans(class PRcovStorageObj & __ptr64,enum RcovOpType) __ptr64 -??0CRcovStrmTrans@@IEAA@AEAVPRcovStorageObj@@W4RcovOpType@@@Z -; public: __cdecl CRegAccess::CRegAccess(unsigned long,unsigned short const * __ptr64) __ptr64 -??0CRegAccess@@QEAA@KPEBG@Z -; public: __cdecl CRegChangeEvent::CRegChangeEvent(unsigned short const * __ptr64,int) __ptr64 -??0CRegChangeEvent@@QEAA@PEBGH@Z -; public: __cdecl CRegNotify::CRegNotify(unsigned short const * __ptr64) __ptr64 -??0CRegNotify@@QEAA@PEBG@Z -; public: __cdecl CRequestClient::CRequestClient(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64 -??0CRequestClient@@QEAA@PEBGPEAUIDBProperties@@@Z -; public: __cdecl CRequestQueue::CRequestQueue(unsigned int,unsigned int,unsigned int,int,unsigned int,unsigned int,struct _GUID const & __ptr64) __ptr64 -??0CRequestQueue@@QEAA@IIIHIIAEBU_GUID@@@Z -; public: __cdecl CScopeRestriction::CScopeRestriction(unsigned short const * __ptr64,int,int) __ptr64 -??0CScopeRestriction@@QEAA@PEBGHH@Z -; public: __cdecl CSdidLookupTable::CSdidLookupTable(void) __ptr64 -??0CSdidLookupTable@@QEAA@XZ -; public: __cdecl CSizeSerStream::CSizeSerStream(void) __ptr64 -??0CSizeSerStream@@QEAA@XZ -; public: __cdecl CSort::CSort(unsigned int) __ptr64 -??0CSort@@QEAA@I@Z -; public: __cdecl CSortSet::CSortSet(unsigned int) __ptr64 -??0CSortSet@@QEAA@I@Z -; public: __cdecl CStandardPropMapper::CStandardPropMapper(void) __ptr64 -??0CStandardPropMapper@@QEAA@XZ -; public: __cdecl CSvcQuery::CSvcQuery(unsigned short const * __ptr64,struct IDBProperties * __ptr64) __ptr64 -??0CSvcQuery@@QEAA@PEBGPEAUIDBProperties@@@Z -; public: __cdecl CSynRestriction::CSynRestriction(class CKey const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64 -??0CSynRestriction@@QEAA@AEBVCKey@@KKKH@Z -; public: __cdecl CTimeLimit::CTimeLimit(unsigned long,unsigned long) __ptr64 -??0CTimeLimit@@QEAA@KK@Z -; public: __cdecl CTransaction::CTransaction(void) __ptr64 -??0CTransaction@@QEAA@XZ -; public: __cdecl CUnfilteredRestriction::CUnfilteredRestriction(void) __ptr64 -??0CUnfilteredRestriction@@QEAA@XZ -; public: __cdecl CValueNormalizer::CValueNormalizer(class PKeyRepository & __ptr64) __ptr64 -??0CValueNormalizer@@QEAA@AEAVPKeyRepository@@@Z -; public: __cdecl CVirtualString::CVirtualString(unsigned int) __ptr64 -??0CVirtualString@@QEAA@I@Z -; public: __cdecl CWin32RegAccess::CWin32RegAccess(struct HKEY__ * __ptr64,unsigned short const * __ptr64) __ptr64 -??0CWin32RegAccess@@QEAA@PEAUHKEY__@@PEBG@Z -; public: __cdecl CWordRestriction::CWordRestriction(class CKeyBuf const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64 -??0CWordRestriction@@QEAA@AEBVCKeyBuf@@KKKH@Z -; public: __cdecl CWorkQueue::CWorkQueue(unsigned int,enum CWorkQueue::WorkQueueType) __ptr64 -??0CWorkQueue@@QEAA@IW4WorkQueueType@0@@Z -; public: __cdecl CiStorage::CiStorage(unsigned short const * __ptr64,struct ICiCAdviseStatus & __ptr64,unsigned long,unsigned long,int) __ptr64 -??0CiStorage@@QEAA@PEBGAEAUICiCAdviseStatus@@KKH@Z -; public: __cdecl SStorageObject::SStorageObject(class PStorageObject * __ptr64) __ptr64 -??0SStorageObject@@QEAA@PEAVPStorageObject@@@Z -; protected: __cdecl CAllocStorageVariant::~CAllocStorageVariant(void) __ptr64 -??1CAllocStorageVariant@@IEAA@XZ -; public: __cdecl CCatState::~CCatState(void) __ptr64 -??1CCatState@@QEAA@XZ -; public: __cdecl CCatalogAdmin::~CCatalogAdmin(void) __ptr64 -??1CCatalogAdmin@@QEAA@XZ -; public: __cdecl CCatalogEnum::~CCatalogEnum(void) __ptr64 -??1CCatalogEnum@@QEAA@XZ -; public: __cdecl CColumns::~CColumns(void) __ptr64 -??1CColumns@@QEAA@XZ -; public: __cdecl CContentRestriction::~CContentRestriction(void) __ptr64 -??1CContentRestriction@@QEAA@XZ -; public: __cdecl CDFA::~CDFA(void) __ptr64 -??1CDFA@@QEAA@XZ -; public: __cdecl CDbCmdTreeNode::~CDbCmdTreeNode(void) __ptr64 -??1CDbCmdTreeNode@@QEAA@XZ -; public: __cdecl CDbColumns::~CDbColumns(void) __ptr64 -??1CDbColumns@@QEAA@XZ -; public: __cdecl CDbPropSet::~CDbPropSet(void) __ptr64 -??1CDbPropSet@@QEAA@XZ -; public: __cdecl CDbQueryResults::~CDbQueryResults(void) __ptr64 -??1CDbQueryResults@@QEAA@XZ -; public: __cdecl CDbSortSet::~CDbSortSet(void) __ptr64 -??1CDbSortSet@@QEAA@XZ -; public: __cdecl CDynStream::~CDynStream(void) __ptr64 -??1CDynStream@@QEAA@XZ -; public: __cdecl CEventItem::~CEventItem(void) __ptr64 -??1CEventItem@@QEAA@XZ -; public: __cdecl CEventLog::~CEventLog(void) __ptr64 -??1CEventLog@@QEAA@XZ -; public: __cdecl CFileMapView::~CFileMapView(void) __ptr64 -??1CFileMapView@@QEAA@XZ -; public: __cdecl CFilterDaemon::~CFilterDaemon(void) __ptr64 -??1CFilterDaemon@@QEAA@XZ -; public: virtual __cdecl CFwAsyncWorkItem::~CFwAsyncWorkItem(void) __ptr64 -??1CFwAsyncWorkItem@@UEAA@XZ -; public: __cdecl CFwEventItem::~CFwEventItem(void) __ptr64 -??1CFwEventItem@@QEAA@XZ -; public: virtual __cdecl CGenericCiProxy::~CGenericCiProxy(void) __ptr64 -??1CGenericCiProxy@@UEAA@XZ -; public: __cdecl CImpersonateClient::~CImpersonateClient(void) __ptr64 -??1CImpersonateClient@@QEAA@XZ -; public: __cdecl CImpersonateSystem::~CImpersonateSystem(void) __ptr64 -??1CImpersonateSystem@@QEAA@XZ -; public: __cdecl CImpersonationTokenCache::~CImpersonationTokenCache(void) __ptr64 -??1CImpersonationTokenCache@@QEAA@XZ -; public: __cdecl CInternalPropertyRestriction::~CInternalPropertyRestriction(void) __ptr64 -??1CInternalPropertyRestriction@@QEAA@XZ -; public: __cdecl CKeyArray::~CKeyArray(void) __ptr64 -??1CKeyArray@@QEAA@XZ -; public: __cdecl CLangList::~CLangList(void) __ptr64 -??1CLangList@@QEAA@XZ -; public: __cdecl CMachineAdmin::~CMachineAdmin(void) __ptr64 -??1CMachineAdmin@@QEAA@XZ -; public: virtual __cdecl CMemSerStream::~CMemSerStream(void) __ptr64 -??1CMemSerStream@@UEAA@XZ -; public: __cdecl CMetaDataMgr::~CMetaDataMgr(void) __ptr64 -??1CMetaDataMgr@@QEAA@XZ -; public: virtual __cdecl CMmStream::~CMmStream(void) __ptr64 -??1CMmStream@@UEAA@XZ -; public: __cdecl CMmStreamConsecBuf::~CMmStreamConsecBuf(void) __ptr64 -??1CMmStreamConsecBuf@@QEAA@XZ -; public: __cdecl CNatLanguageRestriction::~CNatLanguageRestriction(void) __ptr64 -??1CNatLanguageRestriction@@QEAA@XZ -; public: __cdecl CNodeRestriction::~CNodeRestriction(void) __ptr64 -??1CNodeRestriction@@QEAA@XZ -; public: __cdecl CNotRestriction::~CNotRestriction(void) __ptr64 -??1CNotRestriction@@QEAA@XZ -; public: __cdecl COccRestriction::~COccRestriction(void) __ptr64 -??1COccRestriction@@QEAA@XZ -; public: __cdecl CParseCommandTree::~CParseCommandTree(void) __ptr64 -??1CParseCommandTree@@QEAA@XZ -; public: __cdecl CPerfMon::~CPerfMon(void) __ptr64 -??1CPerfMon@@QEAA@XZ -; public: __cdecl CPhraseRestriction::~CPhraseRestriction(void) __ptr64 -??1CPhraseRestriction@@QEAA@XZ -; public: virtual __cdecl CPhysStorage::~CPhysStorage(void) __ptr64 -??1CPhysStorage@@UEAA@XZ -; public: __cdecl CPidLookupTable::~CPidLookupTable(void) __ptr64 -??1CPidLookupTable@@QEAA@XZ -; public: __cdecl CPidRemapper::~CPidRemapper(void) __ptr64 -??1CPidRemapper@@QEAA@XZ -; public: __cdecl CProcess::~CProcess(void) __ptr64 -??1CProcess@@QEAA@XZ -; public: __cdecl CPropStoreManager::~CPropStoreManager(void) __ptr64 -??1CPropStoreManager@@QEAA@XZ -; public: virtual __cdecl CPropertyList::~CPropertyList(void) __ptr64 -??1CPropertyList@@UEAA@XZ -; public: __cdecl CPropertyRestriction::~CPropertyRestriction(void) __ptr64 -??1CPropertyRestriction@@QEAA@XZ -; public: __cdecl CPropertyStore::~CPropertyStore(void) __ptr64 -??1CPropertyStore@@QEAA@XZ -; public: __cdecl CPropertyStoreWids::~CPropertyStoreWids(void) __ptr64 -??1CPropertyStoreWids@@QEAA@XZ -; public: __cdecl CQueryUnknown::~CQueryUnknown(void) __ptr64 -??1CQueryUnknown@@QEAA@XZ -; public: virtual __cdecl CRangeKeyRepository::~CRangeKeyRepository(void) __ptr64 -??1CRangeKeyRepository@@UEAA@XZ -; public: __cdecl CRegChangeEvent::~CRegChangeEvent(void) __ptr64 -??1CRegChangeEvent@@QEAA@XZ -; protected: virtual __cdecl CRegNotify::~CRegNotify(void) __ptr64 -??1CRegNotify@@MEAA@XZ -; public: __cdecl CRestriction::~CRestriction(void) __ptr64 -??1CRestriction@@QEAA@XZ -; public: __cdecl CScopeAdmin::~CScopeAdmin(void) __ptr64 -??1CScopeAdmin@@QEAA@XZ -; public: __cdecl CScopeEnum::~CScopeEnum(void) __ptr64 -??1CScopeEnum@@QEAA@XZ -; public: __cdecl CScopeRestriction::~CScopeRestriction(void) __ptr64 -??1CScopeRestriction@@QEAA@XZ -; public: __cdecl CSdidLookupTable::~CSdidLookupTable(void) __ptr64 -??1CSdidLookupTable@@QEAA@XZ -; public: virtual __cdecl CSizeSerStream::~CSizeSerStream(void) __ptr64 -??1CSizeSerStream@@UEAA@XZ -; public: __cdecl CSort::~CSort(void) __ptr64 -??1CSort@@QEAA@XZ -; public: __cdecl CSynRestriction::~CSynRestriction(void) __ptr64 -??1CSynRestriction@@QEAA@XZ -; public: __cdecl CVirtualString::~CVirtualString(void) __ptr64 -??1CVirtualString@@QEAA@XZ -; public: __cdecl CWin32RegAccess::~CWin32RegAccess(void) __ptr64 -??1CWin32RegAccess@@QEAA@XZ -; public: __cdecl CWordRestriction::~CWordRestriction(void) __ptr64 -??1CWordRestriction@@QEAA@XZ -; public: __cdecl CWorkManager::~CWorkManager(void) __ptr64 -??1CWorkManager@@QEAA@XZ -; public: __cdecl CWorkQueue::~CWorkQueue(void) __ptr64 -??1CWorkQueue@@QEAA@XZ -; public: __cdecl SStorageObject::~SStorageObject(void) __ptr64 -??1SStorageObject@@QEAA@XZ -; public: class CDbColId & __ptr64 __cdecl CDbColId::operator=(class CDbColId const & __ptr64) __ptr64 -??4CDbColId@@QEAAAEAV0@AEBV0@@Z -; public: int __cdecl CDbColId::operator==(class CDbColId const & __ptr64)const __ptr64 -??8CDbColId@@QEBAHAEBV0@@Z -; public: void __cdecl CWorkManager::AbortWorkItems(void) __ptr64 -?AbortWorkItems@CWorkManager@@QEAAXXZ -; public: void __cdecl CQueryScanner::Accept(void) __ptr64 -?Accept@CQueryScanner@@QEAAXXZ -; public: void __cdecl CQueryScanner::AcceptCommand(void) __ptr64 -?AcceptCommand@CQueryScanner@@QEAAXXZ -; public: void __cdecl CQueryScanner::AcceptWord(void) __ptr64 -?AcceptWord@CQueryScanner@@QEAAXXZ -; public: int __cdecl CSdidLookupTable::AccessCheck(unsigned long,void * __ptr64,unsigned long,int & __ptr64) __ptr64 -?AccessCheck@CSdidLookupTable@@QEAAHKPEAXKAEAH@Z -; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqLine(int) __ptr64 -?AcqLine@CQueryScanner@@QEAAPEAGH@Z -; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPath(void) __ptr64 -?AcqPath@CQueryScanner@@QEAAPEAGXZ -; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqPhrase(void) __ptr64 -?AcqPhrase@CQueryScanner@@QEAAPEAGXZ -; public: class CRangeRestriction * __ptr64 __cdecl CRangeKeyRepository::AcqRst(void) __ptr64 -?AcqRst@CRangeKeyRepository@@QEAAPEAVCRangeRestriction@@XZ -; public: unsigned short * __ptr64 __cdecl CQueryScanner::AcqWord(void) __ptr64 -?AcqWord@CQueryScanner@@QEAAPEAGXZ -; private: void __cdecl CPropertyStore::AcquireRead(class CReadWriteLockRecord & __ptr64) __ptr64 -?AcquireRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z -; public: int __cdecl CDbColumns::Add(class CDbColId const & __ptr64,unsigned int) __ptr64 -?Add@CDbColumns@@QEAAHAEBVCDbColId@@I@Z -; public: void __cdecl CDbQueryResults::Add(unsigned short * __ptr64,unsigned long) __ptr64 -?Add@CDbQueryResults@@QEAAXPEAGK@Z -; public: int __cdecl CDbSortSet::Add(class CDbColId const & __ptr64,unsigned long,unsigned int) __ptr64 -?Add@CDbSortSet@@QEAAHAEBVCDbColId@@KI@Z -; public: int __cdecl CDbSortSet::Add(class CDbSortKey const & __ptr64,unsigned int) __ptr64 -?Add@CDbSortSet@@QEAAHAEBVCDbSortKey@@I@Z -; public: int __cdecl CKeyArray::Add(int,class CKey const & __ptr64) __ptr64 -?Add@CKeyArray@@QEAAHHAEBVCKey@@@Z -; public: int __cdecl CKeyArray::Add(int,class CKeyBuf const & __ptr64) __ptr64 -?Add@CKeyArray@@QEAAHHAEBVCKeyBuf@@@Z -; public: void __cdecl CWorkQueue::Add(class PWorkItem * __ptr64) __ptr64 -?Add@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z -; public: void __cdecl CEventItem::AddArg(unsigned long) __ptr64 -?AddArg@CEventItem@@QEAAXK@Z -; public: void __cdecl CEventItem::AddArg(unsigned short const * __ptr64) __ptr64 -?AddArg@CEventItem@@QEAAXPEBG@Z -; public: void __cdecl CFwEventItem::AddArg(unsigned long) __ptr64 -?AddArg@CFwEventItem@@QEAAXK@Z -; public: void __cdecl CFwEventItem::AddArg(unsigned short const * __ptr64) __ptr64 -?AddArg@CFwEventItem@@QEAAXPEBG@Z -; public: void __cdecl CCatalogAdmin::AddCachedProperty(class CFullPropSpec const & __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64 -?AddCachedProperty@CCatalogAdmin@@QEAAXAEBVCFullPropSpec@@KKKH@Z -; public: void __cdecl CCatState::AddCatalog(class XPtrST<unsigned short> & __ptr64) __ptr64 -?AddCatalog@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z -; public: void __cdecl CMachineAdmin::AddCatalog(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64 -?AddCatalog@CMachineAdmin@@QEAAXPEBG0@Z -; public: void __cdecl CNodeRestriction::AddChild(class CRestriction * __ptr64,unsigned int & __ptr64) __ptr64 -?AddChild@CNodeRestriction@@QEAAXPEAVCRestriction@@AEAI@Z -; public: void __cdecl CCatState::AddDir(class XPtrST<unsigned short> & __ptr64) __ptr64 -?AddDir@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z -; public: virtual void __cdecl CPropertyList::AddEntry(class CPropEntry * __ptr64,int) __ptr64 -?AddEntry@CPropertyList@@UEAAXPEAVCPropEntry@@H@Z -; public: void __cdecl CEventItem::AddError(unsigned long) __ptr64 -?AddError@CEventItem@@QEAAXK@Z -; public: void __cdecl CSynRestriction::AddKey(class CKeyBuf const & __ptr64) __ptr64 -?AddKey@CSynRestriction@@QEAAXAEBVCKeyBuf@@@Z -; public: void __cdecl CCatState::AddMachine(class XPtrST<unsigned short> & __ptr64) __ptr64 -?AddMachine@CCatState@@QEAAXAEAV?$XPtrST@G@@@Z -; public: virtual unsigned long __cdecl CDbProperties::AddRef(void) __ptr64 -?AddRef@CDbProperties@@UEAAKXZ -; public: virtual unsigned long __cdecl CEmptyPropertyList::AddRef(void) __ptr64 -?AddRef@CEmptyPropertyList@@UEAAKXZ -; public: virtual unsigned long __cdecl CEnumString::AddRef(void) __ptr64 -?AddRef@CEnumString@@UEAAKXZ -; public: virtual unsigned long __cdecl CEnumWorkid::AddRef(void) __ptr64 -?AddRef@CEnumWorkid@@UEAAKXZ -; public: virtual unsigned long __cdecl CFwPropertyMapper::AddRef(void) __ptr64 -?AddRef@CFwPropertyMapper@@UEAAKXZ -; public: virtual unsigned long __cdecl CQueryUnknown::AddRef(void) __ptr64 -?AddRef@CQueryUnknown@@UEAAKXZ -; public: void __cdecl CWorkQueue::AddRefWorkThreads(void) __ptr64 -?AddRefWorkThreads@CWorkQueue@@QEAAXXZ -; public: void __cdecl CCatalogAdmin::AddScope(unsigned short const * __ptr64,unsigned short const * __ptr64,int,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64 -?AddScope@CCatalogAdmin@@QEAAXPEBG0H00@Z -; public: int __cdecl CDbSortNode::AddSortColumn(struct tagDBID const & __ptr64,int,unsigned long) __ptr64 -?AddSortColumn@CDbSortNode@@QEAAHAEBUtagDBID@@HK@Z -; public: int __cdecl CDbNestingNode::AddTable(class CDbCmdTreeNode * __ptr64) __ptr64 -?AddTable@CDbNestingNode@@QEAAHPEAVCDbCmdTreeNode@@@Z -; public: void __cdecl CWorkManager::AddToWorkList(class CFwAsyncWorkItem * __ptr64) __ptr64 -?AddToWorkList@CWorkManager@@QEAAXPEAVCFwAsyncWorkItem@@@Z -; public: void __cdecl CFwAsyncWorkItem::AddToWorkQueue(void) __ptr64 -?AddToWorkQueue@CFwAsyncWorkItem@@QEAAXXZ -; public: static unsigned short * __ptr64 __cdecl CDbCmdTreeNode::AllocAndCopyWString(unsigned short const * __ptr64) -?AllocAndCopyWString@CDbCmdTreeNode@@SAPEAGPEBG@Z -; unsigned short * __ptr64 __cdecl AllocHeapAndCopy(unsigned short const * __ptr64,unsigned long & __ptr64) -?AllocHeapAndCopy@@YAPEAGPEBGAEAK@Z -; unsigned short * __ptr64 __cdecl AllocHeapAndGetWString(class PDeSerStream & __ptr64) -?AllocHeapAndGetWString@@YAPEAGAEAVPDeSerStream@@@Z -; public: void __cdecl CEnumString::Append(unsigned short const * __ptr64) __ptr64 -?Append@CEnumString@@QEAAXPEBG@Z -; public: void __cdecl CEnumWorkid::Append(unsigned long) __ptr64 -?Append@CEnumWorkid@@QEAAXK@Z -; protected: void __cdecl CDbCmdTreeNode::AppendChild(class CDbCmdTreeNode * __ptr64) __ptr64 -?AppendChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z -; protected: int __cdecl CDbListAnchor::AppendListElement(unsigned short,struct tagDBID const & __ptr64) __ptr64 -?AppendListElement@CDbListAnchor@@IEAAHGAEBUtagDBID@@@Z -; protected: int __cdecl CDbListAnchor::AppendListElement(class CDbCmdTreeNode * __ptr64) __ptr64 -?AppendListElement@CDbListAnchor@@IEAAHPEAVCDbCmdTreeNode@@@Z -; public: int __cdecl CDbProjectListAnchor::AppendListElement(struct tagDBID const & __ptr64,unsigned short * __ptr64) __ptr64 -?AppendListElement@CDbProjectListAnchor@@QEAAHAEBUtagDBID@@PEAG@Z -; public: unsigned __int64 __cdecl CPropStoreManager::BeginTransaction(void) __ptr64 -?BeginTransaction@CPropStoreManager@@QEAA_KXZ -; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct _GUID const & __ptr64,struct IFilter * __ptr64 * __ptr64,int) -?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@AEBU_GUID@@PEAPEAUIFilter@@H@Z -; public: static long __cdecl CCiOle::BindIFilter(unsigned short const * __ptr64,struct IUnknown * __ptr64,struct IFilter * __ptr64 * __ptr64,int) -?BindIFilter@CCiOle@@SAJPEBGPEAUIUnknown@@PEAPEAUIFilter@@H@Z -; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowBuffer(unsigned long,int,int) __ptr64 -?BorrowBuffer@CPhysStorage@@QEAAPEAKKHH@Z -; public: unsigned long * __ptr64 __cdecl CPhysStorage::BorrowNewBuffer(unsigned long) __ptr64 -?BorrowNewBuffer@CPhysStorage@@QEAAPEAKK@Z -; void __cdecl BuildRegistryPropertiesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64) -?BuildRegistryPropertiesKey@@YAXAEAV?$XArray@G@@PEBG@Z -; void __cdecl BuildRegistryScopesKey(class XArray<unsigned short> & __ptr64,unsigned short const * __ptr64) -?BuildRegistryScopesKey@@YAXAEAV?$XArray@G@@PEBG@Z -; void __cdecl CIShutdown(void) -?CIShutdown@@YAXXZ -; public: void __cdecl CCatState::ChangeCurrentCatalog(unsigned short const * __ptr64) __ptr64 -?ChangeCurrentCatalog@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CCatState::ChangeCurrentDepth(int) __ptr64 -?ChangeCurrentDepth@CCatState@@QEAAXH@Z -; public: void __cdecl CCatState::ChangeCurrentMachine(unsigned short const * __ptr64) __ptr64 -?ChangeCurrentMachine@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CCatState::ChangeCurrentScope(unsigned short const * __ptr64) __ptr64 -?ChangeCurrentScope@CCatState@@QEAAXPEBG@Z -; private: void __cdecl CPropStoreInfo::ChangeDirty(int) __ptr64 -?ChangeDirty@CPropStoreInfo@@AEAAXH@Z -; public: long __cdecl CLocalGlobalPropertyList::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64 -?CheckError@CLocalGlobalPropertyList@@QEAAJAEAKPEAPEAG@Z -; public: long __cdecl CPropListFile::CheckError(unsigned long & __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64 -?CheckError@CPropListFile@@QEAAJAEAKPEAPEAG@Z -; public: static int __cdecl CiStorage::CheckHasIndexTable(unsigned short const * __ptr64) -?CheckHasIndexTable@CiStorage@@SAHPEBG@Z -CiCreateSecurityDescriptor -; int __cdecl CiGetPassword(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64) -?CiGetPassword@@YAHPEBG0PEAG@Z -; void * __ptr64 __cdecl CiNtOpen(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) -?CiNtOpen@@YAPEAXPEBGKKK@Z -; long __cdecl CiNtOpenNoThrow(void * __ptr64 & __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) -?CiNtOpenNoThrow@@YAJAEAPEAXPEBGKKK@Z -; public: void __cdecl CDbColId::Cleanup(void) __ptr64 -?Cleanup@CDbColId@@QEAAXXZ -; protected: void __cdecl CDbCmdTreeNode::CleanupDataValue(void) __ptr64 -?CleanupDataValue@CDbCmdTreeNode@@IEAAXXZ -; public: void __cdecl CCombinedPropertyList::ClearList(void) __ptr64 -?ClearList@CCombinedPropertyList@@QEAAXXZ -; public: void __cdecl CPropertyList::ClearList(void) __ptr64 -?ClearList@CPropertyList@@QEAAXXZ -; public: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::Clone(int)const __ptr64 -?Clone@CDbCmdTreeNode@@QEBAPEAV1@H@Z -; public: virtual long __cdecl CEnumString::Clone(struct IEnumString * __ptr64 * __ptr64) __ptr64 -?Clone@CEnumString@@UEAAJPEAPEAUIEnumString@@@Z -; public: class CNodeRestriction * __ptr64 __cdecl CNodeRestriction::Clone(void)const __ptr64 -?Clone@CNodeRestriction@@QEBAPEAV1@XZ -; public: class COccRestriction * __ptr64 __cdecl COccRestriction::Clone(void)const __ptr64 -?Clone@COccRestriction@@QEBAPEAV1@XZ -; public: class CRestriction * __ptr64 __cdecl CRestriction::Clone(void)const __ptr64 -?Clone@CRestriction@@QEBAPEAV1@XZ -; public: void __cdecl CPhysStorage::Close(void) __ptr64 -?Close@CPhysStorage@@QEAAXXZ -; protected: void __cdecl CPipeClient::Close(void) __ptr64 -?Close@CPipeClient@@IEAAXXZ -; public: void __cdecl COLEPropManager::CPropSetMap::Close(void) __ptr64 -?Close@CPropSetMap@COLEPropManager@@QEAAXXZ -; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecord * __ptr64) __ptr64 -?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecord@@@Z -; public: void __cdecl CPropStoreManager::CloseRecord(class CCompositePropRecordForWrites * __ptr64) __ptr64 -?CloseRecord@CPropStoreManager@@QEAAXPEAVCCompositePropRecordForWrites@@@Z -; public: void __cdecl CRcovStrmAppendTrans::Commit(void) __ptr64 -?Commit@CRcovStrmAppendTrans@@QEAAXXZ -; public: void __cdecl CRcovStrmMDTrans::Commit(void) __ptr64 -?Commit@CRcovStrmMDTrans@@QEAAXXZ -; public: void __cdecl CRcovStrmWriteTrans::Commit(void) __ptr64 -?Commit@CRcovStrmWriteTrans@@QEAAXXZ -; public: static int __cdecl CDriveInfo::ContainsDrive(unsigned short const * __ptr64) -?ContainsDrive@CDriveInfo@@SAHPEBG@Z -; public: void __cdecl CMachineAdmin::CreateSubdirs(unsigned short const * __ptr64) __ptr64 -?CreateSubdirs@CMachineAdmin@@QEAAXPEBG@Z -; public: void __cdecl CRequestClient::DataWriteRead(void * __ptr64,unsigned long,void * __ptr64,unsigned long,unsigned long & __ptr64) __ptr64 -?DataWriteRead@CRequestClient@@QEAAXPEAXK0KAEAK@Z -; void __cdecl DecodeEscapes(unsigned short * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64) -?DecodeEscapes@@YAXPEAGAEAK0@Z -; void __cdecl DecodeHtmlNumeric(unsigned short * __ptr64) -?DecodeHtmlNumeric@@YAXPEAG@Z -; void __cdecl DecodeURLEscapes(unsigned char * __ptr64,unsigned long & __ptr64,unsigned short * __ptr64,unsigned long) -?DecodeURLEscapes@@YAXPEAEAEAKPEAGK@Z -; public: void __cdecl CPropStoreManager::DeleteRecord(unsigned long) __ptr64 -?DeleteRecord@CPropStoreManager@@QEAAXK@Z -; public: void __cdecl CCatalogAdmin::DeleteRegistryParamNoThrow(unsigned short const * __ptr64) __ptr64 -?DeleteRegistryParamNoThrow@CCatalogAdmin@@QEAAXPEBG@Z -; public: static unsigned int __cdecl CiStorage::DetermineDriveType(unsigned short const * __ptr64) -?DetermineDriveType@CiStorage@@SAIPEBG@Z -; public: int __cdecl CMachineAdmin::DisableCI(void) __ptr64 -?DisableCI@CMachineAdmin@@QEAAHXZ -; public: void __cdecl CRegNotify::DisableNotification(void) __ptr64 -?DisableNotification@CRegNotify@@QEAAXXZ -; public: void __cdecl CMetaDataMgr::DisableVPathNotify(void) __ptr64 -?DisableVPathNotify@CMetaDataMgr@@QEAAXXZ -; public: void __cdecl CRequestClient::Disconnect(void) __ptr64 -?Disconnect@CRequestClient@@QEAAXXZ -; public: long __cdecl CCopyRcovObject::DoIt(void) __ptr64 -?DoIt@CCopyRcovObject@@QEAAJXZ -; public: long __cdecl CFilterDaemon::DoUpdates(void) __ptr64 -?DoUpdates@CFilterDaemon@@QEAAJXZ -; public: void __cdecl CFwAsyncWorkItem::Done(void) __ptr64 -?Done@CFwAsyncWorkItem@@QEAAXXZ -; long __cdecl DumpWorkId(unsigned short const * __ptr64,unsigned long,unsigned char * __ptr64,unsigned long & __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) -?DumpWorkId@@YAJPEBGKPEAEAEAK00K@Z -; public: void __cdecl CPidLookupTable::Empty(void) __ptr64 -?Empty@CPidLookupTable@@QEAAXXZ -; public: void __cdecl CPropStoreManager::Empty(void) __ptr64 -?Empty@CPropStoreManager@@QEAAXXZ -; public: void __cdecl CRcovStrmWriteTrans::Empty(void) __ptr64 -?Empty@CRcovStrmWriteTrans@@QEAAXXZ -; public: void __cdecl CSdidLookupTable::Empty(void) __ptr64 -?Empty@CSdidLookupTable@@QEAAXXZ -; public: int __cdecl CMachineAdmin::EnableCI(void) __ptr64 -?EnableCI@CMachineAdmin@@QEAAHXZ -; public: void __cdecl CMetaDataMgr::EnableVPathNotify(class CMetaDataVPathChangeCallBack * __ptr64) __ptr64 -?EnableVPathNotify@CMetaDataMgr@@QEAAXPEAVCMetaDataVPathChangeCallBack@@@Z -; public: void __cdecl CPropStoreManager::EndTransaction(unsigned __int64,int,unsigned long,unsigned long) __ptr64 -?EndTransaction@CPropStoreManager@@QEAAX_KHKK@Z -; public: int __cdecl CWin32RegAccess::Enum(unsigned short * __ptr64,unsigned long) __ptr64 -?Enum@CWin32RegAccess@@QEAAHPEAGK@Z -; public: virtual long __cdecl CEmptyPropertyList::EnumPropInfo(unsigned long,unsigned short const * __ptr64 * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64 -?EnumPropInfo@CEmptyPropertyList@@UEAAJKPEAPEBGPEAPEAUtagDBID@@PEAGPEAI@Z -; public: void __cdecl CMetaDataMgr::EnumVPaths(class CMetaDataCallBack & __ptr64) __ptr64 -?EnumVPaths@CMetaDataMgr@@QEAAXAEAVCMetaDataCallBack@@@Z -; public: void __cdecl CMetaDataMgr::EnumVServers(class CMetaDataVirtualServerCallBack & __ptr64) __ptr64 -?EnumVServers@CMetaDataMgr@@QEAAXAEAVCMetaDataVirtualServerCallBack@@@Z -; public: static void __cdecl CiStorage::EnumerateFilesInDir(unsigned short const * __ptr64,class CEnumString & __ptr64) -?EnumerateFilesInDir@CiStorage@@SAXPEBGAEAVCEnumString@@@Z -; public: int __cdecl CPidLookupTable::EnumerateProperty(class CFullPropSpec & __ptr64,unsigned int & __ptr64) __ptr64 -?EnumerateProperty@CPidLookupTable@@QEAAHAEAVCFullPropSpec@@AEAI@Z -; public: void __cdecl CRegAccess::EnumerateValues(unsigned short * __ptr64,class CRegCallBack & __ptr64) __ptr64 -?EnumerateValues@CRegAccess@@QEAAXPEAGAEAVCRegCallBack@@@Z -; public: int __cdecl CMmStreamConsecBuf::Eof(void) __ptr64 -?Eof@CMmStreamConsecBuf@@QEAAHXZ -; public: int __cdecl CMetaDataMgr::ExtensionHasScriptMap(unsigned short const * __ptr64) __ptr64 -?ExtensionHasScriptMap@CMetaDataMgr@@QEAAHPEBG@Z -; public: virtual long __cdecl CPidConverter::FPSToPROPID(class CFullPropSpec const & __ptr64,unsigned long & __ptr64) __ptr64 -?FPSToPROPID@CPidConverter@@UEAAJAEBVCFullPropSpec@@AEAK@Z -; public: void __cdecl CPropStoreManager::FastInit(class CiStorage * __ptr64) __ptr64 -?FastInit@CPropStoreManager@@QEAAXPEAVCiStorage@@@Z -; public: void __cdecl COLEPropManager::FetchProperty(struct _GUID const & __ptr64,struct tagPROPSPEC const & __ptr64,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64 -?FetchProperty@COLEPropManager@@QEAAXAEBU_GUID@@AEBUtagPROPSPEC@@PEAUtagPROPVARIANT@@PEAI@Z -; public: int __cdecl CKeyArray::FillMax(int) __ptr64 -?FillMax@CKeyArray@@QEAAHH@Z -; public: class CPropEntry const * __ptr64 __cdecl CEmptyPropertyList::Find(class CDbColId const & __ptr64) __ptr64 -?Find@CEmptyPropertyList@@QEAAPEBVCPropEntry@@AEBVCDbColId@@@Z -; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(class CDbColId const & __ptr64) __ptr64 -?Find@CPropertyList@@UEAAPEBVCPropEntry@@AEBVCDbColId@@@Z -; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Find(unsigned short const * __ptr64) __ptr64 -?Find@CPropertyList@@UEAAPEBVCPropEntry@@PEBG@Z -; public: int __cdecl CPidLookupTable::FindPropid(class CFullPropSpec const & __ptr64,unsigned long & __ptr64,int) __ptr64 -?FindPropid@CPidLookupTable@@QEAAHAEBVCFullPropSpec@@AEAKH@Z -; public: void __cdecl CDynStream::Flush(void) __ptr64 -?Flush@CDynStream@@QEAAXXZ -; public: void __cdecl CPhysStorage::Flush(int) __ptr64 -?Flush@CPhysStorage@@QEAAXH@Z -; public: void __cdecl CPropStoreManager::Flush(void) __ptr64 -?Flush@CPropStoreManager@@QEAAXXZ -; public: static void __cdecl CCiOle::FlushIdle(void) -?FlushIdle@CCiOle@@SAXXZ -; public: struct tagDBCOMMANDTREE * __ptr64 __cdecl CTextToTree::FormFullTree(void) __ptr64 -?FormFullTree@CTextToTree@@QEAAPEAUtagDBCOMMANDTREE@@XZ -; class CDbCmdTreeNode * __ptr64 __cdecl FormQueryTree(class CDbCmdTreeNode & __ptr64,class CCatState & __ptr64,struct IColumnMapper * __ptr64,int,int) -?FormQueryTree@@YAPEAVCDbCmdTreeNode@@AEAV1@AEAVCCatState@@PEAUIColumnMapper@@HH@Z -FsCiShutdown -; public: unsigned long __cdecl CRegAccess::Get(unsigned short const * __ptr64) __ptr64 -?Get@CRegAccess@@QEAAKPEBG@Z -; public: void __cdecl CRegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int) __ptr64 -?Get@CRegAccess@@QEAAXPEBGPEAGI@Z -; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64 -?Get@CWin32RegAccess@@QEAAHPEBGAEAK@Z -; public: int __cdecl CWin32RegAccess::Get(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned int,int) __ptr64 -?Get@CWin32RegAccess@@QEAAHPEBGPEAGIH@Z -; public: virtual long __cdecl CPropertyList::GetAllEntries(class CPropEntry * __ptr64 * __ptr64,unsigned long) __ptr64 -?GetAllEntries@CPropertyList@@UEAAJPEAPEAVCPropEntry@@K@Z -; public: short __cdecl CAllocStorageVariant::GetBOOL(unsigned int)const __ptr64 -?GetBOOL@CAllocStorageVariant@@QEBAFI@Z -; public: unsigned long __cdecl CPropStoreManager::GetBackupSize(unsigned long) __ptr64 -?GetBackupSize@CPropStoreManager@@QEAAKK@Z -; public: virtual void __cdecl CMemDeSerStream::GetBlob(unsigned char * __ptr64,unsigned long) __ptr64 -?GetBlob@CMemDeSerStream@@UEAAXPEAEK@Z -; unsigned long __cdecl GetBrowserCodepage(class CWebServer & __ptr64,unsigned long) -?GetBrowserCodepage@@YAKAEAVCWebServer@@K@Z -; public: virtual unsigned char __cdecl CMemDeSerStream::GetByte(void) __ptr64 -?GetByte@CMemDeSerStream@@UEAAEXZ -; public: unsigned short const * __ptr64 __cdecl CCatState::GetCD(void) __ptr64 -?GetCD@CCatState@@QEAAPEBGXZ -; public: int __cdecl CWebServer::GetCGIVariable(char const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64 -?GetCGIVariable@CWebServer@@QEAAHPEBDAEAV?$XArray@G@@AEAK@Z -; public: int __cdecl CWebServer::GetCGIVariableW(unsigned short const * __ptr64,class XArray<unsigned short> & __ptr64,unsigned long & __ptr64) __ptr64 -?GetCGIVariableW@CWebServer@@QEAAHPEBGAEAV?$XArray@G@@AEAK@Z -; public: struct _GUID __cdecl CAllocStorageVariant::GetCLSID(unsigned int)const __ptr64 -?GetCLSID@CAllocStorageVariant@@QEBA?AU_GUID@@I@Z -; public: union tagCY __cdecl CAllocStorageVariant::GetCY(unsigned int)const __ptr64 -?GetCY@CAllocStorageVariant@@QEBA?ATtagCY@@I@Z -; public: unsigned short const * __ptr64 __cdecl CCatState::GetCategory(unsigned int)const __ptr64 -?GetCategory@CCatState@@QEBAPEBGI@Z -; public: virtual void __cdecl CMemDeSerStream::GetChar(char * __ptr64,unsigned long) __ptr64 -?GetChar@CMemDeSerStream@@UEAAXPEADK@Z -; public: unsigned short const * __ptr64 __cdecl CCatState::GetColumn(unsigned int)const __ptr64 -?GetColumn@CCatState@@QEBAPEBGI@Z -; public: unsigned short __cdecl CQueryScanner::GetCommandChar(void) __ptr64 -?GetCommandChar@CQueryScanner@@QEAAGXZ -; public: double __cdecl CAllocStorageVariant::GetDATE(unsigned int)const __ptr64 -?GetDATE@CAllocStorageVariant@@QEBANI@Z -; public: int __cdecl CCatalogAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64 -?GetDWORDParam@CCatalogAdmin@@QEAAHPEBGAEAK@Z -; public: int __cdecl CMachineAdmin::GetDWORDParam(unsigned short const * __ptr64,unsigned long & __ptr64) __ptr64 -?GetDWORDParam@CMachineAdmin@@QEAAHPEBGAEAK@Z -; public: void __cdecl CDriveInfo::GetDiskSpace(__int64 & __ptr64,__int64 & __ptr64) __ptr64 -?GetDiskSpace@CDriveInfo@@QEAAXAEA_J0@Z -; public: virtual double __cdecl CMemDeSerStream::GetDouble(void) __ptr64 -?GetDouble@CMemDeSerStream@@UEAANXZ -; public: static void __cdecl CDriveInfo::GetDrive(unsigned short const * __ptr64,unsigned short * __ptr64) -?GetDrive@CDriveInfo@@SAXPEBGPEAG@Z -; public: unsigned char * __ptr64 __cdecl CGenericCiProxy::GetEntryBuffer(unsigned long & __ptr64) __ptr64 -?GetEntryBuffer@CGenericCiProxy@@QEAAPEAEAEAK@Z -; public: struct _FILETIME __cdecl CAllocStorageVariant::GetFILETIME(unsigned int)const __ptr64 -?GetFILETIME@CAllocStorageVariant@@QEBA?AU_FILETIME@@I@Z -; public: int __cdecl CPathParser::GetFileName(unsigned short * __ptr64,unsigned long & __ptr64)const __ptr64 -?GetFileName@CPathParser@@QEBAHPEAGAEAK@Z -; public: enum CDriveInfo::eFileSystem __cdecl CDriveInfo::GetFileSystem(int) __ptr64 -?GetFileSystem@CDriveInfo@@QEAA?AW4eFileSystem@1@H@Z -; public: virtual float __cdecl CMemDeSerStream::GetFloat(void) __ptr64 -?GetFloat@CMemDeSerStream@@UEAAMXZ -; public: virtual void __cdecl CMemDeSerStream::GetGUID(struct _GUID & __ptr64) __ptr64 -?GetGUID@CMemDeSerStream@@UEAAXAEAU_GUID@@@Z -; class CPropListFile * __ptr64 __cdecl GetGlobalPropListFile(void) -?GetGlobalPropListFile@@YAPEAVCPropListFile@@XZ -; class CStaticPropertyList * __ptr64 __cdecl GetGlobalStaticPropertyList(void) -?GetGlobalStaticPropertyList@@YAPEAVCStaticPropertyList@@XZ -; public: short __cdecl CAllocStorageVariant::GetI2(unsigned int)const __ptr64 -?GetI2@CAllocStorageVariant@@QEBAFI@Z -; public: long __cdecl CAllocStorageVariant::GetI4(unsigned int)const __ptr64 -?GetI4@CAllocStorageVariant@@QEBAJI@Z -; public: union _LARGE_INTEGER __cdecl CAllocStorageVariant::GetI8(unsigned int)const __ptr64 -?GetI8@CAllocStorageVariant@@QEBA?AT_LARGE_INTEGER@@I@Z -; unsigned long __cdecl GetLCIDFromString(unsigned short * __ptr64) -?GetLCIDFromString@@YAKPEAG@Z -; public: char * __ptr64 __cdecl CAllocStorageVariant::GetLPSTR(unsigned int)const __ptr64 -?GetLPSTR@CAllocStorageVariant@@QEBAPEADI@Z -; public: unsigned short * __ptr64 __cdecl CAllocStorageVariant::GetLPWSTR(unsigned int)const __ptr64 -?GetLPWSTR@CAllocStorageVariant@@QEBAPEAGI@Z -; public: unsigned short const * __ptr64 __cdecl CCatalogAdmin::GetLocation(void) __ptr64 -?GetLocation@CCatalogAdmin@@QEAAPEBGXZ -; public: virtual long __cdecl CMemDeSerStream::GetLong(void) __ptr64 -?GetLong@CMemDeSerStream@@UEAAJXZ -; public: int __cdecl CQueryScanner::GetNumber(unsigned long & __ptr64,int & __ptr64) __ptr64 -?GetNumber@CQueryScanner@@QEAAHAEAKAEAH@Z -; public: int __cdecl CQueryScanner::GetNumber(double & __ptr64) __ptr64 -?GetNumber@CQueryScanner@@QEAAHAEAN@Z -; public: int __cdecl CQueryScanner::GetNumber(__int64 & __ptr64,int & __ptr64) __ptr64 -?GetNumber@CQueryScanner@@QEAAHAEA_JAEAH@Z -; public: int __cdecl CQueryScanner::GetNumber(unsigned __int64 & __ptr64,int & __ptr64) __ptr64 -?GetNumber@CQueryScanner@@QEAAHAEA_KAEAH@Z -; public: void __cdecl CKeyDeComp::GetOffset(struct BitOffset & __ptr64) __ptr64 -?GetOffset@CKeyDeComp@@QEAAXAEAUBitOffset@@@Z -; long __cdecl GetOleDBErrorInfo(struct IUnknown * __ptr64,struct _GUID const & __ptr64,unsigned long,unsigned int,struct tagERRORINFO * __ptr64,struct IErrorInfo * __ptr64 * __ptr64) -?GetOleDBErrorInfo@@YAJPEAUIUnknown@@AEBU_GUID@@KIPEAUtagERRORINFO@@PEAPEAUIErrorInfo@@@Z -; long __cdecl GetOleError(class CException & __ptr64) -?GetOleError@@YAJAEAVCException@@@Z -; public: unsigned long __cdecl CWebServer::GetPhysicalPath(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long,unsigned long) __ptr64 -?GetPhysicalPath@CWebServer@@QEAAKPEBGPEAGKK@Z -; public: int __cdecl CEmptyPropertyList::GetPropInfo(class CDbColId const & __ptr64,unsigned short const * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64 -?GetPropInfo@CEmptyPropertyList@@QEAAHAEBVCDbColId@@PEAPEBGPEAGPEAI@Z -; public: int __cdecl CEmptyPropertyList::GetPropInfo(unsigned short const * __ptr64,class CDbColId * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64 -?GetPropInfo@CEmptyPropertyList@@QEAAHPEBGPEAPEAVCDbColId@@PEAGPEAI@Z -; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromId(struct tagDBID const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64 -?GetPropInfoFromId@CEmptyPropertyList@@UEAAJPEBUtagDBID@@PEAPEAGPEAGPEAI@Z -; public: virtual long __cdecl CEmptyPropertyList::GetPropInfoFromName(unsigned short const * __ptr64,struct tagDBID * __ptr64 * __ptr64,unsigned short * __ptr64,unsigned int * __ptr64) __ptr64 -?GetPropInfoFromName@CEmptyPropertyList@@UEAAJPEBGPEAPEAUtagDBID@@PEAGPEAI@Z -; public: static unsigned short __cdecl CEmptyPropertyList::GetPropType(unsigned int) -?GetPropType@CEmptyPropertyList@@SAGI@Z -; public: static unsigned int __cdecl CEmptyPropertyList::GetPropTypeCount(void) -?GetPropTypeCount@CEmptyPropertyList@@SAIXZ -; public: static unsigned short const * __ptr64 __cdecl CEmptyPropertyList::GetPropTypeName(unsigned int) -?GetPropTypeName@CEmptyPropertyList@@SAPEBGI@Z -; public: virtual long __cdecl CDbProperties::GetProperties(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPSET * __ptr64 * __ptr64) __ptr64 -?GetProperties@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPSET@@@Z -; public: void __cdecl CGetDbProps::GetProperties(struct IDBProperties * __ptr64,unsigned long) __ptr64 -?GetProperties@CGetDbProps@@QEAAXPEAUIDBProperties@@K@Z -; public: virtual long __cdecl CDbProperties::GetPropertyInfo(unsigned long,struct tagDBPROPIDSET const * __ptr64 const,unsigned long * __ptr64,struct tagDBPROPINFOSET * __ptr64 * __ptr64,unsigned short * __ptr64 * __ptr64) __ptr64 -?GetPropertyInfo@CDbProperties@@UEAAJKQEBUtagDBPROPIDSET@@PEAKPEAPEAUtagDBPROPINFOSET@@PEAPEAG@Z -; public: float __cdecl CAllocStorageVariant::GetR4(unsigned int)const __ptr64 -?GetR4@CAllocStorageVariant@@QEBAMI@Z -; public: double __cdecl CAllocStorageVariant::GetR8(unsigned int)const __ptr64 -?GetR8@CAllocStorageVariant@@QEBANI@Z -; public: int __cdecl CMachineAdmin::GetSZParam(unsigned short const * __ptr64,unsigned short * __ptr64,unsigned long) __ptr64 -?GetSZParam@CMachineAdmin@@QEAAHPEBGPEAGK@Z -; long __cdecl GetScodeError(class CException & __ptr64) -?GetScodeError@@YAJAEAVCException@@@Z -; int __cdecl GetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64) -?GetSecret@@YAHPEBG0PEAPEAGPEAK@Z -; public: unsigned long __cdecl CDriveInfo::GetSectorSize(void) __ptr64 -?GetSectorSize@CDriveInfo@@QEAAKXZ -; public: void __cdecl CCatState::GetSortProp(unsigned int,unsigned short const * __ptr64 * __ptr64,enum SORTDIR * __ptr64)const __ptr64 -?GetSortProp@CCatState@@QEBAXIPEAPEBGPEAW4SORTDIR@@@Z -; void __cdecl GetStackTrace(char * __ptr64,unsigned long) -?GetStackTrace@@YAXPEADK@Z -; public: unsigned char const * __ptr64 __cdecl CGenericCiProxy::GetStartupData(struct _GUID & __ptr64,unsigned long & __ptr64) __ptr64 -?GetStartupData@CGenericCiProxy@@QEAAPEBEAEAU_GUID@@AEAK@Z -; public: class PStorage & __ptr64 __cdecl CPropStoreManager::GetStorage(unsigned long) __ptr64 -?GetStorage@CPropStoreManager@@QEAAAEAVPStorage@@K@Z -; public: unsigned short * __ptr64 __cdecl CKey::GetStr(void)const __ptr64 -?GetStr@CKey@@QEBAPEAGXZ -; public: unsigned short * __ptr64 __cdecl CKeyBuf::GetStr(void)const __ptr64 -?GetStr@CKeyBuf@@QEBAPEAGXZ -; public: virtual char * __ptr64 __cdecl CMemDeSerStream::GetString(void) __ptr64 -?GetString@CMemDeSerStream@@UEAAPEADXZ -; class CDbRestriction * __ptr64 __cdecl GetStringDbRestriction(unsigned short const * __ptr64,unsigned long,struct IColumnMapper * __ptr64,unsigned long) -?GetStringDbRestriction@@YAPEAVCDbRestriction@@PEBGKPEAUIColumnMapper@@K@Z -; void __cdecl GetStringFromLCID(unsigned long,unsigned short * __ptr64) -?GetStringFromLCID@@YAXKPEAG@Z -; public: unsigned long __cdecl CPropStoreManager::GetTotalSizeInKB(void) __ptr64 -?GetTotalSizeInKB@CPropStoreManager@@QEAAKXZ -; public: unsigned long __cdecl CPropertyStore::GetTotalSizeInKB(void) __ptr64 -?GetTotalSizeInKB@CPropertyStore@@QEAAKXZ -; public: virtual unsigned long __cdecl CMemDeSerStream::GetULong(void) __ptr64 -?GetULong@CMemDeSerStream@@UEAAKXZ -; public: virtual unsigned short __cdecl CMemDeSerStream::GetUShort(void) __ptr64 -?GetUShort@CMemDeSerStream@@UEAAGXZ -; public: void __cdecl CIndexTable::GetUserHdrInfo(unsigned int & __ptr64,int & __ptr64) __ptr64 -?GetUserHdrInfo@CIndexTable@@QEAAXAEAIAEAH@Z -; public: unsigned long __cdecl CMetaDataMgr::GetVPathAccess(unsigned short const * __ptr64) __ptr64 -?GetVPathAccess@CMetaDataMgr@@QEAAKPEBG@Z -; public: unsigned long __cdecl CMetaDataMgr::GetVPathAuthorization(unsigned short const * __ptr64) __ptr64 -?GetVPathAuthorization@CMetaDataMgr@@QEAAKPEBG@Z -; public: unsigned long __cdecl CMetaDataMgr::GetVPathSSLAccess(unsigned short const * __ptr64) __ptr64 -?GetVPathSSLAccess@CMetaDataMgr@@QEAAKPEBG@Z -; public: unsigned short const * __ptr64 __cdecl CDriveInfo::GetVolumeName(int) __ptr64 -?GetVolumeName@CDriveInfo@@QEAAPEBGH@Z -; public: virtual void __cdecl CMemDeSerStream::GetWChar(unsigned short * __ptr64,unsigned long) __ptr64 -?GetWChar@CMemDeSerStream@@UEAAXPEAGK@Z -; public: virtual unsigned short * __ptr64 __cdecl CMemDeSerStream::GetWString(void) __ptr64 -?GetWString@CMemDeSerStream@@UEAAPEAGXZ -; public: long __cdecl CDbCmdTreeNode::GetWeight(void)const __ptr64 -?GetWeight@CDbCmdTreeNode@@QEBAJXZ -; public: void __cdecl CDynStream::Grow(class PStorage & __ptr64,unsigned long) __ptr64 -?Grow@CDynStream@@QEAAXAEAVPStorage@@K@Z -; private: void __cdecl CVirtualString::GrowBuffer(unsigned long) __ptr64 -?GrowBuffer@CVirtualString@@AEAAXK@Z -; void __cdecl HTMLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long) -?HTMLEscapeW@@YAXPEBGAEAVCVirtualString@@K@Z -; private: void __cdecl CImpersonateClient::Impersonate(void) __ptr64 -?Impersonate@CImpersonateClient@@AEAAXXZ -; public: void __cdecl CFileMapView::Init(void) __ptr64 -?Init@CFileMapView@@QEAAXXZ -; public: void __cdecl CMmStreamConsecBuf::Init(class PMmStream * __ptr64) __ptr64 -?Init@CMmStreamConsecBuf@@QEAAXPEAVPMmStream@@@Z -; public: int __cdecl CPidLookupTable::Init(class PRcovStorageObj * __ptr64) __ptr64 -?Init@CPidLookupTable@@QEAAHPEAVPRcovStorageObj@@@Z -; public: void __cdecl CRcovStorageHdr::Init(unsigned long) __ptr64 -?Init@CRcovStorageHdr@@QEAAXK@Z -; public: void __cdecl CRegChangeEvent::Init(void) __ptr64 -?Init@CRegChangeEvent@@QEAAXXZ -; public: int __cdecl CSdidLookupTable::Init(class CiStorage * __ptr64) __ptr64 -?Init@CSdidLookupTable@@QEAAHPEAVCiStorage@@@Z -; public: virtual void __cdecl CPropertyList::InitIterator(void) __ptr64 -?InitIterator@CPropertyList@@UEAAXXZ -; public: void __cdecl CImpersonationTokenCache::Initialize(unsigned short const * __ptr64,int,int,int,unsigned long,unsigned long,unsigned long) __ptr64 -?Initialize@CImpersonationTokenCache@@QEAAXPEBGHHHKKK@Z -; public: void __cdecl CDynStream::InitializeForRead(void) __ptr64 -?InitializeForRead@CDynStream@@QEAAXXZ -; public: void __cdecl CDynStream::InitializeForWrite(unsigned long) __ptr64 -?InitializeForWrite@CDynStream@@QEAAXK@Z -; protected: void __cdecl CDbCmdTreeNode::InsertChild(class CDbCmdTreeNode * __ptr64) __ptr64 -?InsertChild@CDbCmdTreeNode@@IEAAXPEAV1@@Z -; public: int __cdecl CMachineAdmin::IsCIEnabled(void) __ptr64 -?IsCIEnabled@CMachineAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::IsCIPaused(void) __ptr64 -?IsCIPaused@CMachineAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::IsCIStarted(void) __ptr64 -?IsCIStarted@CMachineAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::IsCIStopped(void) __ptr64 -?IsCIStopped@CMachineAdmin@@QEAAHXZ -; public: int __cdecl CCatalogAdmin::IsCatalogInactive(void) __ptr64 -?IsCatalogInactive@CCatalogAdmin@@QEAAHXZ -; int __cdecl IsDirectoryWritable(unsigned short const * __ptr64) -?IsDirectoryWritable@@YAHPEBG@Z -; public: static int __cdecl CMetaDataMgr::IsIISAdminUp(int & __ptr64) -?IsIISAdminUp@CMetaDataMgr@@SAHAEAH@Z -; public: static int __cdecl CImpersonateSystem::IsImpersonated(void) -?IsImpersonated@CImpersonateSystem@@SAHXZ -; public: int __cdecl CRestriction::IsLeaf(void)const __ptr64 -?IsLeaf@CRestriction@@QEBAHXZ -; int __cdecl IsNullPointerVariant(struct tagPROPVARIANT * __ptr64) -?IsNullPointerVariant@@YAHPEAUtagPROPVARIANT@@@Z -; public: int __cdecl CCatalogAdmin::IsPaused(void) __ptr64 -?IsPaused@CCatalogAdmin@@QEAAHXZ -; public: static int __cdecl CImpersonateSystem::IsRunningAsSystem(void) -?IsRunningAsSystem@CImpersonateSystem@@SAHXZ -; public: int __cdecl CDriveInfo::IsSameDrive(unsigned short const * __ptr64) __ptr64 -?IsSameDrive@CDriveInfo@@QEAAHPEBG@Z -; long __cdecl IsScopeValid(unsigned short const * __ptr64,unsigned int,int) -?IsScopeValid@@YAJPEBGIH@Z -; public: int __cdecl CCatalogAdmin::IsStarted(void) __ptr64 -?IsStarted@CCatalogAdmin@@QEAAHXZ -; public: int __cdecl CCatalogAdmin::IsStopped(void) __ptr64 -?IsStopped@CCatalogAdmin@@QEAAHXZ -; public: int __cdecl CAllocStorageVariant::IsValid(void)const __ptr64 -?IsValid@CAllocStorageVariant@@QEBAHXZ -; public: int __cdecl CNodeRestriction::IsValid(void)const __ptr64 -?IsValid@CNodeRestriction@@QEBAHXZ -; public: int __cdecl COccRestriction::IsValid(void)const __ptr64 -?IsValid@COccRestriction@@QEBAHXZ -; public: int __cdecl CRestriction::IsValid(void)const __ptr64 -?IsValid@CRestriction@@QEBAHXZ -; public: int __cdecl CFilterDaemon::IsWaitingForDocument(void) __ptr64 -?IsWaitingForDocument@CFilterDaemon@@QEAAHXZ -; public: int __cdecl CDriveInfo::IsWriteProtected(void) __ptr64 -?IsWriteProtected@CDriveInfo@@QEAAHXZ -; public: void __cdecl CLocalGlobalPropertyList::Load(unsigned short const * __ptr64 const) __ptr64 -?Load@CLocalGlobalPropertyList@@QEAAXQEBG@Z -; unsigned long __cdecl LocaleToCodepage(unsigned long) -?LocaleToCodepage@@YAKK@Z -; private: unsigned long __cdecl CPropertyStore::LokNewWorkId(unsigned long,int,int) __ptr64 -?LokNewWorkId@CPropertyStore@@AEAAKKHH@Z -; public: int __cdecl CCatStateInfo::LokUpdate(void) __ptr64 -?LokUpdate@CCatStateInfo@@QEAAHXZ -; public: void __cdecl CPropStoreManager::LongInit(int & __ptr64,unsigned long & __ptr64,void (__cdecl*)(unsigned long,int,void const * __ptr64),void const * __ptr64) __ptr64 -?LongInit@CPropStoreManager@@QEAAXAEAHAEAKP6AXKHPEBX@Z2@Z -; private: unsigned int __cdecl CPropStoreInfo::Lookup(unsigned long) __ptr64 -?Lookup@CPropStoreInfo@@AEAAIK@Z -; public: unsigned long __cdecl CSdidLookupTable::LookupSDID(void * __ptr64,unsigned long) __ptr64 -?LookupSDID@CSdidLookupTable@@QEAAKPEAXK@Z -; public: void __cdecl CPhysStorage::MakeBackupCopy(class CPhysStorage & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64 -?MakeBackupCopy@CPhysStorage@@QEAAXAEAV1@AEAVPSaveProgressTracker@@@Z -; public: void __cdecl CPidLookupTable::MakeBackupCopy(class PRcovStorageObj & __ptr64,class PSaveProgressTracker & __ptr64) __ptr64 -?MakeBackupCopy@CPidLookupTable@@QEAAXAEAVPRcovStorageObj@@AEAVPSaveProgressTracker@@@Z -; public: void __cdecl CPropStoreManager::MakeBackupCopy(struct IProgressNotify * __ptr64,int & __ptr64,class CiStorage & __ptr64,struct ICiEnumWorkids * __ptr64,struct IEnumString * __ptr64 * __ptr64) __ptr64 -?MakeBackupCopy@CPropStoreManager@@QEAAXPEAUIProgressNotify@@AEAHAEAVCiStorage@@PEAUICiEnumWorkids@@PEAPEAUIEnumString@@@Z -; long __cdecl MakeICommand(struct IUnknown * __ptr64 * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64) -?MakeICommand@@YAJPEAPEAUIUnknown@@PEBG1PEAU1@@Z -; long __cdecl MakeISearch(struct ISearchQueryHits * __ptr64 * __ptr64,class CDbRestriction * __ptr64,unsigned short const * __ptr64) -?MakeISearch@@YAJPEAPEAUISearchQueryHits@@PEAVCDbRestriction@@PEBG@Z -; long __cdecl MakeLocalICommand(struct IUnknown * __ptr64 * __ptr64,struct ICiCDocStore * __ptr64,struct IUnknown * __ptr64) -?MakeLocalICommand@@YAJPEAPEAUIUnknown@@PEAUICiCDocStore@@PEAU1@@Z -; long __cdecl MakeMetadataICommand(struct IUnknown * __ptr64 * __ptr64,enum CiMetaData,unsigned short const * __ptr64,unsigned short const * __ptr64,struct IUnknown * __ptr64) -?MakeMetadataICommand@@YAJPEAPEAUIUnknown@@W4CiMetaData@@PEBG2PEAU1@@Z -; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64) __ptr64 -?MakePath@CFullPath@@QEAAXPEBG@Z -; public: void __cdecl CFullPath::MakePath(unsigned short const * __ptr64,unsigned int) __ptr64 -?MakePath@CFullPath@@QEAAXPEBGI@Z -; private: void __cdecl CImpersonateSystem::MakePrivileged(void) __ptr64 -?MakePrivileged@CImpersonateSystem@@AEAAXXZ -; public: void __cdecl CMmStreamConsecBuf::Map(unsigned long) __ptr64 -?Map@CMmStreamConsecBuf@@QEAAXK@Z -; public: int __cdecl CDynStream::MarkDirty(void) __ptr64 -?MarkDirty@CDynStream@@QEAAHXZ -; public: void __cdecl CBaseStorageVariant::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CBaseStorageVariant@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CContentRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CContentRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CDbCmdTreeNode::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CDbCmdTreeNode@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CFullPropSpec::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CFullPropSpec@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CNatLanguageRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CNatLanguageRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CNodeRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CNodeRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CNotRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CNotRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CPropNameArray::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CPropNameArray@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CPropertyRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CPropertyRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CRestriction@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CVectorRestriction::Marshall(class PSerStream & __ptr64)const __ptr64 -?Marshall@CVectorRestriction@@QEBAXAEAVPSerStream@@@Z -; public: int __cdecl CBufferCache::MinPageInUse(unsigned long & __ptr64) __ptr64 -?MinPageInUse@CBufferCache@@QEAAHAEAK@Z -; public: int __cdecl CPhysStorage::MinPageInUse(unsigned long & __ptr64) __ptr64 -?MinPageInUse@CPhysStorage@@QEAAHAEAK@Z -; unsigned long __cdecl MultiByteToXArrayWideChar(unsigned char const * __ptr64,unsigned long,unsigned int,class XArray<unsigned short> & __ptr64) -?MultiByteToXArrayWideChar@@YAKPEBEKIAEAV?$XArray@G@@@Z -; unsigned __int64 __cdecl My_wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int) -?My_wcstoui64@@YA_KPEBGPEAPEAGH@Z -; public: unsigned long __cdecl CPidRemapper::NameToReal(class CFullPropSpec const * __ptr64) __ptr64 -?NameToReal@CPidRemapper@@QEAAKPEBVCFullPropSpec@@@Z -; public: static struct IStemmer * __ptr64 __cdecl CCiOle::NewStemmer(struct _GUID const & __ptr64) -?NewStemmer@CCiOle@@SAPEAUIStemmer@@AEBU_GUID@@@Z -; public: static struct IWordBreaker * __ptr64 __cdecl CCiOle::NewWordBreaker(struct _GUID const & __ptr64) -?NewWordBreaker@CCiOle@@SAPEAUIWordBreaker@@AEBU_GUID@@@Z -; public: int __cdecl CCatalogEnum::Next(void) __ptr64 -?Next@CCatalogEnum@@QEAAHXZ -; public: virtual long __cdecl CEnumString::Next(unsigned long,unsigned short * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64 -?Next@CEnumString@@UEAAJKPEAPEAGPEAK@Z -; public: virtual long __cdecl CEnumWorkid::Next(unsigned long,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64 -?Next@CEnumWorkid@@UEAAJKPEAK0@Z -; public: virtual class CPropEntry const * __ptr64 __cdecl CPropertyList::Next(void) __ptr64 -?Next@CPropertyList@@UEAAPEBVCPropEntry@@XZ -; public: int __cdecl CScopeEnum::Next(void) __ptr64 -?Next@CScopeEnum@@QEAAHXZ -; public: unsigned long __cdecl CPropertyStoreWids::NextWorkId(void) __ptr64 -?NextWorkId@CPropertyStoreWids@@QEAAKXZ -; public: unsigned int __cdecl CCatState::NumberOfColumns(void)const __ptr64 -?NumberOfColumns@CCatState@@QEBAIXZ -; public: unsigned int __cdecl CCatState::NumberOfSortProps(void)const __ptr64 -?NumberOfSortProps@CCatState@@QEBAIXZ -; public: void __cdecl CMmStream::Open(unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long,int) __ptr64 -?Open@CMmStream@@QEAAXPEBGKKKKH@Z -; public: int __cdecl COLEPropManager::Open(class CFunnyPath const & __ptr64) __ptr64 -?Open@COLEPropManager@@QEAAHAEBVCFunnyPath@@@Z -; public: void __cdecl CMmStream::OpenExclusive(unsigned short * __ptr64,int) __ptr64 -?OpenExclusive@CMmStream@@QEAAXPEAGH@Z -; struct _iobuf * __ptr64 __cdecl OpenFileFromPath(unsigned short const * __ptr64) -?OpenFileFromPath@@YAPEAU_iobuf@@PEBG@Z -; public: class CCompositePropRecord * __ptr64 __cdecl CPropStoreManager::OpenRecord(unsigned long,unsigned char * __ptr64) __ptr64 -?OpenRecord@CPropStoreManager@@QEAAPEAVCCompositePropRecord@@KPEAE@Z -; public: class CCompositePropRecordForWrites * __ptr64 __cdecl CPropStoreManager::OpenRecordForWrites(unsigned long,unsigned char * __ptr64) __ptr64 -?OpenRecordForWrites@CPropStoreManager@@QEAAPEAVCCompositePropRecordForWrites@@KPEAE@Z -; long __cdecl ParseCatalogURL(unsigned short const * __ptr64,class XPtrST<unsigned short> & __ptr64,class XPtrST<unsigned short> & __ptr64) -?ParseCatalogURL@@YAJPEBGAEAV?$XPtrST@G@@1@Z -; public: class CRestriction * __ptr64 __cdecl CParseCommandTree::ParseExpression(class CDbCmdTreeNode * __ptr64) __ptr64 -?ParseExpression@CParseCommandTree@@QEAAPEAVCRestriction@@PEAVCDbCmdTreeNode@@@Z -; public: static void __cdecl CPropertyList::ParseOneLine(class CQueryScanner & __ptr64,int,class XPtr<class CPropEntry> & __ptr64) -?ParseOneLine@CPropertyList@@SAXAEAVCQueryScanner@@HAEAV?$XPtr@VCPropEntry@@@@@Z -; public: class CDbRestriction * __ptr64 __cdecl CQueryParser::ParseQueryPhrase(void) __ptr64 -?ParseQueryPhrase@CQueryParser@@QEAAPEAVCDbRestriction@@XZ -; class CDbColumns * __ptr64 __cdecl ParseStringColumns(unsigned short const * __ptr64,struct IColumnMapper * __ptr64,unsigned long,class PVariableSet * __ptr64,class CDynArray<unsigned short> * __ptr64) -?ParseStringColumns@@YAPEAVCDbColumns@@PEBGPEAUIColumnMapper@@KPEAVPVariableSet@@PEAV?$CDynArray@G@@@Z -; public: int __cdecl CCatalogAdmin::Pause(void) __ptr64 -?Pause@CCatalogAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::PauseCI(void) __ptr64 -?PauseCI@CMachineAdmin@@QEAAHXZ -; public: virtual unsigned long __cdecl CMemDeSerStream::PeekULong(void) __ptr64 -?PeekULong@CMemDeSerStream@@UEAAKXZ -; public: unsigned long __cdecl CPidMapper::PidToRealPid(unsigned long) __ptr64 -?PidToRealPid@CPidMapper@@QEAAKK@Z -; public: unsigned long __cdecl CStandardPropMapper::PropertyToPropId(class CFullPropSpec const & __ptr64,int) __ptr64 -?PropertyToPropId@CStandardPropMapper@@QEAAKAEBVCFullPropSpec@@H@Z -; public: virtual long __cdecl CFwPropertyMapper::PropertyToPropid(struct tagFULLPROPSPEC const * __ptr64,int,unsigned long * __ptr64) __ptr64 -?PropertyToPropid@CFwPropertyMapper@@UEAAJPEBUtagFULLPROPSPEC@@HPEAK@Z -; public: void __cdecl CValueNormalizer::PutMaxValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64 -?PutMaxValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z -; public: void __cdecl CValueNormalizer::PutMinValue(unsigned long,unsigned long & __ptr64,enum VARENUM) __ptr64 -?PutMinValue@CValueNormalizer@@QEAAXKAEAKW4VARENUM@@@Z -; public: void __cdecl CValueNormalizer::PutValue(unsigned long,unsigned long & __ptr64,class CStorageVariant const & __ptr64) __ptr64 -?PutValue@CValueNormalizer@@QEAAXKAEAKAEBVCStorageVariant@@@Z -; void __cdecl PutWString(class PSerStream & __ptr64,unsigned short const * __ptr64) -?PutWString@@YAXAEAVPSerStream@@PEBG@Z -; private: class CDbRestriction * __ptr64 __cdecl CQueryParser::Query(class CDbNodeRestriction * __ptr64) __ptr64 -?Query@CQueryParser@@AEAAPEAVCDbRestriction@@PEAVCDbNodeRestriction@@@Z -; public: class CCatalogAdmin * __ptr64 __cdecl CCatalogEnum::QueryCatalogAdmin(void) __ptr64 -?QueryCatalogAdmin@CCatalogEnum@@QEAAPEAVCCatalogAdmin@@XZ -; public: class CCatalogAdmin * __ptr64 __cdecl CMachineAdmin::QueryCatalogAdmin(unsigned short const * __ptr64) __ptr64 -?QueryCatalogAdmin@CMachineAdmin@@QEAAPEAVCCatalogAdmin@@PEBG@Z -; public: class CCatalogEnum * __ptr64 __cdecl CMachineAdmin::QueryCatalogEnum(void) __ptr64 -?QueryCatalogEnum@CMachineAdmin@@QEAAPEAVCCatalogEnum@@XZ -; public: virtual long __cdecl CDbProperties::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CDbProperties@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: virtual long __cdecl CEmptyPropertyList::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CEmptyPropertyList@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: virtual long __cdecl CEnumString::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CEnumString@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: virtual long __cdecl CEnumWorkid::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CEnumWorkid@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: virtual long __cdecl CFwPropertyMapper::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CFwPropertyMapper@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: virtual long __cdecl CQueryUnknown::QueryInterface(struct _GUID const & __ptr64,void * __ptr64 * __ptr64) __ptr64 -?QueryInterface@CQueryUnknown@@UEAAJAEBU_GUID@@PEAPEAX@Z -; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryPidLookupTable(unsigned long) __ptr64 -?QueryPidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z -; public: class CScopeAdmin * __ptr64 __cdecl CCatalogAdmin::QueryScopeAdmin(unsigned short const * __ptr64) __ptr64 -?QueryScopeAdmin@CCatalogAdmin@@QEAAPEAVCScopeAdmin@@PEBG@Z -; public: class CScopeAdmin * __ptr64 __cdecl CScopeEnum::QueryScopeAdmin(void) __ptr64 -?QueryScopeAdmin@CScopeEnum@@QEAAPEAVCScopeAdmin@@XZ -; public: class CScopeEnum * __ptr64 __cdecl CCatalogAdmin::QueryScopeEnum(void) __ptr64 -?QueryScopeEnum@CCatalogAdmin@@QEAAPEAVCScopeEnum@@XZ -; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryScopeList(unsigned long) __ptr64 -?QueryScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z -; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QuerySdidLookupTable(unsigned long) __ptr64 -?QuerySdidLookupTable@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z -; public: class PRcovStorageObj * __ptr64 __cdecl CiStorage::QueryVirtualScopeList(unsigned long) __ptr64 -?QueryVirtualScopeList@CiStorage@@QEAAPEAVPRcovStorageObj@@K@Z -; public: void __cdecl CPidRemapper::ReBuild(class CPidMapper const & __ptr64) __ptr64 -?ReBuild@CPidRemapper@@QEAAXAEBVCPidMapper@@@Z -; public: void __cdecl CQueryUnknown::ReInit(unsigned long,class CRowset * __ptr64 * __ptr64) __ptr64 -?ReInit@CQueryUnknown@@QEAAXKPEAPEAVCRowset@@@Z -; public: void __cdecl CImpersonationTokenCache::ReInitializeIISScopes(void) __ptr64 -?ReInitializeIISScopes@CImpersonationTokenCache@@QEAAXXZ -; private: virtual void __cdecl CPhysIndex::ReOpenStream(void) __ptr64 -?ReOpenStream@CPhysIndex@@EEAAXXZ -; public: unsigned long __cdecl CDynStream::Read(void * __ptr64,unsigned long) __ptr64 -?Read@CDynStream@@QEAAKPEAXK@Z -; public: unsigned long __cdecl CRcovStrmTrans::Read(void * __ptr64,unsigned long) __ptr64 -?Read@CRcovStrmTrans@@QEAAKPEAXK@Z -; public: unsigned long __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned long) __ptr64 -?Read@CRegAccess@@QEAAKPEBGK@Z -; public: unsigned short * __ptr64 __cdecl CRegAccess::Read(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64 -?Read@CRegAccess@@QEAAPEAGPEBG0@Z -; public: int __cdecl CPropStoreManager::ReadPrimaryProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64 -?ReadPrimaryProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z -; public: int __cdecl COLEPropManager::ReadProperty(class CFullPropSpec const & __ptr64,struct tagPROPVARIANT & __ptr64) __ptr64 -?ReadProperty@COLEPropManager@@QEAAHAEBVCFullPropSpec@@AEAUtagPROPVARIANT@@@Z -; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@@Z -; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KAEAUtagPROPVARIANT@@PEAEPEAI@Z -; public: int __cdecl CPropStoreManager::ReadProperty(class CCompositePropRecord & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHAEAVCCompositePropRecord@@KPEAUtagPROPVARIANT@@PEAI@Z -; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@@Z -; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64,unsigned char * __ptr64,unsigned int * __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHKKAEAUtagPROPVARIANT@@PEAEPEAI@Z -; public: int __cdecl CPropStoreManager::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64 -?ReadProperty@CPropStoreManager@@QEAAHKKPEAUtagPROPVARIANT@@PEAI@Z -; public: int __cdecl CPropertyStore::ReadProperty(class CPropRecordNoLock & __ptr64,unsigned long,struct tagPROPVARIANT * __ptr64,unsigned int * __ptr64) __ptr64 -?ReadProperty@CPropertyStore@@QEAAHAEAVCPropRecordNoLock@@KPEAUtagPROPVARIANT@@PEAI@Z -; public: int __cdecl CPropertyStore::ReadProperty(unsigned long,unsigned long,struct tagPROPVARIANT & __ptr64) __ptr64 -?ReadProperty@CPropertyStore@@QEAAHKKAEAUtagPROPVARIANT@@@Z -; public: unsigned char __cdecl CDFA::Recognize(unsigned short const * __ptr64) __ptr64 -?Recognize@CDFA@@QEAAEPEBG@Z -; public: void __cdecl CCiRegParams::Refresh(struct ICiAdminParams * __ptr64,int) __ptr64 -?Refresh@CCiRegParams@@QEAAXPEAUICiAdminParams@@H@Z -; public: void __cdecl CDefColumnRegEntry::Refresh(int) __ptr64 -?Refresh@CDefColumnRegEntry@@QEAAXH@Z -; public: void __cdecl CWorkQueue::RefreshParams(unsigned long,unsigned long) __ptr64 -?RefreshParams@CWorkQueue@@QEAAXKK@Z -; public: virtual unsigned long __cdecl CDbProperties::Release(void) __ptr64 -?Release@CDbProperties@@UEAAKXZ -; public: virtual unsigned long __cdecl CEmptyPropertyList::Release(void) __ptr64 -?Release@CEmptyPropertyList@@UEAAKXZ -; public: virtual unsigned long __cdecl CEnumString::Release(void) __ptr64 -?Release@CEnumString@@UEAAKXZ -; public: virtual unsigned long __cdecl CEnumWorkid::Release(void) __ptr64 -?Release@CEnumWorkid@@UEAAKXZ -; public: virtual unsigned long __cdecl CFwPropertyMapper::Release(void) __ptr64 -?Release@CFwPropertyMapper@@UEAAKXZ -; public: void __cdecl CImpersonateRemoteAccess::Release(void) __ptr64 -?Release@CImpersonateRemoteAccess@@QEAAXXZ -; public: virtual unsigned long __cdecl CQueryUnknown::Release(void) __ptr64 -?Release@CQueryUnknown@@UEAAKXZ -; public: void __cdecl CWorkQueue::Release(class CWorkThread * __ptr64) __ptr64 -?Release@CWorkQueue@@QEAAXPEAVCWorkThread@@@Z -; private: void __cdecl CPropertyStore::ReleaseRead(class CReadWriteLockRecord & __ptr64) __ptr64 -?ReleaseRead@CPropertyStore@@AEAAXAEAVCReadWriteLockRecord@@@Z -; public: void __cdecl CWorkQueue::ReleaseWorkThreads(void) __ptr64 -?ReleaseWorkThreads@CWorkQueue@@QEAAXXZ -; public: void __cdecl CColumns::Remove(unsigned int) __ptr64 -?Remove@CColumns@@QEAAXI@Z -; public: void __cdecl CDbSortSet::Remove(unsigned int) __ptr64 -?Remove@CDbSortSet@@QEAAXI@Z -; public: void __cdecl CSort::Remove(unsigned int) __ptr64 -?Remove@CSort@@QEAAXI@Z -; private: void __cdecl CWorkQueue::Remove(class CWorkThread & __ptr64) __ptr64 -?Remove@CWorkQueue@@AEAAXAEAVCWorkThread@@@Z -; public: void __cdecl CWorkQueue::Remove(class PWorkItem * __ptr64) __ptr64 -?Remove@CWorkQueue@@QEAAXPEAVPWorkItem@@@Z -; public: void __cdecl CMachineAdmin::RemoveCatalog(unsigned short const * __ptr64,int) __ptr64 -?RemoveCatalog@CMachineAdmin@@QEAAXPEBGH@Z -; public: void __cdecl CMachineAdmin::RemoveCatalogFiles(unsigned short const * __ptr64) __ptr64 -?RemoveCatalogFiles@CMachineAdmin@@QEAAXPEBG@Z -; public: class CRestriction * __ptr64 __cdecl CNodeRestriction::RemoveChild(unsigned int) __ptr64 -?RemoveChild@CNodeRestriction@@QEAAPEAVCRestriction@@I@Z -; protected: class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::RemoveFirstChild(void) __ptr64 -?RemoveFirstChild@CDbCmdTreeNode@@IEAAPEAV1@XZ -; public: void __cdecl CCatalogAdmin::RemoveScope(unsigned short const * __ptr64) __ptr64 -?RemoveScope@CCatalogAdmin@@QEAAXPEBG@Z -; public: void __cdecl CPhysStorage::Reopen(int) __ptr64 -?Reopen@CPhysStorage@@QEAAXH@Z -; public: void __cdecl CEventLog::ReportEventW(class CEventItem & __ptr64) __ptr64 -?ReportEventW@CEventLog@@QEAAXAEAVCEventItem@@@Z -; public: void __cdecl CFwEventItem::ReportEventW(struct ICiCAdviseStatus & __ptr64) __ptr64 -?ReportEventW@CFwEventItem@@QEAAXAEAUICiCAdviseStatus@@@Z -; public: int __cdecl CPhysStorage::RequiresFlush(unsigned long) __ptr64 -?RequiresFlush@CPhysStorage@@QEAAHK@Z -; public: void __cdecl CRegChangeEvent::Reset(void) __ptr64 -?Reset@CRegChangeEvent@@QEAAXXZ -; public: void __cdecl CQueryScanner::ResetBuffer(unsigned short const * __ptr64) __ptr64 -?ResetBuffer@CQueryScanner@@QEAAXPEBG@Z -; protected: void __cdecl CAllocStorageVariant::ResetType(class PMemoryAllocator & __ptr64) __ptr64 -?ResetType@CAllocStorageVariant@@IEAAXAEAVPMemoryAllocator@@@Z -; public: void __cdecl CProcess::Resume(void) __ptr64 -?Resume@CProcess@@QEAAXXZ -; public: void __cdecl CPhysStorage::ReturnBuffer(unsigned long,int,int) __ptr64 -?ReturnBuffer@CPhysStorage@@QEAAXKHH@Z -; public: void __cdecl CMmStreamConsecBuf::Rewind(void) __ptr64 -?Rewind@CMmStreamConsecBuf@@QEAAXXZ -; unsigned long __cdecl SaComputeSize(unsigned short,struct tagSAFEARRAY & __ptr64) -?SaComputeSize@@YAKGAEAUtagSAFEARRAY@@@Z -; int __cdecl SaCreateAndCopy(class PMemoryAllocator & __ptr64,struct tagSAFEARRAY * __ptr64,struct tagSAFEARRAY * __ptr64 * __ptr64) -?SaCreateAndCopy@@YAHAEAVPMemoryAllocator@@PEAUtagSAFEARRAY@@PEAPEAU2@@Z -; int __cdecl SaCreateData(class PVarAllocator & __ptr64,unsigned short,struct tagSAFEARRAY & __ptr64,struct tagSAFEARRAY & __ptr64,int) -?SaCreateData@@YAHAEAVPVarAllocator@@GAEAUtagSAFEARRAY@@1H@Z -; public: int __cdecl CRcovStrmTrans::Seek(unsigned long) __ptr64 -?Seek@CRcovStrmTrans@@QEAAHK@Z -; public: void __cdecl CDbQueryResults::Serialize(class PSerStream & __ptr64)const __ptr64 -?Serialize@CDbQueryResults@@QEBAXAEAVPSerStream@@@Z -; public: void __cdecl CPidRemapper::Set(class XArray<unsigned long> & __ptr64) __ptr64 -?Set@CPidRemapper@@QEAAXAEAV?$XArray@K@@@Z -; public: void __cdecl CScopeAdmin::SetAlias(unsigned short const * __ptr64) __ptr64 -?SetAlias@CScopeAdmin@@QEAAXPEBG@Z -; public: void __cdecl CStorageVariant::SetBOOL(short,unsigned int) __ptr64 -?SetBOOL@CStorageVariant@@QEAAXFI@Z -; public: void __cdecl CAllocStorageVariant::SetBSTR(unsigned short * __ptr64,class PMemoryAllocator & __ptr64) __ptr64 -?SetBSTR@CAllocStorageVariant@@QEAAXPEAGAEAVPMemoryAllocator@@@Z -; public: void __cdecl CStorageVariant::SetBSTR(unsigned short * __ptr64,unsigned int) __ptr64 -?SetBSTR@CStorageVariant@@QEAAXPEAGI@Z -; public: void __cdecl CPropStoreManager::SetBackupSize(unsigned long,unsigned long) __ptr64 -?SetBackupSize@CPropStoreManager@@QEAAXKK@Z -; public: void __cdecl CCatState::SetCD(unsigned short const * __ptr64) __ptr64 -?SetCD@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID const * __ptr64) __ptr64 -?SetCLSID@CStorageVariant@@QEAAXPEBU_GUID@@@Z -; public: void __cdecl CStorageVariant::SetCLSID(struct _GUID,unsigned int) __ptr64 -?SetCLSID@CStorageVariant@@QEAAXU_GUID@@I@Z -; public: void __cdecl CStorageVariant::SetCY(union tagCY,unsigned int) __ptr64 -?SetCY@CStorageVariant@@QEAAXTtagCY@@I@Z -; public: void __cdecl CCatState::SetCatalog(unsigned short const * __ptr64) __ptr64 -?SetCatalog@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CCatState::SetColumn(unsigned short const * __ptr64,unsigned int) __ptr64 -?SetColumn@CCatState@@QEAAXPEBGI@Z -; private: void __cdecl CQueryParser::SetCurrentProperty(unsigned short const * __ptr64,enum PropertyType) __ptr64 -?SetCurrentProperty@CQueryParser@@AEAAXPEBGW4PropertyType@@@Z -; public: void __cdecl CStorageVariant::SetDATE(double,unsigned int) __ptr64 -?SetDATE@CStorageVariant@@QEAAXNI@Z -; public: void __cdecl CCatalogAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64 -?SetDWORDParam@CCatalogAdmin@@QEAAXPEBGK@Z -; public: void __cdecl CMachineAdmin::SetDWORDParam(unsigned short const * __ptr64,unsigned long) __ptr64 -?SetDWORDParam@CMachineAdmin@@QEAAXPEBGK@Z -; public: void __cdecl CCatState::SetDefaultProperty(unsigned short const * __ptr64) __ptr64 -?SetDefaultProperty@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CScopeAdmin::SetExclude(int) __ptr64 -?SetExclude@CScopeAdmin@@QEAAXH@Z -; public: void __cdecl CStorageVariant::SetFILETIME(struct _FILETIME,unsigned int) __ptr64 -?SetFILETIME@CStorageVariant@@QEAAXU_FILETIME@@I@Z -; public: void __cdecl CStorageVariant::SetI2(short,unsigned int) __ptr64 -?SetI2@CStorageVariant@@QEAAXFI@Z -; public: void __cdecl CStorageVariant::SetI4(long,unsigned int) __ptr64 -?SetI4@CStorageVariant@@QEAAXJI@Z -; public: void __cdecl CStorageVariant::SetI8(union _LARGE_INTEGER,unsigned int) __ptr64 -?SetI8@CStorageVariant@@QEAAXT_LARGE_INTEGER@@I@Z -; public: void __cdecl CStorageVariant::SetLPSTR(char const * __ptr64,unsigned int) __ptr64 -?SetLPSTR@CStorageVariant@@QEAAXPEBDI@Z -; public: void __cdecl CStorageVariant::SetLPWSTR(unsigned short const * __ptr64,unsigned int) __ptr64 -?SetLPWSTR@CStorageVariant@@QEAAXPEBGI@Z -; public: void __cdecl CCatState::SetLocale(unsigned short const * __ptr64) __ptr64 -?SetLocale@CCatState@@QEAAXPEBG@Z -; public: void __cdecl CScopeAdmin::SetLogonInfo(unsigned short const * __ptr64,unsigned short const * __ptr64,class CCatalogAdmin & __ptr64) __ptr64 -?SetLogonInfo@CScopeAdmin@@QEAAXPEBG0AEAVCCatalogAdmin@@@Z -; public: void __cdecl CPropStoreManager::SetMappedCacheSize(unsigned long,unsigned long) __ptr64 -?SetMappedCacheSize@CPropStoreManager@@QEAAXKK@Z -; public: void __cdecl CCatState::SetNumberOfColumns(unsigned int) __ptr64 -?SetNumberOfColumns@CCatState@@QEAAXI@Z -; public: void __cdecl CCatState::SetNumberOfSortProps(unsigned int) __ptr64 -?SetNumberOfSortProps@CCatState@@QEAAXI@Z -; public: void __cdecl CScopeAdmin::SetPath(unsigned short const * __ptr64) __ptr64 -?SetPath@CScopeAdmin@@QEAAXPEBG@Z -; public: void __cdecl CContentRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64 -?SetPhrase@CContentRestriction@@QEAAXPEBG@Z -; public: void __cdecl CNatLanguageRestriction::SetPhrase(unsigned short const * __ptr64) __ptr64 -?SetPhrase@CNatLanguageRestriction@@QEAAXPEBG@Z -; public: void __cdecl CGenericCiProxy::SetPriority(unsigned long,unsigned long) __ptr64 -?SetPriority@CGenericCiProxy@@QEAAXKK@Z -; public: virtual long __cdecl CDbProperties::SetProperties(unsigned long,struct tagDBPROPSET * __ptr64 const) __ptr64 -?SetProperties@CDbProperties@@UEAAJKQEAUtagDBPROPSET@@@Z -; public: int __cdecl CDbColId::SetProperty(unsigned short const * __ptr64) __ptr64 -?SetProperty@CDbColId@@QEAAHPEBG@Z -; public: int __cdecl CDbPropBaseRestriction::SetProperty(struct tagDBID const & __ptr64) __ptr64 -?SetProperty@CDbPropBaseRestriction@@QEAAHAEBUtagDBID@@@Z -; public: int __cdecl CDbPropBaseRestriction::SetProperty(class CDbColumnNode const & __ptr64) __ptr64 -?SetProperty@CDbPropBaseRestriction@@QEAAHAEBVCDbColumnNode@@@Z -; public: int __cdecl CFullPropSpec::SetProperty(unsigned short const * __ptr64) __ptr64 -?SetProperty@CFullPropSpec@@QEAAHPEBG@Z -; public: void __cdecl CFullPropSpec::SetProperty(unsigned long) __ptr64 -?SetProperty@CFullPropSpec@@QEAAXK@Z -; public: void __cdecl CStorageVariant::SetR4(float,unsigned int) __ptr64 -?SetR4@CStorageVariant@@QEAAXMI@Z -; public: void __cdecl CStorageVariant::SetR8(double,unsigned int) __ptr64 -?SetR8@CStorageVariant@@QEAAXNI@Z -; public: int __cdecl CDbSelectNode::SetRestriction(class CDbCmdTreeNode * __ptr64) __ptr64 -?SetRestriction@CDbSelectNode@@QEAAHPEAVCDbCmdTreeNode@@@Z -; public: static void __cdecl CImpersonateSystem::SetRunningAsSystem(void) -?SetRunningAsSystem@CImpersonateSystem@@SAXXZ -; public: void __cdecl CMachineAdmin::SetSZParam(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64 -?SetSZParam@CMachineAdmin@@QEAAXPEBG0K@Z -; void __cdecl SetScopeProperties(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64) -?SetScopeProperties@@YAXPEAUICommand@@IPEBQEBGPEBK11@Z -; long __cdecl SetScopePropertiesNoThrow(struct ICommand * __ptr64,unsigned int,unsigned short const * __ptr64 const * __ptr64,unsigned long const * __ptr64,unsigned short const * __ptr64 const * __ptr64,unsigned short const * __ptr64 const * __ptr64) -?SetScopePropertiesNoThrow@@YAJPEAUICommand@@IPEBQEBGPEBK11@Z -; void __cdecl SetSecret(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) -?SetSecret@@YAXPEBG00K@Z -; public: void __cdecl CCatState::SetSortProp(unsigned short const * __ptr64,enum SORTDIR,unsigned int) __ptr64 -?SetSortProp@CCatState@@QEAAXPEBGW4SORTDIR@@I@Z -; public: void __cdecl CStorageVariant::SetUI1(unsigned char,unsigned int) __ptr64 -?SetUI1@CStorageVariant@@QEAAXEI@Z -; public: void __cdecl CStorageVariant::SetUI2(unsigned short,unsigned int) __ptr64 -?SetUI2@CStorageVariant@@QEAAXGI@Z -; public: void __cdecl CStorageVariant::SetUI4(unsigned long,unsigned int) __ptr64 -?SetUI4@CStorageVariant@@QEAAXKI@Z -; public: void __cdecl CStorageVariant::SetUI8(union _ULARGE_INTEGER,unsigned int) __ptr64 -?SetUI8@CStorageVariant@@QEAAXT_ULARGE_INTEGER@@I@Z -; public: void __cdecl CPropertyRestriction::SetValue(struct tagBLOB & __ptr64) __ptr64 -?SetValue@CPropertyRestriction@@QEAAXAEAUtagBLOB@@@Z -; public: void __cdecl CPropertyRestriction::SetValue(unsigned short * __ptr64) __ptr64 -?SetValue@CPropertyRestriction@@QEAAXPEAG@Z -; public: void __cdecl CPropertyRestriction::SetValue(struct _GUID * __ptr64) __ptr64 -?SetValue@CPropertyRestriction@@QEAAXPEAU_GUID@@@Z -; public: void __cdecl CDbCmdTreeNode::SetWeight(long) __ptr64 -?SetWeight@CDbCmdTreeNode@@QEAAXJ@Z -; public: void __cdecl CPropStoreManager::Setup(unsigned long,unsigned long,unsigned long,unsigned __int64,int,unsigned long) __ptr64 -?Setup@CPropStoreManager@@QEAAXKKK_KHK@Z -; public: void __cdecl CDynStream::Shrink(class PStorage & __ptr64,unsigned long) __ptr64 -?Shrink@CDynStream@@QEAAXAEAVPStorage@@K@Z -; public: unsigned long __cdecl CPhysStorage::ShrinkFromFront(unsigned long,unsigned long) __ptr64 -?ShrinkFromFront@CPhysStorage@@QEAAKKK@Z -; public: void __cdecl CPhysStorage::ShrinkToFit(void) __ptr64 -?ShrinkToFit@CPhysStorage@@QEAAXXZ -; public: static void __cdecl CCiOle::Shutdown(void) -?Shutdown@CCiOle@@SAXXZ -; public: void __cdecl CPropStoreManager::Shutdown(void) __ptr64 -?Shutdown@CPropStoreManager@@QEAAXXZ -; public: void __cdecl CWorkQueue::Shutdown(void) __ptr64 -?Shutdown@CWorkQueue@@QEAAXXZ -; public: unsigned long __cdecl CDbQueryResults::Size(void) __ptr64 -?Size@CDbQueryResults@@QEAAKXZ -; public: virtual long __cdecl CEnumString::Skip(unsigned long) __ptr64 -?Skip@CEnumString@@UEAAJK@Z -; public: virtual long __cdecl CEnumWorkid::Skip(unsigned long) __ptr64 -?Skip@CEnumWorkid@@UEAAJK@Z -; public: virtual void __cdecl CMemDeSerStream::SkipBlob(unsigned long) __ptr64 -?SkipBlob@CMemDeSerStream@@UEAAXK@Z -; public: virtual void __cdecl CMemDeSerStream::SkipByte(void) __ptr64 -?SkipByte@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipChar(unsigned long) __ptr64 -?SkipChar@CMemDeSerStream@@UEAAXK@Z -; public: virtual void __cdecl CMemDeSerStream::SkipDouble(void) __ptr64 -?SkipDouble@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipFloat(void) __ptr64 -?SkipFloat@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipGUID(void) __ptr64 -?SkipGUID@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipLong(void) __ptr64 -?SkipLong@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipULong(void) __ptr64 -?SkipULong@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipUShort(void) __ptr64 -?SkipUShort@CMemDeSerStream@@UEAAXXZ -; public: virtual void __cdecl CMemDeSerStream::SkipWChar(unsigned long) __ptr64 -?SkipWChar@CMemDeSerStream@@UEAAXK@Z -; public: int __cdecl CCatalogAdmin::Start(void) __ptr64 -?Start@CCatalogAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::StartCI(void) __ptr64 -?StartCI@CMachineAdmin@@QEAAHXZ -; public: int __cdecl CCatalogAdmin::Stop(void) __ptr64 -?Stop@CCatalogAdmin@@QEAAHXZ -; public: int __cdecl CMachineAdmin::StopCI(void) __ptr64 -?StopCI@CMachineAdmin@@QEAAHXZ -; public: void __cdecl CFilterDaemon::StopFiltering(void) __ptr64 -?StopFiltering@CFilterDaemon@@QEAAXXZ -; public: unsigned int __cdecl CKey::StrLen(void)const __ptr64 -?StrLen@CKey@@QEBAIXZ -; public: unsigned int __cdecl CKeyBuf::StrLen(void)const __ptr64 -?StrLen@CKeyBuf@@QEBAIXZ -; void __cdecl SystemExceptionTranslator(unsigned int,struct _EXCEPTION_POINTERS * __ptr64) -?SystemExceptionTranslator@@YAXIPEAU_EXCEPTION_POINTERS@@@Z -; public: unsigned long __cdecl CRestriction::TreeCount(void)const __ptr64 -?TreeCount@CRestriction@@QEBAKXZ -; public: void __cdecl CMachineAdmin::TunePerformance(int,unsigned short,unsigned short) __ptr64 -?TunePerformance@CMachineAdmin@@QEAAXHGG@Z -; void __cdecl URLEscapeW(unsigned short const * __ptr64,class CVirtualString & __ptr64,unsigned long,int) -?URLEscapeW@@YAXPEBGAEAVCVirtualString@@KH@Z -; public: int __cdecl CDbProperties::UnMarshall(class PDeSerStream & __ptr64) __ptr64 -?UnMarshall@CDbProperties@@QEAAHAEAVPDeSerStream@@@Z -; public: static class CRestriction * __ptr64 __cdecl CRestriction::UnMarshall(class PDeSerStream & __ptr64) -?UnMarshall@CRestriction@@SAPEAV1@AEAVPDeSerStream@@@Z -; public: static class CDbCmdTreeNode * __ptr64 __cdecl CDbCmdTreeNode::UnMarshallTree(class PDeSerStream & __ptr64) -?UnMarshallTree@CDbCmdTreeNode@@SAPEAV1@AEAVPDeSerStream@@@Z -; void __cdecl UnPickle(int,class XPtr<class CColumnSet> & __ptr64,class XPtr<class CRestriction> & __ptr64,class XPtr<class CSortSet> & __ptr64,class XPtr<class CCategorizationSet> & __ptr64,class CRowsetProperties & __ptr64,class XPtr<class CPidMapper> & __ptr64,unsigned char * __ptr64,unsigned long) -?UnPickle@@YAXHAEAV?$XPtr@VCColumnSet@@@@AEAV?$XPtr@VCRestriction@@@@AEAV?$XPtr@VCSortSet@@@@AEAV?$XPtr@VCCategorizationSet@@@@AEAVCRowsetProperties@@AEAV?$XPtr@VCPidMapper@@@@PEAEK@Z -; protected: void __cdecl CRcovStrmTrans::Unmap(enum CRcovStorageHdr::DataCopyNum) __ptr64 -?Unmap@CRcovStrmTrans@@IEAAXW4DataCopyNum@CRcovStorageHdr@@@Z -; unsigned long __cdecl UpdateContentIndex(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,int) -?UpdateContentIndex@@YAKPEBG00H@Z -; public: void __cdecl CDiskFreeStatus::UpdateDiskLowInfo(void) __ptr64 -?UpdateDiskLowInfo@CDiskFreeStatus@@QEAAXXZ -; int __cdecl VT_VARIANT_EQ(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_EQ@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl VT_VARIANT_GE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_GE@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl VT_VARIANT_GT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_GT@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl VT_VARIANT_LE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_LE@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl VT_VARIANT_LT(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_LT@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl VT_VARIANT_NE(struct tagPROPVARIANT const & __ptr64,struct tagPROPVARIANT const & __ptr64) -?VT_VARIANT_NE@@YAHAEBUtagPROPVARIANT@@0@Z -; int __cdecl ValidateScopeRestriction(class CRestriction * __ptr64) -?ValidateScopeRestriction@@YAHPEAVCRestriction@@@Z -; public: void __cdecl PRcovStorageObj::VerifyConsistency(void) __ptr64 -?VerifyConsistency@PRcovStorageObj@@QEAAXXZ -; void __cdecl VerifyThreadHasAdminPrivilege(void) -?VerifyThreadHasAdminPrivilege@@YAXXZ -; unsigned long __cdecl WideCharToXArrayMultiByte(unsigned short const * __ptr64,unsigned long,unsigned int,class XArray<unsigned char> & __ptr64) -?WideCharToXArrayMultiByte@@YAKPEBGKIAEAV?$XArray@E@@@Z -; public: void __cdecl CDynStream::Write(void * __ptr64,unsigned long) __ptr64 -?Write@CDynStream@@QEAAXPEAXK@Z -; protected: void __cdecl CRcovStrmTrans::Write(void const * __ptr64,unsigned long) __ptr64 -?Write@CRcovStrmTrans@@IEAAXPEBXK@Z -; public: long __cdecl CPropStoreManager::WritePrimaryProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64 -?WritePrimaryProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z -; public: long __cdecl CPropStoreManager::WritePrimaryProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64 -?WritePrimaryProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z -; public: long __cdecl CPropStoreManager::WriteProperty(class CCompositePropRecordForWrites & __ptr64,unsigned long,class CStorageVariant const & __ptr64) __ptr64 -?WriteProperty@CPropStoreManager@@QEAAJAEAVCCompositePropRecordForWrites@@KAEBVCStorageVariant@@@Z -; public: long __cdecl CPropStoreManager::WriteProperty(unsigned long,unsigned long,class CStorageVariant const & __ptr64) __ptr64 -?WriteProperty@CPropStoreManager@@QEAAJKKAEBVCStorageVariant@@@Z -; public: unsigned long __cdecl CPropStoreManager::WritePropertyInNewRecord(unsigned long,class CStorageVariant const & __ptr64) __ptr64 -?WritePropertyInNewRecord@CPropStoreManager@@QEAAKKAEBVCStorageVariant@@@Z -; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbNestingNode::_FindGroupListAnchor(void) __ptr64 -?_FindGroupListAnchor@CDbNestingNode@@AEAAPEAVCDbProjectListAnchor@@XZ -; private: class CDbProjectListAnchor * __ptr64 __cdecl CDbProjectNode::_FindOrAddAnchor(void) __ptr64 -?_FindOrAddAnchor@CDbProjectNode@@AEAAPEAVCDbProjectListAnchor@@XZ -; private: class CDbSortListAnchor * __ptr64 __cdecl CDbSortNode::_FindOrAddAnchor(void) __ptr64 -?_FindOrAddAnchor@CDbSortNode@@AEAAPEAVCDbSortListAnchor@@XZ -; private: class CDbScalarValue * __ptr64 __cdecl CDbPropertyRestriction::_FindOrAddValueNode(void) __ptr64 -?_FindOrAddValueNode@CDbPropertyRestriction@@AEAAPEAVCDbScalarValue@@XZ -; private: int __cdecl CImpersonateRemoteAccess::_ImpersonateIf(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64 -?_ImpersonateIf@CImpersonateRemoteAccess@@AEAAHPEBG0K@Z -; unsigned __int64 __cdecl _wcstoui64(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,int) -?_wcstoui64@@YA_KPEBGPEAPEAGH@Z -; void __cdecl ciDelete(void * __ptr64) -?ciDelete@@YAXPEAX@Z -; int __cdecl ciIsValidPointer(void const * __ptr64) -?ciIsValidPointer@@YAHPEBX@Z -; void * __ptr64 __cdecl ciNew(unsigned __int64) -?ciNew@@YAPEAX_K@Z -; public: unsigned long __cdecl CFileBuffer::fgetsw(class XGrowable<unsigned short,260> & __ptr64) __ptr64 -?fgetsw@CFileBuffer@@QEAAKAEAV?$XGrowable@G$0BAE@@@@Z -; unsigned short * __ptr64 __cdecl wcsipattern(unsigned short * __ptr64,unsigned short const * __ptr64) -?wcsipattern@@YAPEAGPEAGPEBG@Z -AbortMerges -BeginCacheTransaction -BindIFilterFromStorage -BindIFilterFromStream -CIBuildQueryNode -CIBuildQueryTree -CICreateCommand -CIGetGlobalPropertyList -CIMakeICommand -CIRestrictionToFullTree -CIState -CITextToFullTree -CITextToFullTreeEx -CITextToSelectTree -CITextToSelectTreeEx -CiSvcMain -CollectCIISAPIPerformanceData -CollectCIPerformanceData -CollectFILTERPerformanceData -DllCanUnloadNow -DllGetClassObject -DllRegisterServer -DllUnregisterServer -DoneCIISAPIPerformanceData -DoneCIPerformanceData -DoneFILTERPerformanceData -EndCacheTransaction -ForceMasterMerge -InitializeCIISAPIPerformanceData -InitializeCIPerformanceData -InitializeFILTERPerformanceData -LoadBHIFilter -LoadBinaryFilter -LoadIFilter -LoadIFilterEx -LoadTextFilter -LocateCatalogs -LocateCatalogsA -LocateCatalogsW -SetCatalogState -SetupCache -SetupCacheEx -StartFWCiSvcWork -StopFWCiSvcWork -SvcEntry_CiSvc diff --git a/lib/libc/mingw/libarm32/query.def b/lib/libc/mingw/libarm32/query.def deleted file mode 100644 index 091bd136aa..0000000000 --- a/lib/libc/mingw/libarm32/query.def +++ /dev/null @@ -1,51 +0,0 @@ -; -; Definition file of query.dll -; Automatic generated by gendef -; written by Kai Tietz 2008-2014 -; -LIBRARY "query.dll" -EXPORTS -BeginCacheTransaction -CIBuildQueryNode -CIBuildQueryTree -CICreateCommand -CIGetGlobalPropertyList -CIMakeICommand -CIRestrictionToFullTree -CIState -CITextToFullTree -CITextToFullTreeEx -CITextToSelectTree -CITextToSelectTreeEx -CiCreateSecurityDescriptor -CiSvcMain -CollectCIISAPIPerformanceData -CollectCIPerformanceData -CollectFILTERPerformanceData -DoneCIISAPIPerformanceData -DoneCIPerformanceData -DoneFILTERPerformanceData -EndCacheTransaction -FsCiShutdown -InitializeCIISAPIPerformanceData -InitializeCIPerformanceData -InitializeFILTERPerformanceData -LoadBinaryFilter -LoadTextFilter -SetCatalogState -SetupCache -SetupCacheEx -SvcEntry_CiSvc -BindIFilterFromStorage -BindIFilterFromStream -CIRevertToSelf -CIShutdown -InternalBindIFilterFromDocCLSID -InternalBindIFilterFromFileName -InternalBindIFilterFromStorage -InternalBindIFilterFromStream -LoadIFilter -LoadIFilterEx -LocateCatalogs -LocateCatalogsA -LocateCatalogsW diff --git a/lib/libc/mingw/math/cephes_emath.c b/lib/libc/mingw/math/cephes_emath.c deleted file mode 100644 index 41e297cfe8..0000000000 --- a/lib/libc/mingw/math/cephes_emath.c +++ /dev/null @@ -1,1283 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#include "cephes_emath.h" - -/* - * The constants are for 64 bit precision. - */ - - -/* Move in external format number, - * converting it to internal format. - */ -void __emovi(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b) -{ - register const unsigned short *p; - register unsigned short *q; - int i; - - q = b; - p = a + (NE-1); /* point to last word of external number */ - /* get the sign bit */ - if (*p & 0x8000) - *q++ = 0xffff; - else - *q++ = 0; - /* get the exponent */ - *q = *p--; - *q++ &= 0x7fff; /* delete the sign bit */ -#ifdef INFINITY - if ((*(q - 1) & 0x7fff) == 0x7fff) - { -#ifdef NANS - if (__eisnan(a)) - { - *q++ = 0; - for (i = 3; i < NI; i++ ) - *q++ = *p--; - return; - } -#endif - for (i = 2; i < NI; i++) - *q++ = 0; - return; - } -#endif - /* clear high guard word */ - *q++ = 0; - /* move in the significand */ - for (i = 0; i < NE - 1; i++ ) - *q++ = *p--; - /* clear low guard word */ - *q = 0; -} - - -/* -; Add significands -; x + y replaces y -*/ - -void __eaddm(const short unsigned int * __restrict__ x, - short unsigned int * __restrict__ y) -{ - register unsigned long a; - int i; - unsigned int carry; - - x += NI - 1; - y += NI - 1; - carry = 0; - for (i = M; i < NI; i++) - { - a = (unsigned long)(*x) + (unsigned long)(*y) + carry; - if (a & 0x10000) - carry = 1; - else - carry = 0; - *y = (unsigned short)a; - --x; - --y; - } -} - -/* -; Subtract significands -; y - x replaces y -*/ - -void __esubm(const short unsigned int * __restrict__ x, - short unsigned int * __restrict__ y) -{ - unsigned long a; - int i; - unsigned int carry; - - x += NI - 1; - y += NI - 1; - carry = 0; - for (i = M; i < NI; i++) - { - a = (unsigned long)(*y) - (unsigned long)(*x) - carry; - if (a & 0x10000) - carry = 1; - else - carry = 0; - *y = (unsigned short)a; - --x; - --y; - } -} - - -/* Multiply significand of e-type number b -by 16-bit quantity a, e-type result to c. */ - -static void __m16m(short unsigned int a, - short unsigned int * __restrict__ b, - short unsigned int * __restrict__ c) -{ - register unsigned short *pp; - register unsigned long carry; - unsigned short *ps; - unsigned short p[NI]; - unsigned long aa, m; - int i; - - aa = a; - pp = &p[NI - 2]; - *pp++ = 0; - *pp = 0; - ps = &b[NI - 1]; - - for(i = M + 1; i < NI; i++) - { - if (*ps == 0) - { - --ps; - --pp; - *(pp - 1) = 0; - } - else - { - m = (unsigned long) aa * *ps--; - carry = (m & 0xffff) + *pp; - *pp-- = (unsigned short)carry; - carry = (carry >> 16) + (m >> 16) + *pp; - *pp = (unsigned short)carry; - *(pp - 1) = carry >> 16; - } - } - for (i = M; i < NI; i++) - c[i] = p[i]; -} - - -/* Divide significands. Neither the numerator nor the denominator -is permitted to have its high guard word nonzero. */ - -int __edivm(short unsigned int * __restrict__ den, - short unsigned int * __restrict__ num) -{ - int i; - register unsigned short *p; - unsigned long tnum; - unsigned short j, tdenm, tquot; - unsigned short tprod[NI + 1]; - unsigned short equot[NI]; - - p = &equot[0]; - *p++ = num[0]; - *p++ = num[1]; - - for (i = M; i < NI; i++) - { - *p++ = 0; - } - __eshdn1(num); - tdenm = den[M + 1]; - for (i = M; i < NI; i++) - { - /* Find trial quotient digit (the radix is 65536). */ - tnum = (((unsigned long) num[M]) << 16) + num[M + 1]; - - /* Do not execute the divide instruction if it will overflow. */ - if ((tdenm * 0xffffUL) < tnum) - tquot = 0xffff; - else - tquot = tnum / tdenm; - - /* Prove that the divide worked. */ - /* - tcheck = (unsigned long)tquot * tdenm; - if (tnum - tcheck > tdenm) - tquot = 0xffff; - */ - /* Multiply denominator by trial quotient digit. */ - __m16m(tquot, den, tprod); - /* The quotient digit may have been overestimated. */ - if (__ecmpm(tprod, num) > 0) - { - tquot -= 1; - __esubm(den, tprod); - if(__ecmpm(tprod, num) > 0) - { - tquot -= 1; - __esubm(den, tprod); - } - } - __esubm(tprod, num); - equot[i] = tquot; - __eshup6(num); - } - /* test for nonzero remainder after roundoff bit */ - p = &num[M]; - j = 0; - for (i = M; i < NI; i++) - { - j |= *p++; - } - if (j) - j = 1; - - for (i = 0; i < NI; i++) - num[i] = equot[i]; - - return ( (int)j ); -} - - -/* Multiply significands */ -int __emulm(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b) -{ - const unsigned short *p; - unsigned short *q; - unsigned short pprod[NI]; - unsigned short equot[NI]; - unsigned short j; - int i; - - equot[0] = b[0]; - equot[1] = b[1]; - for (i = M; i < NI; i++) - equot[i] = 0; - - j = 0; - p = &a[NI - 1]; - q = &equot[NI - 1]; - for (i = M + 1; i < NI; i++) - { - if (*p == 0) - { - --p; - } - else - { - __m16m(*p--, b, pprod); - __eaddm(pprod, equot); - } - j |= *q; - __eshdn6(equot); - } - - for (i = 0; i < NI; i++) - b[i] = equot[i]; - - /* return flag for lost nonzero bits */ - return ( (int)j ); -} - - -/* - * Normalize and round off. - * - * The internal format number to be rounded is "s". - * Input "lost" indicates whether the number is exact. - * This is the so-called sticky bit. - * - * Input "subflg" indicates whether the number was obtained - * by a subtraction operation. In that case if lost is nonzero - * then the number is slightly smaller than indicated. - * - * Input "expo" is the biased exponent, which may be negative. - * the exponent field of "s" is ignored but is replaced by - * "expo" as adjusted by normalization and rounding. - * - * Input "rcntrl" is the rounding control. - * - * Input "rnprc" is precison control (64 or NBITS). - */ - -void __emdnorm(short unsigned int *s, int lost, int subflg, int expo, int rcntrl, int rndprc) -{ - int i, j; - unsigned short r; - int rw = NI-1; /* low guard word */ - int re = NI-2; - const unsigned short rmsk = 0xffff; - const unsigned short rmbit = 0x8000; -#if NE == 6 - unsigned short rbit[NI] = {0,0,0,0,0,0,0,1,0}; -#else - unsigned short rbit[NI] = {0,0,0,0,0,0,0,0,0,0,0,1,0}; -#endif - - /* Normalize */ - j = __enormlz(s); - - /* a blank significand could mean either zero or infinity. */ -#ifndef INFINITY - if (j > NBITS) - { - __ecleazs(s); - return; - } -#endif - expo -= j; -#ifndef INFINITY - if (expo >= 32767L) - goto overf; -#else - if ((j > NBITS) && (expo < 32767L)) - { - __ecleazs(s); - return; - } -#endif - if (expo < 0L) - { - if (expo > (long)(-NBITS - 1)) - { - j = (int)expo; - i = __eshift(s, j); - if (i) - lost = 1; - } - else - { - __ecleazs(s); - return; - } - } - /* Round off, unless told not to by rcntrl. */ - if (rcntrl == 0) - goto mdfin; - if (rndprc == 64) - { - rw = 7; - re = 6; - rbit[NI - 2] = 0; - rbit[6] = 1; - } - - /* Shift down 1 temporarily if the data structure has an implied - * most significant bit and the number is denormal. - * For rndprc = 64 or NBITS, there is no implied bit. - * But Intel long double denormals lose one bit of significance even so. - */ -#if IBMPC - if ((expo <= 0) && (rndprc != NBITS)) -#else - if ((expo <= 0) && (rndprc != 64) && (rndprc != NBITS)) -#endif - { - lost |= s[NI - 1] & 1; - __eshdn1(s); - } - /* Clear out all bits below the rounding bit, - * remembering in r if any were nonzero. - */ - r = s[rw] & rmsk; - if (rndprc < NBITS) - { - i = rw + 1; - while (i < NI) - { - if( s[i] ) - r |= 1; - s[i] = 0; - ++i; - } - } - s[rw] &= (rmsk ^ 0xffff); - if ((r & rmbit) != 0) - { - if (r == rmbit) - { - if (lost == 0) - { /* round to even */ - if ((s[re] & 1) == 0) - goto mddone; - } - else - { - if (subflg != 0) - goto mddone; - } - } - __eaddm(rbit, s); - } -mddone: -#if IBMPC - if ((expo <= 0) && (rndprc != NBITS)) -#else - if ((expo <= 0) && (rndprc != 64) && (rndprc != NBITS)) -#endif - { - __eshup1(s); - } - if (s[2] != 0) - { /* overflow on roundoff */ - __eshdn1(s); - expo += 1; - } -mdfin: - s[NI - 1] = 0; - if (expo >= 32767L) - { -#ifndef INFINITY -overf: -#endif -#ifdef INFINITY - s[1] = 32767; - for (i = 2; i < NI - 1; i++ ) - s[i] = 0; -#else - s[1] = 32766; - s[2] = 0; - for (i = M + 1; i < NI - 1; i++) - s[i] = 0xffff; - s[NI - 1] = 0; - if ((rndprc < 64) || (rndprc == 113)) - s[rw] &= (rmsk ^ 0xffff); -#endif - return; - } - if (expo < 0) - s[1] = 0; - else - s[1] = (unsigned short)expo; -} - - -/* -; Multiply. -; -; unsigned short a[NE], b[NE], c[NE]; -; emul( a, b, c ); c = b * a -*/ -void __emul(const short unsigned int *a, - const short unsigned int *b, - short unsigned int *c) -{ - unsigned short ai[NI], bi[NI]; - int i, j; - long lt, lta, ltb; - -#ifdef NANS - /* NaN times anything is the same NaN. */ - if (__eisnan(a)) - { - __emov(a, c); - return; - } - if (__eisnan(b)) - { - __emov(b, c); - return; - } - /* Zero times infinity is a NaN. */ - if ((__eisinf(a) && __eiiszero(b)) - || (__eisinf(b) && __eiiszero(a))) - { - mtherr( "emul", DOMAIN); - __enan_NBITS(c); - return; - } -#endif -/* Infinity times anything else is infinity. */ -#ifdef INFINITY - if (__eisinf(a) || __eisinf(b)) - { - if (__eisneg(a) ^ __eisneg(b)) - *(c + (NE-1)) = 0x8000; - else - *(c + (NE-1)) = 0; - __einfin(c); - return; - } -#endif - __emovi(a, ai); - __emovi(b, bi); - lta = ai[E]; - ltb = bi[E]; - if (ai[E] == 0) - { - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - { - lta -= __enormlz( ai ); - goto mnzer1; - } - } - __eclear(c); - return; - } -mnzer1: - - if (bi[E] == 0) - { - for (i = 1; i < NI - 1; i++) - { - if (bi[i] != 0) - { - ltb -= __enormlz(bi); - goto mnzer2; - } - } - __eclear(c); - return; - } -mnzer2: - - /* Multiply significands */ - j = __emulm(ai, bi); - /* calculate exponent */ - lt = lta + ltb - (EXONE - 1); - __emdnorm(bi, j, 0, lt, 64, NBITS); - /* calculate sign of product */ - if (ai[0] == bi[0]) - bi[0] = 0; - else - bi[0] = 0xffff; - __emovo(bi, c); -} - - -/* move out internal format to ieee long double */ -void __toe64(short unsigned int *a, short unsigned int *b) -{ - register unsigned short *p, *q; - unsigned short i; - -#ifdef NANS - if (__eiisnan(a)) - { - __enan_64(b); - return; - } -#endif -#ifdef IBMPC - /* Shift Intel denormal significand down 1. */ - if (a[E] == 0) - __eshdn1(a); -#endif - p = a; -#ifdef MIEEE - q = b; -#else - q = b + 4; /* point to output exponent */ -#if 1 - /* NOTE: if data type is 96 bits wide, clear the last word here. */ - *(q + 1)= 0; -#endif -#endif - - /* combine sign and exponent */ - i = *p++; -#ifdef MIEEE - if (i) - *q++ = *p++ | 0x8000; - else - *q++ = *p++; - *q++ = 0; -#else - if (i) - *q-- = *p++ | 0x8000; - else - *q-- = *p++; -#endif - /* skip over guard word */ - ++p; - /* move the significand */ -#ifdef MIEEE - for (i = 0; i < 4; i++) - *q++ = *p++; -#else -#ifdef INFINITY - if (__eiisinf(a)) - { - /* Intel long double infinity. */ - *q-- = 0x8000; - *q-- = 0; - *q-- = 0; - *q = 0; - return; - } -#endif - for (i = 0; i < 4; i++) - *q-- = *p++; -#endif -} - - -/* Compare two e type numbers. - * - * unsigned short a[NE], b[NE]; - * ecmp( a, b ); - * - * returns +1 if a > b - * 0 if a == b - * -1 if a < b - * -2 if either a or b is a NaN. - */ -int __ecmp(const short unsigned int * __restrict__ a, - const short unsigned int * __restrict__ b) -{ - unsigned short ai[NI], bi[NI]; - register unsigned short *p, *q; - register int i; - int msign; - -#ifdef NANS - if (__eisnan (a) || __eisnan (b)) - return (-2); -#endif - __emovi(a, ai); - p = ai; - __emovi(b, bi); - q = bi; - - if (*p != *q) - { /* the signs are different */ - /* -0 equals + 0 */ - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - goto nzro; - if (bi[i] != 0) - goto nzro; - } - return (0); -nzro: - if (*p == 0) - return (1); - else - return (-1); - } - /* both are the same sign */ - if (*p == 0) - msign = 1; - else - msign = -1; - i = NI - 1; - do - { - if (*p++ != *q++) - { - goto diff; - } - } - while (--i > 0); - - return (0); /* equality */ - -diff: - if ( *(--p) > *(--q) ) - return (msign); /* p is bigger */ - else - return (-msign); /* p is littler */ -} - -/* -; Shift significand -; -; Shifts significand area up or down by the number of bits -; given by the variable sc. -*/ -int __eshift(short unsigned int *x, int sc) -{ - unsigned short lost; - unsigned short *p; - - if (sc == 0) - return (0); - - lost = 0; - p = x + NI - 1; - - if (sc < 0) - { - sc = -sc; - while (sc >= 16) - { - lost |= *p; /* remember lost bits */ - __eshdn6(x); - sc -= 16; - } - - while (sc >= 8) - { - lost |= *p & 0xff; - __eshdn8(x); - sc -= 8; - } - - while (sc > 0) - { - lost |= *p & 1; - __eshdn1(x); - sc -= 1; - } - } - else - { - while (sc >= 16) - { - __eshup6(x); - sc -= 16; - } - - while (sc >= 8) - { - __eshup8(x); - sc -= 8; - } - - while (sc > 0) - { - __eshup1(x); - sc -= 1; - } - } - if (lost) - lost = 1; - return ( (int)lost ); -} - - -/* -; normalize -; -; Shift normalizes the significand area pointed to by argument -; shift count (up = positive) is returned. -*/ -int __enormlz(short unsigned int *x) -{ - register unsigned short *p; - int sc; - - sc = 0; - p = &x[M]; - if (*p != 0) - goto normdn; - ++p; - if (*p & 0x8000) - return (0); /* already normalized */ - while (*p == 0) - { - __eshup6(x); - sc += 16; - /* With guard word, there are NBITS+16 bits available. - * return true if all are zero. - */ - if (sc > NBITS) - return (sc); - } - /* see if high byte is zero */ - while ((*p & 0xff00) == 0) - { - __eshup8(x); - sc += 8; - } - /* now shift 1 bit at a time */ - while ((*p & 0x8000) == 0) - { - __eshup1(x); - sc += 1; - if (sc > (NBITS + 16)) - { - mtherr( "enormlz", UNDERFLOW); - return (sc); - } - } - return (sc); - - /* Normalize by shifting down out of the high guard word - of the significand */ -normdn: - if (*p & 0xff00) - { - __eshdn8(x); - sc -= 8; - } - while (*p != 0) - { - __eshdn1(x); - sc -= 1; - - if (sc < -NBITS) - { - mtherr("enormlz", OVERFLOW); - return (sc); - } - } - return (sc); -} - - -/* Move internal format number out, - * converting it to external format. - */ -void __emovo(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b) -{ - register const unsigned short *p; - register unsigned short *q; - unsigned short i; - - p = a; - q = b + (NE - 1); /* point to output exponent */ - /* combine sign and exponent */ - i = *p++; - if (i) - *q-- = *p++ | 0x8000; - else - *q-- = *p++; -#ifdef INFINITY - if (*(p - 1) == 0x7fff) - { -#ifdef NANS - if (__eiisnan(a)) - { - __enan_NBITS(b); - return; - } -#endif - __einfin(b); - return; - } -#endif - /* skip over guard word */ - ++p; - /* move the significand */ - for (i = 0; i < NE - 1; i++) - *q-- = *p++; -} - - -#if USE_LDTOA - -void __eiremain(short unsigned int *den, short unsigned int *num, - short unsigned int *equot ) -{ - long ld, ln; - unsigned short j; - - ld = den[E]; - ld -= __enormlz(den); - ln = num[E]; - ln -= __enormlz(num); - __ecleaz(equot); - while (ln >= ld) - { - if(__ecmpm(den,num) <= 0) - { - __esubm(den, num); - j = 1; - } - else - { - j = 0; - } - __eshup1(equot); - equot[NI - 1] |= j; - __eshup1(num); - ln -= 1; - } - __emdnorm( num, 0, 0, ln, 0, NBITS ); -} - - -void __eadd1(const short unsigned int * __restrict__ a, - const short unsigned int * __restrict__ b, - short unsigned int * __restrict__ c, - int subflg) -{ - unsigned short ai[NI], bi[NI], ci[NI]; - int i, lost, j, k; - long lt, lta, ltb; - -#ifdef INFINITY - if (__eisinf(a)) - { - __emov(a, c); - if( subflg ) - __eneg(c); - return; - } - if (__eisinf(b)) - { - __emov(b, c); - return; - } -#endif - __emovi(a, ai); - __emovi(b, bi); - if (sub) - ai[0] = ~ai[0]; - - /* compare exponents */ - lta = ai[E]; - ltb = bi[E]; - lt = lta - ltb; - if (lt > 0L) - { /* put the larger number in bi */ - __emovz(bi, ci); - __emovz(ai, bi); - __emovz(ci, ai); - ltb = bi[E]; - lt = -lt; - } - lost = 0; - if (lt != 0L) - { - if (lt < (long)(-NBITS - 1)) - goto done; /* answer same as larger addend */ - k = (int)lt; - lost = __eshift(ai, k); /* shift the smaller number down */ - } - else - { - /* exponents were the same, so must compare significands */ - i = __ecmpm(ai, bi); - if (i == 0) - { /* the numbers are identical in magnitude */ - /* if different signs, result is zero */ - if (ai[0] != bi[0]) - { - __eclear(c); - return; - } - /* if same sign, result is double */ - /* double denomalized tiny number */ - if ((bi[E] == 0) && ((bi[3] & 0x8000) == 0)) - { - __eshup1( bi ); - goto done; - } - /* add 1 to exponent unless both are zero! */ - for (j = 1; j < NI - 1; j++) - { - if (bi[j] != 0) - { - /* This could overflow, but let emovo take care of that. */ - ltb += 1; - break; - } - } - bi[E] = (unsigned short )ltb; - goto done; - } - if (i > 0) - { /* put the larger number in bi */ - __emovz(bi, ci); - __emovz(ai, bi); - __emovz(ci, ai); - } - } - if (ai[0] == bi[0]) - { - __eaddm(ai, bi); - subflg = 0; - } - else - { - __esubm(ai, bi); - subflg = 1; - } - __emdnorm(bi, lost, subflg, ltb, 64, NBITS); - -done: - __emovo(bi, c); -} - - -/* y = largest integer not greater than x - * (truncated toward minus infinity) - * - * unsigned short x[NE], y[NE] - * - * efloor( x, y ); - */ - - -void __efloor(short unsigned int *x, short unsigned int *y) -{ - register unsigned short *p; - int e, expon, i; - unsigned short f[NE]; - const unsigned short bmask[] = { - 0xffff, - 0xfffe, - 0xfffc, - 0xfff8, - 0xfff0, - 0xffe0, - 0xffc0, - 0xff80, - 0xff00, - 0xfe00, - 0xfc00, - 0xf800, - 0xf000, - 0xe000, - 0xc000, - 0x8000, - 0x0000, - }; - - __emov(x, f); /* leave in external format */ - expon = (int) f[NE - 1]; - e = (expon & 0x7fff) - (EXONE - 1); - if (e <= 0) - { - __eclear(y); - goto isitneg; - } - /* number of bits to clear out */ - e = NBITS - e; - __emov(f, y); - if (e <= 0) - return; - - p = &y[0]; - while (e >= 16) - { - *p++ = 0; - e -= 16; - } - /* clear the remaining bits */ - *p &= bmask[e]; - /* truncate negatives toward minus infinity */ -isitneg: - - if ((unsigned short)expon & (unsigned short)0x8000) - { - for (i = 0; i < NE - 1; i++) - { - if (f[i] != y[i]) - { - __esub( __eone, y, y ); - break; - } - } - } -} - -/* -; Subtract external format numbers. -; -; unsigned short a[NE], b[NE], c[NE]; -; esub( a, b, c ); c = b - a -*/ - -void __esub(const short unsigned int * a, - const short unsigned int * b, - short unsigned int * c) -{ -#ifdef NANS - if (__eisnan(a)) - { - __emov (a, c); - return; - } - if ( __eisnan(b)) - { - __emov(b, c); - return; - } - /* Infinity minus infinity is a NaN. - * Test for subtracting infinities of the same sign. - */ - if (__eisinf(a) && __eisinf(b) && ((__eisneg (a) ^ __eisneg (b)) == 0)) - { - mtherr("esub", DOMAIN); - __enan_NBITS( c ); - return; - } -#endif - __eadd1(a, b, c, 1); -} - - -/* -; Divide. -; -; unsigned short a[NI], b[NI], c[NI]; -; ediv( a, b, c ); c = b / a -*/ - -void __ediv(const short unsigned int *a, - const short unsigned int *b, - short unsigned int *c) -{ - unsigned short ai[NI], bi[NI]; - int i; - long lt, lta, ltb; - -#ifdef NANS - /* Return any NaN input. */ - if (__eisnan(a)) - { - __emov(a, c); - return; - } - if (__eisnan(b)) - { - __emov(b, c); - return; - } - /* Zero over zero, or infinity over infinity, is a NaN. */ - if ((__eiszero(a) && __eiszero(b)) - || (__eisinf (a) && __eisinf (b))) - { - mtherr("ediv", DOMAIN); - __enan_NBITS( c ); - return; - } -#endif -/* Infinity over anything else is infinity. */ -#ifdef INFINITY - if (__eisinf(b)) - { - if (__eisneg(a) ^ __eisneg(b)) - *(c + (NE - 1)) = 0x8000; - else - *(c + (NE - 1)) = 0; - __einfin(c); - return; - } - if (__eisinf(a)) - { - __eclear(c); - return; - } -#endif - __emovi(a, ai); - __emovi(b, bi); - lta = ai[E]; - ltb = bi[E]; - if (bi[E] == 0) - { /* See if numerator is zero. */ - for (i = 1; i < NI - 1; i++) - { - if (bi[i] != 0) - { - ltb -= __enormlz(bi); - goto dnzro1; - } - } - __eclear(c); - return; - } -dnzro1: - - if (ai[E] == 0) - { /* possible divide by zero */ - for (i = 1; i < NI - 1; i++) - { - if (ai[i] != 0) - { - lta -= __enormlz(ai); - goto dnzro2; - } - } - if (ai[0] == bi[0]) - *(c + (NE - 1)) = 0; - else - *(c + (NE - 1)) = 0x8000; - __einfin(c); - mtherr("ediv", SING); - return; - } -dnzro2: - - i = __edivm(ai, bi); - /* calculate exponent */ - lt = ltb - lta + EXONE; - __emdnorm(bi, i, 0, lt, 64, NBITS); - /* set the sign */ - if (ai[0] == bi[0]) - bi[0] = 0; - else - bi[0] = 0Xffff; - __emovo(bi, c); -} - -void __e64toe(short unsigned int *pe, short unsigned int *y) -{ - unsigned short yy[NI]; - unsigned short *p, *q, *e; - int i; - - e = pe; - p = yy; - for (i = 0; i < NE - 5; i++) - *p++ = 0; -#ifdef IBMPC - for (i = 0; i < 5; i++) - *p++ = *e++; -#endif -#ifdef DEC - for (i = 0; i < 5; i++) - *p++ = *e++; -#endif -#ifdef MIEEE - p = &yy[0] + (NE - 1); - *p-- = *e++; - ++e; - for (i = 0; i < 4; i++) - *p-- = *e++; -#endif - -#ifdef IBMPC - /* For Intel long double, shift denormal significand up 1 - -- but only if the top significand bit is zero. */ - if ((yy[NE - 1] & 0x7fff) == 0 && (yy[NE - 2] & 0x8000) == 0) - { - unsigned short temp[NI + 1]; - __emovi(yy, temp); - __eshup1(temp); - __emovo(temp,y); - return; - } -#endif -#ifdef INFINITY - /* Point to the exponent field. */ - p = &yy[NE - 1]; - if (*p == 0x7fff) - { -#ifdef NANS -#ifdef IBMPC - for (i = 0; i < 4; i++) - { - if ((i != 3 && pe[i] != 0) - /* Check for Intel long double infinity pattern. */ - || (i == 3 && pe[i] != 0x8000)) - { - __enan_NBITS(y); - return; - } - } -#else - for (i = 1; i <= 4; i++) - { - if (pe[i] != 0) - { - __enan_NBITS(y); - return; - } - } -#endif -#endif /* NANS */ - __eclear(y); - __einfin(y); - if (*p & 0x8000) - __eneg(y); - return; - } -#endif - p = yy; - q = y; - for (i = 0; i < NE; i++) - *q++ = *p++; -} - -#endif /* USE_LDTOA */ diff --git a/lib/libc/mingw/math/cephes_emath.h b/lib/libc/mingw/math/cephes_emath.h deleted file mode 100644 index 58a8e13c9a..0000000000 --- a/lib/libc/mingw/math/cephes_emath.h +++ /dev/null @@ -1,719 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ -#ifndef _CEPHES_EMATH_H -#define _CEPHES_EMATH_H - -/** - * This is a workaround for a gcc bug - */ -#define __restrict__ - -/* This file is extracted from S L Moshier's ioldoubl.c, - * modified for use in MinGW - * - * Extended precision arithmetic functions for long double I/O. - * This program has been placed in the public domain. - */ - - -/* - * Revision history: - * - * 5 Jan 84 PDP-11 assembly language version - * 6 Dec 86 C language version - * 30 Aug 88 100 digit version, improved rounding - * 15 May 92 80-bit long double support - * - * Author: S. L. Moshier. - * - * 6 Oct 02 Modified for MinGW by inlining utility routines, - * removing global variables, and splitting out strtold - * from _IO_ldtoa and _IO_ldtostr. - * - * Danny Smith <dannysmith@users.sourceforge.net> - * - */ - - -/* ieee.c - * - * Extended precision IEEE binary floating point arithmetic routines - * - * Numbers are stored in C language as arrays of 16-bit unsigned - * short integers. The arguments of the routines are pointers to - * the arrays. - * - * - * External e type data structure, simulates Intel 8087 chip - * temporary real format but possibly with a larger significand: - * - * NE-1 significand words (least significant word first, - * most significant bit is normally set) - * exponent (value = EXONE for 1.0, - * top bit is the sign) - * - * - * Internal data structure of a number (a "word" is 16 bits): - * - * ei[0] sign word (0 for positive, 0xffff for negative) - * ei[1] biased __exponent (value = EXONE for the number 1.0) - * ei[2] high guard word (always zero after normalization) - * ei[3] - * to ei[NI-2] significand (NI-4 significand words, - * most significant word first, - * most significant bit is set) - * ei[NI-1] low guard word (0x8000 bit is rounding place) - * - * - * - * Routines for external format numbers - * - * __asctoe64( string, &d ) ASCII string to long double - * __asctoeg( string, e, prec ) ASCII string to specified precision - * __e64toe( &d, e ) IEEE long double precision to e type - * __eadd( a, b, c ) c = b + a - * __eclear(e) e = 0 - * __ecmp (a, b) Returns 1 if a > b, 0 if a == b, - * -1 if a < b, -2 if either a or b is a NaN. - * __ediv( a, b, c ) c = b / a - * __efloor( a, b ) truncate to integer, toward -infinity - * __efrexp( a, exp, s ) extract exponent and significand - * __eifrac( e, &l, frac ) e to long integer and e type fraction - * __euifrac( e, &l, frac ) e to unsigned long integer and e type fraction - * __einfin( e ) set e to infinity, leaving its sign alone - * __eldexp( a, n, b ) multiply by 2**n - * __emov( a, b ) b = a - * __emul( a, b, c ) c = b * a - * __eneg(e) e = -e - * __eround( a, b ) b = nearest integer value to a - * __esub( a, b, c ) c = b - a - * __e24toasc( &f, str, n ) single to ASCII string, n digits after decimal - * __e53toasc( &d, str, n ) double to ASCII string, n digits after decimal - * __e64toasc( &d, str, n ) long double to ASCII string - * __etoasc( e, str, n ) e to ASCII string, n digits after decimal - * __etoe24( e, &f ) convert e type to IEEE single precision - * __etoe53( e, &d ) convert e type to IEEE double precision - * __etoe64( e, &d ) convert e type to IEEE long double precision - * __eisneg( e ) 1 if sign bit of e != 0, else 0 - * __eisinf( e ) 1 if e has maximum exponent (non-IEEE) - * or is infinite (IEEE) - * __eisnan( e ) 1 if e is a NaN - * __esqrt( a, b ) b = square root of a - * - * - * Routines for internal format numbers - * - * __eaddm( ai, bi ) add significands, bi = bi + ai - * __ecleaz(ei) ei = 0 - * __ecleazs(ei) set ei = 0 but leave its sign alone - * __ecmpm( ai, bi ) compare significands, return 1, 0, or -1 - * __edivm( ai, bi ) divide significands, bi = bi / ai - * __emdnorm(ai,l,s,exp) normalize and round off - * __emovi( a, ai ) convert external a to internal ai - * __emovo( ai, a ) convert internal ai to external a - * __emovz( ai, bi ) bi = ai, low guard word of bi = 0 - * __emulm( ai, bi ) multiply significands, bi = bi * ai - * __enormlz(ei) left-justify the significand - * __eshdn1( ai ) shift significand and guards down 1 bit - * __eshdn8( ai ) shift down 8 bits - * __eshdn6( ai ) shift down 16 bits - * __eshift( ai, n ) shift ai n bits up (or down if n < 0) - * __eshup1( ai ) shift significand and guards up 1 bit - * __eshup8( ai ) shift up 8 bits - * __eshup6( ai ) shift up 16 bits - * __esubm( ai, bi ) subtract significands, bi = bi - ai - * - * - * The result is always normalized and rounded to NI-4 word precision - * after each arithmetic operation. - * - * Exception flags are NOT fully supported. - * - * Define INFINITY in mconf.h for support of infinity; otherwise a - * saturation arithmetic is implemented. - * - * Define NANS for support of Not-a-Number items; otherwise the - * arithmetic will never produce a NaN output, and might be confused - * by a NaN input. - * If NaN's are supported, the output of ecmp(a,b) is -2 if - * either a or b is a NaN. This means asking if(ecmp(a,b) < 0) - * may not be legitimate. Use if(ecmp(a,b) == -1) for less-than - * if in doubt. - * Signaling NaN's are NOT supported; they are treated the same - * as quiet NaN's. - * - * Denormals are always supported here where appropriate (e.g., not - * for conversion to DEC numbers). - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <math.h> -#include <locale.h> -#include <ctype.h> - -#undef alloca -#define alloca __builtin_alloca - -/* Don't build non-ANSI _IO_ldtoa. It is not thread safe. */ -#ifndef USE_LDTOA -#define USE_LDTOA 0 -#endif - - - /* Number of 16 bit words in external x type format */ -#define NE 6 - - /* Number of 16 bit words in internal format */ -#define NI (NE+3) - - /* Array offset to exponent */ -#define E 1 - - /* Array offset to high guard word */ -#define M 2 - - /* Number of bits of precision */ -#define NBITS ((NI-4)*16) - - /* Maximum number of decimal digits in ASCII conversion - * = NBITS*log10(2) - */ -#define NDEC (NBITS*8/27) - - /* The exponent of 1.0 */ -#define EXONE (0x3fff) - - -#define mtherr(fname, code) - - -extern long double strtold (const char * __restrict__ s, char ** __restrict__ se); -extern int __asctoe64(const char * __restrict__ ss, - short unsigned int * __restrict__ y); -extern void __emul(const short unsigned int * a, - const short unsigned int * b, - short unsigned int * c); -extern int __ecmp(const short unsigned int * __restrict__ a, - const short unsigned int * __restrict__ b); -extern int __enormlz(short unsigned int *x); -extern int __eshift(short unsigned int *x, int sc); -extern void __eaddm(const short unsigned int * __restrict__ x, - short unsigned int * __restrict__ y); -extern void __esubm(const short unsigned int * __restrict__ x, - short unsigned int * __restrict__ y); -extern void __emdnorm(short unsigned int *s, int lost, int subflg, - int exp, int rcntrl, const int rndprc); -extern void __toe64(short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b); -extern int __edivm(short unsigned int * __restrict__ den, - short unsigned int * __restrict__ num); -extern int __emulm(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b); -extern void __emovi(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b); -extern void __emovo(const short unsigned int * __restrict__ a, - short unsigned int * __restrict__ b); - -#if USE_LDTOA - -extern char * _IO_ldtoa(long double, int, int, int *, int *, char **); -extern void _IO_ldtostr(long double *x, char *string, int ndigs, - int flags, char fmt); - -extern void __eiremain(short unsigned int * __restrict__ den, - short unsigned int *__restrict__ num, - short unsigned int *__restrict__ equot); -extern void __efloor(short unsigned int *x, short unsigned int *y); -extern void __eadd1(const short unsigned int * __restrict__ a, - const short unsigned int * __restrict__ b, - short unsigned int * __restrict__ c, - int subflg); -extern void __esub(const short unsigned int *a, const short unsigned int *b, - short unsigned int *c); -extern void __ediv(const short unsigned int *a, const short unsigned int *b, - short unsigned int *c); -extern void __e64toe(short unsigned int *pe, short unsigned int *y); - - -#endif - -static __inline__ int __eisneg(const short unsigned int *x); -static __inline__ int __eisinf(const short unsigned int *x); -static __inline__ int __eisnan(const short unsigned int *x); -static __inline__ int __eiszero(const short unsigned int *a); -static __inline__ void __emovz(register const short unsigned int * __restrict__ a, - register short unsigned int * __restrict__ b); -static __inline__ void __eclear(register short unsigned int *x); -static __inline__ void __ecleaz(register short unsigned int *xi); -static __inline__ void __ecleazs(register short unsigned int *xi); -static __inline__ int __eiisinf(const short unsigned int *x); -static __inline__ int __eiisnan(const short unsigned int *x); -static __inline__ int __eiiszero(const short unsigned int *x); -static __inline__ void __enan_64(short unsigned int *nanptr); -static __inline__ void __enan_NBITS (short unsigned int *nanptr); -static __inline__ void __enan_NI16 (short unsigned int *nanptr); -static __inline__ void __einfin(register short unsigned int *x); -static __inline__ void __eneg(short unsigned int *x); -static __inline__ void __eshup1(register short unsigned int *x); -static __inline__ void __eshup8(register short unsigned int *x); -static __inline__ void __eshup6(register short unsigned int *x); -static __inline__ void __eshdn1(register short unsigned int *x); -static __inline__ void __eshdn8(register short unsigned int *x); -static __inline__ void __eshdn6(register short unsigned int *x); - - - -/* Intel IEEE, low order words come first: - */ -#define IBMPC 1 - -/* Define 1 for ANSI C atan2() function - * See atan.c and clog.c. - */ -#define ANSIC 1 - -/*define VOLATILE volatile*/ -#define VOLATILE - -/* For 12-byte long doubles on an i386, pad a 16-bit short 0 - * to the end of real constants initialized by integer arrays. - * - * #define XPD 0, - * - * Otherwise, the type is 10 bytes long and XPD should be - * defined blank. - * - * #define XPD - */ -#define XPD 0, -/* #define XPD */ -#define NANS 1 - -/* NaN's require infinity support. */ -#ifdef NANS -#ifndef INFINITY -#define INFINITY -#endif -#endif - -/* This handles 64-bit long ints. */ -#define LONGBITS (8 * sizeof(long)) - - -#define NTEN 12 -#define MAXP 4096 - -/* -; Clear out entire external format number. -; -; unsigned short x[]; -; eclear( x ); -*/ - -static __inline__ void __eclear(register short unsigned int *x) -{ - memset(x, 0, NE * sizeof(unsigned short)); -} - - -/* Move external format number from a to b. - * - * emov( a, b ); - */ - -static __inline__ void __emov(register const short unsigned int * __restrict__ a, - register short unsigned int * __restrict__ b) -{ - memcpy(b, a, NE * sizeof(unsigned short)); -} - - -/* -; Negate external format number -; -; unsigned short x[NE]; -; eneg( x ); -*/ - -static __inline__ void __eneg(short unsigned int *x) -{ -#ifdef NANS - if (__eisnan(x)) - return; -#endif - x[NE-1] ^= 0x8000; /* Toggle the sign bit */ -} - - -/* Return 1 if external format number is negative, - * else return zero. - */ -static __inline__ int __eisneg(const short unsigned int *x) -{ -#ifdef NANS - if (__eisnan(x)) - return (0); -#endif - if (x[NE-1] & 0x8000) - return (1); - else - return (0); -} - - -/* Return 1 if external format number has maximum possible exponent, - * else return zero. - */ -static __inline__ int __eisinf(const short unsigned int *x) -{ - if ((x[NE - 1] & 0x7fff) == 0x7fff) - { -#ifdef NANS - if (__eisnan(x)) - return (0); -#endif - return (1); - } - else - return (0); -} - -/* Check if e-type number is not a number. - */ -static __inline__ int __eisnan(const short unsigned int *x) -{ -#ifdef NANS - int i; - /* NaN has maximum __exponent */ - if ((x[NE - 1] & 0x7fff) == 0x7fff) - /* ... and non-zero significand field. */ - for (i = 0; i < NE - 1; i++) - { - if (*x++ != 0) - return (1); - } -#endif - return (0); -} - -/* -; Fill __entire number, including __exponent and significand, with -; largest possible number. These programs implement a saturation -; value that is an ordinary, legal number. A special value -; "infinity" may also be implemented; this would require tests -; for that value and implementation of special rules for arithmetic -; operations involving inifinity. -*/ - -static __inline__ void __einfin(register short unsigned int *x) -{ - register int i; -#ifdef INFINITY - for (i = 0; i < NE - 1; i++) - *x++ = 0; - *x |= 32767; -#else - for (i = 0; i < NE - 1; i++) - *x++ = 0xffff; - *x |= 32766; - *(x - 5) = 0; -#endif -} - -/* Clear out internal format number. - */ - -static __inline__ void __ecleaz(register short unsigned int *xi) -{ - memset(xi, 0, NI * sizeof(unsigned short)); -} - -/* same, but don't touch the sign. */ - -static __inline__ void __ecleazs(register short unsigned int *xi) -{ - ++xi; - memset(xi, 0, (NI-1) * sizeof(unsigned short)); -} - -/* Move internal format number from a to b. - */ -static __inline__ void __emovz(register const short unsigned int * __restrict__ a, - register short unsigned int * __restrict__ b) -{ - memcpy(b, a, (NI-1) * sizeof(unsigned short)); - b[NI - 1] = 0; -} - -/* Return nonzero if internal format number is a NaN. - */ - -static __inline__ int __eiisnan (const short unsigned int *x) -{ - int i; - - if ((x[E] & 0x7fff) == 0x7fff) - { - for (i = M + 1; i < NI; i++ ) - { - if (x[i] != 0) - return (1); - } - } - return (0); -} - -/* Return nonzero if external format number is zero. */ - -static __inline__ int -__eiszero(const short unsigned int * a) -{ - union { - long double ld; - unsigned short sh[8]; - } av; - av.ld = 0.0; - memcpy (av.sh, a, 12); - if (av.ld == 0.0) - return (1); - return (0); -} - -/* Return nonzero if internal format number is zero. */ - -static __inline__ int -__eiiszero(const short unsigned int * ai) -{ - int i; - /* skip the sign word */ - for (i = 1; i < NI - 1; i++ ) - { - if (ai[i] != 0) - return (0); - } - return (1); -} - - -/* Return nonzero if internal format number is infinite. */ - -static __inline__ int -__eiisinf (const unsigned short *x) -{ -#ifdef NANS - if (__eiisnan (x)) - return (0); -#endif - if ((x[E] & 0x7fff) == 0x7fff) - return (1); - return (0); -} - -/* -; Compare significands of numbers in internal format. -; Guard words are included in the comparison. -; -; unsigned short a[NI], b[NI]; -; cmpm( a, b ); -; -; for the significands: -; returns +1 if a > b -; 0 if a == b -; -1 if a < b -*/ -static __inline__ int __ecmpm(register const short unsigned int * __restrict__ a, - register const short unsigned int * __restrict__ b) -{ - int i; - - a += M; /* skip up to significand area */ - b += M; - for (i = M; i < NI; i++) - { - if( *a++ != *b++ ) - goto difrnt; - } - return(0); - - difrnt: - if ( *(--a) > *(--b) ) - return (1); - else - return (-1); -} - - -/* -; Shift significand down by 1 bit -*/ - -static __inline__ void __eshdn1(register short unsigned int *x) -{ - register unsigned short bits; - int i; - - x += M; /* point to significand area */ - - bits = 0; - for (i = M; i < NI; i++ ) - { - if (*x & 1) - bits |= 1; - *x >>= 1; - if (bits & 2) - *x |= 0x8000; - bits <<= 1; - ++x; - } -} - -/* -; Shift significand up by 1 bit -*/ - -static __inline__ void __eshup1(register short unsigned int *x) -{ - register unsigned short bits; - int i; - - x += NI-1; - bits = 0; - - for (i = M; i < NI; i++) - { - if (*x & 0x8000) - bits |= 1; - *x <<= 1; - if (bits & 2) - *x |= 1; - bits <<= 1; - --x; - } -} - - -/* -; Shift significand down by 8 bits -*/ - -static __inline__ void __eshdn8(register short unsigned int *x) -{ - register unsigned short newbyt, oldbyt; - int i; - - x += M; - oldbyt = 0; - for (i = M; i < NI; i++) - { - newbyt = *x << 8; - *x >>= 8; - *x |= oldbyt; - oldbyt = newbyt; - ++x; - } -} - -/* -; Shift significand up by 8 bits -*/ - -static __inline__ void __eshup8(register short unsigned int *x) -{ - int i; - register unsigned short newbyt, oldbyt; - - x += NI - 1; - oldbyt = 0; - - for (i = M; i < NI; i++) - { - newbyt = *x >> 8; - *x <<= 8; - *x |= oldbyt; - oldbyt = newbyt; - --x; - } -} - -/* -; Shift significand up by 16 bits -*/ - -static __inline__ void __eshup6(register short unsigned int *x) -{ - int i; - register unsigned short *p; - - p = x + M; - x += M + 1; - - for (i = M; i < NI - 1; i++) - *p++ = *x++; - - *p = 0; -} - -/* -; Shift significand down by 16 bits -*/ - -static __inline__ void __eshdn6(register short unsigned int *x) -{ - int i; - register unsigned short *p; - - x += NI - 1; - p = x + 1; - - for (i = M; i < NI - 1; i++) - *(--p) = *(--x); - - *(--p) = 0; -} - -/* -; Add significands -; x + y replaces y -*/ - -static __inline__ void __enan_64(unsigned short* nanptr) -{ - int i; - for (i = 0; i < 3; i++) - *nanptr++ = 0; - *nanptr++ = 0xc000; - *nanptr++ = 0x7fff; - *nanptr = 0; - return; -} - -static __inline__ void __enan_NBITS(unsigned short* nanptr) -{ - int i; - for (i = 0; i < NE - 2; i++) - *nanptr++ = 0; - *nanptr++ = 0xc000; - *nanptr = 0x7fff; - return; -} - -static __inline__ void __enan_NI16(unsigned short* nanptr) -{ - int i; - *nanptr++ = 0; - *nanptr++ = 0x7fff; - *nanptr++ = 0; - *nanptr++ = 0xc000; - for (i = 4; i < NI; i++) - *nanptr++ = 0; - return; -} - -#endif /* _CEPHES_EMATH_H */ - diff --git a/lib/libc/mingw/math/x86/asinh.c b/lib/libc/mingw/math/x86/asinh.c index 826cc6dee2..002aedee8c 100644 --- a/lib/libc/mingw/math/x86/asinh.c +++ b/lib/libc/mingw/math/x86/asinh.c @@ -5,6 +5,7 @@ */ #include <math.h> #include <errno.h> +#include <float.h> #include "fastmath.h" /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */ @@ -21,13 +22,53 @@ double asinh(double x) return x; #endif - /* Use log1p to avoid cancellation with small x. Put - x * x in denom, so overflow is harmless. - asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0) - = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */ + /* NB the previous formula + z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0)); + was defective in two ways: + 1: It ommitted required brackets: + z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); + ^ ^ + so would still overflow for large z. + 2: Even with the brackets, it still degraded quickly for large z + (where z*z+1 == z*z). + e.g. asinh (sinh 356.0)) gave 355.30685281944005 + */ - z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0)); + const double asinhCutover = pow(2,DBL_MAX_EXP/2); // 1.3407807929943e+154 - return ( x > 0.0 ? z : -z); + if (z < asinhCutover) + /* After excluding large values, the rearranged formula gives better results + the original formula log(z + sqrt(z * z + 1.0)) for very small z. + e.g. rearranged asinh(sinh 2e-301)) = 2e-301 + original asinh(sinh 2e-301)) = 0. + asinh(z) = log (z + sqrt (z * z + 1.0)) + = log1p (z + sqrt (z * z + 1.0) - 1.0) + = log1p (z + (sqrt (z * z + 1.0) - 1.0) + * (sqrt (z * z + 1.0) + 1.0) + / (sqrt (z * z + 1.0) + 1.0)) + = log1p (z + ((z * z + 1.0) - 1.0) + / (sqrt (z * z + 1.0) + 1.0)) + = log1p (z + z * z / (sqrt (z * z + 1.0) + 1.0)) + */ + z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); + else + /* above this, z*z+1 == z*z, so we can simplify + (and avoid z*z being infinity). + asinh(z) = log (z + sqrt (z * z + 1.0)) + = log (z + sqrt (z * z )) + = log (2 * z) + = log 2 + log z + Choosing asinhCutover is a little tricky. + We'd like something that's based on the nature of + the numeric type (DBL_MAX_EXP, etc). + If c = asinhCutover, then we need: + (1) c*c == c*c + 1 + (2) log (2*c) = log 2 + log c. + For float: + 9.490626562425156e7 is the smallest value that + achieves (1), but it fails (2). (It only just fails, + but enough to make the function erroneously non-monotonic). + */ + z = __fast_log(2) + __fast_log(z); + return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } - diff --git a/lib/libc/mingw/math/x86/asinhf.c b/lib/libc/mingw/math/x86/asinhf.c index fae785abef..c3d8850547 100644 --- a/lib/libc/mingw/math/x86/asinhf.c +++ b/lib/libc/mingw/math/x86/asinhf.c @@ -5,6 +5,7 @@ */ #include <math.h> #include <errno.h> +#include <float.h> #include "fastmath.h" /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */ @@ -21,13 +22,13 @@ float asinhf(float x) return x; #endif + /* See commentary in asinh */ + const float asinhCutover = pow(2,FLT_MAX_EXP/2); - /* Use log1p to avoid cancellation with small x. Put - x * x in denom, so overflow is harmless. - asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0) - = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */ - - z = __fast_log1p (z + z * z / (__fast_sqrt (z * z + 1.0) + 1.0)); - - return ( x > 0.0 ? z : -z); + if (z < asinhCutover) + z = __fast_log1p (z + z * (z / (__fast_sqrt (z * z + 1.0) + 1.0))); + //z = __fast_log(z + __fast_sqrt(z * z + 1.0)); + else + z = __fast_log(2) + __fast_log(z); + return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } diff --git a/lib/libc/mingw/math/x86/asinhl.c b/lib/libc/mingw/math/x86/asinhl.c index bb2ca97b22..5090da814e 100644 --- a/lib/libc/mingw/math/x86/asinhl.c +++ b/lib/libc/mingw/math/x86/asinhl.c @@ -5,6 +5,7 @@ */ #include <math.h> #include <errno.h> +#include <float.h> #include "fastmath.h" /* asinh(x) = copysign(log(fabs(x) + sqrt(x * x + 1.0)), x) */ @@ -22,12 +23,12 @@ long double asinhl(long double x) return x; #endif - /* Use log1p to avoid cancellation with small x. Put - x * x in denom, so overflow is harmless. - asinh(x) = log1p (x + sqrt (x * x + 1.0) - 1.0) - = log1p (x + x * x / (sqrt (x * x + 1.0) + 1.0)) */ + /* See commentary in asinh */ + const long double asinhCutover = powl(2,LDBL_MAX_EXP/2); - z = __fast_log1pl (z + z * z / (__fast_sqrtl (z * z + 1.0L) + 1.0L)); - - return ( x > 0.0 ? z : -z); + if (z < asinhCutover) + z = __fast_log1pl (z + z * (z / (__fast_sqrtl (z * z + 1.0) + 1.0))); + else + z = __fast_logl(2) + __fast_logl(z); + return copysignl(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } diff --git a/lib/libc/mingw/math/x86/atanh.c b/lib/libc/mingw/math/x86/atanh.c index 429bfeae70..b3aa76fe91 100644 --- a/lib/libc/mingw/math/x86/atanh.c +++ b/lib/libc/mingw/math/x86/atanh.c @@ -32,5 +32,5 @@ double atanh(double x) = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) = 0.5 * log1p ((2.0 * x ) / (1.0 - x)) */ z = 0.5 * __fast_log1p ((z + z) / (1.0 - z)); - return x >= 0 ? z : -z; + return copysign(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } diff --git a/lib/libc/mingw/math/x86/atanhf.c b/lib/libc/mingw/math/x86/atanhf.c index 96d1e9b229..9adc6902de 100644 --- a/lib/libc/mingw/math/x86/atanhf.c +++ b/lib/libc/mingw/math/x86/atanhf.c @@ -31,5 +31,5 @@ float atanhf (float x) = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) = 0.5 * log1p ((2.0 * x ) / (1.0 - x)) */ z = 0.5 * __fast_log1p ((z + z) / (1.0 - z)); - return x >= 0 ? z : -z; + return copysignf(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } diff --git a/lib/libc/mingw/math/x86/atanhl.c b/lib/libc/mingw/math/x86/atanhl.c index 59eb1bd917..76897466eb 100644 --- a/lib/libc/mingw/math/x86/atanhl.c +++ b/lib/libc/mingw/math/x86/atanhl.c @@ -30,5 +30,5 @@ long double atanhl (long double x) = 0.5 * log1p ((1.0 + x - 1.0 + x) /(1.0 - x)) = 0.5 * log1p ((2.0 * x ) / (1.0 - x)) */ z = 0.5L * __fast_log1pl ((z + z) / (1.0L - z)); - return x >= 0 ? z : -z; + return copysignl(z, x); //ensure 0.0 -> 0.0 and -0.0 -> -0.0. } diff --git a/lib/libc/mingw/misc/btowc.c b/lib/libc/mingw/misc/btowc.c index 026b491d79..c8fbd8e74d 100644 --- a/lib/libc/mingw/misc/btowc.c +++ b/lib/libc/mingw/misc/btowc.c @@ -19,8 +19,10 @@ wint_t btowc (int c) { unsigned char ch = c; wchar_t wc = WEOF; - MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS, - (char*)&ch, 1, &wc, 1); + if (!MultiByteToWideChar (___lc_codepage_func(), MB_ERR_INVALID_CHARS, + (char*)&ch, 1, &wc, 1)) + return WEOF; + return wc; } } diff --git a/lib/libc/mingw/misc/lc_locale_func.c b/lib/libc/mingw/misc/lc_locale_func.c index e6847ae8b6..8f9ccd4b14 100644 --- a/lib/libc/mingw/misc/lc_locale_func.c +++ b/lib/libc/mingw/misc/lc_locale_func.c @@ -2,18 +2,11 @@ #define ___lc_codepage_func __dummy____lc_codepage_func #include <windows.h> #include <locale.h> -#include <msvcrt.h> #undef __lc_codepage #undef ___lc_codepage_func #include "mb_wc_common.h" -static unsigned int *msvcrt__lc_codepage; -static unsigned int __cdecl msvcrt___lc_codepage_func(void) -{ - return *msvcrt__lc_codepage; -} - static unsigned int __cdecl setlocale_codepage_hack(void) { /* locale :: "lang[_country[.code_page]]" | ".code_page" */ @@ -21,14 +14,23 @@ static unsigned int __cdecl setlocale_codepage_hack(void) return cp_str ? atoi(cp_str + 1) : 0; } -static unsigned int __cdecl init_codepage_func(void); -unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func; +#ifndef __LIBMSVCRT_OS__ -unsigned int __cdecl ___lc_codepage_func (void) +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack; + +#else + +#include <msvcrt.h> + +static unsigned int *msvcrt__lc_codepage; +static unsigned int __cdecl msvcrt___lc_codepage_func(void) { - return __MINGW_IMP_SYMBOL(___lc_codepage_func) (); + return *msvcrt__lc_codepage; } +static unsigned int __cdecl init_codepage_func(void); +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = init_codepage_func; + static unsigned int __cdecl init_codepage_func(void) { HMODULE msvcrt = __mingw_get_msvcrt_handle(); @@ -48,3 +50,10 @@ static unsigned int __cdecl init_codepage_func(void) return (__MINGW_IMP_SYMBOL(___lc_codepage_func) = func)(); } + +#endif + +unsigned int __cdecl ___lc_codepage_func(void) +{ + return __MINGW_IMP_SYMBOL(___lc_codepage_func)(); +} diff --git a/lib/libc/mingw/misc/mingw_wcstod.c b/lib/libc/mingw/misc/mingw_wcstod.c index 394c0f1c33..e35a952668 100644 --- a/lib/libc/mingw/misc/mingw_wcstod.c +++ b/lib/libc/mingw/misc/mingw_wcstod.c @@ -1,4 +1,7 @@ #include <stdio.h> +#include <float.h> +#include <errno.h> +#include <math.h> extern long double __cdecl __mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr); @@ -9,7 +12,20 @@ __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndP double __cdecl __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr) { - return (double) __mingw_wcstold (_Str, _EndPtr); + long double ret = __mingw_wcstold (_Str, _EndPtr); + if (isfinite(ret)) { + /* Check for cases that aren't out of range for long doubles, but that are + * for doubles. */ + if (ret > DBL_MAX) + errno = ERANGE; + else if (ret < -DBL_MAX) + errno = ERANGE; + else if (ret > 0 && ret < DBL_MIN) + errno = ERANGE; + else if (ret < 0 && ret > -DBL_MIN) + errno = ERANGE; + } + return ret; } diff --git a/lib/libc/mingw/misc/mingw_wcstold.c b/lib/libc/mingw/misc/mingw_wcstold.c index ce1ad5e005..2f66bee2b6 100644 --- a/lib/libc/mingw/misc/mingw_wcstold.c +++ b/lib/libc/mingw/misc/mingw_wcstold.c @@ -1,32 +1,74 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +/* Wide char wrapper for strtold + * Revision history: + * 6 Nov 2002 Initial version. + * 25 Aug 2006 Don't use strtold internal functions. + * + * Contributor: Danny Smith <dannysmith@users.sourceforege.net> + */ + + /* This routine has been placed in the public domain.*/ + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif #include <windows.h> -#include <stdio.h> +#include <locale.h> +#include <wchar.h> +#include <stdlib.h> +#include <string.h> +#include <mbstring.h> -long double __cdecl -__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr); +#include "mb_wc_common.h" -long double __cdecl -__mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr) +long double __mingw_wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse) { - long double r; - char *n, *ep = NULL; - size_t l, l2; - - l = WideCharToMultiByte(CP_UTF8, 0, _Str, -1, NULL, 0, NULL, NULL); - n = alloca (l + 1); - if (l != 0) WideCharToMultiByte (CP_UTF8, 0, _Str, -1, n, l, NULL, NULL); - n[l] = 0; - r = __mingw_strtold (n, &ep); - if (ep != NULL) - { - *ep = 0; - l2 = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, n, -1, NULL, 0); - if (l2 > 0) - l2 -= 1; /* Remove zero terminator from length. */ - if (_EndPtr) - *_EndPtr = (wchar_t *) &_Str[l2]; - } - else if (_EndPtr) - *_EndPtr = NULL; - return r; -} + char * cs; + char * cse; + unsigned int i; + long double ret; + const unsigned int cp = ___lc_codepage_func(); + + /* Allocate enough room for (possibly) mb chars */ + cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX); + if (cp == 0) /* C locale */ + { + for (i = 0; (wcs[i] != 0) && wcs[i] <= 255; i++) + cs[i] = (char) wcs[i]; + cs[i] = '\0'; + } + else + { + int nbytes = -1; + int mb_len = 0; + /* loop through till we hit null or invalid character */ + for (i = 0; (wcs[i] != 0) && (nbytes != 0); i++) + { + nbytes = WideCharToMultiByte(cp, WC_COMPOSITECHECK | WC_SEPCHARS, + wcs + i, 1, cs + mb_len, MB_CUR_MAX, + NULL, NULL); + mb_len += nbytes; + } + cs[mb_len] = '\0'; + } + + ret = strtold (cs, &cse); + + if (wcse) + { + /* Make sure temp mbstring has 0 at cse. */ + *cse = '\0'; + i = MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, cs, -1, NULL, 0); + if (i > 0) + i -= 1; /* Remove zero terminator from length. */ + *wcse = (wchar_t *) wcs + i; + } + free (cs); + + return ret; +} diff --git a/lib/libc/mingw/misc/seterrno.c b/lib/libc/mingw/misc/seterrno.c index 952675da00..ab54c668f7 100644 --- a/lib/libc/mingw/misc/seterrno.c +++ b/lib/libc/mingw/misc/seterrno.c @@ -8,11 +8,17 @@ errno_t __cdecl _set_errno (int _Value) { errno = _Value; - return errno; + return 0; } errno_t __cdecl _get_errno (int *_Value) { - if(_Value) *_Value=errno; - return errno; + if(!_Value) + { + errno = EINVAL; + return EINVAL; + } + + *_Value = errno; + return 0; } diff --git a/lib/libc/mingw/misc/setjmp.S b/lib/libc/mingw/misc/setjmp.S index b2058e9e21..0c06b86320 100644 --- a/lib/libc/mingw/misc/setjmp.S +++ b/lib/libc/mingw/misc/setjmp.S @@ -50,6 +50,8 @@ __MINGW_USYMBOL(__intrinsic_setjmpex): movq %r15,0x48(%rcx) /* jmp_buf->R15 */ movq (%rsp),%rax movq %rax,0x50(%rcx) /* jmp_buf->Rip */ + stmxcsr 0x58(%rcx) /* jmp_buf->MxCsr */ + fnstcw 0x5c(%rcx) /* jmp_buf->FpCsr */ movdqa %xmm6,0x60(%rcx) /* jmp_buf->Xmm6 */ movdqa %xmm7,0x70(%rcx) /* jmp_buf->Xmm7 */ movdqa %xmm8,0x80(%rcx) /* jmp_buf->Xmm8 */ diff --git a/lib/libc/mingw/misc/strtold.c b/lib/libc/mingw/misc/strtold.c deleted file mode 100644 index 2b99eba825..0000000000 --- a/lib/libc/mingw/misc/strtold.c +++ /dev/null @@ -1,398 +0,0 @@ -/** - * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the mingw-w64 runtime package. - * No warranty is given; refer to the file DISCLAIMER.PD within this package. - */ - -#include "math/cephes_emath.h" - -#if NE == 10 -/* 1.0E0 */ -static const unsigned short __eone[NE] = { - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff, -}; -#else -static const unsigned short __eone[NE] = { - 0, 0000000,0000000,0000000,0100000,0x3fff, -}; -#endif - -#if NE == 10 -static const unsigned short __etens[NTEN + 1][NE] = -{ - {0x6576, 0x4a92, 0x804a, 0x153f, - 0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ - {0x6a32, 0xce52, 0x329a, 0x28ce, - 0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */ - {0x526c, 0x50ce, 0xf18b, 0x3d28, - 0x650d, 0x0c17, 0x8175, 0x7586, 0xc976, 0x4d48,}, - {0x9c66, 0x58f8, 0xbc50, 0x5c54, - 0xcc65, 0x91c6, 0xa60e, 0xa0ae, 0xe319, 0x46a3,}, - {0x851e, 0xeab7, 0x98fe, 0x901b, - 0xddbb, 0xde8d, 0x9df9, 0xebfb, 0xaa7e, 0x4351,}, - {0x0235, 0x0137, 0x36b1, 0x336c, - 0xc66f, 0x8cdf, 0x80e9, 0x47c9, 0x93ba, 0x41a8,}, - {0x50f8, 0x25fb, 0xc76b, 0x6b71, - 0x3cbf, 0xa6d5, 0xffcf, 0x1f49, 0xc278, 0x40d3,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0xf020, 0xb59d, 0x2b70, 0xada8, 0x9dc5, 0x4069,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0400, 0xc9bf, 0x8e1b, 0x4034,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2000, 0xbebc, 0x4019,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x9c40, 0x400c,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xc800, 0x4005,}, - {0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ -}; -#else -static const unsigned short __etens[NTEN+1][NE] = { - {0xc94c,0x979a,0x8a20,0x5202,0xc460,0x7525,},/* 10**4096 */ - {0xa74d,0x5de4,0xc53d,0x3b5d,0x9e8b,0x5a92,},/* 10**2048 */ - {0x650d,0x0c17,0x8175,0x7586,0xc976,0x4d48,}, - {0xcc65,0x91c6,0xa60e,0xa0ae,0xe319,0x46a3,}, - {0xddbc,0xde8d,0x9df9,0xebfb,0xaa7e,0x4351,}, - {0xc66f,0x8cdf,0x80e9,0x47c9,0x93ba,0x41a8,}, - {0x3cbf,0xa6d5,0xffcf,0x1f49,0xc278,0x40d3,}, - {0xf020,0xb59d,0x2b70,0xada8,0x9dc5,0x4069,}, - {0x0000,0x0000,0x0400,0xc9bf,0x8e1b,0x4034,}, - {0x0000,0x0000,0x0000,0x2000,0xbebc,0x4019,}, - {0x0000,0x0000,0x0000,0x0000,0x9c40,0x400c,}, - {0x0000,0x0000,0x0000,0x0000,0xc800,0x4005,}, - {0x0000,0x0000,0x0000,0x0000,0xa000,0x4002,}, /* 10**1 */ -}; -#endif - -int __asctoe64(const char * __restrict__ ss, short unsigned int * __restrict__ y) -{ - unsigned short yy[NI], xt[NI], tt[NI]; - int esign, decflg, nexp, expo, lost; - int k, c; - int valid_lead_string = 0; - int have_non_zero_mant = 0; - int prec = 0; - /* int trail = 0; */ - int lexp; - unsigned short nsign = 0; - const unsigned short *p; - char *sp, *lstr; - char *s; - - const char dec_sym = *(localeconv ()->decimal_point); - - int lenldstr = 0; - - /* Copy the input string. */ - c = strlen (ss) + 2; - lstr = (char *) alloca (c); - s = (char *) ss; - while( isspace ((int)(unsigned char)*s)) /* skip leading spaces */ - { - ++s; - ++lenldstr; - } - sp = lstr; - for (k = 0; k < c; k++) - { - if ((*sp++ = *s++) == '\0') - break; - } - *sp = '\0'; - s = lstr; - - if (*s == '-') - { - nsign = 0xffff; - ++s; - } - else if (*s == '+') - { - ++s; - } - - if (_strnicmp("INF", s , 3) == 0) - { - valid_lead_string = 1; - s += 3; - if ( _strnicmp ("INITY", s, 5) == 0) - s += 5; - __ecleaz(yy); - yy[E] = 0x7fff; /* infinity */ - goto aexit; - } - else if(_strnicmp ("NAN", s, 3) == 0) - { - valid_lead_string = 1; - s += 3; - __enan_NI16( yy ); - goto aexit; - } - - /* FIXME: Handle case of strtold ("NAN(n_char_seq)",endptr) */ - - /* Now get some digits. */ - lost = 0; - decflg = 0; - nexp = 0; - expo = 0; - __ecleaz( yy ); - - /* Ignore leading zeros */ - while (*s == '0') - { - valid_lead_string = 1; - s++; - } - -nxtcom: - - k = *s - '0'; - if ((k >= 0) && (k <= 9)) - { -#if 0 -/* The use of a special char as a flag for trailing zeroes causes problems when input - actually contains the char */ -/* Identify and strip trailing zeros after the decimal point. */ - if ((trail == 0) && (decflg != 0)) - { - sp = s; - while ((*sp >= '0') && (*sp <= '9')) - ++sp; - --sp; - while (*sp == '0') - { - *sp-- = (char)-1; - trail++; - } - if( *s == (char)-1 ) - goto donchr; - } -#endif - -/* If enough digits were given to more than fill up the yy register, - * continuing until overflow into the high guard word yy[2] - * guarantees that there will be a roundoff bit at the top - * of the low guard word after normalization. - */ - if (yy[2] == 0) - { - if( decflg ) - nexp += 1; /* count digits after decimal point */ - __eshup1( yy ); /* multiply current number by 10 */ - __emovz( yy, xt ); - __eshup1( xt ); - __eshup1( xt ); - __eaddm( xt, yy ); - __ecleaz( xt ); - xt[NI-2] = (unsigned short )k; - __eaddm( xt, yy ); - } - else - { - /* Mark any lost non-zero digit. */ - lost |= k; - /* Count lost digits before the decimal point. */ - if (decflg == 0) - nexp -= 1; - } - have_non_zero_mant |= k; - prec ++; - /* goto donchr; */ - } - else if (*s == dec_sym) - { - if( decflg ) - goto daldone; - ++decflg; - } - else if ((*s == 'E') || (*s == 'e') ) - { - if (prec || valid_lead_string) - goto expnt; - else - goto daldone; - } -#if 0 - else if (*s == (char)-1) - goto donchr; -#endif - else /* an invalid char */ - goto daldone; - - /* donchr: */ - ++s; - goto nxtcom; - -/* Exponent interpretation */ -expnt: - - esign = 1; - expo = 0; - /* Save position in case we need to fall back. */ - sp = s; - ++s; - /* check for + or - */ - if (*s == '-') - { - esign = -1; - ++s; - } - if (*s == '+') - ++s; - - /* Check for valid exponent. */ - if (!(*s >= '0' && *s <= '9')) - { - s = sp; - goto daldone; - } - - while ((*s >= '0') && (*s <= '9')) - { - /* Stop modifying exp if we are going to overflow anyway, - but keep parsing the string. */ - if (expo < 4978) - { - expo *= 10; - expo += *s - '0'; - } - s++; - } - - if (esign < 0) - expo = -expo; - - if (expo > 4977) /* maybe overflow */ - { - __ecleaz(yy); - if (have_non_zero_mant) - yy[E] = 0x7fff; - goto aexit; - } - else if (expo < -4977) /* underflow */ - { - __ecleaz(yy); - goto aexit; - } - -daldone: - - nexp = expo - nexp; - - /* Pad trailing zeros to minimize power of 10, per IEEE spec. */ - while ((nexp > 0) && (yy[2] == 0)) - { - __emovz( yy, xt ); - __eshup1( xt ); - __eshup1( xt ); - __eaddm( yy, xt ); - __eshup1( xt ); - if (xt[2] != 0) - break; - nexp -= 1; - __emovz( xt, yy ); - } - if ((k = __enormlz(yy)) > NBITS) - { - __ecleaz(yy); - goto aexit; - } - lexp = (EXONE - 1 + NBITS) - k; - __emdnorm( yy, lost, 0, lexp, 64, NBITS ); - /* convert to external format */ - - /* Multiply by 10**nexp. If precision is 64 bits, - * the maximum relative error incurred in forming 10**n - * for 0 <= n <= 324 is 8.2e-20, at 10**180. - * For 0 <= n <= 999, the peak relative error is 1.4e-19 at 10**947. - * For 0 >= n >= -999, it is -1.55e-19 at 10**-435. - */ - lexp = yy[E]; - if (nexp == 0) - { - k = 0; - goto expdon; - } - esign = 1; - if (nexp < 0) - { - nexp = -nexp; - esign = -1; - if (nexp > 4096) - { /* Punt. Can't handle this without 2 divides. */ - __emovi( __etens[0], tt ); - lexp -= tt[E]; - k = __edivm( tt, yy ); - lexp += EXONE; - nexp -= 4096; - } - } - p = &__etens[NTEN][0]; - __emov( __eone, xt ); - expo = 1; - do - { - if (expo & nexp) - __emul( p, xt, xt ); - p -= NE; - expo = expo + expo; - } - while (expo <= MAXP); - - __emovi( xt, tt ); - if (esign < 0) - { - lexp -= tt[E]; - k = __edivm( tt, yy ); - lexp += EXONE; - } - else - { - lexp += tt[E]; - k = __emulm( tt, yy ); - lexp -= EXONE - 1; - } - -expdon: - - /* Round and convert directly to the destination type */ - - __emdnorm( yy, k, 0, lexp, 64, 64 ); - -aexit: - - yy[0] = nsign; - - __toe64( yy, y ); - - /* Check for overflow, undeflow */ - if (have_non_zero_mant && - (*((long double*) y) == 0.0L || isinf (*((long double*) y)))) - errno = ERANGE; - - if (prec || valid_lead_string) - return (lenldstr + (s - lstr)); - - return 0; -} - - -long double strtold (const char * __restrict__ s, char ** __restrict__ se) -{ - int lenldstr; - union - { - unsigned short int us[6]; - long double ld; - } xx = {{0}}; - - lenldstr = __asctoe64( s, xx.us); - if (se) - *se = (char*)s + lenldstr; - - return xx.ld; -} - diff --git a/lib/libc/mingw/misc/wcstold.c b/lib/libc/mingw/misc/wcstold.c index 0137b20a34..12714ba19a 100644 --- a/lib/libc/mingw/misc/wcstold.c +++ b/lib/libc/mingw/misc/wcstold.c @@ -3,72 +3,10 @@ * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ -/* Wide char wrapper for strtold - * Revision history: - * 6 Nov 2002 Initial version. - * 25 Aug 2006 Don't use strtold internal functions. - * - * Contributor: Danny Smith <dannysmith@users.sourceforege.net> - */ - - /* This routine has been placed in the public domain.*/ -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include <windows.h> -#include <locale.h> -#include <wchar.h> #include <stdlib.h> -#include <string.h> -#include <mbstring.h> - -#include "mb_wc_common.h" long double wcstold (const wchar_t * __restrict__ wcs, wchar_t ** __restrict__ wcse) { - char * cs; - char * cse; - unsigned int i; - long double ret; - const unsigned int cp = ___lc_codepage_func(); - - /* Allocate enough room for (possibly) mb chars */ - cs = (char *) malloc ((wcslen(wcs)+1) * MB_CUR_MAX); - - if (cp == 0) /* C locale */ - { - for (i = 0; (wcs[i] != 0) && wcs[i] <= 255; i++) - cs[i] = (char) wcs[i]; - cs[i] = '\0'; - } - else - { - int nbytes = -1; - int mb_len = 0; - /* loop through till we hit null or invalid character */ - for (i = 0; (wcs[i] != 0) && (nbytes != 0); i++) - { - nbytes = WideCharToMultiByte(cp, WC_COMPOSITECHECK | WC_SEPCHARS, - wcs + i, 1, cs + mb_len, MB_CUR_MAX, - NULL, NULL); - mb_len += nbytes; - } - cs[mb_len] = '\0'; - } - - ret = strtold (cs, &cse); - - if (wcse) - { - /* Make sure temp mbstring has 0 at cse. */ - *cse = '\0'; - i = MultiByteToWideChar (cp, MB_ERR_INVALID_CHARS, cs, -1, NULL, 0); - if (i > 0) - i -= 1; /* Remove zero terminator from length. */ - *wcse = (wchar_t *) wcs + i; - } - free (cs); - - return ret; + return __mingw_wcstold(wcs, wcse); } diff --git a/lib/libc/mingw/secapi/vsprintf_s.c b/lib/libc/mingw/secapi/vsprintf_s.c index fd0c4ef13b..45dfb14b11 100644 --- a/lib/libc/mingw/secapi/vsprintf_s.c +++ b/lib/libc/mingw/secapi/vsprintf_s.c @@ -33,13 +33,8 @@ vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) return _stub (_DstBuf, _Size, _Format, _ArgList); } -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-function-declaration" - static int __cdecl _int_vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList) { return __ms_vsnprintf (_DstBuf, _Size, _Format, _ArgList); } - -#pragma clang diagnostic pop diff --git a/lib/libc/mingw/stdio/mingw_pformat.c b/lib/libc/mingw/stdio/mingw_pformat.c index a68d0f67a5..d9f5de7cef 100644 --- a/lib/libc/mingw/stdio/mingw_pformat.c +++ b/lib/libc/mingw/stdio/mingw_pformat.c @@ -212,7 +212,7 @@ typedef enum PFORMAT_SET_PRECISION, PFORMAT_END } __pformat_state_t; - + typedef enum { /* Argument length classification indices... @@ -289,8 +289,8 @@ typedef struct int precision; int rplen; wchar_t rpchr; - int thousands_chr_len; - wchar_t thousands_chr; + int thousands_chr_len; + wchar_t thousands_chr; int count; int quota; int expmin; @@ -787,7 +787,7 @@ while( value.__pformat_ullong_t ) { /* decomposing it into its constituent decimal digits, * in order from least significant to most significant, using - * the local buffer as a LIFO queue in which to store them. + * the local buffer as a LIFO queue in which to store them. */ if (p != buf && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0 && ((p - buf) % 4) == 3) @@ -833,7 +833,7 @@ while( value.__pformat_ullong_t ) * to the left of the displayed value, with zeros. */ while( stream->width-- > 0 ) - *p++ = '0'; + *p++ = '0'; else if( (stream->flags & PFORMAT_LJUSTIFY) == 0 ) /* @@ -842,7 +842,7 @@ while( value.__pformat_ullong_t ) * the value appears right justified within the output field. */ while( stream->width-- > 0 ) - __pformat_putc( '\x20', stream ); + __pformat_putc( '\x20', stream ); } if( stream->flags & PFORMAT_NEGATIVE ) @@ -943,7 +943,7 @@ void __pformat_xint( int fmt, __pformat_intarg_t value, __pformat_t *stream ) */ while( width-- > 0 ) *p++ = '0'; - + else if( (fmt == 'o') && (stream->flags & PFORMAT_HASHED) ) /* * The field width specified for minimum `precision' has already @@ -1048,38 +1048,57 @@ typedef union */ #include "../gdtoa/gdtoa.h" -static -char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign ) +static __pformat_fpreg_t init_fpreg_ldouble( long double val ) { - /* Helper function, derived from David M. Gay's `g_xfmt()', calling - * his `__gdtoa()' function in a manner to provide extended precision - * replacements for `ecvt()' and `fcvt()'. - */ - int k; unsigned int e = 0; char *ep; - static FPI fpi = { 64, 1-16383-64+1, 32766-16383-64+1, FPI_Round_near, 0, 14 /* Int_max */ }; - + __pformat_fpreg_t x; + x.__pformat_fpreg_ldouble_t = val; + if( sizeof( double ) == sizeof( long double ) ) { - /* The caller has written into x.__pformat_fpreg_ldouble_t, which - * actually isn't laid out in the way the rest of the union expects it. + /* Here, __pformat_fpreg_t expects to be initialized with a 80 bit long + * double, but this platform doesn't have long doubles that differ from + * regular 64 bit doubles. Therefore manually convert the 64 bit float + * value to an 80 bit float value. */ int exp = (x.__pformat_fpreg_mantissa >> 52) & 0x7ff; unsigned long long mant = x.__pformat_fpreg_mantissa & 0x000fffffffffffffULL; - int integer = exp ? 1 : 0; + int topbit = exp ? 1 : 0; int signbit = x.__pformat_fpreg_mantissa >> 63; - k = __fpclassify( x.__pformat_fpreg_double_t ); - if (exp == 0x7ff) exp = 0x7fff; else if (exp != 0) exp = exp - 1023 + 16383; - x.__pformat_fpreg_mantissa = (mant << 11) | ((unsigned long long)integer << 63); + else if (mant != 0) { + /* Denormal when stored as a 64 bit double, but becomes a normal when + * converted to 80 bit long double form. */ + exp = 1 - 1023 + 16383; + while (!(mant & 0x0010000000000000ULL)) { + /* Normalize the mantissa. */ + mant <<= 1; + exp--; + } + topbit = 1; /* The top bit, which is implicit in the 64 bit form. */ + } + x.__pformat_fpreg_mantissa = (mant << 11) | ((unsigned long long)topbit << 63); x.__pformat_fpreg_exponent = exp | (signbit << 15); } - else - k = __fpclassifyl( x.__pformat_fpreg_ldouble_t ); + return x; +} + +static +char *__pformat_cvt( int mode, long double val, int nd, int *dp, int *sign ) +{ + /* Helper function, derived from David M. Gay's `g_xfmt()', calling + * his `__gdtoa()' function in a manner to provide extended precision + * replacements for `ecvt()' and `fcvt()'. + */ + int k; unsigned int e = 0; char *ep; + static FPI fpi = { 64, 1-16383-64+1, 32766-16383-64+1, FPI_Round_near, 0, 14 /* Int_max */ }; + __pformat_fpreg_t x = init_fpreg_ldouble( val ); + + k = __fpclassifyl( val ); /* Classify the argument into an appropriate `__gdtoa()' category... */ @@ -1130,8 +1149,7 @@ char *__pformat_ecvt( long double x, int precision, int *dp, int *sign ) /* A convenience wrapper for the above... * it emulates `ecvt()', but takes a `long double' argument. */ - __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x; - return __pformat_cvt( 2, z, precision, dp, sign ); + return __pformat_cvt( 2, x, precision, dp, sign ); } static @@ -1140,8 +1158,7 @@ char *__pformat_fcvt( long double x, int precision, int *dp, int *sign ) /* A convenience wrapper for the above... * it emulates `fcvt()', but takes a `long double' argument. */ - __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x; - return __pformat_cvt( 3, z, precision, dp, sign ); + return __pformat_cvt( 3, x, precision, dp, sign ); } /* The following are required, to clean up the `__gdtoa()' memory pool, @@ -1218,7 +1235,7 @@ void __pformat_emit_radix_point( __pformat_t *stream ) * establish a multibyte to `wchar_t' converter... */ int len; wchar_t rpchr; mbstate_t state; - + /* Initialise the conversion state... */ memset( &state, 0, sizeof( state ) ); @@ -1259,7 +1276,7 @@ void __pformat_emit_radix_point( __pformat_t *stream ) */ char *p = buf; while( len-- > 0 ) - __pformat_putc( *p++, stream ); + __pformat_putc( *p++, stream ); } else @@ -1290,7 +1307,7 @@ void __pformat_emit_numeric_value( int c, __pformat_t *stream ) { wchar_t wcs; if ((wcs = stream->thousands_chr) != 0) - __pformat_wputchars (&wcs, 1, stream); + __pformat_wputchars (&wcs, 1, stream); } else /* and passing all other characters through, unmodified. @@ -1468,8 +1485,8 @@ void __pformat_emit_float( int sign, char *value, int len, __pformat_t *stream ) __pformat_putc( *value ? *value++ : '0', stream); --len; if (len != 0 && (stream->flags & PFORMAT_GROUPED) != 0 && stream->thousands_chr != 0 - && (len % 3) == 0) - __pformat_wputchars (&stream->thousands_chr, 1, stream); + && (len % 3) == 0) + __pformat_wputchars (&stream->thousands_chr, 1, stream); } while (len > 0); } @@ -1539,7 +1556,7 @@ void __pformat_emit_efloat( int sign, char *value, int e, __pformat_t *stream ) */ if( stream->width > (exp_width += 2) ) stream->width -= exp_width; - + else /* ignoring the field width specification, if insufficient. */ @@ -1587,7 +1604,7 @@ void __pformat_float( long double x, __pformat_t *stream ) * output in fixed point format. */ int sign, intlen; char *value; - + /* Establish the precision for the displayed value, defaulting to six * digits following the decimal point, if not explicitly specified. */ @@ -1847,7 +1864,7 @@ void __pformat_efloat( long double x, __pformat_t *stream ) * output in floating point format. */ int sign, intlen; char *value; - + /* Establish the precision for the displayed value, defaulting to six * digits following the decimal point, if not explicitly specified. */ @@ -1885,7 +1902,7 @@ void __pformat_gfloat( long double x, __pformat_t *stream ) * fixed or floating point format. */ int sign, intlen; char *value; - + /* Establish the precision for the displayed value, defaulting to * six significant digits, if not explicitly specified... */ @@ -1923,7 +1940,7 @@ void __pformat_gfloat( long double x, __pformat_t *stream ) * the balance following it... */ stream->precision -= intlen; - + else /* The `#' flag is not in effect... * Here we adjust the precision to accommodate all digits which @@ -1932,12 +1949,12 @@ void __pformat_gfloat( long double x, __pformat_t *stream ) */ if( ((stream->precision = strlen( value ) - intlen) < 0) /* - * This may require a compensating adjustment to the field - * width, to accommodate significant trailing zeros, which - * precede the radix point... - */ + * This may require a compensating adjustment to the field + * width, to accommodate significant trailing zeros, which + * precede the radix point... + */ && (stream->width > 0) ) - stream->width += stream->precision; + stream->width += stream->precision; /* Now, we format the result as any other fixed point value. */ @@ -1996,6 +2013,17 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) char buf[18 + 6], *p = buf; __pformat_intarg_t exponent; short exp_width = 2; + if (value.__pformat_fpreg_mantissa != 0 || + value.__pformat_fpreg_exponent != 0) + { + /* Reduce the exponent since the leading digit emited will start at + * the 4th bit from the highest order bit instead, the later being + * the leading digit of the floating point. Don't do this adjustment + * if the value is an actual zero. + */ + value.__pformat_fpreg_exponent -= 3; + } + /* The mantissa field of the argument value representation can * accommodate at most 16 hexadecimal digits, of which one will * be placed before the radix point, leaving at most 15 digits @@ -2010,15 +2038,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) * for exactly one digit discarded, shifting 4 bits per * digit, with up to 14 additional digits, to consume the * full availability of 15 precision digits). - * - * However, before we perform the rounding operation, we - * normalise the mantissa, shifting it to the left by as many - * bit positions may be necessary, until its highest order bit - * is set, thus preserving the maximum number of bits in the - * rounded result as possible. - */ - while( value.__pformat_fpreg_mantissa < (LLONG_MAX + 1ULL) ) - value.__pformat_fpreg_mantissa <<= 1; + */ /* We then shift the mantissa one bit position back to the * right, to guard against possible overflow when the rounding @@ -2041,11 +2061,15 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) value.__pformat_fpreg_mantissa <<= 1; else + { /* Otherwise the rounding adjustment would have overflowed, * so the carry has already filled the vacated bit; the effect - * of this is equivalent to an increment of the exponent. + * of this is equivalent to an increment of the exponent. We will + * discard a whole digit to match glibc's behavior. */ - value.__pformat_fpreg_exponent++; + value.__pformat_fpreg_exponent += 4; + value.__pformat_fpreg_mantissa >>= 3; + } /* We now complete the rounding to the required precision, by * shifting the unwanted digits out, from the right hand end of @@ -2054,71 +2078,63 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) value.__pformat_fpreg_mantissa >>= 4 * (15 - stream->precision); } - /* Encode the significant digits of the mantissa in hexadecimal - * ASCII notation, ready for transfer to the output stream... + /* Don't print anything if mantissa is zero unless we have to satisfy + * desired precision. */ - while( value.__pformat_fpreg_mantissa ) + if( value.__pformat_fpreg_mantissa || stream->precision > 0 ) { - /* taking the rightmost digit in each pass... + /* Encode the significant digits of the mantissa in hexadecimal + * ASCII notation, ready for transfer to the output stream... */ - unsigned c = value.__pformat_fpreg_mantissa & 0xF; - if( c == value.__pformat_fpreg_mantissa) + for( int i=stream->precision >= 15 || stream->precision < 0 ? 16 : stream->precision + 1; i>0; --i ) { - /* inserting the radix point, when we reach the last, - * (i.e. the most significant digit), unless we found no - * less significant digits, with no mandatory radix point - * inclusion, and no additional required precision... + /* taking the rightmost digit in each pass... */ - if( (p > buf) - || (stream->flags & PFORMAT_HASHED) || (stream->precision > 0) ) + unsigned c = value.__pformat_fpreg_mantissa & 0xF; + if( i == 1 ) { - /* - * Internally, we represent the radix point as an ASCII '.'; - * we will replace it with any locale specific alternative, - * at the time of transfer to the ultimate destination. - */ - *p++ = '.'; + /* inserting the radix point, when we reach the last, + * (i.e. the most significant digit), unless we found no + * less significant digits, with no mandatory radix point + * inclusion, and no additional required precision... + */ + if( (p > buf) + || (stream->flags & PFORMAT_HASHED) || (stream->precision > 0) ) + { + /* + * Internally, we represent the radix point as an ASCII '.'; + * we will replace it with any locale specific alternative, + * at the time of transfer to the ultimate destination. + */ + *p++ = '.'; + } } - /* If the most significant hexadecimal digit of the encoded - * output value is greater than one, then the indicated value - * will appear too large, by an additional binary exponent - * corresponding to the number of higher order bit positions - * which it occupies... - */ - while( value.__pformat_fpreg_mantissa > 1 ) + else if( stream->precision > 0 ) + /* + * we have not yet fulfilled the desired precision, + * and we have not yet found the most significant digit, + * so account for the current digit, within the field + * width required to meet the specified precision. + */ + stream->precision--; + + if( (c > 0) || (p > buf) || (stream->precision >= 0) ) { - /* so reduce the exponent value to compensate... - */ - value.__pformat_fpreg_exponent--; - value.__pformat_fpreg_mantissa >>= 1; + /* + * Ignoring insignificant trailing zeros, (unless required to + * satisfy specified precision), store the current encoded digit + * into the pending output buffer, in LIFO order, and using the + * appropriate case for digits in the `A'..`F' range. + */ + *p++ = c > 9 ? (c - 10 + 'A') | (stream->flags & PFORMAT_XCASE) : c + '0'; } - } - - else if( stream->precision > 0 ) - /* - * we have not yet fulfilled the desired precision, - * and we have not yet found the most significant digit, - * so account for the current digit, within the field - * width required to meet the specified precision. - */ - stream->precision--; - - if( (c > 0) || (p > buf) || (stream->precision >= 0) ) - { - /* - * Ignoring insignificant trailing zeros, (unless required to - * satisfy specified precision), store the current encoded digit - * into the pending output buffer, in LIFO order, and using the - * appropriate case for digits in the `A'..`F' range. + /* Shift out the current digit, (4-bit logical shift right), + * to align the next more significant digit to be extracted, + * and encoded in the next pass. */ - *p++ = c > 9 ? (c - 10 + 'A') | (stream->flags & PFORMAT_XCASE) : c + '0'; + value.__pformat_fpreg_mantissa >>= 4; } - /* Shift out the current digit, (4-bit logical shift right), - * to align the next more significant digit to be extracted, - * and encoded in the next pass. - */ - value.__pformat_fpreg_mantissa >>= 4; } if( p == buf ) @@ -2169,7 +2185,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) min_width++; exp_width++; } - + if( stream->width > min_width ) { /* When specified field width exceeds the minimum required, @@ -2180,8 +2196,8 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) /* and then emit any required left side padding spaces. */ if( (stream->flags & PFORMAT_JUSTIFY) == 0 ) - while( stream->width-- > 0 ) - __pformat_putc( '\x20', stream ); + while( stream->width-- > 0 ) + __pformat_putc( '\x20', stream ); } else @@ -2215,7 +2231,7 @@ void __pformat_emit_xfloat( __pformat_fpreg_t value, __pformat_t *stream ) */ __pformat_putc( '0', stream ); __pformat_putc( 'X' | (stream->flags & PFORMAT_XCASE), stream ); - + /* If the `0' flag is in effect... * Zero padding, to fill out the field, goes here... */ @@ -2259,7 +2275,69 @@ void __pformat_xldouble( long double x, __pformat_t *stream ) * value specified as `long double' type). */ unsigned sign_bit = 0; - __pformat_fpreg_t z; z.__pformat_fpreg_ldouble_t = x; + __pformat_fpreg_t z = init_fpreg_ldouble( x ); + + /* First check for NaN; it is emitted unsigned... + */ + if( isnan( x ) ) + __pformat_emit_inf_or_nan( sign_bit, "NaN", stream ); + + else + { /* Capture the sign bit up-front, so we can show it correctly + * even when the argument value is zero or infinite. + */ + if( (sign_bit = (z.__pformat_fpreg_exponent & 0x8000)) != 0 ) + stream->flags |= PFORMAT_NEGATIVE; + + /* Check for infinity, (positive or negative)... + */ + if( isinf( x ) ) + /* + * displaying the appropriately signed indicator, + * when appropriate. + */ + __pformat_emit_inf_or_nan( sign_bit, "Inf", stream ); + + else + { /* The argument value is a representable number... + * extract the effective value of the biased exponent... + */ + z.__pformat_fpreg_exponent &= 0x7FFF; + if( z.__pformat_fpreg_exponent == 0 ) + { + /* A biased exponent value of zero means either a + * true zero value, if the mantissa field also has + * a zero value, otherwise... + */ + if( z.__pformat_fpreg_mantissa != 0 ) + { + /* ...this mantissa represents a subnormal value. + */ + z.__pformat_fpreg_exponent = 1 - 0x3FFF; + } + } + else + /* This argument represents a non-zero normal number; + * eliminate the bias from the exponent... + */ + z.__pformat_fpreg_exponent -= 0x3FFF; + + /* Finally, hand the adjusted representation off to the + * generalised hexadecimal floating point format handler... + */ + __pformat_emit_xfloat( z, stream ); + } + } +} + +static +void __pformat_xdouble( double x, __pformat_t *stream ) +{ + /* Handler for `%la' and `%lA' format specifiers, (with argument + * value specified as `double' type). + */ + unsigned sign_bit = 0; + __pformat_fpreg_t z = init_fpreg_ldouble( (long double)x ); /* First check for NaN; it is emitted unsigned... */ @@ -2287,31 +2365,40 @@ void __pformat_xldouble( long double x, __pformat_t *stream ) * extract the effective value of the biased exponent... */ z.__pformat_fpreg_exponent &= 0x7FFF; + + /* If the double value was a denormalized number, it might have been renormalized by + * the conversion to long double. We will redenormalize it. + */ + if( z.__pformat_fpreg_exponent != 0 && z.__pformat_fpreg_exponent <= (0x3FFF - 0x3FF) ) + { + int shifted = (0x3FFF - 0x3FF) - z.__pformat_fpreg_exponent + 1; + z.__pformat_fpreg_mantissa >>= shifted; + z.__pformat_fpreg_exponent += shifted; + } + if( z.__pformat_fpreg_exponent == 0 ) { - /* A biased exponent value of zero means either a - * true zero value, if the mantissa field also has - * a zero value, otherwise... - */ - if( z.__pformat_fpreg_mantissa != 0 ) - { - /* ...this mantissa represents a subnormal value; - * adjust the exponent, while shifting the mantissa - * to the left, until its leading bit is 1. - */ - z.__pformat_fpreg_exponent = 1-0x3FFF; - while( (z.__pformat_fpreg_mantissa & (LLONG_MAX + 1ULL)) == 0 ) - { - z.__pformat_fpreg_mantissa <<= 1; - --z.__pformat_fpreg_exponent; - } - } + /* A biased exponent value of zero means either a + * true zero value, if the mantissa field also has + * a zero value, otherwise... + */ + if( z.__pformat_fpreg_mantissa != 0 ) + { + /* ...this mantissa represents a subnormal value. + */ + z.__pformat_fpreg_exponent = 1 - 0x3FF + 3; + } } else - /* This argument represents a non-zero normal number; - * eliminate the bias from the exponent... - */ - z.__pformat_fpreg_exponent -= 0x3FFF; + /* This argument represents a non-zero normal number; + * eliminate the bias from the exponent... + */ + z.__pformat_fpreg_exponent -= 0x3FFF - 3; + + /* Shift the mantissa so the leading 4 bits digit is 0 or 1. + * The exponent was also adjusted by 3 previously. + */ + z.__pformat_fpreg_mantissa >>= 3; /* Finally, hand the adjusted representation off to the * generalised hexadecimal floating point format handler... @@ -2332,17 +2419,17 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv) /* Create and initialise a format control block * for this output request. */ - dest, /* output goes to here */ - flags &= PFORMAT_TO_FILE | PFORMAT_NOLIMIT, /* only these valid initially */ - PFORMAT_IGNORE, /* no field width yet */ - PFORMAT_IGNORE, /* nor any precision spec */ - PFORMAT_RPINIT, /* radix point uninitialised */ - (wchar_t)(0), /* leave it unspecified */ + dest, /* output goes to here */ + flags &= PFORMAT_TO_FILE | PFORMAT_NOLIMIT, /* only these valid initially */ + PFORMAT_IGNORE, /* no field width yet */ + PFORMAT_IGNORE, /* nor any precision spec */ + PFORMAT_RPINIT, /* radix point uninitialised */ + (wchar_t)(0), /* leave it unspecified */ 0, - (wchar_t)(0), /* leave it unspecified */ - 0, /* zero output char count */ - max, /* establish output limit */ - -1 /* exponent chars preferred; + (wchar_t)(0), /* leave it unspecified */ + 0, /* zero output char count */ + max, /* establish output limit */ + -1 /* exponent chars preferred; -1 means to be determined. */ }; @@ -2390,793 +2477,794 @@ __pformat (int flags, void *dest, int max, const APICHAR *fmt, va_list argv) while( *fmt ) { - switch( c = *fmt++ ) - { - /* Data type specifiers... - * All are terminal, so exit the conversion spec parsing loop - * with a `goto format_scan', thus resuming at the outer level - * in the regular format string parser. - */ - case '%': - /* - * Not strictly a data type specifier... - * it simply converts as a literal `%' character. - * - * FIXME: should we require this to IMMEDIATELY follow the - * initial `%' of the "conversion spec"? (glibc `printf()' - * on GNU/Linux does NOT appear to require this, but POSIX - * and SUSv3 do seem to demand it). - */ + switch( c = *fmt++ ) + { + /* Data type specifiers... + * All are terminal, so exit the conversion spec parsing loop + * with a `goto format_scan', thus resuming at the outer level + * in the regular format string parser. + */ + case '%': + /* + * Not strictly a data type specifier... + * it simply converts as a literal `%' character. + * + * FIXME: should we require this to IMMEDIATELY follow the + * initial `%' of the "conversion spec"? (glibc `printf()' + * on GNU/Linux does NOT appear to require this, but POSIX + * and SUSv3 do seem to demand it). + */ #ifndef __BUILD_WIDEAPI - __pformat_putc( c, &stream ); + __pformat_putc( c, &stream ); #else stream.width = stream.precision = PFORMAT_IGNORE; __pformat_wputchars( L"%", 1, &stream ); #endif - goto format_scan; - - case 'C': - /* - * Equivalent to `%lc'; set `length' accordingly, - * and simply fall through. - */ - length = PFORMAT_LENGTH_LONG; - - case 'c': - /* - * Single, (or single multibyte), character output... - * - * We handle these by copying the argument into our local - * `argval' buffer, and then we pass the address of that to - * either `__pformat_putchars()' or `__pformat_wputchars()', - * as appropriate, effectively formatting it as a string of - * the appropriate type, with a length of one. - * - * A side effect of this method of handling character data - * is that, if the user sets a precision of zero, then no - * character is actually emitted; we don't want that, so we - * forcibly override any user specified precision. - */ - stream.precision = PFORMAT_IGNORE; - - /* Now we invoke the appropriate format handler... - */ - if( (length == PFORMAT_LENGTH_LONG) - || (length == PFORMAT_LENGTH_LLONG) ) - { - /* considering any `long' type modifier as a reference to - * `wchar_t' data, (which is promoted to an `int' argument)... - */ - wchar_t iargval = (wchar_t)(va_arg( argv, int )); - __pformat_wputchars( &iargval, 1, &stream ); - } - else - { /* while anything else is simply taken as `char', (which - * is also promoted to an `int' argument)... - */ - argval.__pformat_uchar_t = (unsigned char)(va_arg( argv, int )); - __pformat_putchars( (char *)(&argval), 1, &stream ); - } - goto format_scan; - - case 'S': - /* - * Equivalent to `%ls'; set `length' accordingly, - * and simply fall through. - */ - length = PFORMAT_LENGTH_LONG; - - case 's': - if( (length == PFORMAT_LENGTH_LONG) - || (length == PFORMAT_LENGTH_LLONG)) - { - /* considering any `long' type modifier as a reference to - * a `wchar_t' string... - */ - __pformat_wcputs( va_arg( argv, wchar_t * ), &stream ); - } - else - /* This is normal string output; - * we simply invoke the appropriate handler... - */ - __pformat_puts( va_arg( argv, char * ), &stream ); - goto format_scan; - case 'm': /* strerror (errno) */ - __pformat_puts (strerror (saved_errno), &stream); - goto format_scan; - - case 'o': - case 'u': - case 'x': - case 'X': - /* - * Unsigned integer values; octal, decimal or hexadecimal format... - */ + goto format_scan; + + case 'C': + /* + * Equivalent to `%lc'; set `length' accordingly, + * and simply fall through. + */ + length = PFORMAT_LENGTH_LONG; + + case 'c': + /* + * Single, (or single multibyte), character output... + * + * We handle these by copying the argument into our local + * `argval' buffer, and then we pass the address of that to + * either `__pformat_putchars()' or `__pformat_wputchars()', + * as appropriate, effectively formatting it as a string of + * the appropriate type, with a length of one. + * + * A side effect of this method of handling character data + * is that, if the user sets a precision of zero, then no + * character is actually emitted; we don't want that, so we + * forcibly override any user specified precision. + */ + stream.precision = PFORMAT_IGNORE; + + /* Now we invoke the appropriate format handler... + */ + if( (length == PFORMAT_LENGTH_LONG) + || (length == PFORMAT_LENGTH_LLONG) ) + { + /* considering any `long' type modifier as a reference to + * `wchar_t' data, (which is promoted to an `int' argument)... + */ + wchar_t iargval = (wchar_t)(va_arg( argv, int )); + __pformat_wputchars( &iargval, 1, &stream ); + } + else + { /* while anything else is simply taken as `char', (which + * is also promoted to an `int' argument)... + */ + argval.__pformat_uchar_t = (unsigned char)(va_arg( argv, int )); + __pformat_putchars( (char *)(&argval), 1, &stream ); + } + goto format_scan; + + case 'S': + /* + * Equivalent to `%ls'; set `length' accordingly, + * and simply fall through. + */ + length = PFORMAT_LENGTH_LONG; + + case 's': + if( (length == PFORMAT_LENGTH_LONG) + || (length == PFORMAT_LENGTH_LLONG)) + { + /* considering any `long' type modifier as a reference to + * a `wchar_t' string... + */ + __pformat_wcputs( va_arg( argv, wchar_t * ), &stream ); + } + else + /* This is normal string output; + * we simply invoke the appropriate handler... + */ + __pformat_puts( va_arg( argv, char * ), &stream ); + goto format_scan; + case 'm': /* strerror (errno) */ + __pformat_puts (strerror (saved_errno), &stream); + goto format_scan; + + case 'o': + case 'u': + case 'x': + case 'X': + /* + * Unsigned integer values; octal, decimal or hexadecimal format... + */ + stream.flags &= ~PFORMAT_POSITIVE; #if __ENABLE_PRINTF128 argval.__pformat_u128_t.t128.digits[1] = 0LL; /* no sign extend needed */ - if( length == PFORMAT_LENGTH_LLONG128 ) - argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 ); - else + if( length == PFORMAT_LENGTH_LLONG128 ) + argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 ); + else #endif if( length == PFORMAT_LENGTH_LLONG ) { - /* - * with an `unsigned long long' argument, which we - * process `as is'... - */ - argval.__pformat_ullong_t = va_arg( argv, unsigned long long ); - - } else if( length == PFORMAT_LENGTH_LONG ) { - /* - * or with an `unsigned long', which we promote to - * `unsigned long long'... - */ - argval.__pformat_ullong_t = va_arg( argv, unsigned long ); - - } else - { /* or for any other size, which will have been promoted - * to `unsigned int', we select only the appropriately sized - * least significant segment, and again promote to the same - * size as `unsigned long long'... - */ - argval.__pformat_ullong_t = va_arg( argv, unsigned int ); - if( length == PFORMAT_LENGTH_SHORT ) - /* - * from `unsigned short'... - */ - argval.__pformat_ullong_t = argval.__pformat_ushort_t; - - else if( length == PFORMAT_LENGTH_CHAR ) - /* - * or even from `unsigned char'... - */ - argval.__pformat_ullong_t = argval.__pformat_uchar_t; - } - - /* so we can pass any size of argument to either of two - * common format handlers... - */ - if( c == 'u' ) - /* - * depending on whether output is to be encoded in - * decimal format... - */ - __pformat_int( argval, &stream ); - - else - /* or in octal or hexadecimal format... - */ - __pformat_xint( c, argval, &stream ); - - goto format_scan; - - case 'd': - case 'i': - /* - * Signed integer values; decimal format... - * This is similar to `u', but must process `argval' as signed, - * and be prepared to handle negative numbers. - */ - stream.flags |= PFORMAT_NEGATIVE; + /* + * with an `unsigned long long' argument, which we + * process `as is'... + */ + argval.__pformat_ullong_t = va_arg( argv, unsigned long long ); + + } else if( length == PFORMAT_LENGTH_LONG ) { + /* + * or with an `unsigned long', which we promote to + * `unsigned long long'... + */ + argval.__pformat_ullong_t = va_arg( argv, unsigned long ); + + } else + { /* or for any other size, which will have been promoted + * to `unsigned int', we select only the appropriately sized + * least significant segment, and again promote to the same + * size as `unsigned long long'... + */ + argval.__pformat_ullong_t = va_arg( argv, unsigned int ); + if( length == PFORMAT_LENGTH_SHORT ) + /* + * from `unsigned short'... + */ + argval.__pformat_ullong_t = argval.__pformat_ushort_t; + + else if( length == PFORMAT_LENGTH_CHAR ) + /* + * or even from `unsigned char'... + */ + argval.__pformat_ullong_t = argval.__pformat_uchar_t; + } + + /* so we can pass any size of argument to either of two + * common format handlers... + */ + if( c == 'u' ) + /* + * depending on whether output is to be encoded in + * decimal format... + */ + __pformat_int( argval, &stream ); + + else + /* or in octal or hexadecimal format... + */ + __pformat_xint( c, argval, &stream ); + + goto format_scan; + + case 'd': + case 'i': + /* + * Signed integer values; decimal format... + * This is similar to `u', but must process `argval' as signed, + * and be prepared to handle negative numbers. + */ + stream.flags |= PFORMAT_NEGATIVE; #if __ENABLE_PRINTF128 - if( length == PFORMAT_LENGTH_LLONG128 ) { - argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 ); + if( length == PFORMAT_LENGTH_LLONG128 ) { + argval.__pformat_u128_t.t128 = va_arg( argv, __tI128 ); goto skip_sign; /* skip sign extend */ - } else + } else #endif - if( length == PFORMAT_LENGTH_LLONG ){ - /* - * The argument is a `long long' type... - */ - argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long long ); - } else if( length == PFORMAT_LENGTH_LONG ) { - /* - * or here, a `long' type... - */ - argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long ); - } else - { /* otherwise, it's an `int' type... - */ - argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, int ); - if( length == PFORMAT_LENGTH_SHORT ) - /* - * but it was promoted from a `short' type... - */ - argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_short_t; - else if( length == PFORMAT_LENGTH_CHAR ) - /* - * or even from a `char' type... - */ - argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_char_t; - } - - /* In any case, all share a common handler... - */ + if( length == PFORMAT_LENGTH_LLONG ){ + /* + * The argument is a `long long' type... + */ + argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long long ); + } else if( length == PFORMAT_LENGTH_LONG ) { + /* + * or here, a `long' type... + */ + argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, long ); + } else + { /* otherwise, it's an `int' type... + */ + argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, int ); + if( length == PFORMAT_LENGTH_SHORT ) + /* + * but it was promoted from a `short' type... + */ + argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_short_t; + else if( length == PFORMAT_LENGTH_CHAR ) + /* + * or even from a `char' type... + */ + argval.__pformat_u128_t.t128.digits[0] = argval.__pformat_char_t; + } + + /* In any case, all share a common handler... + */ argval.__pformat_u128_t.t128.digits[1] = (argval.__pformat_llong_t < 0) ? -1LL : 0LL; #if __ENABLE_PRINTF128 skip_sign: #endif - __pformat_int( argval, &stream ); - goto format_scan; - - case 'p': - /* - * Pointer argument; format as hexadecimal, subject to... - */ - if( (state == PFORMAT_INIT) && (stream.flags == flags) ) - { - /* Here, the user didn't specify any particular - * formatting attributes. We must choose a default - * which will be compatible with Microsoft's (broken) - * scanf() implementation, (i.e. matching the default - * used by MSVCRT's printf(), which appears to resemble - * "%0.8X" for 32-bit pointers); in particular, we MUST - * NOT adopt a GNU-like format resembling "%#x", because - * Microsoft's scanf() will choke on the "0x" prefix. - */ - stream.flags |= PFORMAT_ZEROFILL; - stream.precision = 2 * sizeof( uintptr_t ); - } - argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, uintptr_t ); - argval.__pformat_u128_t.t128.digits[1] = 0; - __pformat_xint( 'x', argval, &stream ); - goto format_scan; - - case 'e': - /* - * Floating point format, with lower case exponent indicator - * and lower case `inf' or `nan' representation when required; - * select lower case mode, and simply fall through... - */ - stream.flags |= PFORMAT_XCASE; - - case 'E': - /* - * Floating point format, with upper case exponent indicator - * and upper case `INF' or `NAN' representation when required, - * (or lower case for all of these, on fall through from above); - * select lower case mode, and simply fall through... - */ + __pformat_int( argval, &stream ); + goto format_scan; + + case 'p': + /* + * Pointer argument; format as hexadecimal, subject to... + */ + if( (state == PFORMAT_INIT) && (stream.flags == flags) ) + { + /* Here, the user didn't specify any particular + * formatting attributes. We must choose a default + * which will be compatible with Microsoft's (broken) + * scanf() implementation, (i.e. matching the default + * used by MSVCRT's printf(), which appears to resemble + * "%0.8X" for 32-bit pointers); in particular, we MUST + * NOT adopt a GNU-like format resembling "%#x", because + * Microsoft's scanf() will choke on the "0x" prefix. + */ + stream.flags |= PFORMAT_ZEROFILL; + stream.precision = 2 * sizeof( uintptr_t ); + } + argval.__pformat_u128_t.t128.digits[0] = va_arg( argv, uintptr_t ); + argval.__pformat_u128_t.t128.digits[1] = 0; + __pformat_xint( 'x', argval, &stream ); + goto format_scan; + + case 'e': + /* + * Floating point format, with lower case exponent indicator + * and lower case `inf' or `nan' representation when required; + * select lower case mode, and simply fall through... + */ + stream.flags |= PFORMAT_XCASE; + + case 'E': + /* + * Floating point format, with upper case exponent indicator + * and upper case `INF' or `NAN' representation when required, + * (or lower case for all of these, on fall through from above); + * select lower case mode, and simply fall through... + */ #ifdef __ENABLE_DFP - if( stream.flags & PFORMAT_DECIM32 ) - /* Is a 32bit decimal float */ - __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); - else if( stream.flags & PFORMAT_DECIM64 ) - /* - * Is a 64bit decimal float - */ - __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); - else if( stream.flags & PFORMAT_DECIM128 ) - /* - * Is a 128bit decimal float - */ - __pformat_efloat_decimal(va_arg( argv, _Decimal128 ), &stream ); - else + if( stream.flags & PFORMAT_DECIM32 ) + /* Is a 32bit decimal float */ + __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); + else if( stream.flags & PFORMAT_DECIM64 ) + /* + * Is a 64bit decimal float + */ + __pformat_efloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); + else if( stream.flags & PFORMAT_DECIM128 ) + /* + * Is a 128bit decimal float + */ + __pformat_efloat_decimal(va_arg( argv, _Decimal128 ), &stream ); + else #endif /* __ENABLE_DFP */ - if( stream.flags & PFORMAT_LDOUBLE ) - /* - * for a `long double' argument... - */ - __pformat_efloat( va_arg( argv, long double ), &stream ); - - else - /* or just a `double', which we promote to `long double', - * so the two may share a common format handler. - */ - __pformat_efloat( (long double)(va_arg( argv, double )), &stream ); - - goto format_scan; - - case 'f': - /* - * Fixed point format, using lower case for `inf' and - * `nan', when appropriate; select lower case mode, and - * simply fall through... - */ - stream.flags |= PFORMAT_XCASE; - - case 'F': - /* - * Fixed case format using upper case, or lower case on - * fall through from above, for `INF' and `NAN'... - */ + if( stream.flags & PFORMAT_LDOUBLE ) + /* + * for a `long double' argument... + */ + __pformat_efloat( va_arg( argv, long double ), &stream ); + + else + /* or just a `double', which we promote to `long double', + * so the two may share a common format handler. + */ + __pformat_efloat( (long double)(va_arg( argv, double )), &stream ); + + goto format_scan; + + case 'f': + /* + * Fixed point format, using lower case for `inf' and + * `nan', when appropriate; select lower case mode, and + * simply fall through... + */ + stream.flags |= PFORMAT_XCASE; + + case 'F': + /* + * Fixed case format using upper case, or lower case on + * fall through from above, for `INF' and `NAN'... + */ #ifdef __ENABLE_DFP - if( stream.flags & PFORMAT_DECIM32 ) - /* Is a 32bit decimal float */ - __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); - else if( stream.flags & PFORMAT_DECIM64 ) - /* - * Is a 64bit decimal float - */ - __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); - else if( stream.flags & PFORMAT_DECIM128 ) - /* - * Is a 128bit decimal float - */ - __pformat_float_decimal(va_arg( argv, _Decimal128 ), &stream ); - else + if( stream.flags & PFORMAT_DECIM32 ) + /* Is a 32bit decimal float */ + __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); + else if( stream.flags & PFORMAT_DECIM64 ) + /* + * Is a 64bit decimal float + */ + __pformat_float_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); + else if( stream.flags & PFORMAT_DECIM128 ) + /* + * Is a 128bit decimal float + */ + __pformat_float_decimal(va_arg( argv, _Decimal128 ), &stream ); + else #endif /* __ENABLE_DFP */ - if( stream.flags & PFORMAT_LDOUBLE ) - /* - * for a `long double' argument... - */ - __pformat_float( va_arg( argv, long double ), &stream ); - - else - /* or just a `double', which we promote to `long double', - * so the two may share a common format handler. - */ - __pformat_float( (long double)(va_arg( argv, double )), &stream ); - - goto format_scan; - - case 'g': - /* - * Generalised floating point format, with lower case - * exponent indicator when required; select lower case - * mode, and simply fall through... - */ - stream.flags |= PFORMAT_XCASE; - - case 'G': - /* - * Generalised floating point format, with upper case, - * or on fall through from above, with lower case exponent - * indicator when required... - */ + if( stream.flags & PFORMAT_LDOUBLE ) + /* + * for a `long double' argument... + */ + __pformat_float( va_arg( argv, long double ), &stream ); + + else + /* or just a `double', which we promote to `long double', + * so the two may share a common format handler. + */ + __pformat_float( (long double)(va_arg( argv, double )), &stream ); + + goto format_scan; + + case 'g': + /* + * Generalised floating point format, with lower case + * exponent indicator when required; select lower case + * mode, and simply fall through... + */ + stream.flags |= PFORMAT_XCASE; + + case 'G': + /* + * Generalised floating point format, with upper case, + * or on fall through from above, with lower case exponent + * indicator when required... + */ #ifdef __ENABLE_DFP - if( stream.flags & PFORMAT_DECIM32 ) - /* Is a 32bit decimal float */ - __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); - else if( stream.flags & PFORMAT_DECIM64 ) - /* - * Is a 64bit decimal float - */ - __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); - else if( stream.flags & PFORMAT_DECIM128 ) - /* - * Is a 128bit decimal float - */ - __pformat_gfloat_decimal(va_arg( argv, _Decimal128 ), &stream ); - else + if( stream.flags & PFORMAT_DECIM32 ) + /* Is a 32bit decimal float */ + __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal32 ), &stream ); + else if( stream.flags & PFORMAT_DECIM64 ) + /* + * Is a 64bit decimal float + */ + __pformat_gfloat_decimal((_Decimal128)va_arg( argv, _Decimal64 ), &stream ); + else if( stream.flags & PFORMAT_DECIM128 ) + /* + * Is a 128bit decimal float + */ + __pformat_gfloat_decimal(va_arg( argv, _Decimal128 ), &stream ); + else #endif /* __ENABLE_DFP */ - if( stream.flags & PFORMAT_LDOUBLE ) - /* - * for a `long double' argument... - */ - __pformat_gfloat( va_arg( argv, long double ), &stream ); - - else - /* or just a `double', which we promote to `long double', - * so the two may share a common format handler. - */ - __pformat_gfloat( (long double)(va_arg( argv, double )), &stream ); - - goto format_scan; - - case 'a': - /* - * Hexadecimal floating point format, with lower case radix - * and exponent indicators; select the lower case mode, and - * fall through... - */ - stream.flags |= PFORMAT_XCASE; - - case 'A': - /* - * Hexadecimal floating point format; handles radix and - * exponent indicators in either upper or lower case... - */ - if( stream.flags & PFORMAT_LDOUBLE ) - /* - * with a `long double' argument... - */ - __pformat_xldouble( va_arg( argv, long double ), &stream ); - - else - /* or just a `double'. - */ - __pformat_xldouble( (long double)(va_arg( argv, double )), &stream ); - - goto format_scan; - - case 'n': - /* - * Save current output character count... - */ - if( length == PFORMAT_LENGTH_CHAR ) - /* - * to a signed `char' destination... - */ - *va_arg( argv, char * ) = stream.count; - - else if( length == PFORMAT_LENGTH_SHORT ) - /* - * or to a signed `short'... - */ - *va_arg( argv, short * ) = stream.count; - - else if( length == PFORMAT_LENGTH_LONG ) - /* - * or to a signed `long'... - */ - *va_arg( argv, long * ) = stream.count; - - else if( length == PFORMAT_LENGTH_LLONG ) - /* - * or to a signed `long long'... - */ - *va_arg( argv, long long * ) = stream.count; - - else - /* - * or, by default, to a signed `int'. - */ - *va_arg( argv, int * ) = stream.count; - - goto format_scan; - - /* Argument length modifiers... - * These are non-terminal; each sets the format parser - * into the PFORMAT_END state, and ends with a `break'. - */ - case 'h': - /* - * Interpret the argument as explicitly of a `short' - * or `char' data type, truncated from the standard - * length defined for integer promotion. - */ - if( *fmt == 'h' ) - { - /* Modifier is `hh'; data type is `char' sized... - * Skip the second `h', and set length accordingly. - */ - ++fmt; - length = PFORMAT_LENGTH_CHAR; - } - - else - /* Modifier is `h'; data type is `short' sized... - */ - length = PFORMAT_LENGTH_SHORT; - - state = PFORMAT_END; - break; - - case 'j': - /* - * Interpret the argument as being of the same size as - * a `intmax_t' entity... - */ - length = __pformat_arg_length( intmax_t ); - state = PFORMAT_END; - break; - -# ifdef _WIN32 - - case 'I': - /* - * The MSVCRT implementation of the printf() family of - * functions explicitly uses... - */ + if( stream.flags & PFORMAT_LDOUBLE ) + /* + * for a `long double' argument... + */ + __pformat_gfloat( va_arg( argv, long double ), &stream ); + + else + /* or just a `double', which we promote to `long double', + * so the two may share a common format handler. + */ + __pformat_gfloat( (long double)(va_arg( argv, double )), &stream ); + + goto format_scan; + + case 'a': + /* + * Hexadecimal floating point format, with lower case radix + * and exponent indicators; select the lower case mode, and + * fall through... + */ + stream.flags |= PFORMAT_XCASE; + + case 'A': + /* + * Hexadecimal floating point format; handles radix and + * exponent indicators in either upper or lower case... + */ + if( sizeof( double ) != sizeof( long double ) && stream.flags & PFORMAT_LDOUBLE ) + /* + * with a `long double' argument... + */ + __pformat_xldouble( va_arg( argv, long double ), &stream ); + + else + /* or just a `double'. + */ + __pformat_xdouble( va_arg( argv, double ), &stream ); + + goto format_scan; + + case 'n': + /* + * Save current output character count... + */ + if( length == PFORMAT_LENGTH_CHAR ) + /* + * to a signed `char' destination... + */ + *va_arg( argv, char * ) = stream.count; + + else if( length == PFORMAT_LENGTH_SHORT ) + /* + * or to a signed `short'... + */ + *va_arg( argv, short * ) = stream.count; + + else if( length == PFORMAT_LENGTH_LONG ) + /* + * or to a signed `long'... + */ + *va_arg( argv, long * ) = stream.count; + + else if( length == PFORMAT_LENGTH_LLONG ) + /* + * or to a signed `long long'... + */ + *va_arg( argv, long long * ) = stream.count; + + else + /* + * or, by default, to a signed `int'. + */ + *va_arg( argv, int * ) = stream.count; + + goto format_scan; + + /* Argument length modifiers... + * These are non-terminal; each sets the format parser + * into the PFORMAT_END state, and ends with a `break'. + */ + case 'h': + /* + * Interpret the argument as explicitly of a `short' + * or `char' data type, truncated from the standard + * length defined for integer promotion. + */ + if( *fmt == 'h' ) + { + /* Modifier is `hh'; data type is `char' sized... + * Skip the second `h', and set length accordingly. + */ + ++fmt; + length = PFORMAT_LENGTH_CHAR; + } + + else + /* Modifier is `h'; data type is `short' sized... + */ + length = PFORMAT_LENGTH_SHORT; + + state = PFORMAT_END; + break; + + case 'j': + /* + * Interpret the argument as being of the same size as + * a `intmax_t' entity... + */ + length = __pformat_arg_length( intmax_t ); + state = PFORMAT_END; + break; + +# ifdef _WIN32 + + case 'I': + /* + * The MSVCRT implementation of the printf() family of + * functions explicitly uses... + */ #ifdef __ENABLE_PRINTF128 - if( (fmt[0] == '1') && (fmt[1] == '2') && (fmt[2] == '8')){ - length = PFORMAT_LENGTH_LLONG128; - fmt += 3; - } else + if( (fmt[0] == '1') && (fmt[1] == '2') && (fmt[2] == '8')){ + length = PFORMAT_LENGTH_LLONG128; + fmt += 3; + } else #endif - if( (fmt[0] == '6') && (fmt[1] == '4') ) - { - /* I64' instead of `ll', - * when referring to `long long' integer types... - */ - length = PFORMAT_LENGTH_LLONG; - fmt += 2; - } else - if( (fmt[0] == '3') && (fmt[1] == '2') ) - { - /* and `I32' instead of `l', - * when referring to `long' integer types... - */ - length = PFORMAT_LENGTH_LONG; - fmt += 2; - } - - else - /* or unqualified `I' instead of `t' or `z', - * when referring to `ptrdiff_t' or `size_t' entities; - * (we will choose to map it to `ptrdiff_t'). - */ - length = __pformat_arg_length( ptrdiff_t ); - - state = PFORMAT_END; - break; - -# endif - + if( (fmt[0] == '6') && (fmt[1] == '4') ) + { + /* I64' instead of `ll', + * when referring to `long long' integer types... + */ + length = PFORMAT_LENGTH_LLONG; + fmt += 2; + } else + if( (fmt[0] == '3') && (fmt[1] == '2') ) + { + /* and `I32' instead of `l', + * when referring to `long' integer types... + */ + length = PFORMAT_LENGTH_LONG; + fmt += 2; + } + + else + /* or unqualified `I' instead of `t' or `z', + * when referring to `ptrdiff_t' or `size_t' entities; + * (we will choose to map it to `ptrdiff_t'). + */ + length = __pformat_arg_length( ptrdiff_t ); + + state = PFORMAT_END; + break; + +# endif + #ifdef __ENABLE_DFP - case 'H': - stream.flags |= PFORMAT_DECIM32; - state = PFORMAT_END; - break; - - case 'D': - /* - * Interpret the argument as explicitly of a - * `_Decimal64' or `_Decimal128' data type. - */ - if( *fmt == 'D' ) - { - /* Modifier is `DD'; data type is `_Decimal128' sized... - * Skip the second `D', and set length accordingly. - */ - ++fmt; - stream.flags |= PFORMAT_DECIM128; - } - - else - /* Modifier is `D'; data type is `_Decimal64' sized... - */ - stream.flags |= PFORMAT_DECIM64; - - state = PFORMAT_END; - break; + case 'H': + stream.flags |= PFORMAT_DECIM32; + state = PFORMAT_END; + break; + + case 'D': + /* + * Interpret the argument as explicitly of a + * `_Decimal64' or `_Decimal128' data type. + */ + if( *fmt == 'D' ) + { + /* Modifier is `DD'; data type is `_Decimal128' sized... + * Skip the second `D', and set length accordingly. + */ + ++fmt; + stream.flags |= PFORMAT_DECIM128; + } + + else + /* Modifier is `D'; data type is `_Decimal64' sized... + */ + stream.flags |= PFORMAT_DECIM64; + + state = PFORMAT_END; + break; #endif /* __ENABLE_DFP */ - case 'l': - /* - * Interpret the argument as explicitly of a - * `long' or `long long' data type. - */ - if( *fmt == 'l' ) - { - /* Modifier is `ll'; data type is `long long' sized... - * Skip the second `l', and set length accordingly. - */ - ++fmt; - length = PFORMAT_LENGTH_LLONG; - } - - else - /* Modifier is `l'; data type is `long' sized... - */ - length = PFORMAT_LENGTH_LONG; - - state = PFORMAT_END; - break; - - case 'L': - /* - * Identify the appropriate argument as a `long double', - * when associated with `%a', `%A', `%e', `%E', `%f', `%F', - * `%g' or `%G' format specifications. - */ - stream.flags |= PFORMAT_LDOUBLE; - state = PFORMAT_END; - break; - - case 't': - /* - * Interpret the argument as being of the same size as - * a `ptrdiff_t' entity... - */ - length = __pformat_arg_length( ptrdiff_t ); - state = PFORMAT_END; - break; - - case 'z': - /* - * Interpret the argument as being of the same size as - * a `size_t' entity... - */ - length = __pformat_arg_length( size_t ); - state = PFORMAT_END; - break; - - /* Precision indicator... - * May appear once only; it must precede any modifier - * for argument length, or any data type specifier. - */ - case '.': - if( state < PFORMAT_GET_PRECISION ) - { - /* We haven't seen a precision specification yet, - * so initialise it to zero, (in case no digits follow), - * and accept any following digits as the precision. - */ - stream.precision = 0; - width_spec = &stream.precision; - state = PFORMAT_GET_PRECISION; - } - - else - /* We've already seen a precision specification, - * so this is just junk; proceed to end game. - */ - state = PFORMAT_END; - - /* Either way, we must not fall through here. - */ - break; - - /* Variable field width, or precision specification, - * derived from the argument list... - */ - case '*': - /* - * When this appears... - */ - if( width_spec - && ((state == PFORMAT_INIT) || (state == PFORMAT_GET_PRECISION)) ) - { - /* in proper context; assign to field width - * or precision, as appropriate. - */ - if( (*width_spec = va_arg( argv, int )) < 0 ) - { - /* Assigned value was negative... - */ - if( state == PFORMAT_INIT ) - { - /* For field width, this is equivalent to - * a positive value with the `-' flag... - */ - stream.flags |= PFORMAT_LJUSTIFY; - stream.width = -stream.width; - } - - else - /* while as a precision specification, - * it should simply be ignored. - */ - stream.precision = PFORMAT_IGNORE; - } - } - - else - /* out of context; give up on width and precision - * specifications for this conversion. - */ - state = PFORMAT_END; - - /* Mark as processed... - * we must not see `*' again, in this context. - */ - width_spec = NULL; - break; - - /* Formatting flags... - * Must appear while in the PFORMAT_INIT state, - * and are non-terminal, so again, end with `break'. - */ - case '#': - /* - * Select alternate PFORMAT_HASHED output style. - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_HASHED; - break; - - case '+': - /* - * Print a leading sign with numeric output, - * for both positive and negative values. - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_POSITIVE; - break; - - case '-': - /* - * Select left justification of displayed output - * data, within the output field width, instead of - * the default flush right justification. - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_LJUSTIFY; - break; - - case '\'': - /* - * This is an XSI extension to the POSIX standard, - * which we do not support, at present. - */ - if (state == PFORMAT_INIT) - { - stream.flags |= PFORMAT_GROUPED; /* $$$$ */ - int len; wchar_t rpchr; mbstate_t cstate; - memset (&cstate, 0, sizeof(state)); - if ((len = mbrtowc( &rpchr, localeconv()->thousands_sep, 16, &cstate)) > 0) - stream.thousands_chr = rpchr; - stream.thousands_chr_len = len; - } - break; - - case '\x20': - /* - * Reserve a single space, within the output field, - * for display of the sign of signed data; this will - * be occupied by the minus sign, if the data value - * is negative, or by a plus sign if the data value - * is positive AND the `+' flag is also present, or - * by a space otherwise. (Technically, this flag - * is redundant, if the `+' flag is present). - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_ADDSPACE; - break; - - case '0': - /* - * May represent a flag, to activate the `pad with zeros' - * option, or it may simply be a digit in a width or in a - * precision specification... - */ - if( state == PFORMAT_INIT ) - { - /* This is the flag usage... - */ - stream.flags |= PFORMAT_ZEROFILL; - break; - } - - default: - /* - * If we didn't match anything above, then we will check - * for digits, which we may accumulate to generate field - * width or precision specifications... - */ - if( (state < PFORMAT_END) && ('9' >= c) && (c >= '0') ) - { - if( state == PFORMAT_INIT ) - /* - * Initial digits explicitly relate to field width... - */ - state = PFORMAT_SET_WIDTH; - - else if( state == PFORMAT_GET_PRECISION ) - /* - * while those following a precision indicator - * explicitly relate to precision. - */ - state = PFORMAT_SET_PRECISION; - - if( width_spec ) - { - /* We are accepting a width or precision specification... - */ - if( *width_spec < 0 ) - /* - * and accumulation hasn't started yet; we simply - * initialise the accumulator with the current digit - * value, converting from ASCII to decimal. - */ - *width_spec = c - '0'; - - else - /* Accumulation has already started; we perform a - * `leftwise decimal digit shift' on the accumulator, - * (i.e. multiply it by ten), then add the decimal - * equivalent value of the current digit. - */ - *width_spec = *width_spec * 10 + c - '0'; - } - } - - else - { - /* We found a digit out of context, or some other character - * with no designated meaning; reject this format specification, - * backtrack, and emit it as literal text... - */ - fmt = backtrack; + case 'l': + /* + * Interpret the argument as explicitly of a + * `long' or `long long' data type. + */ + if( *fmt == 'l' ) + { + /* Modifier is `ll'; data type is `long long' sized... + * Skip the second `l', and set length accordingly. + */ + ++fmt; + length = PFORMAT_LENGTH_LLONG; + } + + else + /* Modifier is `l'; data type is `long' sized... + */ + length = PFORMAT_LENGTH_LONG; + + state = PFORMAT_END; + break; + + case 'L': + /* + * Identify the appropriate argument as a `long double', + * when associated with `%a', `%A', `%e', `%E', `%f', `%F', + * `%g' or `%G' format specifications. + */ + stream.flags |= PFORMAT_LDOUBLE; + state = PFORMAT_END; + break; + + case 't': + /* + * Interpret the argument as being of the same size as + * a `ptrdiff_t' entity... + */ + length = __pformat_arg_length( ptrdiff_t ); + state = PFORMAT_END; + break; + + case 'z': + /* + * Interpret the argument as being of the same size as + * a `size_t' entity... + */ + length = __pformat_arg_length( size_t ); + state = PFORMAT_END; + break; + + /* Precision indicator... + * May appear once only; it must precede any modifier + * for argument length, or any data type specifier. + */ + case '.': + if( state < PFORMAT_GET_PRECISION ) + { + /* We haven't seen a precision specification yet, + * so initialise it to zero, (in case no digits follow), + * and accept any following digits as the precision. + */ + stream.precision = 0; + width_spec = &stream.precision; + state = PFORMAT_GET_PRECISION; + } + + else + /* We've already seen a precision specification, + * so this is just junk; proceed to end game. + */ + state = PFORMAT_END; + + /* Either way, we must not fall through here. + */ + break; + + /* Variable field width, or precision specification, + * derived from the argument list... + */ + case '*': + /* + * When this appears... + */ + if( width_spec + && ((state == PFORMAT_INIT) || (state == PFORMAT_GET_PRECISION)) ) + { + /* in proper context; assign to field width + * or precision, as appropriate. + */ + if( (*width_spec = va_arg( argv, int )) < 0 ) + { + /* Assigned value was negative... + */ + if( state == PFORMAT_INIT ) + { + /* For field width, this is equivalent to + * a positive value with the `-' flag... + */ + stream.flags |= PFORMAT_LJUSTIFY; + stream.width = -stream.width; + } + + else + /* while as a precision specification, + * it should simply be ignored. + */ + stream.precision = PFORMAT_IGNORE; + } + } + + else + /* out of context; give up on width and precision + * specifications for this conversion. + */ + state = PFORMAT_END; + + /* Mark as processed... + * we must not see `*' again, in this context. + */ + width_spec = NULL; + break; + + /* Formatting flags... + * Must appear while in the PFORMAT_INIT state, + * and are non-terminal, so again, end with `break'. + */ + case '#': + /* + * Select alternate PFORMAT_HASHED output style. + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_HASHED; + break; + + case '+': + /* + * Print a leading sign with numeric output, + * for both positive and negative values. + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_POSITIVE; + break; + + case '-': + /* + * Select left justification of displayed output + * data, within the output field width, instead of + * the default flush right justification. + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_LJUSTIFY; + break; + + case '\'': + /* + * This is an XSI extension to the POSIX standard, + * which we do not support, at present. + */ + if (state == PFORMAT_INIT) + { + stream.flags |= PFORMAT_GROUPED; /* $$$$ */ + int len; wchar_t rpchr; mbstate_t cstate; + memset (&cstate, 0, sizeof(state)); + if ((len = mbrtowc( &rpchr, localeconv()->thousands_sep, 16, &cstate)) > 0) + stream.thousands_chr = rpchr; + stream.thousands_chr_len = len; + } + break; + + case '\x20': + /* + * Reserve a single space, within the output field, + * for display of the sign of signed data; this will + * be occupied by the minus sign, if the data value + * is negative, or by a plus sign if the data value + * is positive AND the `+' flag is also present, or + * by a space otherwise. (Technically, this flag + * is redundant, if the `+' flag is present). + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_ADDSPACE; + break; + + case '0': + /* + * May represent a flag, to activate the `pad with zeros' + * option, or it may simply be a digit in a width or in a + * precision specification... + */ + if( state == PFORMAT_INIT ) + { + /* This is the flag usage... + */ + stream.flags |= PFORMAT_ZEROFILL; + break; + } + + default: + /* + * If we didn't match anything above, then we will check + * for digits, which we may accumulate to generate field + * width or precision specifications... + */ + if( (state < PFORMAT_END) && ('9' >= c) && (c >= '0') ) + { + if( state == PFORMAT_INIT ) + /* + * Initial digits explicitly relate to field width... + */ + state = PFORMAT_SET_WIDTH; + + else if( state == PFORMAT_GET_PRECISION ) + /* + * while those following a precision indicator + * explicitly relate to precision. + */ + state = PFORMAT_SET_PRECISION; + + if( width_spec ) + { + /* We are accepting a width or precision specification... + */ + if( *width_spec < 0 ) + /* + * and accumulation hasn't started yet; we simply + * initialise the accumulator with the current digit + * value, converting from ASCII to decimal. + */ + *width_spec = c - '0'; + + else + /* Accumulation has already started; we perform a + * `leftwise decimal digit shift' on the accumulator, + * (i.e. multiply it by ten), then add the decimal + * equivalent value of the current digit. + */ + *width_spec = *width_spec * 10 + c - '0'; + } + } + + else + { + /* We found a digit out of context, or some other character + * with no designated meaning; reject this format specification, + * backtrack, and emit it as literal text... + */ + fmt = backtrack; #ifndef __BUILD_WIDEAPI - __pformat_putc( '%', &stream ); + __pformat_putc( '%', &stream ); #else stream.width = stream.precision = PFORMAT_IGNORE; __pformat_wputchars( L"%", 1, &stream ); #endif - goto format_scan; - } - } + goto format_scan; + } + } } } diff --git a/lib/libc/mingw/stdio/scanf.S b/lib/libc/mingw/stdio/scanf.S index 1e0bed9452..41ff64598c 100644 --- a/lib/libc/mingw/stdio/scanf.S +++ b/lib/libc/mingw/stdio/scanf.S @@ -9,17 +9,14 @@ The goal of this routine is to turn a call to v*scanf into a call to s*scanf. This is needed because mingw-w64 uses msvcr100.dll, which doesn't support the v*scanf functions instead of msvcr120.dll which does. - Unfortunately, there is no defined way to know exactly how big a va_list - is, so we use a hard-coded buffer. - - I suppose a sufficiently-motivated person could try to parse the format - to figure out how many tokens there are... */ +*/ /* The function prototype here is (essentially): - int __ms_vsscanf_internal (void *s, + int __ms_v*scanf_internal (void *s, void *format, void *arg, + size_t count, void *func); I say 'essentially' because passing a function pointer as void in ISO @@ -37,19 +34,6 @@ */ .def __argtos; .scl 2; .type 32; .endef - /* The max number of pointers we support. Must be an even number - to keep the 64bit stack 16byte aligned. Must not be less than 4. */ - .equ entries, 30 - - /* 64bit pointers are 8 bytes. */ - .equ sizeof, 8 - - /* Size of our buffer. */ - .equ iBytes, entries * sizeof - - /* Stack space for first 2 args to s*scanf. */ - .equ iOffset, (2 * sizeof) - .seh_proc __argtos __argtos: @@ -58,48 +42,58 @@ __argtos: - format must be in rdx. That's where it is on entry. - The first pointer in arg must be in r8. arg is in r8 on entry. - The second pointer in arg must be in r9. arg is in r8 on entry. - - The ($entries - 2) other pointers in arg must be on the stack, + - The (count - 2) other pointers in arg must be on the stack, starting 32bytes into rsp. */ - /* We need enough room to shadow (s + format) - + (enough room for all the other args). */ - subq $(iOffset + iBytes), %rsp - .seh_stackalloc iOffset + iBytes + pushq %rbp + .seh_pushreg %rbp + movq %rsp, %rbp + .seh_setframe %rbp, 0 + /* We need to always reserve space to shadow 4 parameters. */ + subq $32, %rsp + .seh_stackalloc 32 .seh_endprologue - /* We are going to copy $entries pointers from arg to our - local stack. Except the first 2, since they will be - loaded in registers. */ - movq $entries - 2, %r10 /* # of ptrs to copy. */ - - /* The first 32 bytes are in registers, but by spec, space - must still be reserved for them on the stack. Put the + movq 48(%rbp), %r10 /* func. */ + + /* We need enough room to shadow all the other args. + Except the first 2, since they will be loaded in registers. */ + cmpq $2, %r9 /* count. */ + jbe .SKIP + subq $2, %r9 /* # of ptrs to copy. */ + /* Calculate stack size (arg is 8byte) and keep the stack 16byte aligned. */ + leaq 8(, %r9, 8), %rax /* %rax = (%r9 + 1) * 8 */ + andq $-16, %rax + subq %rax, %rsp + + /* We are going to copy parameters from arg to our local stack. + The first 32 bytes are in registers, but by spec, space + must still be reserved for them on the stack. Put the rest of the pointers in the stack after that. */ lea 32(%rsp), %r11 /* dst. */ .LOOP: - subq $1, %r10 + subq $1, %r9 /* Use 16 to skip over the first 2 pointers. */ - movq 16(%r8, %r10, 8), %rax - movq %rax, (%r11, %r10, 8) + movq 16(%r8, %r9, 8), %rax + movq %rax, (%r11, %r9, 8) jnz .LOOP - /* r9 contains the routine we are going to call. Since we are about to - overwrite it, move it somewhere safe. */ - movq %r9, %r10 - +.SKIP: /* The stack is now correctly populated, and so are rcx and rdx. But we need to load the last 2 regs before making the call. */ movq 0x8(%r8), %r9 /* 2nd dest location (may be garbage if only 1 arg). */ - movq (%r8), %r8 /* 1st dest location. */ + movq (%r8), %r8 /* 1st dest location (may be garbage if no arg). */ /* Make the call. */ callq *%r10 - addq $(iOffset + iBytes), %rsp + /* Restore stack. */ + movq %rbp, %rsp + popq %rbp retq .seh_endproc @@ -113,31 +107,23 @@ __argtos: */ .def __argtos; .scl 2; .type 32; .endef - /* The max number of pointers we support. Must not be less than 1. */ - .equ entries, 30 - - /* 64bit pointers are 8 bytes. */ - .equ sizeof, 4 - - /* Size of our buffer. */ - .set iBytes, entries * sizeof - - /* Stack space for first 2 args to s*scanf. */ - .equ iOffset, (2 * sizeof) - __argtos: pushl %ebp movl %esp, %ebp pushl %edi + pushl %ebx /* Reserve enough stack space for everything. Stack usage will look like: 4 bytes - s 4 bytes - format - (iBytes) bytes - variable # of parameters for sscanf (all ptrs). */ + 4*count bytes - variable # of parameters for sscanf (all ptrs). */ - subl $(iOffset + iBytes), %esp + movl 20(%ebp), %ebx /* count. */ + addl $2, %ebx /* s + format. */ + sall $2, %ebx /* (count + 2) * 4. */ + subl %ebx, %esp /* Write out s and format where they need to be for the sscanf call. */ movl 8(%ebp), %eax @@ -145,10 +131,12 @@ __argtos: movl 12(%ebp), %edx movl %edx, 0x4(%esp) /* format. */ - /* We are going to copy $entries pointers from arg to our + /* We are going to copy _count_ pointers from arg to our local stack. */ - movl $entries, %ecx /* # of ptrs to copy. */ - lea iOffset(%esp), %edi /* dst. */ + movl 20(%ebp), %ecx /* # of ptrs to copy. */ + testl %ecx, %ecx + jz .SKIP + lea 8(%esp), %edi /* dst. */ movl 16(%ebp), %edx /* src. */ .LOOP: @@ -158,13 +146,16 @@ __argtos: movl %eax, (%edi, %ecx, 4) jnz .LOOP +.SKIP: /* The stack is now correctly populated. */ /* Make the call. */ - call *20(%ebp) + call *24(%ebp) /* Restore stack. */ - addl $(iOffset + iBytes), %esp + addl %ebx, %esp + + popl %ebx popl %edi leave @@ -178,25 +169,35 @@ __argtos: .globl __argtos __argtos: - push {r4-r7, lr} - sub sp, sp, #128 - mov r12, r3 - mov r4, sp + push {r4-r8, lr} + ldr r12, [sp, #24] ldr r5, [r2], #4 ldr r6, [r2], #4 - mov r3, #116 + subs r3, r3, #2 + mov r8, #0 + ble 2f + + /* Round the number of entries to an even number, to maintain + * 8 byte stack alignment. */ + mov r8, r3 + add r8, r8, #1 + bic r8, r8, #1 + sub sp, sp, r8, lsl #2 + mov r4, sp 1: ldr r7, [r2], #4 + subs r3, r3, #1 str r7, [r4], #4 - subs r3, r3, #4 bne 1b +2: mov r2, r5 mov r3, r6 blx r12 - add sp, sp, #128 - pop {r4-r7, pc} + + add sp, sp, r8, lsl #2 + pop {r4-r8, pc} #elif defined (__aarch64__) @@ -207,10 +208,9 @@ __argtos: __argtos: stp x29, x30, [sp, #-16]! mov x29, sp - sub sp, sp, #256 - mov x9, sp mov x10, x2 mov x11, x3 + mov x12, x4 ldr x2, [x10], #8 ldr x3, [x10], #8 @@ -219,13 +219,23 @@ __argtos: ldr x6, [x10], #8 ldr x7, [x10], #8 - mov x12, #240 + subs x11, x11, #6 + b.le 2f + + /* Round the number of entries to an even number, to maintain + * 16 byte stack alignment. */ + mov x13, x11 + add x13, x13, #1 + bic x13, x13, #1 + sub sp, sp, x13, lsl #3 + mov x9, sp 1: ldr x13, [x10], #8 + subs x11, x11, #1 str x13, [x9], #8 - subs x12, x12, #8 b.ne 1b - blr x11 +2: + blr x12 mov sp, x29 ldp x29, x30, [sp], #16 ret diff --git a/lib/libc/mingw/stdio/snprintf.c b/lib/libc/mingw/stdio/snprintf.c index 0bb5556fe3..2e43a67aee 100644 --- a/lib/libc/mingw/stdio/snprintf.c +++ b/lib/libc/mingw/stdio/snprintf.c @@ -12,27 +12,7 @@ int __cdecl __ms_snprintf(char* buffer, size_t n, const char *format, ...) va_list argptr; va_start(argptr, format); - - /* _vsnprintf() does not work with zero length buffer - * so count number of character by _vscprintf() call */ - if (n == 0 || !buffer) - { - retval = _vscprintf(format, argptr); - va_end(argptr); - return retval; - } - - retval = _vsnprintf (buffer, n, format, argptr); - - /* _vsnprintf() returns negative number if buffer is too small - * so count number of character by _vscprintf() call */ - if (retval < 0) - retval = _vscprintf(format, argptr); - - /* _vsnprintf() does not fill trailing null byte if there is not place for it */ - if ((size_t)retval >= n) - buffer[n-1] = '\0'; - + retval = __ms_vsnprintf(buffer, n, format, argptr); va_end(argptr); return retval; } diff --git a/lib/libc/mingw/stdio/strtof.c b/lib/libc/mingw/stdio/strtof.c index 5697eb4b54..c4e4eb918a 100644 --- a/lib/libc/mingw/stdio/strtof.c +++ b/lib/libc/mingw/stdio/strtof.c @@ -4,8 +4,24 @@ * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #include <stdlib.h> +#include <float.h> +#include <errno.h> +#include <math.h> float strtof( const char *nptr, char **endptr) { - return (strtod(nptr, endptr)); + double ret = strtod(nptr, endptr); + if (isfinite(ret)) { + /* Check for cases that aren't out of range for doubles, but that are + * for floats. */ + if (ret > FLT_MAX) + errno = ERANGE; + else if (ret < -FLT_MAX) + errno = ERANGE; + else if (ret > 0 && ret < FLT_MIN) + errno = ERANGE; + else if (ret < 0 && ret > -FLT_MIN) + errno = ERANGE; + } + return ret; } diff --git a/lib/libc/mingw/stdio/vfscanf.c b/lib/libc/mingw/stdio/vfscanf.c index dab72fe4a6..c3282a3edb 100644 --- a/lib/libc/mingw/stdio/vfscanf.c +++ b/lib/libc/mingw/stdio/vfscanf.c @@ -11,18 +11,22 @@ extern int __ms_vfscanf_internal ( FILE * s, const char * format, va_list arg, + size_t count, int (*func)(FILE * __restrict__, const char * __restrict__, ...)) asm("__argtos"); +extern size_t __ms_scanf_max_arg_count_internal (const char * format); + int __ms_vfscanf (FILE * __restrict__ stream, const char * __restrict__ format, va_list arg) { + size_t count = __ms_scanf_max_arg_count_internal (format); int ret; #if defined(_AMD64_) || defined(__x86_64__) || \ defined(_X86_) || defined(__i386__) || \ defined(_ARM_) || defined(__arm__) || \ defined(_ARM64_) || defined(__aarch64__) - ret = __ms_vfscanf_internal (stream, format, arg, fscanf); + ret = __ms_vfscanf_internal (stream, format, arg, count, fscanf); #else #error "unknown platform" #endif diff --git a/lib/libc/mingw/stdio/vfwscanf.c b/lib/libc/mingw/stdio/vfwscanf.c index 52cf928354..f8e465d361 100644 --- a/lib/libc/mingw/stdio/vfwscanf.c +++ b/lib/libc/mingw/stdio/vfwscanf.c @@ -11,19 +11,23 @@ extern int __ms_vfwscanf_internal ( FILE * s, const wchar_t * format, va_list arg, + size_t count, int (*func)(FILE * __restrict__, const wchar_t * __restrict__, ...)) asm("__argtos"); +extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format); + int __ms_vfwscanf (FILE * __restrict__ stream, const wchar_t * __restrict__ format, va_list arg) { + size_t count = __ms_wscanf_max_arg_count_internal (format); int ret; #if defined(_AMD64_) || defined(__x86_64__) || \ defined(_X86_) || defined(__i386__) || \ defined(_ARM_) || defined(__arm__) || \ defined (_ARM64_) || defined (__aarch64__) - ret = __ms_vfwscanf_internal (stream, format, arg, fwscanf); + ret = __ms_vfwscanf_internal (stream, format, arg, count, fwscanf); #else #error "unknown platform" #endif diff --git a/lib/libc/mingw/stdio/vsnprintf.c b/lib/libc/mingw/stdio/vsnprintf.c index 364186702b..772a23f660 100644 --- a/lib/libc/mingw/stdio/vsnprintf.c +++ b/lib/libc/mingw/stdio/vsnprintf.c @@ -13,19 +13,19 @@ int __cdecl __ms_vsnprintf (char *s,size_t n,const char *format,va_list arg) /* _vsnprintf() does not work with zero length buffer * so count number of character by _vscprintf() call */ - if (n == 0 || !s) + if (n == 0) return _vscprintf(format, arg); retval = _vsnprintf(s, n, format, arg); + /* _vsnprintf() does not fill trailing null byte if there is not place for it */ + if (retval < 0 || (size_t)retval == n) + s[n-1] = '\0'; + /* _vsnprintf() returns negative number if buffer is too small * so count number of character by _vscprintf() call */ if (retval < 0) retval = _vscprintf(format, arg); - /* _vsnprintf() does not fill trailing null byte if there is not place for it */ - if ((size_t)retval >= n) - s[n-1] = '\0'; - return retval; } diff --git a/lib/libc/mingw/stdio/vsscanf.c b/lib/libc/mingw/stdio/vsscanf.c index 6c8fe5a56f..9b3b650ded 100644 --- a/lib/libc/mingw/stdio/vsscanf.c +++ b/lib/libc/mingw/stdio/vsscanf.c @@ -11,19 +11,23 @@ extern int __ms_vsscanf_internal ( const char * s, const char * format, va_list arg, + size_t count, int (*func)(const char * __restrict__, const char * __restrict__, ...)) asm("__argtos"); +extern size_t __ms_scanf_max_arg_count_internal (const char * format); + int __ms_vsscanf (const char * __restrict__ s, const char * __restrict__ format, va_list arg) { + size_t count = __ms_scanf_max_arg_count_internal (format); int ret; #if defined(_AMD64_) || defined(__x86_64__) || \ defined(_X86_) || defined(__i386__) || \ defined(_ARM_) || defined(__arm__) || \ defined(_ARM64_) || defined(__aarch64__) - ret = __ms_vsscanf_internal (s, format, arg, sscanf); + ret = __ms_vsscanf_internal (s, format, arg, count, sscanf); #else #error "unknown platform" #endif diff --git a/lib/libc/mingw/stdio/vswscanf.c b/lib/libc/mingw/stdio/vswscanf.c index 941ed12057..01c811b32e 100644 --- a/lib/libc/mingw/stdio/vswscanf.c +++ b/lib/libc/mingw/stdio/vswscanf.c @@ -11,19 +11,23 @@ extern int __ms_vswscanf_internal ( const wchar_t * s, const wchar_t * format, va_list arg, + size_t count, int (*func)(const wchar_t * __restrict__, const wchar_t * __restrict__, ...)) asm("__argtos"); +extern size_t __ms_wscanf_max_arg_count_internal (const wchar_t * format); + int __ms_vswscanf(const wchar_t * __restrict__ s, const wchar_t * __restrict__ format, va_list arg) { + size_t count = __ms_wscanf_max_arg_count_internal (format); int ret; #if defined(_AMD64_) || defined(__x86_64__) || \ defined(_X86_) || defined(__i386__) || \ defined(_ARM_) || defined(__arm__) || \ defined(_ARM64_) || defined(__aarch64__) - ret = __ms_vswscanf_internal (s, format, arg, swscanf); + ret = __ms_vswscanf_internal (s, format, arg, count, swscanf); #else #error "unknown platform" #endif diff --git a/lib/libc/mingw/stdio/vwscanf.c b/lib/libc/mingw/stdio/vwscanf.c index 8310498ffd..3360eefad1 100644 --- a/lib/libc/mingw/stdio/vwscanf.c +++ b/lib/libc/mingw/stdio/vwscanf.c @@ -10,12 +10,7 @@ #include <wchar.h> #include <stdio.h> -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wimplicit-function-declaration" - int __ms_vwscanf (const wchar_t * __restrict__ format, va_list arg) { return __ms_vfwscanf(stdin, format, arg); } - -#pragma clang diagnostic pop diff --git a/src/mingw.zig b/src/mingw.zig index 23035fe72b..0d5d1fd0f7 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -91,6 +91,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { "-D_CRTBLD", "-D_WIN32_WINNT=0x0f00", "-D__MSVCRT_VERSION__=0x700", + "-D__USE_MINGW_ANSI_STDIO=0", }); c_source_files[i] = .{ .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{ @@ -105,7 +106,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { .msvcrt_os_lib => { const extra_flags = try arena.dupe([]const u8, &[_][]const u8{ "-DHAVE_CONFIG_H", - "-D__LIBMSVCRT__", + "-D__LIBMSVCRT_OS__", "-I", try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "mingw", "include" }), @@ -114,6 +115,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { "-D_CRTBLD", "-D_WIN32_WINNT=0x0f00", "-D__MSVCRT_VERSION__=0x700", + "-D__USE_MINGW_ANSI_STDIO=0", "-isystem", try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "include", "any-windows-any" }), @@ -162,6 +164,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { "-D_CRTBLD", "-D_WIN32_WINNT=0x0f00", "-D__MSVCRT_VERSION__=0x700", + "-D__USE_MINGW_ANSI_STDIO=0", "-isystem", try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "include", "any-windows-any" }), @@ -224,6 +227,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { "-D_CRTBLD", "-D_WIN32_WINNT=0x0f00", "-D__MSVCRT_VERSION__=0x700", + "-D__USE_MINGW_ANSI_STDIO=0", "-isystem", try comp.zig_lib_directory.join(arena, &[_][]const u8{ @@ -269,6 +273,7 @@ fn add_cc_args( "-D_CRTBLD", "-D_WIN32_WINNT=0x0f00", "-D__MSVCRT_VERSION__=0x700", + "-D__USE_MINGW_ANSI_STDIO=0", }); } @@ -677,7 +682,6 @@ const mingwex_generic_src = [_][]const u8{ "math" ++ path.sep_str ++ "cbrt.c", "math" ++ path.sep_str ++ "cbrtf.c", "math" ++ path.sep_str ++ "cbrtl.c", - "math" ++ path.sep_str ++ "cephes_emath.c", "math" ++ path.sep_str ++ "copysign.c", "math" ++ path.sep_str ++ "copysignf.c", "math" ++ path.sep_str ++ "coshf.c", @@ -810,7 +814,6 @@ const mingwex_generic_src = [_][]const u8{ "misc" ++ path.sep_str ++ "strnlen.c", "misc" ++ path.sep_str ++ "strsafe.c", "misc" ++ path.sep_str ++ "strtoimax.c", - "misc" ++ path.sep_str ++ "strtold.c", "misc" ++ path.sep_str ++ "strtoumax.c", "misc" ++ path.sep_str ++ "tdelete.c", "misc" ++ path.sep_str ++ "tfind.c", |
