From e52931e50f6360b78074602de1f114796857ab11 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 6 Oct 2022 07:04:29 -0700 Subject: [PATCH 1/5] update mingw-w64 headers to v10.0.0 --- lib/libc/include/any-windows-any/_mingw.h | 14 +- lib/libc/include/any-windows-any/_mingw_mac.h | 6 +- lib/libc/include/any-windows-any/activation.h | 2 +- lib/libc/include/any-windows-any/activaut.h | 2 +- lib/libc/include/any-windows-any/activdbg.h | 2 +- .../include/any-windows-any/activdbg100.h | 2 +- lib/libc/include/any-windows-any/activprof.h | 2 +- lib/libc/include/any-windows-any/activscp.h | 2 +- lib/libc/include/any-windows-any/adhoc.h | 2 +- lib/libc/include/any-windows-any/afunix.h | 19 + lib/libc/include/any-windows-any/alg.h | 2 +- lib/libc/include/any-windows-any/amstream.h | 2 +- lib/libc/include/any-windows-any/amvideo.h | 2 +- lib/libc/include/any-windows-any/asyncinfo.h | 2 +- .../include/any-windows-any/audioclient.h | 2 +- .../include/any-windows-any/audioendpoints.h | 2 +- .../include/any-windows-any/audiopolicy.h | 2 +- lib/libc/include/any-windows-any/austream.h | 2 +- lib/libc/include/any-windows-any/bdaiface.h | 2 +- lib/libc/include/any-windows-any/bits.h | 1556 ++++-- lib/libc/include/any-windows-any/bits1_5.h | 591 +- lib/libc/include/any-windows-any/bits2_0.h | 867 ++- lib/libc/include/any-windows-any/bits2_5.h | 270 + lib/libc/include/any-windows-any/bits3_0.h | 704 +++ lib/libc/include/any-windows-any/bits5_0.h | 581 ++ lib/libc/include/any-windows-any/comadmin.h | 2 +- lib/libc/include/any-windows-any/comcat.h | 2 +- lib/libc/include/any-windows-any/comdef.h | 16 +- .../include/any-windows-any/commoncontrols.h | 2 +- .../include/any-windows-any/computecore.h | 82 + .../include/any-windows-any/computedefs.h | 119 + .../include/any-windows-any/computenetwork.h | 142 + .../include/any-windows-any/computestorage.h | 40 + lib/libc/include/any-windows-any/control.h | 2 +- lib/libc/include/any-windows-any/corecrt.h | 5 - lib/libc/include/any-windows-any/ctfutb.h | 2 +- lib/libc/include/any-windows-any/ctype.h | 2 +- lib/libc/include/any-windows-any/d3d10.h | 2 +- lib/libc/include/any-windows-any/d3d10_1.h | 2 +- .../include/any-windows-any/d3d10effect.h | 4 +- .../include/any-windows-any/d3d10sdklayers.h | 2 +- lib/libc/include/any-windows-any/d3d11.h | 2 +- lib/libc/include/any-windows-any/d3d11_1.h | 2 +- lib/libc/include/any-windows-any/d3d11_2.h | 2 +- lib/libc/include/any-windows-any/d3d11_3.h | 2 +- lib/libc/include/any-windows-any/d3d11_4.h | 2 +- lib/libc/include/any-windows-any/d3d11on12.h | 2 +- .../include/any-windows-any/d3d11sdklayers.h | 2 +- lib/libc/include/any-windows-any/d3d12.h | 2 +- .../include/any-windows-any/d3d12sdklayers.h | 2 +- .../include/any-windows-any/d3d12shader.h | 2 +- lib/libc/include/any-windows-any/d3dcommon.h | 54 +- lib/libc/include/any-windows-any/dbgprop.h | 2 +- lib/libc/include/any-windows-any/dcommon.h | 2 +- lib/libc/include/any-windows-any/dcomp.h | 74 + .../include/any-windows-any/dcompanimation.h | 2 +- lib/libc/include/any-windows-any/ddk/ata.h | 1732 ++++++ lib/libc/include/any-windows-any/ddk/ntifs.h | 2 + lib/libc/include/any-windows-any/ddk/wdm.h | 1146 +++- lib/libc/include/any-windows-any/ddstream.h | 2 +- .../include/any-windows-any/devicetopology.h | 2 +- lib/libc/include/any-windows-any/dimm.h | 2 +- lib/libc/include/any-windows-any/dinput.h | 4 +- lib/libc/include/any-windows-any/dinputd.h | 2 +- .../any-windows-any/directmanipulation.h | 2 +- lib/libc/include/any-windows-any/dispex.h | 2 +- lib/libc/include/any-windows-any/dmodshow.h | 2 +- lib/libc/include/any-windows-any/docobj.h | 2 +- .../any-windows-any/docobjectservice.h | 2 +- .../include/any-windows-any/documenttarget.h | 2 +- .../include/any-windows-any/downloadmgr.h | 2 +- .../include/any-windows-any/drmexternals.h | 2 +- lib/libc/include/any-windows-any/dsound.h | 12 +- lib/libc/include/any-windows-any/dvdif.h | 2 +- lib/libc/include/any-windows-any/dwrite.h | 2 +- lib/libc/include/any-windows-any/dwrite_1.h | 2 +- lib/libc/include/any-windows-any/dwrite_2.h | 2 +- lib/libc/include/any-windows-any/dwrite_3.h | 11 +- lib/libc/include/any-windows-any/dxgi.h | 2 +- lib/libc/include/any-windows-any/dxgi1_2.h | 2 +- lib/libc/include/any-windows-any/dxgi1_3.h | 2 +- lib/libc/include/any-windows-any/dxgi1_4.h | 2 +- lib/libc/include/any-windows-any/dxgi1_5.h | 2 +- lib/libc/include/any-windows-any/dxgi1_6.h | 2 +- lib/libc/include/any-windows-any/dxgicommon.h | 2 +- lib/libc/include/any-windows-any/dxgidebug.h | 2 +- lib/libc/include/any-windows-any/dxgiformat.h | 2 +- lib/libc/include/any-windows-any/dxgitype.h | 2 +- lib/libc/include/any-windows-any/dxva.h | 269 + lib/libc/include/any-windows-any/dxva2api.h | 2 +- lib/libc/include/any-windows-any/dxvahd.h | 26 +- .../include/any-windows-any/endpointvolume.h | 2 +- lib/libc/include/any-windows-any/eventtoken.h | 2 +- lib/libc/include/any-windows-any/evr.h | 2 +- lib/libc/include/any-windows-any/evr9.h | 411 +- lib/libc/include/any-windows-any/exdisp.h | 2 +- lib/libc/include/any-windows-any/filter.h | 2 +- lib/libc/include/any-windows-any/float.h | 2 +- lib/libc/include/any-windows-any/fontsub.h | 64 + lib/libc/include/any-windows-any/fsrm.h | 2 +- lib/libc/include/any-windows-any/fsrmenums.h | 2 +- lib/libc/include/any-windows-any/fsrmquota.h | 2 +- .../include/any-windows-any/fsrmreports.h | 2 +- lib/libc/include/any-windows-any/fsrmscreen.h | 2 +- lib/libc/include/any-windows-any/fusion.h | 2 +- lib/libc/include/any-windows-any/fwptypes.h | 2 +- lib/libc/include/any-windows-any/hstring.h | 2 +- lib/libc/include/any-windows-any/httpext.h | 21 +- lib/libc/include/any-windows-any/icftypes.h | 2 +- lib/libc/include/any-windows-any/icodecapi.h | 2 +- lib/libc/include/any-windows-any/iketypes.h | 2 +- lib/libc/include/any-windows-any/inputscope.h | 2 +- .../include/any-windows-any/inspectable.h | 2 +- lib/libc/include/any-windows-any/intrin.h | 4 + lib/libc/include/any-windows-any/inttypes.h | 48 +- lib/libc/include/any-windows-any/ioringapi.h | 140 + lib/libc/include/any-windows-any/ks.h | 57 +- lib/libc/include/any-windows-any/ksmedia.h | 29 + lib/libc/include/any-windows-any/locale.h | 6 + .../include/any-windows-any/locationapi.h | 2 +- lib/libc/include/any-windows-any/mediaobj.h | 2 +- lib/libc/include/any-windows-any/medparam.h | 2 +- lib/libc/include/any-windows-any/mfapi.h | 64 +- .../include/any-windows-any/mfcaptureengine.h | 1769 ++++++ lib/libc/include/any-windows-any/mfd3d12.h | 275 + lib/libc/include/any-windows-any/mfidl.h | 1710 +++++- .../include/any-windows-any/mfmediacapture.h | 298 + lib/libc/include/any-windows-any/mfobjects.h | 2 +- lib/libc/include/any-windows-any/mfplay.h | 2 +- .../include/any-windows-any/mfreadwrite.h | 2 +- .../include/any-windows-any/mftransform.h | 2 +- .../include/any-windows-any/mmdeviceapi.h | 2 +- lib/libc/include/any-windows-any/mmreg.h | 6 + lib/libc/include/any-windows-any/mmstream.h | 2 +- lib/libc/include/any-windows-any/mmsystem.h | 1 + lib/libc/include/any-windows-any/mscoree.h | 2 +- lib/libc/include/any-windows-any/msctf.h | 2 +- lib/libc/include/any-windows-any/mshtmhst.h | 2 +- lib/libc/include/any-windows-any/mshtml.h | 2 +- lib/libc/include/any-windows-any/msinkaut.h | 2 +- lib/libc/include/any-windows-any/msinkaut_i.c | 2 +- lib/libc/include/any-windows-any/msopc.h | 2 +- lib/libc/include/any-windows-any/mstcpip.h | 241 +- lib/libc/include/any-windows-any/msxml.h | 2 +- .../any-windows-any/napcertrelyingparty.h | 2 +- lib/libc/include/any-windows-any/napcommon.h | 2 +- .../any-windows-any/napenforcementclient.h | 2 +- .../include/any-windows-any/napmanagement.h | 2 +- .../include/any-windows-any/napprotocol.h | 2 +- .../any-windows-any/napservermanagement.h | 2 +- .../any-windows-any/napsystemhealthagent.h | 2 +- .../napsystemhealthvalidator.h | 2 +- lib/libc/include/any-windows-any/naptypes.h | 2 +- lib/libc/include/any-windows-any/netcfgn.h | 2 +- lib/libc/include/any-windows-any/netcfgx.h | 2 +- lib/libc/include/any-windows-any/netfw.h | 2 +- lib/libc/include/any-windows-any/netlistmgr.h | 2 +- lib/libc/include/any-windows-any/ntdddisk.h | 6 + lib/libc/include/any-windows-any/ntioring_x.h | 54 + lib/libc/include/any-windows-any/ntsecapi.h | 1147 +++- lib/libc/include/any-windows-any/ntstatus.h | 1 + lib/libc/include/any-windows-any/nvme.h | 2835 ++++++++++ lib/libc/include/any-windows-any/oaidl.h | 2 +- .../include/any-windows-any/objectarray.h | 2 +- lib/libc/include/any-windows-any/objidl.h | 2 +- lib/libc/include/any-windows-any/objidlbase.h | 2 +- lib/libc/include/any-windows-any/ocidl.h | 2 +- lib/libc/include/any-windows-any/oleacc.h | 2 +- lib/libc/include/any-windows-any/oleidl.h | 2 +- lib/libc/include/any-windows-any/optary.h | 2 +- lib/libc/include/any-windows-any/pchannel.h | 16 +- .../any-windows-any/portabledevicetypes.h | 2 +- .../any-windows-any/processthreadsapi.h | 97 + .../proofofpossessioncookieinfo.h | 173 + lib/libc/include/any-windows-any/propidl.h | 2 +- lib/libc/include/any-windows-any/propsys.h | 2 +- .../include/any-windows-any/propvarutil.h | 104 +- .../any-windows-any/psdk_inc/_dbg_common.h | 97 +- .../any-windows-any/psdk_inc/_ip_mreq1.h | 9 + .../any-windows-any/psdk_inc/intrin-impl.h | 119 + lib/libc/include/any-windows-any/qedit.h | 2 +- lib/libc/include/any-windows-any/qnetwork.h | 2 +- .../include/any-windows-any/rdpencomapi.h | 2 +- lib/libc/include/any-windows-any/regbag.h | 2 +- lib/libc/include/any-windows-any/relogger.h | 2 +- lib/libc/include/any-windows-any/rtworkq.h | 2 +- lib/libc/include/any-windows-any/sal.h | 4 + lib/libc/include/any-windows-any/sapi51.h | 2 +- lib/libc/include/any-windows-any/sapi53.h | 2 +- lib/libc/include/any-windows-any/sapi54.h | 2 +- lib/libc/include/any-windows-any/sdkddkver.h | 3 +- lib/libc/include/any-windows-any/sensorsapi.h | 2 +- lib/libc/include/any-windows-any/servprov.h | 2 +- lib/libc/include/any-windows-any/setjmp.h | 8 +- lib/libc/include/any-windows-any/shldisp.h | 2 +- lib/libc/include/any-windows-any/shobjidl.h | 140 +- lib/libc/include/any-windows-any/shtypes.h | 2 +- .../any-windows-any/spatialaudioclient.h | 2 +- lib/libc/include/any-windows-any/spellcheck.h | 2 +- lib/libc/include/any-windows-any/stdio.h | 20 +- lib/libc/include/any-windows-any/strmif.h | 2 +- .../structuredquerycondition.h | 2 +- lib/libc/include/any-windows-any/sys/timeb.h | 10 + lib/libc/include/any-windows-any/taskschd.h | 2 +- lib/libc/include/any-windows-any/textstor.h | 2 +- lib/libc/include/any-windows-any/thumbcache.h | 2 +- lib/libc/include/any-windows-any/time.h | 22 +- lib/libc/include/any-windows-any/timeapi.h | 12 + lib/libc/include/any-windows-any/tlbref.h | 2 +- lib/libc/include/any-windows-any/tlogstg.h | 2 +- lib/libc/include/any-windows-any/tpcshrd.h | 2 +- .../any-windows-any/tsvirtualchannels.h | 1060 ++++ lib/libc/include/any-windows-any/tuner.h | 2 +- .../include/any-windows-any/uianimation.h | 2 +- .../any-windows-any/uiautomationclient.h | 198 +- .../any-windows-any/uiautomationcore.h | 269 +- .../any-windows-any/uiautomationcoreapi.h | 1 + .../any-windows-any/uiviewsettingsinterop.h | 2 +- lib/libc/include/any-windows-any/unknwn.h | 2 +- lib/libc/include/any-windows-any/unknwnbase.h | 2 +- lib/libc/include/any-windows-any/urlhist.h | 2 +- lib/libc/include/any-windows-any/urlmon.h | 2 +- lib/libc/include/any-windows-any/vdslun.h | 146 +- lib/libc/include/any-windows-any/vmr9.h | 2 +- lib/libc/include/any-windows-any/vsadmin.h | 363 +- .../include/any-windows-any/vsanimation.h | 242 + lib/libc/include/any-windows-any/vsbackup.h | 4852 +++++++++++++++-- lib/libc/include/any-windows-any/vsmgmt.h | 1221 ++++- lib/libc/include/any-windows-any/vsprov.h | 1247 ++++- lib/libc/include/any-windows-any/vss.h | 2 +- lib/libc/include/any-windows-any/vswriter.h | 3567 ++++++++++-- lib/libc/include/any-windows-any/wbemads.h | 2 +- lib/libc/include/any-windows-any/wbemcli.h | 2 +- lib/libc/include/any-windows-any/wbemdisp.h | 2 +- lib/libc/include/any-windows-any/wbemprov.h | 2 +- lib/libc/include/any-windows-any/wbemtran.h | 2 +- lib/libc/include/any-windows-any/wchar.h | 2 +- lib/libc/include/any-windows-any/wdstptmgmt.h | 2 +- lib/libc/include/any-windows-any/webauthn.h | 369 ++ lib/libc/include/any-windows-any/winbase.h | 17 - lib/libc/include/any-windows-any/wincodec.h | 2 +- .../include/any-windows-any/wincodecsdk.h | 2 +- lib/libc/include/any-windows-any/wincon.h | 30 +- lib/libc/include/any-windows-any/windns.h | 538 +- .../windows.foundation.collections.h | 47 +- .../any-windows-any/windows.foundation.h | 214 +- .../include/any-windows-any/windows.media.h | 223 + .../windows.media.speechsynthesis.h | 926 +++- .../windows.security.cryptography.h | 16 +- .../include/any-windows-any/windows.storage.h | 103 +- .../any-windows-any/windows.storage.streams.h | 2 +- .../include/any-windows-any/windows.system.h | 2 +- .../windows.system.threading.h | 54 +- .../any-windows-any/windowscontracts.h | 2 +- lib/libc/include/any-windows-any/winerror.h | 21 + lib/libc/include/any-windows-any/winevt.h | 21 +- .../include/any-windows-any/winhvplatform.h | 37 + .../any-windows-any/winhvplatformdefs.h | 731 ++- lib/libc/include/any-windows-any/wininet.h | 98 +- lib/libc/include/any-windows-any/winineti.h | 1 + lib/libc/include/any-windows-any/winioctl.h | 475 +- lib/libc/include/any-windows-any/winnt.h | 123 +- lib/libc/include/any-windows-any/winsock2.h | 7 + lib/libc/include/any-windows-any/winsvc.h | 115 +- lib/libc/include/any-windows-any/winuser.h | 5 +- lib/libc/include/any-windows-any/wmcodecdsp.h | 2 +- .../include/any-windows-any/wmcontainer.h | 2 +- lib/libc/include/any-windows-any/wmdrmsdk.h | 2 +- lib/libc/include/any-windows-any/wmp.h | 2 +- .../include/any-windows-any/wmprealestate.h | 2 +- .../include/any-windows-any/wmpservices.h | 2 +- lib/libc/include/any-windows-any/wmsbuffer.h | 315 +- lib/libc/include/any-windows-any/wmsdkidl.h | 381 +- lib/libc/include/any-windows-any/wmsecure.h | 472 ++ lib/libc/include/any-windows-any/wpcapi.h | 2 +- lib/libc/include/any-windows-any/ws2ipdef.h | 5 - .../include/any-windows-any/wsdattachment.h | 2 +- lib/libc/include/any-windows-any/wsdbase.h | 2 +- lib/libc/include/any-windows-any/wsdclient.h | 2 +- lib/libc/include/any-windows-any/wsddisco.h | 2 +- lib/libc/include/any-windows-any/wsdhost.h | 2 +- lib/libc/include/any-windows-any/wsdxml.h | 2 +- lib/libc/include/any-windows-any/wsmandisp.h | 2 +- lib/libc/include/any-windows-any/wtypes.h | 2 +- lib/libc/include/any-windows-any/wtypesbase.h | 2 +- lib/libc/include/any-windows-any/wuapi.h | 159 +- lib/libc/include/any-windows-any/wuerror.h | 482 ++ lib/libc/include/any-windows-any/xapo.h | 2 +- lib/libc/include/any-windows-any/xaudio2.h | 2 +- lib/libc/include/any-windows-any/xaudio2fx.h | 2 +- lib/libc/include/any-windows-any/xmllite.h | 2 +- .../any-windows-any/xpsdigitalsignature.h | 2 +- .../include/any-windows-any/xpsobjectmodel.h | 2 +- .../any-windows-any/xpsobjectmodel_1.h | 2 +- lib/libc/include/any-windows-any/xpsprint.h | 2 +- lib/libc/include/any-windows-any/xpsrassvc.h | 2 +- 296 files changed, 34897 insertions(+), 3009 deletions(-) create mode 100644 lib/libc/include/any-windows-any/afunix.h create mode 100644 lib/libc/include/any-windows-any/bits2_5.h create mode 100644 lib/libc/include/any-windows-any/bits3_0.h create mode 100644 lib/libc/include/any-windows-any/bits5_0.h create mode 100644 lib/libc/include/any-windows-any/computecore.h create mode 100644 lib/libc/include/any-windows-any/computedefs.h create mode 100644 lib/libc/include/any-windows-any/computenetwork.h create mode 100644 lib/libc/include/any-windows-any/computestorage.h create mode 100644 lib/libc/include/any-windows-any/ddk/ata.h create mode 100644 lib/libc/include/any-windows-any/fontsub.h create mode 100644 lib/libc/include/any-windows-any/ioringapi.h create mode 100644 lib/libc/include/any-windows-any/mfcaptureengine.h create mode 100644 lib/libc/include/any-windows-any/mfd3d12.h create mode 100644 lib/libc/include/any-windows-any/mfmediacapture.h create mode 100644 lib/libc/include/any-windows-any/ntioring_x.h create mode 100644 lib/libc/include/any-windows-any/nvme.h create mode 100644 lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h create mode 100644 lib/libc/include/any-windows-any/timeapi.h create mode 100644 lib/libc/include/any-windows-any/tsvirtualchannels.h create mode 100644 lib/libc/include/any-windows-any/vsanimation.h create mode 100644 lib/libc/include/any-windows-any/webauthn.h create mode 100644 lib/libc/include/any-windows-any/windows.media.h create mode 100644 lib/libc/include/any-windows-any/wmsecure.h create mode 100644 lib/libc/include/any-windows-any/wuerror.h 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 +#include +#include #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include +#include #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 #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 + + +#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 + + +#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 + + +#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; - - 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; - - typedef enum __MIDL_IBackgroundCopyJob_0003 { - BG_JOB_TYPE_DOWNLOAD = 0,BG_JOB_TYPE_UPLOAD,BG_JOB_TYPE_UPLOAD_REPLY - } BG_JOB_TYPE; - - 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; - - EXTERN_C const IID IID_IBackgroundCopyJob; + 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) - 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; - }; +MIDL_INTERFACE("37668d37-507e-4160-9316-26306d150b12") +IBackgroundCopyJob : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFileSet( + ULONG cFileCount, + BG_FILE_INFO *pFileSet) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFile( + LPCWSTR RemoteUrl, + LPCWSTR LocalName) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnumFiles( + IEnumBackgroundCopyFiles **pEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE Suspend( + ) = 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 + + +#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) -#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) +/*** 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 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 + + +#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 +#include +#include #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include +#include #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 #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; - - typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS; - - EXTERN_C const IID IID_IBackgroundCopyJob2; +} 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) - 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; - }; +MIDL_INTERFACE("54b50739-686f-45eb-9dff-d6a9a0faa9af") +IBackgroundCopyJob2 : public IBackgroundCopyJob +{ + virtual HRESULT STDMETHODCALLTYPE SetNotifyCmdLine( + LPCWSTR prog, + LPCWSTR params) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNotifyCmdLine( + LPWSTR *prog, + LPWSTR *params) = 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 +#include +#include #endif #ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" +#include +#include #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 /* defined __cplusplus */ +#endif /* defined __BackgroundCopyManager2_0_FWD_DEFINED__ */ + +/* Headers for imported files */ + +#include +#include + +#ifdef __cplusplus +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) +#ifndef _BG_FILE_RANGE_DEFINED +#define _BG_FILE_RANGE_DEFINED +typedef struct _BG_FILE_RANGE { + UINT64 InitialOffset; + UINT64 Length; +} BG_FILE_RANGE; +#endif +/***************************************************************************** + * IBackgroundCopyJob3 interface + */ +#ifndef __IBackgroundCopyJob3_INTERFACE_DEFINED__ +#define __IBackgroundCopyJob3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBackgroundCopyJob3, 0x443c8934, 0x90ff, 0x48ed, 0xbc,0xde, 0x26,0xf5,0xc7,0x45,0x00,0x42); +#if defined(__cplusplus) && !defined(CINTERFACE) +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 { + BEGIN_INTERFACE + + /*** 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; + +interface IBackgroundCopyJob3 { + CONST_VTBL IBackgroundCopyJob3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#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 + +#endif + + +#endif /* __IBackgroundCopyJob3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IBackgroundCopyFile2 interface + */ +#ifndef __IBackgroundCopyFile2_INTERFACE_DEFINED__ +#define __IBackgroundCopyFile2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IBackgroundCopyFile2, 0x83e81b93, 0x0873, 0x474d, 0x8a,0x8c, 0xf2,0x01,0x8b,0x1a,0x93,0x9c); +#if defined(__cplusplus) && !defined(CINTERFACE) +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 { + BEGIN_INTERFACE + + /*** 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; + +interface IBackgroundCopyFile2 { + CONST_VTBL IBackgroundCopyFile2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#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 + +#endif + + +#endif /* __IBackgroundCopyFile2_INTERFACE_DEFINED__ */ + +#ifndef __BackgroundCopyManager2_0_LIBRARY_DEFINED__ +#define __BackgroundCopyManager2_0_LIBRARY_DEFINED__ + +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 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 struct IBackgroundCopyJob3 IBackgroundCopyJob3; -#endif - -#include "bits.h" -#include "bits1_5.h" - +typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3; #ifdef __cplusplus -extern "C"{ +interface IBackgroundCopyJob3; +#endif /* __cplusplus */ #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 *); -#endif - -#define BG_LENGTH_TO_EOF (UINT64)(-1) - 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; - -#ifndef __IBackgroundCopyJob3_INTERFACE_DEFINED__ -#define __IBackgroundCopyJob3_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IBackgroundCopyJob3; -#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; - }; -#else - 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); - END_INTERFACE - } IBackgroundCopyJob3Vtbl; - struct IBackgroundCopyJob3 { - CONST_VTBL struct 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) -#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 - -#ifndef __IBackgroundCopyFile2_INTERFACE_DEFINED__ -#define __IBackgroundCopyFile2_INTERFACE_DEFINED__ - EXTERN_C const IID IID_IBackgroundCopyFile2; -#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; - }; -#else - 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); - END_INTERFACE - } IBackgroundCopyFile2Vtbl; - struct IBackgroundCopyFile2 { - CONST_VTBL struct 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) -#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 - -#ifndef __BackgroundCopyManager2_0_LIBRARY_DEFINED__ -#define __BackgroundCopyManager2_0_LIBRARY_DEFINED__ - EXTERN_C const IID LIBID_BackgroundCopyManager2_0; - EXTERN_C const CLSID CLSID_BackgroundCopyManager2_0; +#ifndef __IBackgroundCopyFile2_FWD_DEFINED__ +#define __IBackgroundCopyFile2_FWD_DEFINED__ +typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2; #ifdef __cplusplus - class BackgroundCopyManager2_0; -#endif +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 + +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include +#include + +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include +#include +#include +#include + +#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 +#include +#include +#include + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#include + +#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 +#include +#include + +#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 +#include +#include +#include + +#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 { @@ -6356,26 +6502,51 @@ typedef struct _IO_STACK_LOCATION { USHORT ShareAccess; 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; @@ -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 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 ***/ -#if (_WIN32_WINNT >= 0x0600) +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __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 */ + +#include +#include +#include #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 + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + #include #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 +#include + +/* 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 +#include +#include +#include +#include + +#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(h)) +#define IoRingHandleRefFromIndex(i) IORING_HANDLE_REF(static_cast(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(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_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_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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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 @@ -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, @@ -5054,6 +5369,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 */ @@ -5514,6 +6026,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 */ @@ -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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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 #include 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 RCVALL_OFF 0 -#define RCVALL_ON 1 -#define RCVALL_SOCKETLEVELONLY 2 -#define RCVALL_IPLEVEL 3 +#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; + +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 + +#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 + +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#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 #include -#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 +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 + #pragma pack(push,_CRT_PACKING) #ifdef __cplusplus @@ -109,6 +112,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); @@ -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 - /* 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 + +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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 @@ -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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __vdslun_h__ +#define __vdslun_h__ + +/* Forward declarations */ + +/* Headers for imported files */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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 /*_INC_VDSLUN*/ +#endif /* WINAPI_PARTITION_DESKTOP */ +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#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 ***/ -#include -#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) +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif -DECLARE_INTERFACE_(IVssAdmin,IUnknown) +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#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); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssAdmin *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssAdmin *This); + + /*** 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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include #include #include @@ -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; +#include +#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__ -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);} - -#ifdef __cplusplus -} -#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) +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 */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWMComponent *This, + REFIID riid, + void **ppvObject); - /* 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; + 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 + +#endif + + +#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 ***/ + 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*/ - -#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) +#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 -DECLARE_INTERFACE_(IVssBackupComponentsEx,IVssBackupComponents) +#endif + +#endif + + +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx *This); - /* 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; + 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*/ - -#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) +#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 -DECLARE_INTERFACE_(IVssBackupComponentsEx2,IVssBackupComponentsEx) +#endif + +#endif + + +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx2 *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx2 *This); - /* 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; + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx2 *This); - /* 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*/ + /*** 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) +#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 -DECLARE_INTERFACE_(IVssBackupComponentsEx3,IVssBackupComponentsEx2) +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx3 *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx3 *This); - /* 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; + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx3 *This); - /* 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*/ + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx3 *This, + UINT *pcComponents); - /* 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; + 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 + +#endif + + +#endif /* __IVssBackupComponentsEx3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssBackupComponentsEx4 interface + */ +#ifndef __IVssBackupComponentsEx4_INTERFACE_DEFINED__ +#define __IVssBackupComponentsEx4_INTERFACE_DEFINED__ + +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; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssBackupComponentsEx4, 0xf434c2fd, 0xb553, 0x4961, 0xa9,0xf9, 0xa8,0xe9,0x0b,0x67,0x3e,0x53) +#endif +#else +typedef struct IVssBackupComponentsEx4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssBackupComponentsEx4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssBackupComponentsEx4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssBackupComponentsEx4 *This); + + /*** IVssBackupComponents methods ***/ + HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)( + IVssBackupComponentsEx4 *This, + UINT *pcComponents); + + HRESULT (STDMETHODCALLTYPE *GetWriterComponents)( + IVssBackupComponentsEx4 *This, + UINT iWriter, + IVssWriterComponentsExt **ppWriter); + + HRESULT (STDMETHODCALLTYPE *InitializeForBackup)( + IVssBackupComponentsEx4 *This, + BSTR bstrXML); + + HRESULT (STDMETHODCALLTYPE *SetBackupState)( + IVssBackupComponentsEx4 *This, + boolean bSelectComponents, + boolean bBackupBootableSystemState, + VSS_BACKUP_TYPE backupType, + boolean bPartialFileSupport); + + 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); + + HRESULT (STDMETHODCALLTYPE *SetBackupOptions)( + IVssBackupComponentsEx4 *This, + VSS_ID writerId, + VSS_COMPONENT_TYPE ct, + LPCWSTR wszLogicalPath, + LPCWSTR wszComponentName, + LPCWSTR wszBackupOptions); + + 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; +}; + +#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 -/* 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 - /* 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 -}; - -#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 - - /* 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; - - 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) -#endif -DECLARE_INTERFACE_(IVssExamineWriterMetadataEx2,IVssExamineWriterMetadataEx) -{ - 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; - - END_INTERFACE -}; - -#endif /*(_WIN32_WINNT >= 0x0600)*/ - -#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 - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* 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; - - END_INTERFACE -}; - -#undef INTERFACE -#define INTERFACE IVssWriterComponentsExt -DECLARE_INTERFACE_(IVssWriterComponentsExt,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssWriterComponentsExt methods */ - /* No additional members */ - - END_INTERFACE -}; - -#endif /*__cplusplus*/ -#endif /*_INC_VSBACKUP*/ +#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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include #include #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; - -typedef enum _VSS_PROTECTION_LEVEL { - VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0, - VSS_PROTECTION_LEVEL_SNAPSHOT = ( VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME + 1 ) -} VSS_PROTECTION_LEVEL; - +#include +#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, *PVSS_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, *PVSS_VOLUME_PROP; - -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; - -#if (_WIN32_WINNT >= 0x0600) - -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; - + 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, *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; - + 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, *PVSS_MGMT_OBJECT_PROP; - -#endif /* (_WIN32_WINNT >= 0x0600) */ - + 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 = 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 -#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) +#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__ +typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt; +#ifdef __cplusplus +interface IVssDifferentialSoftwareSnapshotMgmt; +#endif /* __cplusplus */ #endif -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt,IUnknown) + +#ifndef __IVssEnumMgmtObject_FWD_DEFINED__ +#define __IVssEnumMgmtObject_FWD_DEFINED__ +typedef interface IVssEnumMgmtObject IVssEnumMgmtObject; +#ifdef __cplusplus +interface IVssEnumMgmtObject; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IVssSnapshotMgmt interface + */ +#ifndef __IVssSnapshotMgmt_INTERFACE_DEFINED__ +#define __IVssSnapshotMgmt_INTERFACE_DEFINED__ + +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; + + virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForSnapshots( + VSS_ID ProviderId, + LONG lContext, + IVssEnumMgmtObject **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE QuerySnapshotsByVolume( + VSS_PWSZ pwszVolumeName, + VSS_ID ProviderId, + IVssEnumObject **ppEnum) = 0; + +}; +#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 - /* 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)( + IVssSnapshotMgmt *This, + REFIID riid, + void **ppvObject); - /* 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 */ + 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 + +#endif + + +#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 ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssSnapshotMgmt2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssSnapshotMgmt2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IVssSnapshotMgmt2 *This); + + /*** 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) +#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 -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt2,IVssDifferentialSoftwareSnapshotMgmt) +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssDifferentialSoftwareSnapshotMgmt2 *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssDifferentialSoftwareSnapshotMgmt2 *This); - /* 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*/ + 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) +#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 -DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt3,IVssDifferentialSoftwareSnapshotMgmt2) +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssDifferentialSoftwareSnapshotMgmt3 *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssDifferentialSoftwareSnapshotMgmt3 *This); - /* 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*/ + ULONG (STDMETHODCALLTYPE *Release)( + IVssDifferentialSoftwareSnapshotMgmt3 *This); - /* 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*/ + /*** 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) +#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 -DECLARE_INTERFACE_(IVssEnumMgmtObject,IUnknown) +#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) */ - -#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) +#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 -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; +#endif - /* 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*/ - 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*/ +#endif /* __IVssEnumMgmtObject_INTERFACE_DEFINED__ */ -#undef INTERFACE -#define INTERFACE IVssSnapshotMgmt2 -DECLARE_INTERFACE_(IVssSnapshotMgmt2,IUnknown) -{ - BEGIN_INTERFACE +#ifndef __VSMGMT_LIBRARY_DEFINED__ +#define __VSMGMT_LIBRARY_DEFINED__ - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; +DEFINE_GUID(LIBID_VSMGMT, 0x84015c41, 0x291d, 0x49e6, 0xbf,0x7f, 0xdd,0x40,0xae,0x93,0x63,0x2b); - /* IVssSnapshotMgmt2 methods */ - STDMETHOD_(HRESULT,GetMinDiffAreaSize)(THIS_ LONGLONG *pllMinDiffAreaSize) PURE; +/***************************************************************************** + * VssSnapshotMgmt coclass + */ - 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*/ +DEFINE_GUID(CLSID_VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f); -#endif /*_INC_VSMGT*/ +#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 /* __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,198 +1,251 @@ -/** - * 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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include #include -#include -#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) +#include + +#ifdef __cplusplus +extern "C" { #endif -DECLARE_INTERFACE_(IVssHardwareSnapshotProvider,IUnknown) -{ - 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; - - 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*/ - -#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) +#include +#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 -DECLARE_INTERFACE_(IVssHardwareSnapshotProviderEx,IVssHardwareSnapshotProvider) -{ - 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; - - END_INTERFACE -}; -#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*/ - -#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) +#ifndef __IVssProviderNotifications_FWD_DEFINED__ +#define __IVssProviderNotifications_FWD_DEFINED__ +typedef interface IVssProviderNotifications IVssProviderNotifications; +#ifdef __cplusplus +interface IVssProviderNotifications; +#endif /* __cplusplus */ #endif -DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown) + +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; - /* 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; + 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 pwszVolumeName, + LONG lNewContext) = 0; + + 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; - END_INTERFACE }; -#ifdef COBJMACROS -#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) -#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) -#define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) -#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*/ - -#undef INTERFACE -#define INTERFACE IVssProviderNotifications -DECLARE_INTERFACE_(IVssProviderNotifications,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* IVssProviderNotifications methods */ - STDMETHOD_(HRESULT,OnLoad)(THIS_ IUnknown *pCallback) PURE; - STDMETHOD_(HRESULT,OnUnload)(THIS_ WINBOOL bForceUnload) PURE; - - END_INTERFACE -}; -#ifdef COBJMACROS -#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) -#define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback) -#define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload) -#endif /*COBJMACROS*/ - -#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) +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff) #endif -DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown) -{ +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssSoftwareSnapshotProvider *This, + REFIID riid, + void **ppvObject); - /* 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; + 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 +#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) @@ -203,6 +256,852 @@ DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown) #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*/ +#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 -#endif /*_INC_VSPROV*/ +#endif + + +#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 ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssProviderCreateSnapshotSet *This, + REFIID riid, + void **ppvObject); + + 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) +#define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) +#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) +#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__ + +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 ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssProviderNotifications *This, + REFIID riid, + void **ppvObject); + + 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) +#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 + +#endif + + +#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 ***/ + 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 +#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 /* __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 +/*** Autogenerated by WIDL 7.0 from include/vswriter.idl - Do not edit ***/ - 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; +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif - /* 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; +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif -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; +#ifndef __vswriter_h__ +#define __vswriter_h__ -typedef enum VSS_COMPONENT_TYPE { - VSS_CT_UNDEFINED = 0, - VSS_CT_DATABASE = 1, - VSS_CT_FILEGROUP = 2 -} VSS_COMPONENT_TYPE; +/* Forward declarations */ -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 __IVssWMFiledesc_FWD_DEFINED__ +#define __IVssWMFiledesc_FWD_DEFINED__ +typedef interface IVssWMFiledesc IVssWMFiledesc; +#ifdef __cplusplus +interface IVssWMFiledesc; +#endif /* __cplusplus */ +#endif -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; +#ifndef __IVssWMDependency_FWD_DEFINED__ +#define __IVssWMDependency_FWD_DEFINED__ +typedef interface IVssWMDependency IVssWMDependency; +#ifdef __cplusplus +interface IVssWMDependency; +#endif /* __cplusplus */ +#endif -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 __IVssComponent_FWD_DEFINED__ +#define __IVssComponent_FWD_DEFINED__ +typedef interface IVssComponent IVssComponent; +#ifdef __cplusplus +interface IVssComponent; +#endif /* __cplusplus */ +#endif -typedef enum VSS_SOURCE_TYPE { - VSS_ST_UNDEFINED = 0, - VSS_ST_TRANSACTEDDB = 1, - VSS_ST_NONTRANSACTEDDB = 2, - VSS_ST_OTHER = 3 -} VSS_SOURCE_TYPE; +#ifndef __IVssWriterComponents_FWD_DEFINED__ +#define __IVssWriterComponents_FWD_DEFINED__ +typedef interface IVssWriterComponents IVssWriterComponents; +#ifdef __cplusplus +interface IVssWriterComponents; +#endif /* __cplusplus */ +#endif -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_SUBSCRIBE_MASK; +#ifndef __IVssComponentEx_FWD_DEFINED__ +#define __IVssComponentEx_FWD_DEFINED__ +typedef interface IVssComponentEx IVssComponentEx; +#ifdef __cplusplus +interface IVssComponentEx; +#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; +#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 +#include #include -#if (_WIN32_WINNT >= 0x601) -HRESULT WINAPI CreateVssExpressWriterInternal( - IVssExpressWriter **ppWriter -); - -FORCEINLINE -HRESULT WINAPI CreateVssExpressWriter( - IVssExpressWriter **ppWriter -){return CreateVssExpressWriterInternal(ppWriter);} - -#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) -#endif -DECLARE_INTERFACE_(IVssCreateExpressWriterMetadata,IUnknown) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* 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; - - END_INTERFACE -}; -#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*/ - -#endif /*(_WIN32_WINNT >= 0x601)*/ - #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) +extern "C" { #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; - - END_INTERFACE -}; - -#if (_WIN32_WINNT >= 0x600) -#undef INTERFACE -#define INTERFACE IVssCreateWriterMetadataEx -DECLARE_INTERFACE_(IVssCreateWriterMetadataEx,IVssCreateWriterMetadata) -{ - 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; /*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; - - 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) -{ - BEGIN_INTERFACE - - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - /* 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; - - END_INTERFACE -}; -#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)*/ +#include +#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_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 = 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 -/* 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) +interface IVssExamineWriterMetadata; +#endif /* __cplusplus */ #endif -DECLARE_INTERFACE_(IVssWriterComponents,IUnknown) + +/***************************************************************************** + * IVssWMFiledesc interface + */ +#ifndef __IVssWMFiledesc_INTERFACE_DEFINED__ +#define __IVssWMFiledesc_INTERFACE_DEFINED__ + +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; + + virtual HRESULT STDMETHODCALLTYPE GetRecursive( + boolean *pbRecursive) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlternateLocation( + BSTR *pbstrAlternateLocation) = 0; + + 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 +#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); - /* 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; + 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); + + 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; }; -#endif /*__cplusplus*/ -#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) -#endif -DECLARE_INTERFACE_(IVssComponent,IUnknown) -{ - 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; - - END_INTERFACE -}; #ifdef 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 + + +#endif /* __IVssWMFiledesc_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IVssWMDependency interface + */ +#ifndef __IVssWMDependency_INTERFACE_DEFINED__ +#define __IVssWMDependency_INTERFACE_DEFINED__ + +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 +{ + virtual HRESULT STDMETHODCALLTYPE GetWriterId( + VSS_ID *pWriterId) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLogicalPath( + BSTR *pbstrLogicalPath) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponentName( + BSTR *pbstrComponentName) = 0; + +}; +#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 ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssWMDependency *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssWMDependency *This); + + 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 +#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 + +#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 +{ + virtual HRESULT STDMETHODCALLTYPE GetLogicalPath( + BSTR *pbstrPath) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponentType( + VSS_COMPONENT_TYPE *pct) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetComponentName( + BSTR *pbstrName) = 0; + + 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; + + 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 +#else +typedef struct IVssComponentVtbl { + BEGIN_INTERFACE + + /*** 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*/ - -#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) +#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 -DECLARE_INTERFACE_(IVssComponentEx,IVssComponent) +#endif + +#endif + + +#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 - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; + virtual HRESULT STDMETHODCALLTYPE GetComponentCount( + UINT *pcComponents) = 0; - /* 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; + virtual HRESULT STDMETHODCALLTYPE GetWriterInfo( + VSS_ID *pidInstance, + VSS_ID *pidWriter) = 0; - /* 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; + 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 + + /*** 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) +#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 -DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx) +#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; + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IVssComponentEx2 *This, + REFIID riid, + void **ppvObject); - /* 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; + ULONG (STDMETHODCALLTYPE *AddRef)( + IVssComponentEx2 *This); - /* 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; + ULONG (STDMETHODCALLTYPE *Release)( + IVssComponentEx2 *This); - /* 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; + /*** 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)*/ - -#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) +#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 -DECLARE_INTERFACE_(IVssWMDependency,IUnknown) +#endif + +#endif + + +#endif /* __IVssComponentEx2_INTERFACE_DEFINED__ */ + +#ifndef __IXMLDOMDocument_FWD_DEFINED__ +#define __IXMLDOMDocument_FWD_DEFINED__ +typedef interface IXMLDOMDocument IXMLDOMDocument; +#ifdef __cplusplus +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; - /* 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 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; + + 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 -}; -#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) +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00) #endif -DECLARE_INTERFACE_(IVssWMFiledesc,IUnknown) -{ +#else +typedef struct IVssCreateWriterMetadataVtbl { 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)( + IVssCreateWriterMetadata *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive, + LPCWSTR wszAlternateLocation); - /* 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; + 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 -}; -#endif /*__cplusplus*/ +} IVssCreateWriterMetadataVtbl; -#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( - 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); +interface IVssCreateWriterMetadata { + CONST_VTBL IVssCreateWriterMetadataVtbl* lpVtbl; }; -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, +#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 + +#endif + + +#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 + + /*** 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); + + /*** IVssCreateWriterMetadataEx methods ***/ + HRESULT (STDMETHODCALLTYPE *AddExcludeFilesFromSnapshot)( + IVssCreateWriterMetadataEx *This, + LPCWSTR wszPath, + LPCWSTR wszFilespec, + boolean bRecursive); + + END_INTERFACE +} IVssCreateWriterMetadataExVtbl; + +interface IVssCreateWriterMetadataEx { + CONST_VTBL IVssCreateWriterMetadataExVtbl* lpVtbl; +}; + +#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 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) = 0; -class CVssWriterEx2: public CVssWriterEx { - public: - HRESULT WINAPI GetSessionId( - VSS_ID *idSession) const; - bool WINAPI IsWriterShuttingDown() const; - HRESULT WINAPI SetWriterFailureEx( - HRESULT hrWriter, + 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) = 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 + + /*** 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 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); + + 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 +#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 /*_INC_VSWRITER*/ +#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 /* __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 + +#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 +#undef INITGUID +#else +#include +#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; @@ -503,6 +620,24 @@ extern "C" { WORD Pad; } 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 ]; @@ -568,6 +703,11 @@ extern "C" { WINBOOL bPacketPointers; } 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; @@ -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__ @@ -74,6 +74,22 @@ namespace ABI { } #endif +#if defined(__cplusplus) && !defined(CINTERFACE) +namespace ABI { + namespace Windows { + namespace Foundation { + namespace Collections { + template + struct IMapView_impl; + + template + struct IMapView : IMapView_impl {}; + } + } + } +} +#endif + #if defined(__cplusplus) && !defined(CINTERFACE) namespace ABI { namespace Windows { @@ -232,6 +248,35 @@ namespace ABI { extern "C" { #endif +#if defined(__cplusplus) && !defined(CINTERFACE) +} /* extern "C" */ +namespace ABI { + namespace Windows { + namespace Foundation { + namespace Collections { + template + struct IMapView_impl : IInspectable + { + private: + typedef typename Windows::Foundation::Internal::GetAbiType::type K_abi; + typedef typename Windows::Foundation::Internal::GetLogicalType::type K_logical; + typedef typename Windows::Foundation::Internal::GetAbiType::type V_abi; + typedef typename Windows::Foundation::Internal::GetLogicalType::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 **first,IMapView **second) = 0; + }; + } + } + } +} +extern "C" { +#endif + #if defined(__cplusplus) && !defined(CINTERFACE) } /* extern "C" */ namespace ABI { 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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#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 +#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 +#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 +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include #include +#include #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 +#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 +#endif /* __cplusplus */ +#endif + #if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 #ifdef __cplusplus } /* extern "C" */ @@ -270,6 +493,302 @@ enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender { #endif #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 **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 **operation) = 0; + + virtual HRESULT STDMETHODCALLTYPE SynthesizeSsmlToStreamAsync( + HSTRING Ssml, + ABI::Windows::Foundation::IAsyncOperation **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 */ @@ -602,6 +1121,22 @@ extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis #endif /* RUNTIMECLASS_Windows_Media_SpeechSynthesis_VoiceInformation_DEFINED */ #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 */ @@ -1053,6 +1588,395 @@ static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__C #endif /* ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__ */ +/***************************************************************************** + * IVectorView 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 : IVectorView_impl + { + }; + } + } + } +} +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 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 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 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 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 : IAsyncOperation_impl > + { + }; + } + } +} +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 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 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 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 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 : IAsyncOperationCompletedHandler_impl > + { + }; + } + } +} +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 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 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 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__ @@ -78,6 +78,20 @@ namespace ABI { #endif /* __cplusplus */ #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 { 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; @@ -347,6 +330,90 @@ namespace ABI { #endif /* __cplusplus */ #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 { 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 + +#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 @@ -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 @@ -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, @@ -825,6 +854,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 */ @@ -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 +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#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 +#include + +#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 @@ -6903,6 +6920,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__ From e4ed8c3f373a6d06511b0210590cf6a4eda6da71 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 6 Oct 2022 07:32:50 -0700 Subject: [PATCH 2/5] update mingw-w64 crt files to v10.0.0 --- lib/libc/mingw/crt/charmax.c | 2 +- lib/libc/mingw/crt/crtdll.c | 4 +- lib/libc/mingw/crt/crtexe.c | 30 +- lib/libc/mingw/crt/mingw_helpers.c | 2 +- lib/libc/mingw/crt/pseudo-reloc.c | 21 +- lib/libc/mingw/crt/tlssup.c | 6 +- lib/libc/mingw/gdtoa/strtopx.c | 14 + lib/libc/mingw/include/config.h | 13 +- lib/libc/mingw/include/msvcrt.h | 4 +- .../mingw/{lib64 => lib-common}/bthprops.def | 0 .../{libarm32 => lib-common}/fwpuclnt.def | 28 +- .../mingw/{lib64 => lib-common}/glu32.def | 0 lib/libc/mingw/lib-common/msvcrt.def.in | 4 +- lib/libc/mingw/lib-common/mswsock.def | 2 + lib/libc/mingw/lib-common/ntdll.def.in | 60 + .../mingw/{lib64 => lib-common}/opengl32.def | 0 lib/libc/mingw/lib-common/query.def | 17 + lib/libc/mingw/lib-common/tbs.def | 3 + lib/libc/mingw/lib-common/ws2_32.def.in | 1 + lib/libc/mingw/lib32/authz.def | 36 +- lib/libc/mingw/lib32/fwpuclnt.def | 145 +- lib/libc/mingw/lib32/ksuser.def | 11 +- lib/libc/mingw/lib32/mswsock.def | 46 +- lib/libc/mingw/lib32/ntdll.def | 55 + lib/libc/mingw/lib32/query.def | 17 + lib/libc/mingw/lib32/tbs.def | 15 + lib/libc/mingw/lib32/user32.def | 191 +- lib/libc/mingw/lib32/ws2_32.def | 14 + lib/libc/mingw/lib64/fwpuclnt.def | 146 -- lib/libc/mingw/lib64/query.def | 1447 -------------- lib/libc/mingw/libarm32/query.def | 51 - lib/libc/mingw/math/cephes_emath.c | 1283 ------------ lib/libc/mingw/math/cephes_emath.h | 719 ------- lib/libc/mingw/math/x86/asinh.c | 55 +- lib/libc/mingw/math/x86/asinhf.c | 17 +- lib/libc/mingw/math/x86/asinhl.c | 15 +- lib/libc/mingw/math/x86/atanh.c | 2 +- lib/libc/mingw/math/x86/atanhf.c | 2 +- lib/libc/mingw/math/x86/atanhl.c | 2 +- lib/libc/mingw/misc/btowc.c | 6 +- lib/libc/mingw/misc/lc_locale_func.c | 33 +- lib/libc/mingw/misc/mingw_wcstod.c | 18 +- lib/libc/mingw/misc/mingw_wcstold.c | 94 +- lib/libc/mingw/misc/seterrno.c | 12 +- lib/libc/mingw/misc/setjmp.S | 2 + lib/libc/mingw/misc/strtold.c | 398 ---- lib/libc/mingw/misc/wcstold.c | 64 +- lib/libc/mingw/secapi/vsprintf_s.c | 5 - lib/libc/mingw/stdio/mingw_pformat.c | 1762 +++++++++-------- lib/libc/mingw/stdio/scanf.S | 152 +- lib/libc/mingw/stdio/snprintf.c | 22 +- lib/libc/mingw/stdio/strtof.c | 18 +- lib/libc/mingw/stdio/vfscanf.c | 6 +- lib/libc/mingw/stdio/vfwscanf.c | 6 +- lib/libc/mingw/stdio/vsnprintf.c | 10 +- lib/libc/mingw/stdio/vsscanf.c | 6 +- lib/libc/mingw/stdio/vswscanf.c | 6 +- lib/libc/mingw/stdio/vwscanf.c | 5 - src/mingw.zig | 2 - 59 files changed, 1851 insertions(+), 5256 deletions(-) rename lib/libc/mingw/{lib64 => lib-common}/bthprops.def (100%) rename lib/libc/mingw/{libarm32 => lib-common}/fwpuclnt.def (89%) rename lib/libc/mingw/{lib64 => lib-common}/glu32.def (100%) rename lib/libc/mingw/{lib64 => lib-common}/opengl32.def (100%) create mode 100644 lib/libc/mingw/lib-common/query.def create mode 100644 lib/libc/mingw/lib32/query.def delete mode 100644 lib/libc/mingw/lib64/fwpuclnt.def delete mode 100644 lib/libc/mingw/lib64/query.def delete mode 100644 lib/libc/mingw/libarm32/query.def delete mode 100644 lib/libc/mingw/math/cephes_emath.c delete mode 100644 lib/libc/mingw/math/cephes_emath.h delete mode 100644 lib/libc/mingw/misc/strtold.c 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 #include #include +#include #if defined(__CYGWIN__) #include @@ -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 header file. */ #define HAVE_INTTYPES_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + /* Define to 1 if you have the 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 -#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 similarity index 100% rename from lib/libc/mingw/lib64/bthprops.def rename to lib/libc/mingw/lib-common/bthprops.def diff --git a/lib/libc/mingw/libarm32/fwpuclnt.def b/lib/libc/mingw/lib-common/fwpuclnt.def similarity index 89% rename from lib/libc/mingw/libarm32/fwpuclnt.def rename to 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 similarity index 100% rename from lib/libc/mingw/lib64/glu32.def rename to 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 similarity index 100% rename from lib/libc/mingw/lib64/opengl32.def rename to 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 & __ptr64) __ptr64 -??0CPidRemapper@@QEAA@AEAV?$XInterface@UIPropertyMapper@@@@@Z -; public: __cdecl CPidRemapper::CPidRemapper(class CPidMapper const & __ptr64,class XInterface & __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 & __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 & __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 & __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 & __ptr64,unsigned short const * __ptr64) -?BuildRegistryPropertiesKey@@YAXAEAV?$XArray@G@@PEBG@Z -; void __cdecl BuildRegistryScopesKey(class XArray & __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 & __ptr64,unsigned long & __ptr64) __ptr64 -?GetCGIVariable@CWebServer@@QEAAHPEBDAEAV?$XArray@G@@AEAK@Z -; public: int __cdecl CWebServer::GetCGIVariableW(unsigned short const * __ptr64,class XArray & __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 & __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 & __ptr64,class XPtrST & __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 & __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 * __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 & __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 & __ptr64,class XPtr & __ptr64,class XPtr & __ptr64,class XPtr & __ptr64,class CRowsetProperties & __ptr64,class XPtr & __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 & __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 & __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 - * - */ - - -/* 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 -#include -#include -#include -#include -#include -#include - -#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 #include +#include #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 #include +#include #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 #include +#include #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 #include -#include #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; } +#ifndef __LIBMSVCRT_OS__ + +unsigned int (__cdecl *__MINGW_IMP_SYMBOL(___lc_codepage_func))(void) = setlocale_codepage_hack; + +#else + +#include + +static unsigned int *msvcrt__lc_codepage; +static unsigned int __cdecl msvcrt___lc_codepage_func(void) +{ + 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; -unsigned int __cdecl ___lc_codepage_func (void) -{ - return __MINGW_IMP_SYMBOL(___lc_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 +#include +#include +#include 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 + */ + + /* This routine has been placed in the public domain.*/ + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif #include -#include +#include +#include +#include +#include +#include -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; + char * cs; + char * cse; + unsigned int i; + long double ret; + const unsigned int cp = ___lc_codepage_func(); - 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; + /* 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 - */ - /* This routine has been placed in the public domain.*/ - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include -#include #include -#include -#include - -#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,8 +1048,47 @@ typedef union */ #include "../gdtoa/gdtoa.h" +static __pformat_fpreg_t init_fpreg_ldouble( long double val ) +{ + __pformat_fpreg_t x; + x.__pformat_fpreg_ldouble_t = val; + + if( sizeof( double ) == sizeof( long double ) ) + { + /* 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 topbit = exp ? 1 : 0; + int signbit = x.__pformat_fpreg_mantissa >> 63; + + if (exp == 0x7ff) + exp = 0x7fff; + else if (exp != 0) + exp = exp - 1023 + 16383; + 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); + } + + return x; +} + static -char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign ) +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 @@ -1057,29 +1096,9 @@ char *__pformat_cvt( int mode, __pformat_fpreg_t x, int nd, int *dp, int *sign ) */ 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 */ }; - - 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. - */ - int exp = (x.__pformat_fpreg_mantissa >> 52) & 0x7ff; - unsigned long long mant = x.__pformat_fpreg_mantissa & 0x000fffffffffffffULL; - int integer = 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); - x.__pformat_fpreg_exponent = exp | (signbit << 15); - } - else - k = __fpclassifyl( x.__pformat_fpreg_ldouble_t ); + __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. + /* 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. */ - 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. - */ - *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,7 @@ 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... */ @@ -2289,29 +2305,100 @@ void __pformat_xldouble( long double x, __pformat_t *stream ) 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; - * 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 - 0x3FFF; + } } 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; + + /* 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... + */ + 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 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. + */ + 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 - 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; + goto format_scan; - case 'C': - /* - * Equivalent to `%lc'; set `length' accordingly, - * and simply fall through. - */ - length = PFORMAT_LENGTH_LONG; + 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; + 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; + /* 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': + /* + * 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 '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... - */ + 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 ); + /* + * 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 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 + { /* 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; - } + 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 ); + /* 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 ); + else + /* or in octal or hexadecimal format... + */ + __pformat_xint( c, argval, &stream ); - goto format_scan; + 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; + 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; + __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 '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 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... - */ + 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 ); + 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 ); + 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; + 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 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'... - */ + 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 ); + 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 ); + 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; + 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 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... - */ + 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 ); + 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 ); + 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; + 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, 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 ); + 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_xldouble( (long double)(va_arg( argv, double )), &stream ); + else + /* or just a `double'. + */ + __pformat_xdouble( va_arg( argv, double ), &stream ); - goto format_scan; + 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; + 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_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_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 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; + else + /* + * or, by default, to a signed `int'. + */ + *va_arg( argv, int * ) = stream.count; - goto format_scan; + 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; - } + /* 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; + else + /* Modifier is `h'; data type is `short' sized... + */ + length = PFORMAT_LENGTH_SHORT; - state = PFORMAT_END; - break; + 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 '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; - case 'I': - /* - * The MSVCRT implementation of the printf() family of - * functions explicitly uses... - */ +# 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; - } + 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 ); + 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; + state = PFORMAT_END; + break; + +# endif -# endif - #ifdef __ENABLE_DFP - case 'H': - stream.flags |= PFORMAT_DECIM32; - 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; - } + 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; + else + /* Modifier is `D'; data type is `_Decimal64' sized... + */ + stream.flags |= PFORMAT_DECIM64; - state = PFORMAT_END; - break; + 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; - } + 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; + else + /* Modifier is `l'; data type is `long' sized... + */ + length = PFORMAT_LENGTH_LONG; - state = PFORMAT_END; - break; + 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; - } + 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; - else - /* We've already seen a precision specification, - * so this is just junk; proceed to end game. - */ - state = PFORMAT_END; + 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; - /* Either way, we must not fall through here. - */ - 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; - /* 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; - } + /* 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 - /* while as a precision specification, - * it should simply be ignored. - */ - stream.precision = PFORMAT_IGNORE; - } - } + else + /* We've already seen a precision specification, + * so this is just junk; proceed to end game. + */ + state = PFORMAT_END; - else - /* out of context; give up on width and precision - * specifications for this conversion. - */ - state = PFORMAT_END; + /* Either way, we must not fall through here. + */ + break; - /* Mark as processed... - * we must not see `*' again, in this context. - */ - width_spec = NULL; - 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; + } - /* 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; + else + /* while as a precision specification, + * it should simply be ignored. + */ + stream.precision = PFORMAT_IGNORE; + } + } - case '+': - /* - * Print a leading sign with numeric output, - * for both positive and negative values. - */ - if( state == PFORMAT_INIT ) - stream.flags |= PFORMAT_POSITIVE; - break; + else + /* out of context; give up on width and precision + * specifications for this conversion. + */ + state = PFORMAT_END; - 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; + /* Mark as processed... + * we must not see `*' again, in this context. + */ + width_spec = NULL; + 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; + /* 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 '\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 '+': + /* + * Print a leading sign with numeric output, + * for both positive and negative values. + */ + if( state == PFORMAT_INIT ) + stream.flags |= PFORMAT_POSITIVE; + 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; - } + 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; - 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; + 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; - else if( state == PFORMAT_GET_PRECISION ) - /* - * while those following a precision indicator - * explicitly relate to precision. - */ - state = PFORMAT_SET_PRECISION; + 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; - 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'; + 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; + } - 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'; - } - } + 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 - { - /* 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; + 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. */ + movq 48(%rbp), %r10 /* func. */ - /* The first 32 bytes are in registers, but by spec, space - must still be reserved for them on the stack. Put the + /* 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 +#include +#include +#include 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 #include -#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..e02984ee19 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -677,7 +677,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 +809,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", From 85f4e579d8f3362dca11f1ccf89ffabc9d46e804 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 6 Oct 2022 07:42:55 -0700 Subject: [PATCH 3/5] stage2: update mingw-w64 build logic to v10.0.0 --- src/mingw.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mingw.zig b/src/mingw.zig index e02984ee19..415edf0d28 100644 --- a/src/mingw.zig +++ b/src/mingw.zig @@ -105,7 +105,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" }), From 3108b8010ecfd9fc7bc9734af357700b8b913f71 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 11 Oct 2022 01:35:04 -0700 Subject: [PATCH 4/5] CI: windows: update tarball --- ci/azure/pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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: | From b020d83265b10544f4f1f4da1502dba0ebb445d6 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 11 Oct 2022 01:59:39 -0700 Subject: [PATCH 5/5] mingw-w64: pass -D__USE_MINGW_ANSI_STDIO=0 for crt files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Martin Storsjö for explaining this to me on IRC: __USE_MINGW_ANSI_STDIO redirects stdio functions towards mingw-w64 reimplementations of them (since msvcrt.dll lacks lots of things). For x86 with "long double", this is also needed to get long doubles formatted properly. It's enabled by default by headers when building in C99 mode, unless you're targeting UCRT. The headers normally enable this automatically - or you can request it enabled with -D__USE_MINGW_ANSI_STDIO=1. However, the mingw-w64-crt files are expected to be built with this explicitly turned off. Since there's a half dozen various ways of configuring the CRT and various features, the mingw-w64-crt files specifically need to be built in a very hardcoded configuration, which is different from how end user source files are compiled. This commit removes a patch that we were carrying previously. See #7356 --- src/mingw.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mingw.zig b/src/mingw.zig index 415edf0d28..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{ @@ -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", }); }