Commit e52931e50f
Changed files (296)
lib
libc
include
any-windows-any
sys
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
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
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
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
lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h
@@ -4,9 +4,18 @@
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
+/*
+ * Shared data types between winsock and winsock2
+ */
+
#ifndef _MINGW_IP_MREQ1_H
#define _MINGW_IP_MREQ1_H
#include <inaddr.h>
+typedef struct ip_mreq {
+ struct in_addr imr_multiaddr;
+ struct in_addr imr_interface;
+} IP_MREQ, *PIP_MREQ;
+
#endif /* _MINGW_IP_MREQ1_H */
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);
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 {
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
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
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__
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__
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__
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__
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__
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__
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__
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_ */
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__
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__
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__
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/bits.h
@@ -1,379 +1,792 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 7.0 from include/bits.idl - Do not edit ***/
+
+#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
+#include <rpc.h>
+#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
#endif
#ifndef __bits_h__
#define __bits_h__
+/* Forward declarations */
+
#ifndef __IBackgroundCopyFile_FWD_DEFINED__
#define __IBackgroundCopyFile_FWD_DEFINED__
-typedef struct IBackgroundCopyFile IBackgroundCopyFile;
+typedef interface IBackgroundCopyFile IBackgroundCopyFile;
+#ifdef __cplusplus
+interface IBackgroundCopyFile;
+#endif /* __cplusplus */
#endif
#ifndef __IEnumBackgroundCopyFiles_FWD_DEFINED__
#define __IEnumBackgroundCopyFiles_FWD_DEFINED__
-typedef struct IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
+typedef interface IEnumBackgroundCopyFiles IEnumBackgroundCopyFiles;
+#ifdef __cplusplus
+interface IEnumBackgroundCopyFiles;
+#endif /* __cplusplus */
#endif
#ifndef __IBackgroundCopyError_FWD_DEFINED__
#define __IBackgroundCopyError_FWD_DEFINED__
-typedef struct IBackgroundCopyError IBackgroundCopyError;
+typedef interface IBackgroundCopyError IBackgroundCopyError;
+#ifdef __cplusplus
+interface IBackgroundCopyError;
+#endif /* __cplusplus */
#endif
#ifndef __IBackgroundCopyJob_FWD_DEFINED__
#define __IBackgroundCopyJob_FWD_DEFINED__
-typedef struct IBackgroundCopyJob IBackgroundCopyJob;
+typedef interface IBackgroundCopyJob IBackgroundCopyJob;
+#ifdef __cplusplus
+interface IBackgroundCopyJob;
+#endif /* __cplusplus */
#endif
#ifndef __IEnumBackgroundCopyJobs_FWD_DEFINED__
#define __IEnumBackgroundCopyJobs_FWD_DEFINED__
-typedef struct IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
+typedef interface IEnumBackgroundCopyJobs IEnumBackgroundCopyJobs;
+#ifdef __cplusplus
+interface IEnumBackgroundCopyJobs;
+#endif /* __cplusplus */
#endif
#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
#define __IBackgroundCopyCallback_FWD_DEFINED__
-typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
-#endif
-
-#ifndef __AsyncIBackgroundCopyCallback_FWD_DEFINED__
-#define __AsyncIBackgroundCopyCallback_FWD_DEFINED__
-typedef struct AsyncIBackgroundCopyCallback AsyncIBackgroundCopyCallback;
+typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+#ifdef __cplusplus
+interface IBackgroundCopyCallback;
+#endif /* __cplusplus */
#endif
#ifndef __IBackgroundCopyManager_FWD_DEFINED__
#define __IBackgroundCopyManager_FWD_DEFINED__
-typedef struct IBackgroundCopyManager IBackgroundCopyManager;
+typedef interface IBackgroundCopyManager IBackgroundCopyManager;
+#ifdef __cplusplus
+interface IBackgroundCopyManager;
+#endif /* __cplusplus */
#endif
#ifndef __BackgroundCopyManager_FWD_DEFINED__
#define __BackgroundCopyManager_FWD_DEFINED__
-
#ifdef __cplusplus
typedef class BackgroundCopyManager BackgroundCopyManager;
#else
typedef struct BackgroundCopyManager BackgroundCopyManager;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __BackgroundCopyManager_FWD_DEFINED__ */
-#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
-#define __IBackgroundCopyCallback_FWD_DEFINED__
-typedef struct IBackgroundCopyCallback IBackgroundCopyCallback;
-#endif
+/* Headers for imported files */
-#include "unknwn.h"
+#include <unknwn.h>
#ifdef __cplusplus
-extern "C"{
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
- void *__RPC_API MIDL_user_allocate(size_t);
- void __RPC_API MIDL_user_free(void *);
+extern "C" {
#endif
#include "bitsmsg.h"
#define BG_SIZE_UNKNOWN (UINT64)(-1)
-
- extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_bits_0000_v0_0_s_ifspec;
-
+#define BG_NOTIFY_JOB_TRANSFERRED 0x0001
+#define BG_NOTIFY_JOB_ERROR 0x0002
+#define BG_NOTIFY_DISABLE 0x0004
+#define BG_NOTIFY_JOB_MODIFICATION 0x0008
+#define BG_NOTIFY_FILE_TRANSFERRED 0x0010
+#ifdef WINE_NO_UNICODE_MACROS
+#undef EnumJobs
+#undef GetJob
+#endif
+/*****************************************************************************
+ * IBackgroundCopyFile interface
+ */
#ifndef __IBackgroundCopyFile_INTERFACE_DEFINED__
#define __IBackgroundCopyFile_INTERFACE_DEFINED__
- typedef struct _BG_FILE_PROGRESS {
+typedef struct _BG_FILE_PROGRESS {
UINT64 BytesTotal;
UINT64 BytesTransferred;
WINBOOL Completed;
- } BG_FILE_PROGRESS;
-
- EXTERN_C const IID IID_IBackgroundCopyFile;
+} BG_FILE_PROGRESS;
+DEFINE_GUID(IID_IBackgroundCopyFile, 0x01b7bd23, 0xfb88, 0x4a77, 0x84,0x90, 0x58,0x91,0xd3,0xe4,0x65,0x3a);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyFile : public IUnknown {
- public:
- virtual HRESULT WINAPI GetRemoteName(LPWSTR *pVal) = 0;
- virtual HRESULT WINAPI GetLocalName(LPWSTR *pVal) = 0;
- virtual HRESULT WINAPI GetProgress(BG_FILE_PROGRESS *pVal) = 0;
- };
+MIDL_INTERFACE("01b7bd23-fb88-4a77-8490-5891d3e4653a")
+IBackgroundCopyFile : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetRemoteName(
+ LPWSTR *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetLocalName(
+ LPWSTR *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProgress(
+ BG_FILE_PROGRESS *pVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyFile, 0x01b7bd23, 0xfb88, 0x4a77, 0x84,0x90, 0x58,0x91,0xd3,0xe4,0x65,0x3a)
+#endif
#else
- typedef struct IBackgroundCopyFileVtbl {
+typedef struct IBackgroundCopyFileVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyFile *This);
- ULONG (WINAPI *Release)(IBackgroundCopyFile *This);
- HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile *This,LPWSTR *pVal);
- HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile *This,LPWSTR *pVal);
- HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyFile *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyFile *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyFile *This);
+
+ /*** IBackgroundCopyFile methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetRemoteName)(
+ IBackgroundCopyFile *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetLocalName)(
+ IBackgroundCopyFile *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyFile *This,
+ BG_FILE_PROGRESS *pVal);
+
END_INTERFACE
- } IBackgroundCopyFileVtbl;
- struct IBackgroundCopyFile {
- CONST_VTBL struct IBackgroundCopyFileVtbl *lpVtbl;
- };
+} IBackgroundCopyFileVtbl;
+
+interface IBackgroundCopyFile {
+ CONST_VTBL IBackgroundCopyFileVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyFile_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyFile_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyFile methods ***/
#define IBackgroundCopyFile_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal)
#define IBackgroundCopyFile_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal)
#define IBackgroundCopyFile_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyFile_QueryInterface(IBackgroundCopyFile* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyFile_AddRef(IBackgroundCopyFile* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyFile_Release(IBackgroundCopyFile* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyFile methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyFile_GetRemoteName(IBackgroundCopyFile* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetRemoteName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyFile_GetLocalName(IBackgroundCopyFile* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetLocalName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyFile_GetProgress(IBackgroundCopyFile* This,BG_FILE_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyFile_GetRemoteName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
- void __RPC_STUB IBackgroundCopyFile_GetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyFile_GetLocalName_Proxy(IBackgroundCopyFile *This,LPWSTR *pVal);
- void __RPC_STUB IBackgroundCopyFile_GetLocalName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyFile_GetProgress_Proxy(IBackgroundCopyFile *This,BG_FILE_PROGRESS *pVal);
- void __RPC_STUB IBackgroundCopyFile_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyFile_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumBackgroundCopyFiles interface
+ */
#ifndef __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
#define __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__
- EXTERN_C const IID IID_IEnumBackgroundCopyFiles;
+
+DEFINE_GUID(IID_IEnumBackgroundCopyFiles, 0xca51e165, 0xc365, 0x424c, 0x8d,0x41, 0x24,0xaa,0xa4,0xff,0x3c,0x40);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IEnumBackgroundCopyFiles : public IUnknown {
- public:
- virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) = 0;
- virtual HRESULT WINAPI Skip(ULONG celt) = 0;
- virtual HRESULT WINAPI Reset(void) = 0;
- virtual HRESULT WINAPI Clone(IEnumBackgroundCopyFiles **ppenum) = 0;
- virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
- };
+MIDL_INTERFACE("ca51e165-c365-424c-8d41-24aaa4ff3c40")
+IEnumBackgroundCopyFiles : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ IBackgroundCopyFile **rgelt,
+ ULONG *pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IEnumBackgroundCopyFiles **ppenum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCount(
+ ULONG *puCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumBackgroundCopyFiles, 0xca51e165, 0xc365, 0x424c, 0x8d,0x41, 0x24,0xaa,0xa4,0xff,0x3c,0x40)
+#endif
#else
- typedef struct IEnumBackgroundCopyFilesVtbl {
+typedef struct IEnumBackgroundCopyFilesVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyFiles *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IEnumBackgroundCopyFiles *This);
- ULONG (WINAPI *Release)(IEnumBackgroundCopyFiles *This);
- HRESULT (WINAPI *Next)(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
- HRESULT (WINAPI *Skip)(IEnumBackgroundCopyFiles *This,ULONG celt);
- HRESULT (WINAPI *Reset)(IEnumBackgroundCopyFiles *This);
- HRESULT (WINAPI *Clone)(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
- HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyFiles *This,ULONG *puCount);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IEnumBackgroundCopyFiles *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IEnumBackgroundCopyFiles *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IEnumBackgroundCopyFiles *This);
+
+ /*** IEnumBackgroundCopyFiles methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IEnumBackgroundCopyFiles *This,
+ ULONG celt,
+ IBackgroundCopyFile **rgelt,
+ ULONG *pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IEnumBackgroundCopyFiles *This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IEnumBackgroundCopyFiles *This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IEnumBackgroundCopyFiles *This,
+ IEnumBackgroundCopyFiles **ppenum);
+
+ HRESULT (STDMETHODCALLTYPE *GetCount)(
+ IEnumBackgroundCopyFiles *This,
+ ULONG *puCount);
+
END_INTERFACE
- } IEnumBackgroundCopyFilesVtbl;
- struct IEnumBackgroundCopyFiles {
- CONST_VTBL struct IEnumBackgroundCopyFilesVtbl *lpVtbl;
- };
+} IEnumBackgroundCopyFilesVtbl;
+
+interface IEnumBackgroundCopyFiles {
+ CONST_VTBL IEnumBackgroundCopyFilesVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IEnumBackgroundCopyFiles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumBackgroundCopyFiles_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumBackgroundCopyFiles_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumBackgroundCopyFiles methods ***/
#define IEnumBackgroundCopyFiles_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
#define IEnumBackgroundCopyFiles_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumBackgroundCopyFiles_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumBackgroundCopyFiles_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#define IEnumBackgroundCopyFiles_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_QueryInterface(IEnumBackgroundCopyFiles* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumBackgroundCopyFiles_AddRef(IEnumBackgroundCopyFiles* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumBackgroundCopyFiles_Release(IEnumBackgroundCopyFiles* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IEnumBackgroundCopyFiles methods ***/
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Next(IEnumBackgroundCopyFiles* This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched) {
+ return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Skip(IEnumBackgroundCopyFiles* This,ULONG celt) {
+ return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Reset(IEnumBackgroundCopyFiles* This) {
+ return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_Clone(IEnumBackgroundCopyFiles* This,IEnumBackgroundCopyFiles **ppenum) {
+ return This->lpVtbl->Clone(This,ppenum);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyFiles_GetCount(IEnumBackgroundCopyFiles* This,ULONG *puCount) {
+ return This->lpVtbl->GetCount(This,puCount);
+}
#endif
#endif
- HRESULT WINAPI IEnumBackgroundCopyFiles_Next_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt,IBackgroundCopyFile **rgelt,ULONG *pceltFetched);
- void __RPC_STUB IEnumBackgroundCopyFiles_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyFiles_Skip_Proxy(IEnumBackgroundCopyFiles *This,ULONG celt);
- void __RPC_STUB IEnumBackgroundCopyFiles_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyFiles_Reset_Proxy(IEnumBackgroundCopyFiles *This);
- void __RPC_STUB IEnumBackgroundCopyFiles_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyFiles_Clone_Proxy(IEnumBackgroundCopyFiles *This,IEnumBackgroundCopyFiles **ppenum);
- void __RPC_STUB IEnumBackgroundCopyFiles_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyFiles_GetCount_Proxy(IEnumBackgroundCopyFiles *This,ULONG *puCount);
- void __RPC_STUB IEnumBackgroundCopyFiles_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IEnumBackgroundCopyFiles_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IBackgroundCopyError interface
+ */
#ifndef __IBackgroundCopyError_INTERFACE_DEFINED__
#define __IBackgroundCopyError_INTERFACE_DEFINED__
- typedef enum __MIDL_IBackgroundCopyError_0001 {
- BG_ERROR_CONTEXT_NONE = 0,BG_ERROR_CONTEXT_UNKNOWN = 1,BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3,
- BG_ERROR_CONTEXT_LOCAL_FILE = 4,BG_ERROR_CONTEXT_REMOTE_FILE = 5,BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7
- } BG_ERROR_CONTEXT;
- EXTERN_C const IID IID_IBackgroundCopyError;
+typedef enum __WIDL_bits_generated_name_0000000C {
+ BG_ERROR_CONTEXT_NONE = 0,
+ BG_ERROR_CONTEXT_UNKNOWN = 1,
+ BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = 2,
+ BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = 3,
+ BG_ERROR_CONTEXT_LOCAL_FILE = 4,
+ BG_ERROR_CONTEXT_REMOTE_FILE = 5,
+ BG_ERROR_CONTEXT_GENERAL_TRANSPORT = 6,
+ BG_ERROR_CONTEXT_REMOTE_APPLICATION = 7
+} BG_ERROR_CONTEXT;
+DEFINE_GUID(IID_IBackgroundCopyError, 0x19c613a0, 0xfcb8, 0x4f28, 0x81,0xae, 0x89,0x7c,0x3d,0x07,0x8f,0x81);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyError : public IUnknown {
- public:
- virtual HRESULT WINAPI GetError(BG_ERROR_CONTEXT *pContext,HRESULT *pCode) = 0;
- virtual HRESULT WINAPI GetFile(IBackgroundCopyFile **pVal) = 0;
- virtual HRESULT WINAPI GetErrorDescription(DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
- virtual HRESULT WINAPI GetErrorContextDescription(DWORD LanguageId,LPWSTR *pContextDescription) = 0;
- virtual HRESULT WINAPI GetProtocol(LPWSTR *pProtocol) = 0;
- };
+MIDL_INTERFACE("19c613a0-fcb8-4f28-81ae-897c3d078f81")
+IBackgroundCopyError : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetError(
+ BG_ERROR_CONTEXT *pContext,
+ HRESULT *pCode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFile(
+ IBackgroundCopyFile **pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetErrorDescription(
+ DWORD LanguageId,
+ LPWSTR *pErrorDescription) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetErrorContextDescription(
+ DWORD LanguageId,
+ LPWSTR *pContextDescription) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProtocol(
+ LPWSTR *pProtocol) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyError, 0x19c613a0, 0xfcb8, 0x4f28, 0x81,0xae, 0x89,0x7c,0x3d,0x07,0x8f,0x81)
+#endif
#else
- typedef struct IBackgroundCopyErrorVtbl {
+typedef struct IBackgroundCopyErrorVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyError *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyError *This);
- ULONG (WINAPI *Release)(IBackgroundCopyError *This);
- HRESULT (WINAPI *GetError)(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
- HRESULT (WINAPI *GetFile)(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
- HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
- HRESULT (WINAPI *GetErrorContextDescription)(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
- HRESULT (WINAPI *GetProtocol)(IBackgroundCopyError *This,LPWSTR *pProtocol);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyError *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyError *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyError *This);
+
+ /*** IBackgroundCopyError methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyError *This,
+ BG_ERROR_CONTEXT *pContext,
+ HRESULT *pCode);
+
+ HRESULT (STDMETHODCALLTYPE *GetFile)(
+ IBackgroundCopyError *This,
+ IBackgroundCopyFile **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorDescription)(
+ IBackgroundCopyError *This,
+ DWORD LanguageId,
+ LPWSTR *pErrorDescription);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorContextDescription)(
+ IBackgroundCopyError *This,
+ DWORD LanguageId,
+ LPWSTR *pContextDescription);
+
+ HRESULT (STDMETHODCALLTYPE *GetProtocol)(
+ IBackgroundCopyError *This,
+ LPWSTR *pProtocol);
+
END_INTERFACE
- } IBackgroundCopyErrorVtbl;
- struct IBackgroundCopyError {
- CONST_VTBL struct IBackgroundCopyErrorVtbl *lpVtbl;
- };
+} IBackgroundCopyErrorVtbl;
+
+interface IBackgroundCopyError {
+ CONST_VTBL IBackgroundCopyErrorVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyError_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyError_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyError methods ***/
#define IBackgroundCopyError_GetError(This,pContext,pCode) (This)->lpVtbl->GetError(This,pContext,pCode)
#define IBackgroundCopyError_GetFile(This,pVal) (This)->lpVtbl->GetFile(This,pVal)
#define IBackgroundCopyError_GetErrorDescription(This,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription)
#define IBackgroundCopyError_GetErrorContextDescription(This,LanguageId,pContextDescription) (This)->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription)
#define IBackgroundCopyError_GetProtocol(This,pProtocol) (This)->lpVtbl->GetProtocol(This,pProtocol)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyError_QueryInterface(IBackgroundCopyError* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyError_AddRef(IBackgroundCopyError* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyError_Release(IBackgroundCopyError* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyError methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyError_GetError(IBackgroundCopyError* This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode) {
+ return This->lpVtbl->GetError(This,pContext,pCode);
+}
+static FORCEINLINE HRESULT IBackgroundCopyError_GetFile(IBackgroundCopyError* This,IBackgroundCopyFile **pVal) {
+ return This->lpVtbl->GetFile(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyError_GetErrorDescription(IBackgroundCopyError* This,DWORD LanguageId,LPWSTR *pErrorDescription) {
+ return This->lpVtbl->GetErrorDescription(This,LanguageId,pErrorDescription);
+}
+static FORCEINLINE HRESULT IBackgroundCopyError_GetErrorContextDescription(IBackgroundCopyError* This,DWORD LanguageId,LPWSTR *pContextDescription) {
+ return This->lpVtbl->GetErrorContextDescription(This,LanguageId,pContextDescription);
+}
+static FORCEINLINE HRESULT IBackgroundCopyError_GetProtocol(IBackgroundCopyError* This,LPWSTR *pProtocol) {
+ return This->lpVtbl->GetProtocol(This,pProtocol);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyError_GetError_Proxy(IBackgroundCopyError *This,BG_ERROR_CONTEXT *pContext,HRESULT *pCode);
- void __RPC_STUB IBackgroundCopyError_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyError_GetFile_Proxy(IBackgroundCopyError *This,IBackgroundCopyFile **pVal);
- void __RPC_STUB IBackgroundCopyError_GetFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyError_GetErrorDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pErrorDescription);
- void __RPC_STUB IBackgroundCopyError_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyError_GetErrorContextDescription_Proxy(IBackgroundCopyError *This,DWORD LanguageId,LPWSTR *pContextDescription);
- void __RPC_STUB IBackgroundCopyError_GetErrorContextDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyError_GetProtocol_Proxy(IBackgroundCopyError *This,LPWSTR *pProtocol);
- void __RPC_STUB IBackgroundCopyError_GetProtocol_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IBackgroundCopyJob interface
+ */
#ifndef __IBackgroundCopyJob_INTERFACE_DEFINED__
#define __IBackgroundCopyJob_INTERFACE_DEFINED__
- typedef struct _BG_FILE_INFO {
+
+typedef struct _BG_FILE_INFO {
LPWSTR RemoteName;
LPWSTR LocalName;
- } BG_FILE_INFO;
-
- typedef struct _BG_JOB_PROGRESS {
+} BG_FILE_INFO;
+typedef struct _BG_JOB_PROGRESS {
UINT64 BytesTotal;
UINT64 BytesTransferred;
ULONG FilesTotal;
ULONG FilesTransferred;
- } BG_JOB_PROGRESS;
-
- typedef struct _BG_JOB_TIMES {
+} BG_JOB_PROGRESS;
+typedef struct _BG_JOB_TIMES {
FILETIME CreationTime;
FILETIME ModificationTime;
FILETIME TransferCompletionTime;
- } BG_JOB_TIMES;
-
- typedef enum __MIDL_IBackgroundCopyJob_0001 {
+} BG_JOB_TIMES;
+typedef enum __WIDL_bits_generated_name_0000000D {
BG_JOB_PRIORITY_FOREGROUND = 0,
- BG_JOB_PRIORITY_HIGH,BG_JOB_PRIORITY_NORMAL,BG_JOB_PRIORITY_LOW
- } BG_JOB_PRIORITY;
+ BG_JOB_PRIORITY_HIGH = 1,
+ BG_JOB_PRIORITY_NORMAL = 2,
+ BG_JOB_PRIORITY_LOW = 3
+} BG_JOB_PRIORITY;
+typedef enum __WIDL_bits_generated_name_0000000E {
+ BG_JOB_STATE_QUEUED = 0,
+ BG_JOB_STATE_CONNECTING = 1,
+ BG_JOB_STATE_TRANSFERRING = 2,
+ BG_JOB_STATE_SUSPENDED = 3,
+ BG_JOB_STATE_ERROR = 4,
+ BG_JOB_STATE_TRANSIENT_ERROR = 5,
+ BG_JOB_STATE_TRANSFERRED = 6,
+ BG_JOB_STATE_ACKNOWLEDGED = 7,
+ BG_JOB_STATE_CANCELLED = 8
+} BG_JOB_STATE;
+typedef enum __WIDL_bits_generated_name_0000000F {
+ BG_JOB_TYPE_DOWNLOAD = 0,
+ BG_JOB_TYPE_UPLOAD = 1,
+ BG_JOB_TYPE_UPLOAD_REPLY = 2
+} BG_JOB_TYPE;
+typedef enum __WIDL_bits_generated_name_00000010 {
+ BG_JOB_PROXY_USAGE_PRECONFIG = 0,
+ BG_JOB_PROXY_USAGE_NO_PROXY = 1,
+ BG_JOB_PROXY_USAGE_OVERRIDE = 2,
+ BG_JOB_PROXY_USAGE_AUTODETECT = 3
+} BG_JOB_PROXY_USAGE;
+DEFINE_GUID(IID_IBackgroundCopyJob, 0x37668d37, 0x507e, 0x4160, 0x93,0x16, 0x26,0x30,0x6d,0x15,0x0b,0x12);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("37668d37-507e-4160-9316-26306d150b12")
+IBackgroundCopyJob : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE AddFileSet(
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet) = 0;
- typedef enum __MIDL_IBackgroundCopyJob_0002 {
- BG_JOB_STATE_QUEUED = 0,BG_JOB_STATE_CONNECTING,BG_JOB_STATE_TRANSFERRING,
- BG_JOB_STATE_SUSPENDED,BG_JOB_STATE_ERROR,BG_JOB_STATE_TRANSIENT_ERROR,
- BG_JOB_STATE_TRANSFERRED,BG_JOB_STATE_ACKNOWLEDGED,BG_JOB_STATE_CANCELLED
- } BG_JOB_STATE;
+ virtual HRESULT STDMETHODCALLTYPE AddFile(
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName) = 0;
- typedef enum __MIDL_IBackgroundCopyJob_0003 {
- BG_JOB_TYPE_DOWNLOAD = 0,BG_JOB_TYPE_UPLOAD,BG_JOB_TYPE_UPLOAD_REPLY
- } BG_JOB_TYPE;
+ virtual HRESULT STDMETHODCALLTYPE EnumFiles(
+ IEnumBackgroundCopyFiles **pEnum) = 0;
- typedef enum __MIDL_IBackgroundCopyJob_0004 {
- BG_JOB_PROXY_USAGE_PRECONFIG = 0,BG_JOB_PROXY_USAGE_NO_PROXY,
- BG_JOB_PROXY_USAGE_OVERRIDE,BG_JOB_PROXY_USAGE_AUTODETECT
- } BG_JOB_PROXY_USAGE;
+ virtual HRESULT STDMETHODCALLTYPE Suspend(
+ ) = 0;
- EXTERN_C const IID IID_IBackgroundCopyJob;
-#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyJob : public IUnknown {
- public:
- virtual HRESULT WINAPI AddFileSet(ULONG cFileCount,BG_FILE_INFO *pFileSet) = 0;
- virtual HRESULT WINAPI AddFile(LPCWSTR RemoteUrl,LPCWSTR LocalName) = 0;
- virtual HRESULT WINAPI EnumFiles(IEnumBackgroundCopyFiles **pEnum) = 0;
- virtual HRESULT WINAPI Suspend(void) = 0;
- virtual HRESULT WINAPI Resume(void) = 0;
- virtual HRESULT WINAPI Cancel(void) = 0;
- virtual HRESULT WINAPI Complete(void) = 0;
- virtual HRESULT WINAPI GetId(GUID *pVal) = 0;
- virtual HRESULT WINAPI GetType(BG_JOB_TYPE *pVal) = 0;
- virtual HRESULT WINAPI GetProgress(BG_JOB_PROGRESS *pVal) = 0;
- virtual HRESULT WINAPI GetTimes(BG_JOB_TIMES *pVal) = 0;
- virtual HRESULT WINAPI GetState(BG_JOB_STATE *pVal) = 0;
- virtual HRESULT WINAPI GetError(IBackgroundCopyError **ppError) = 0;
- virtual HRESULT WINAPI GetOwner(LPWSTR *pVal) = 0;
- virtual HRESULT WINAPI SetDisplayName(LPCWSTR Val) = 0;
- virtual HRESULT WINAPI GetDisplayName(LPWSTR *pVal) = 0;
- virtual HRESULT WINAPI SetDescription(LPCWSTR Val) = 0;
- virtual HRESULT WINAPI GetDescription(LPWSTR *pVal) = 0;
- virtual HRESULT WINAPI SetPriority(BG_JOB_PRIORITY Val) = 0;
- virtual HRESULT WINAPI GetPriority(BG_JOB_PRIORITY *pVal) = 0;
- virtual HRESULT WINAPI SetNotifyFlags(ULONG Val) = 0;
- virtual HRESULT WINAPI GetNotifyFlags(ULONG *pVal) = 0;
- virtual HRESULT WINAPI SetNotifyInterface(IUnknown *Val) = 0;
- virtual HRESULT WINAPI GetNotifyInterface(IUnknown **pVal) = 0;
- virtual HRESULT WINAPI SetMinimumRetryDelay(ULONG Seconds) = 0;
- virtual HRESULT WINAPI GetMinimumRetryDelay(ULONG *Seconds) = 0;
- virtual HRESULT WINAPI SetNoProgressTimeout(ULONG Seconds) = 0;
- virtual HRESULT WINAPI GetNoProgressTimeout(ULONG *Seconds) = 0;
- virtual HRESULT WINAPI GetErrorCount(ULONG *Errors) = 0;
- virtual HRESULT WINAPI SetProxySettings(BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) = 0;
- virtual HRESULT WINAPI GetProxySettings(BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) = 0;
- virtual HRESULT WINAPI TakeOwnership(void) = 0;
- };
+ virtual HRESULT STDMETHODCALLTYPE Resume(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Cancel(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Complete(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetId(
+ GUID *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetType(
+ BG_JOB_TYPE *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProgress(
+ BG_JOB_PROGRESS *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTimes(
+ BG_JOB_TIMES *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetState(
+ BG_JOB_STATE *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetError(
+ IBackgroundCopyError **ppError) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOwner(
+ LPWSTR *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
+ LPCWSTR Val) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
+ LPWSTR *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDescription(
+ LPCWSTR Val) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDescription(
+ LPWSTR *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetPriority(
+ BG_JOB_PRIORITY Val) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPriority(
+ BG_JOB_PRIORITY *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetNotifyFlags(
+ ULONG Val) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNotifyFlags(
+ ULONG *pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetNotifyInterface(
+ IUnknown *Val) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNotifyInterface(
+ IUnknown **pVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMinimumRetryDelay(
+ ULONG Seconds) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMinimumRetryDelay(
+ ULONG *Seconds) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetNoProgressTimeout(
+ ULONG Seconds) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNoProgressTimeout(
+ ULONG *Seconds) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetErrorCount(
+ ULONG *Errors) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProxySettings(
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProxySettings(
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TakeOwnership(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJob, 0x37668d37, 0x507e, 0x4160, 0x93,0x16, 0x26,0x30,0x6d,0x15,0x0b,0x12)
+#endif
#else
- typedef struct IBackgroundCopyJobVtbl {
+typedef struct IBackgroundCopyJobVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyJob *This);
- ULONG (WINAPI *Release)(IBackgroundCopyJob *This);
- HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
- HRESULT (WINAPI *AddFile)(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
- HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
- HRESULT (WINAPI *Suspend)(IBackgroundCopyJob *This);
- HRESULT (WINAPI *Resume)(IBackgroundCopyJob *This);
- HRESULT (WINAPI *Cancel)(IBackgroundCopyJob *This);
- HRESULT (WINAPI *Complete)(IBackgroundCopyJob *This);
- HRESULT (WINAPI *GetId)(IBackgroundCopyJob *This,GUID *pVal);
- HRESULT (WINAPI *GetType)(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
- HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
- HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
- HRESULT (WINAPI *GetState)(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
- HRESULT (WINAPI *GetError)(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
- HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
- HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
- HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob *This,ULONG Val);
- HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob *This,ULONG *pVal);
- HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob *This,IUnknown *Val);
- HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob *This,IUnknown **pVal);
- HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG Seconds);
- HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob *This,ULONG *Seconds);
- HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG Seconds);
- HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob *This,ULONG *Seconds);
- HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob *This,ULONG *Errors);
- HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
- HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
- HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob *This);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJob *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJob *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJob *This);
+
+ /*** IBackgroundCopyJob methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddFileSet)(
+ IBackgroundCopyJob *This,
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet);
+
+ HRESULT (STDMETHODCALLTYPE *AddFile)(
+ IBackgroundCopyJob *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumFiles)(
+ IBackgroundCopyJob *This,
+ IEnumBackgroundCopyFiles **pEnum);
+
+ HRESULT (STDMETHODCALLTYPE *Suspend)(
+ IBackgroundCopyJob *This);
+
+ HRESULT (STDMETHODCALLTYPE *Resume)(
+ IBackgroundCopyJob *This);
+
+ HRESULT (STDMETHODCALLTYPE *Cancel)(
+ IBackgroundCopyJob *This);
+
+ HRESULT (STDMETHODCALLTYPE *Complete)(
+ IBackgroundCopyJob *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetId)(
+ IBackgroundCopyJob *This,
+ GUID *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IBackgroundCopyJob *This,
+ BG_JOB_TYPE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyJob *This,
+ BG_JOB_PROGRESS *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimes)(
+ IBackgroundCopyJob *This,
+ BG_JOB_TIMES *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetState)(
+ IBackgroundCopyJob *This,
+ BG_JOB_STATE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyJob *This,
+ IBackgroundCopyError **ppError);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwner)(
+ IBackgroundCopyJob *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+ IBackgroundCopyJob *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+ IBackgroundCopyJob *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDescription)(
+ IBackgroundCopyJob *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDescription)(
+ IBackgroundCopyJob *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetPriority)(
+ IBackgroundCopyJob *This,
+ BG_JOB_PRIORITY Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetPriority)(
+ IBackgroundCopyJob *This,
+ BG_JOB_PRIORITY *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)(
+ IBackgroundCopyJob *This,
+ ULONG Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)(
+ IBackgroundCopyJob *This,
+ ULONG *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)(
+ IBackgroundCopyJob *This,
+ IUnknown *Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)(
+ IBackgroundCopyJob *This,
+ IUnknown **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)(
+ IBackgroundCopyJob *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)(
+ IBackgroundCopyJob *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)(
+ IBackgroundCopyJob *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)(
+ IBackgroundCopyJob *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorCount)(
+ IBackgroundCopyJob *This,
+ ULONG *Errors);
+
+ HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
+ IBackgroundCopyJob *This,
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
+ IBackgroundCopyJob *This,
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IBackgroundCopyJob *This);
+
END_INTERFACE
- } IBackgroundCopyJobVtbl;
- struct IBackgroundCopyJob {
- CONST_VTBL struct IBackgroundCopyJobVtbl *lpVtbl;
- };
+} IBackgroundCopyJobVtbl;
+
+interface IBackgroundCopyJob {
+ CONST_VTBL IBackgroundCopyJobVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyJob_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyJob_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJob methods ***/
#define IBackgroundCopyJob_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
#define IBackgroundCopyJob_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
#define IBackgroundCopyJob_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
@@ -406,294 +819,509 @@ extern "C"{
#define IBackgroundCopyJob_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
#define IBackgroundCopyJob_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
#define IBackgroundCopyJob_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob_QueryInterface(IBackgroundCopyJob* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob_AddRef(IBackgroundCopyJob* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob_Release(IBackgroundCopyJob* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJob methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob_AddFileSet(IBackgroundCopyJob* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) {
+ return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_AddFile(IBackgroundCopyJob* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) {
+ return This->lpVtbl->AddFile(This,RemoteUrl,LocalName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_EnumFiles(IBackgroundCopyJob* This,IEnumBackgroundCopyFiles **pEnum) {
+ return This->lpVtbl->EnumFiles(This,pEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_Suspend(IBackgroundCopyJob* This) {
+ return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_Resume(IBackgroundCopyJob* This) {
+ return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_Cancel(IBackgroundCopyJob* This) {
+ return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_Complete(IBackgroundCopyJob* This) {
+ return This->lpVtbl->Complete(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetId(IBackgroundCopyJob* This,GUID *pVal) {
+ return This->lpVtbl->GetId(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetType(IBackgroundCopyJob* This,BG_JOB_TYPE *pVal) {
+ return This->lpVtbl->GetType(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetProgress(IBackgroundCopyJob* This,BG_JOB_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetTimes(IBackgroundCopyJob* This,BG_JOB_TIMES *pVal) {
+ return This->lpVtbl->GetTimes(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetState(IBackgroundCopyJob* This,BG_JOB_STATE *pVal) {
+ return This->lpVtbl->GetState(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetError(IBackgroundCopyJob* This,IBackgroundCopyError **ppError) {
+ return This->lpVtbl->GetError(This,ppError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetOwner(IBackgroundCopyJob* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetOwner(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetDisplayName(IBackgroundCopyJob* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDisplayName(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetDisplayName(IBackgroundCopyJob* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDisplayName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetDescription(IBackgroundCopyJob* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDescription(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetDescription(IBackgroundCopyJob* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDescription(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetPriority(IBackgroundCopyJob* This,BG_JOB_PRIORITY Val) {
+ return This->lpVtbl->SetPriority(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetPriority(IBackgroundCopyJob* This,BG_JOB_PRIORITY *pVal) {
+ return This->lpVtbl->GetPriority(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetNotifyFlags(IBackgroundCopyJob* This,ULONG Val) {
+ return This->lpVtbl->SetNotifyFlags(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetNotifyFlags(IBackgroundCopyJob* This,ULONG *pVal) {
+ return This->lpVtbl->GetNotifyFlags(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetNotifyInterface(IBackgroundCopyJob* This,IUnknown *Val) {
+ return This->lpVtbl->SetNotifyInterface(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetNotifyInterface(IBackgroundCopyJob* This,IUnknown **pVal) {
+ return This->lpVtbl->GetNotifyInterface(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetMinimumRetryDelay(IBackgroundCopyJob* This,ULONG Seconds) {
+ return This->lpVtbl->SetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetMinimumRetryDelay(IBackgroundCopyJob* This,ULONG *Seconds) {
+ return This->lpVtbl->GetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetNoProgressTimeout(IBackgroundCopyJob* This,ULONG Seconds) {
+ return This->lpVtbl->SetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetNoProgressTimeout(IBackgroundCopyJob* This,ULONG *Seconds) {
+ return This->lpVtbl->GetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetErrorCount(IBackgroundCopyJob* This,ULONG *Errors) {
+ return This->lpVtbl->GetErrorCount(This,Errors);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_SetProxySettings(IBackgroundCopyJob* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) {
+ return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_GetProxySettings(IBackgroundCopyJob* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) {
+ return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob_TakeOwnership(IBackgroundCopyJob* This) {
+ return This->lpVtbl->TakeOwnership(This);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyJob_AddFileSet_Proxy(IBackgroundCopyJob *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
- void __RPC_STUB IBackgroundCopyJob_AddFileSet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_AddFile_Proxy(IBackgroundCopyJob *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
- void __RPC_STUB IBackgroundCopyJob_AddFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_EnumFiles_Proxy(IBackgroundCopyJob *This,IEnumBackgroundCopyFiles **pEnum);
- void __RPC_STUB IBackgroundCopyJob_EnumFiles_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_Suspend_Proxy(IBackgroundCopyJob *This);
- void __RPC_STUB IBackgroundCopyJob_Suspend_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_Resume_Proxy(IBackgroundCopyJob *This);
- void __RPC_STUB IBackgroundCopyJob_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_Cancel_Proxy(IBackgroundCopyJob *This);
- void __RPC_STUB IBackgroundCopyJob_Cancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_Complete_Proxy(IBackgroundCopyJob *This);
- void __RPC_STUB IBackgroundCopyJob_Complete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetId_Proxy(IBackgroundCopyJob *This,GUID *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetType_Proxy(IBackgroundCopyJob *This,BG_JOB_TYPE *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetProgress_Proxy(IBackgroundCopyJob *This,BG_JOB_PROGRESS *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetTimes_Proxy(IBackgroundCopyJob *This,BG_JOB_TIMES *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetState_Proxy(IBackgroundCopyJob *This,BG_JOB_STATE *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetError_Proxy(IBackgroundCopyJob *This,IBackgroundCopyError **ppError);
- void __RPC_STUB IBackgroundCopyJob_GetError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetOwner_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetDisplayName_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
- void __RPC_STUB IBackgroundCopyJob_SetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetDisplayName_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetDescription_Proxy(IBackgroundCopyJob *This,LPCWSTR Val);
- void __RPC_STUB IBackgroundCopyJob_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetDescription_Proxy(IBackgroundCopyJob *This,LPWSTR *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY Val);
- void __RPC_STUB IBackgroundCopyJob_SetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetPriority_Proxy(IBackgroundCopyJob *This,BG_JOB_PRIORITY *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetPriority_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG Val);
- void __RPC_STUB IBackgroundCopyJob_SetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetNotifyFlags_Proxy(IBackgroundCopyJob *This,ULONG *pVal);
- void __RPC_STUB IBackgroundCopyJob_GetNotifyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown *Val);
- void __RPC_STUB IBackgroundCopyJob_SetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetNotifyInterface_Proxy(IBackgroundCopyJob *This,IUnknown **pVal);
- void __RPC_STUB IBackgroundCopyJob_GetNotifyInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
- void __RPC_STUB IBackgroundCopyJob_SetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetMinimumRetryDelay_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
- void __RPC_STUB IBackgroundCopyJob_GetMinimumRetryDelay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG Seconds);
- void __RPC_STUB IBackgroundCopyJob_SetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetNoProgressTimeout_Proxy(IBackgroundCopyJob *This,ULONG *Seconds);
- void __RPC_STUB IBackgroundCopyJob_GetNoProgressTimeout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetErrorCount_Proxy(IBackgroundCopyJob *This,ULONG *Errors);
- void __RPC_STUB IBackgroundCopyJob_GetErrorCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_SetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
- void __RPC_STUB IBackgroundCopyJob_SetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_GetProxySettings_Proxy(IBackgroundCopyJob *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
- void __RPC_STUB IBackgroundCopyJob_GetProxySettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob_TakeOwnership_Proxy(IBackgroundCopyJob *This);
- void __RPC_STUB IBackgroundCopyJob_TakeOwnership_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyJob_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumBackgroundCopyJobs interface
+ */
#ifndef __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
#define __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__
- EXTERN_C const IID IID_IEnumBackgroundCopyJobs;
+
+DEFINE_GUID(IID_IEnumBackgroundCopyJobs, 0x1af4f612, 0x3b71, 0x466f, 0x8f,0x58, 0x7b,0x6f,0x73,0xac,0x57,0xad);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IEnumBackgroundCopyJobs : public IUnknown {
- public:
- virtual HRESULT WINAPI Next(ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) = 0;
- virtual HRESULT WINAPI Skip(ULONG celt) = 0;
- virtual HRESULT WINAPI Reset(void) = 0;
- virtual HRESULT WINAPI Clone(IEnumBackgroundCopyJobs **ppenum) = 0;
- virtual HRESULT WINAPI GetCount(ULONG *puCount) = 0;
- };
+MIDL_INTERFACE("1af4f612-3b71-466f-8f58-7b6f73ac57ad")
+IEnumBackgroundCopyJobs : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ IBackgroundCopyJob **rgelt,
+ ULONG *pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IEnumBackgroundCopyJobs **ppenum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCount(
+ ULONG *puCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumBackgroundCopyJobs, 0x1af4f612, 0x3b71, 0x466f, 0x8f,0x58, 0x7b,0x6f,0x73,0xac,0x57,0xad)
+#endif
#else
- typedef struct IEnumBackgroundCopyJobsVtbl {
+typedef struct IEnumBackgroundCopyJobsVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IEnumBackgroundCopyJobs *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IEnumBackgroundCopyJobs *This);
- ULONG (WINAPI *Release)(IEnumBackgroundCopyJobs *This);
- HRESULT (WINAPI *Next)(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
- HRESULT (WINAPI *Skip)(IEnumBackgroundCopyJobs *This,ULONG celt);
- HRESULT (WINAPI *Reset)(IEnumBackgroundCopyJobs *This);
- HRESULT (WINAPI *Clone)(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
- HRESULT (WINAPI *GetCount)(IEnumBackgroundCopyJobs *This,ULONG *puCount);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IEnumBackgroundCopyJobs *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IEnumBackgroundCopyJobs *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IEnumBackgroundCopyJobs *This);
+
+ /*** IEnumBackgroundCopyJobs methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IEnumBackgroundCopyJobs *This,
+ ULONG celt,
+ IBackgroundCopyJob **rgelt,
+ ULONG *pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IEnumBackgroundCopyJobs *This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IEnumBackgroundCopyJobs *This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IEnumBackgroundCopyJobs *This,
+ IEnumBackgroundCopyJobs **ppenum);
+
+ HRESULT (STDMETHODCALLTYPE *GetCount)(
+ IEnumBackgroundCopyJobs *This,
+ ULONG *puCount);
+
END_INTERFACE
- } IEnumBackgroundCopyJobsVtbl;
- struct IEnumBackgroundCopyJobs {
- CONST_VTBL struct IEnumBackgroundCopyJobsVtbl *lpVtbl;
- };
+} IEnumBackgroundCopyJobsVtbl;
+
+interface IEnumBackgroundCopyJobs {
+ CONST_VTBL IEnumBackgroundCopyJobsVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IEnumBackgroundCopyJobs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumBackgroundCopyJobs_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumBackgroundCopyJobs_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumBackgroundCopyJobs methods ***/
#define IEnumBackgroundCopyJobs_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
#define IEnumBackgroundCopyJobs_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumBackgroundCopyJobs_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumBackgroundCopyJobs_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
#define IEnumBackgroundCopyJobs_GetCount(This,puCount) (This)->lpVtbl->GetCount(This,puCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_QueryInterface(IEnumBackgroundCopyJobs* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumBackgroundCopyJobs_AddRef(IEnumBackgroundCopyJobs* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumBackgroundCopyJobs_Release(IEnumBackgroundCopyJobs* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IEnumBackgroundCopyJobs methods ***/
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Next(IEnumBackgroundCopyJobs* This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched) {
+ return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Skip(IEnumBackgroundCopyJobs* This,ULONG celt) {
+ return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Reset(IEnumBackgroundCopyJobs* This) {
+ return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_Clone(IEnumBackgroundCopyJobs* This,IEnumBackgroundCopyJobs **ppenum) {
+ return This->lpVtbl->Clone(This,ppenum);
+}
+static FORCEINLINE HRESULT IEnumBackgroundCopyJobs_GetCount(IEnumBackgroundCopyJobs* This,ULONG *puCount) {
+ return This->lpVtbl->GetCount(This,puCount);
+}
#endif
#endif
- HRESULT WINAPI IEnumBackgroundCopyJobs_Next_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt,IBackgroundCopyJob **rgelt,ULONG *pceltFetched);
- void __RPC_STUB IEnumBackgroundCopyJobs_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyJobs_Skip_Proxy(IEnumBackgroundCopyJobs *This,ULONG celt);
- void __RPC_STUB IEnumBackgroundCopyJobs_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyJobs_Reset_Proxy(IEnumBackgroundCopyJobs *This);
- void __RPC_STUB IEnumBackgroundCopyJobs_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyJobs_Clone_Proxy(IEnumBackgroundCopyJobs *This,IEnumBackgroundCopyJobs **ppenum);
- void __RPC_STUB IEnumBackgroundCopyJobs_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IEnumBackgroundCopyJobs_GetCount_Proxy(IEnumBackgroundCopyJobs *This,ULONG *puCount);
- void __RPC_STUB IEnumBackgroundCopyJobs_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
-#define BG_NOTIFY_JOB_TRANSFERRED 0x0001
-#define BG_NOTIFY_JOB_ERROR 0x0002
-#define BG_NOTIFY_DISABLE 0x0004
-#define BG_NOTIFY_JOB_MODIFICATION 0x0008
- extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_bits_0013_v0_0_s_ifspec;
+#endif /* __IEnumBackgroundCopyJobs_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * IBackgroundCopyCallback interface
+ */
#ifndef __IBackgroundCopyCallback_INTERFACE_DEFINED__
#define __IBackgroundCopyCallback_INTERFACE_DEFINED__
- EXTERN_C const IID IID_IBackgroundCopyCallback;
+
+DEFINE_GUID(IID_IBackgroundCopyCallback, 0x97ea99c7, 0x0186, 0x4ad4, 0x8d,0xf9, 0xc5,0xb4,0xe0,0xed,0x6b,0x22);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyCallback : public IUnknown {
- public:
- virtual HRESULT WINAPI JobTransferred(IBackgroundCopyJob *pJob) = 0;
- virtual HRESULT WINAPI JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
- virtual HRESULT WINAPI JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
- };
+MIDL_INTERFACE("97ea99c7-0186-4ad4-8df9-c5b4e0ed6b22")
+IBackgroundCopyCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE JobTransferred(
+ IBackgroundCopyJob *pJob) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE JobError(
+ IBackgroundCopyJob *pJob,
+ IBackgroundCopyError *pError) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE JobModification(
+ IBackgroundCopyJob *pJob,
+ DWORD dwReserved) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyCallback, 0x97ea99c7, 0x0186, 0x4ad4, 0x8d,0xf9, 0xc5,0xb4,0xe0,0xed,0x6b,0x22)
+#endif
#else
- typedef struct IBackgroundCopyCallbackVtbl {
+typedef struct IBackgroundCopyCallbackVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyCallback *This);
- ULONG (WINAPI *Release)(IBackgroundCopyCallback *This);
- HRESULT (WINAPI *JobTransferred)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
- HRESULT (WINAPI *JobError)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
- HRESULT (WINAPI *JobModification)(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyCallback *This);
+
+ /*** IBackgroundCopyCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *JobTransferred)(
+ IBackgroundCopyCallback *This,
+ IBackgroundCopyJob *pJob);
+
+ HRESULT (STDMETHODCALLTYPE *JobError)(
+ IBackgroundCopyCallback *This,
+ IBackgroundCopyJob *pJob,
+ IBackgroundCopyError *pError);
+
+ HRESULT (STDMETHODCALLTYPE *JobModification)(
+ IBackgroundCopyCallback *This,
+ IBackgroundCopyJob *pJob,
+ DWORD dwReserved);
+
END_INTERFACE
- } IBackgroundCopyCallbackVtbl;
- struct IBackgroundCopyCallback {
- CONST_VTBL struct IBackgroundCopyCallbackVtbl *lpVtbl;
- };
+} IBackgroundCopyCallbackVtbl;
+
+interface IBackgroundCopyCallback {
+ CONST_VTBL IBackgroundCopyCallbackVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyCallback methods ***/
#define IBackgroundCopyCallback_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob)
#define IBackgroundCopyCallback_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError)
#define IBackgroundCopyCallback_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyCallback_QueryInterface(IBackgroundCopyCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyCallback_AddRef(IBackgroundCopyCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyCallback_Release(IBackgroundCopyCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyCallback methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyCallback_JobTransferred(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob) {
+ return This->lpVtbl->JobTransferred(This,pJob);
+}
+static FORCEINLINE HRESULT IBackgroundCopyCallback_JobError(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) {
+ return This->lpVtbl->JobError(This,pJob,pError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyCallback_JobModification(IBackgroundCopyCallback* This,IBackgroundCopyJob *pJob,DWORD dwReserved) {
+ return This->lpVtbl->JobModification(This,pJob,dwReserved);
+}
#endif
-#endif
- HRESULT WINAPI IBackgroundCopyCallback_JobTransferred_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
- void __RPC_STUB IBackgroundCopyCallback_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyCallback_JobError_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
- void __RPC_STUB IBackgroundCopyCallback_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyCallback_JobModification_Proxy(IBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
- void __RPC_STUB IBackgroundCopyCallback_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
-#ifndef __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
-#define __AsyncIBackgroundCopyCallback_INTERFACE_DEFINED__
- EXTERN_C const IID IID_AsyncIBackgroundCopyCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
- struct AsyncIBackgroundCopyCallback : public IUnknown {
- public:
- virtual HRESULT WINAPI Begin_JobTransferred(IBackgroundCopyJob *pJob) = 0;
- virtual HRESULT WINAPI Finish_JobTransferred(void) = 0;
- virtual HRESULT WINAPI Begin_JobError(IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) = 0;
- virtual HRESULT WINAPI Finish_JobError(void) = 0;
- virtual HRESULT WINAPI Begin_JobModification(IBackgroundCopyJob *pJob,DWORD dwReserved) = 0;
- virtual HRESULT WINAPI Finish_JobModification(void) = 0;
- };
-#else
- typedef struct AsyncIBackgroundCopyCallbackVtbl {
- BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(AsyncIBackgroundCopyCallback *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(AsyncIBackgroundCopyCallback *This);
- ULONG (WINAPI *Release)(AsyncIBackgroundCopyCallback *This);
- HRESULT (WINAPI *Begin_JobTransferred)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
- HRESULT (WINAPI *Finish_JobTransferred)(AsyncIBackgroundCopyCallback *This);
- HRESULT (WINAPI *Begin_JobError)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
- HRESULT (WINAPI *Finish_JobError)(AsyncIBackgroundCopyCallback *This);
- HRESULT (WINAPI *Begin_JobModification)(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
- HRESULT (WINAPI *Finish_JobModification)(AsyncIBackgroundCopyCallback *This);
- END_INTERFACE
- } AsyncIBackgroundCopyCallbackVtbl;
- struct AsyncIBackgroundCopyCallback {
- CONST_VTBL struct AsyncIBackgroundCopyCallbackVtbl *lpVtbl;
- };
-#ifdef COBJMACROS
-#define AsyncIBackgroundCopyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define AsyncIBackgroundCopyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define AsyncIBackgroundCopyCallback_Release(This) (This)->lpVtbl->Release(This)
-#define AsyncIBackgroundCopyCallback_Begin_JobTransferred(This,pJob) (This)->lpVtbl->Begin_JobTransferred(This,pJob)
-#define AsyncIBackgroundCopyCallback_Finish_JobTransferred(This) (This)->lpVtbl->Finish_JobTransferred(This)
-#define AsyncIBackgroundCopyCallback_Begin_JobError(This,pJob,pError) (This)->lpVtbl->Begin_JobError(This,pJob,pError)
-#define AsyncIBackgroundCopyCallback_Finish_JobError(This) (This)->lpVtbl->Finish_JobError(This)
-#define AsyncIBackgroundCopyCallback_Begin_JobModification(This,pJob,dwReserved) (This)->lpVtbl->Begin_JobModification(This,pJob,dwReserved)
-#define AsyncIBackgroundCopyCallback_Finish_JobModification(This) (This)->lpVtbl->Finish_JobModification(This)
-#endif
-#endif
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobTransferred_Proxy(AsyncIBackgroundCopyCallback *This);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobTransferred_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobError_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobError_Proxy(AsyncIBackgroundCopyCallback *This);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobError_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Begin_JobModification_Proxy(AsyncIBackgroundCopyCallback *This,IBackgroundCopyJob *pJob,DWORD dwReserved);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Begin_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI AsyncIBackgroundCopyCallback_Finish_JobModification_Proxy(AsyncIBackgroundCopyCallback *This);
- void __RPC_STUB AsyncIBackgroundCopyCallback_Finish_JobModification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
+
+#endif /* __IBackgroundCopyCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IBackgroundCopyManager interface
+ */
#ifndef __IBackgroundCopyManager_INTERFACE_DEFINED__
#define __IBackgroundCopyManager_INTERFACE_DEFINED__
#define BG_JOB_ENUM_ALL_USERS 0x0001
-
- EXTERN_C const IID IID_IBackgroundCopyManager;
+DEFINE_GUID(IID_IBackgroundCopyManager, 0x5ce34c0d, 0x0dc9, 0x4c1f, 0x89,0x7c, 0xda,0xa1,0xb7,0x8c,0xee,0x7c);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyManager : public IUnknown {
- public:
- virtual HRESULT WINAPI CreateJob(LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) = 0;
- virtual HRESULT WINAPI GetJob(REFGUID jobID,IBackgroundCopyJob **ppJob) = 0;
- virtual HRESULT WINAPI EnumJobs(DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) = 0;
- virtual HRESULT WINAPI GetErrorDescription(HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) = 0;
- };
+MIDL_INTERFACE("5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c")
+IBackgroundCopyManager : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateJob(
+ LPCWSTR DisplayName,
+ BG_JOB_TYPE Type,
+ GUID *pJobId,
+ IBackgroundCopyJob **ppJob) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetJob(
+ REFGUID jobID,
+ IBackgroundCopyJob **ppJob) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumJobs(
+ DWORD dwFlags,
+ IEnumBackgroundCopyJobs **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetErrorDescription(
+ HRESULT hResult,
+ DWORD LanguageId,
+ LPWSTR *pErrorDescription) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyManager, 0x5ce34c0d, 0x0dc9, 0x4c1f, 0x89,0x7c, 0xda,0xa1,0xb7,0x8c,0xee,0x7c)
+#endif
#else
- typedef struct IBackgroundCopyManagerVtbl {
+typedef struct IBackgroundCopyManagerVtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyManager *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyManager *This);
- ULONG (WINAPI *Release)(IBackgroundCopyManager *This);
- HRESULT (WINAPI *CreateJob)(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
- HRESULT (WINAPI *GetJob)(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
- HRESULT (WINAPI *EnumJobs)(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
- HRESULT (WINAPI *GetErrorDescription)(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyManager *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyManager *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyManager *This);
+
+ /*** IBackgroundCopyManager methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateJob)(
+ IBackgroundCopyManager *This,
+ LPCWSTR DisplayName,
+ BG_JOB_TYPE Type,
+ GUID *pJobId,
+ IBackgroundCopyJob **ppJob);
+
+ HRESULT (STDMETHODCALLTYPE *GetJob)(
+ IBackgroundCopyManager *This,
+ REFGUID jobID,
+ IBackgroundCopyJob **ppJob);
+
+ HRESULT (STDMETHODCALLTYPE *EnumJobs)(
+ IBackgroundCopyManager *This,
+ DWORD dwFlags,
+ IEnumBackgroundCopyJobs **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorDescription)(
+ IBackgroundCopyManager *This,
+ HRESULT hResult,
+ DWORD LanguageId,
+ LPWSTR *pErrorDescription);
+
END_INTERFACE
- } IBackgroundCopyManagerVtbl;
- struct IBackgroundCopyManager {
- CONST_VTBL struct IBackgroundCopyManagerVtbl *lpVtbl;
- };
+} IBackgroundCopyManagerVtbl;
+
+interface IBackgroundCopyManager {
+ CONST_VTBL IBackgroundCopyManagerVtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyManager methods ***/
#define IBackgroundCopyManager_CreateJob(This,DisplayName,Type,pJobId,ppJob) (This)->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob)
#define IBackgroundCopyManager_GetJob(This,jobID,ppJob) (This)->lpVtbl->GetJob(This,jobID,ppJob)
#define IBackgroundCopyManager_EnumJobs(This,dwFlags,ppEnum) (This)->lpVtbl->EnumJobs(This,dwFlags,ppEnum)
#define IBackgroundCopyManager_GetErrorDescription(This,hResult,LanguageId,pErrorDescription) (This)->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyManager_QueryInterface(IBackgroundCopyManager* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyManager_AddRef(IBackgroundCopyManager* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyManager_Release(IBackgroundCopyManager* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyManager methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyManager_CreateJob(IBackgroundCopyManager* This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob) {
+ return This->lpVtbl->CreateJob(This,DisplayName,Type,pJobId,ppJob);
+}
+static FORCEINLINE HRESULT IBackgroundCopyManager_GetJob(IBackgroundCopyManager* This,REFGUID jobID,IBackgroundCopyJob **ppJob) {
+ return This->lpVtbl->GetJob(This,jobID,ppJob);
+}
+static FORCEINLINE HRESULT IBackgroundCopyManager_EnumJobs(IBackgroundCopyManager* This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum) {
+ return This->lpVtbl->EnumJobs(This,dwFlags,ppEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyManager_GetErrorDescription(IBackgroundCopyManager* This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription) {
+ return This->lpVtbl->GetErrorDescription(This,hResult,LanguageId,pErrorDescription);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyManager_CreateJob_Proxy(IBackgroundCopyManager *This,LPCWSTR DisplayName,BG_JOB_TYPE Type,GUID *pJobId,IBackgroundCopyJob **ppJob);
- void __RPC_STUB IBackgroundCopyManager_CreateJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyManager_GetJob_Proxy(IBackgroundCopyManager *This,REFGUID jobID,IBackgroundCopyJob **ppJob);
- void __RPC_STUB IBackgroundCopyManager_GetJob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyManager_EnumJobs_Proxy(IBackgroundCopyManager *This,DWORD dwFlags,IEnumBackgroundCopyJobs **ppEnum);
- void __RPC_STUB IBackgroundCopyManager_EnumJobs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyManager_GetErrorDescription_Proxy(IBackgroundCopyManager *This,HRESULT hResult,DWORD LanguageId,LPWSTR *pErrorDescription);
- void __RPC_STUB IBackgroundCopyManager_GetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyManager_INTERFACE_DEFINED__ */
+
#ifndef __BackgroundCopyManager_LIBRARY_DEFINED__
#define __BackgroundCopyManager_LIBRARY_DEFINED__
- EXTERN_C const IID LIBID_BackgroundCopyManager;
- EXTERN_C const CLSID CLSID_BackgroundCopyManager;
+
+DEFINE_GUID(LIBID_BackgroundCopyManager, 0x1deeb74f, 0x7915, 0x4560, 0xb5,0x58, 0x91,0x8c,0x83,0xf1,0x76,0xa6);
+
+/*****************************************************************************
+ * BackgroundCopyManager coclass
+ */
+
+DEFINE_GUID(CLSID_BackgroundCopyManager, 0x4991d34b, 0x80a1, 0x4291, 0x83,0xb6, 0x33,0x28,0x36,0x6b,0x90,0x97);
+
#ifdef __cplusplus
- class BackgroundCopyManager;
+class DECLSPEC_UUID("4991d34b-80a1-4291-83b6-3328366b9097") BackgroundCopyManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(BackgroundCopyManager, 0x4991d34b, 0x80a1, 0x4291, 0x83,0xb6, 0x33,0x28,0x36,0x6b,0x90,0x97)
+#endif
#endif
+
+#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
+#define __IBackgroundCopyCallback_FWD_DEFINED__
+typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+#ifdef __cplusplus
+interface IBackgroundCopyCallback;
+#endif /* __cplusplus */
#endif
+#endif /* __BackgroundCopyManager_LIBRARY_DEFINED__ */
#include "bits1_5.h"
+/* Begin additional prototypes for all interfaces */
+
- extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_bits_0015_v0_0_s_ifspec;
+/* End additional prototypes */
#ifdef __cplusplus
}
#endif
-#endif
+
+#endif /* __bits_h__ */
lib/libc/include/any-windows-any/bits1_5.h
@@ -1,30 +1,29 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 7.0 from include/bits1_5.idl - Do not edit ***/
+
+#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
+#include <rpc.h>
+#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
#endif
#ifndef __bits1_5_h__
#define __bits1_5_h__
+/* Forward declarations */
+
#ifndef __IBackgroundCopyJob2_FWD_DEFINED__
#define __IBackgroundCopyJob2_FWD_DEFINED__
-typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2;
+typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2;
+#ifdef __cplusplus
+interface IBackgroundCopyJob2;
+#endif /* __cplusplus */
#endif
#ifndef __BackgroundCopyManager1_5_FWD_DEFINED__
@@ -33,130 +32,286 @@ typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2;
typedef class BackgroundCopyManager1_5 BackgroundCopyManager1_5;
#else
typedef struct BackgroundCopyManager1_5 BackgroundCopyManager1_5;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __BackgroundCopyManager1_5_FWD_DEFINED__ */
-#ifndef __IBackgroundCopyJob2_FWD_DEFINED__
-#define __IBackgroundCopyJob2_FWD_DEFINED__
-typedef struct IBackgroundCopyJob2 IBackgroundCopyJob2;
-#endif
+/* Headers for imported files */
-#include "bits.h"
+#include <bits.h>
#ifdef __cplusplus
-extern "C"{
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
- void *__RPC_API MIDL_user_allocate(size_t);
- void __RPC_API MIDL_user_free(void *);
+extern "C" {
#endif
+/*****************************************************************************
+ * IBackgroundCopyJob2 interface
+ */
#ifndef __IBackgroundCopyJob2_INTERFACE_DEFINED__
#define __IBackgroundCopyJob2_INTERFACE_DEFINED__
- typedef struct _BG_JOB_REPLY_PROGRESS {
+typedef struct _BG_JOB_REPLY_PROGRESS {
UINT64 BytesTotal;
UINT64 BytesTransferred;
- } BG_JOB_REPLY_PROGRESS;
-
- typedef enum __MIDL_IBackgroundCopyJob2_0001 {
- BG_AUTH_TARGET_SERVER = 1,BG_AUTH_TARGET_PROXY = BG_AUTH_TARGET_SERVER + 1
- } BG_AUTH_TARGET;
-
- typedef enum __MIDL_IBackgroundCopyJob2_0002 {
- BG_AUTH_SCHEME_BASIC = 1,BG_AUTH_SCHEME_DIGEST,BG_AUTH_SCHEME_NTLM,
- BG_AUTH_SCHEME_NEGOTIATE,BG_AUTH_SCHEME_PASSPORT
- } BG_AUTH_SCHEME;
-
- typedef struct __MIDL_IBackgroundCopyJob2_0003 {
+} BG_JOB_REPLY_PROGRESS;
+typedef enum __WIDL_bits1_5_generated_name_00000011 {
+ BG_AUTH_TARGET_SERVER = 1,
+ BG_AUTH_TARGET_PROXY = 2
+} BG_AUTH_TARGET;
+typedef enum __WIDL_bits1_5_generated_name_00000012 {
+ BG_AUTH_SCHEME_BASIC = 1,
+ BG_AUTH_SCHEME_DIGEST = 2,
+ BG_AUTH_SCHEME_NTLM = 3,
+ BG_AUTH_SCHEME_NEGOTIATE = 4,
+ BG_AUTH_SCHEME_PASSPORT = 5
+} BG_AUTH_SCHEME;
+typedef struct __WIDL_bits1_5_generated_name_00000013 {
LPWSTR UserName;
LPWSTR Password;
- } BG_BASIC_CREDENTIALS;
-
- typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS;
-
- typedef union __MIDL_IBackgroundCopyJob2_0004 {
+} BG_BASIC_CREDENTIALS;
+typedef BG_BASIC_CREDENTIALS *PBG_BASIC_CREDENTIALS;
+typedef union __WIDL_bits1_5_generated_name_00000014 {
BG_BASIC_CREDENTIALS Basic;
- } BG_AUTH_CREDENTIALS_UNION;
-
- typedef struct __MIDL_IBackgroundCopyJob2_0005 {
+} BG_AUTH_CREDENTIALS_UNION;
+typedef struct __WIDL_bits1_5_generated_name_00000015 {
BG_AUTH_TARGET Target;
BG_AUTH_SCHEME Scheme;
BG_AUTH_CREDENTIALS_UNION Credentials;
- } BG_AUTH_CREDENTIALS;
+} BG_AUTH_CREDENTIALS;
+typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS;
+DEFINE_GUID(IID_IBackgroundCopyJob2, 0x54b50739, 0x686f, 0x45eb, 0x9d,0xff, 0xd6,0xa9,0xa0,0xfa,0xa9,0xaf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("54b50739-686f-45eb-9dff-d6a9a0faa9af")
+IBackgroundCopyJob2 : public IBackgroundCopyJob
+{
+ virtual HRESULT STDMETHODCALLTYPE SetNotifyCmdLine(
+ LPCWSTR prog,
+ LPCWSTR params) = 0;
- typedef BG_AUTH_CREDENTIALS *PBG_AUTH_CREDENTIALS;
+ virtual HRESULT STDMETHODCALLTYPE GetNotifyCmdLine(
+ LPWSTR *prog,
+ LPWSTR *params) = 0;
- EXTERN_C const IID IID_IBackgroundCopyJob2;
-#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyJob2 : public IBackgroundCopyJob {
- public:
- virtual HRESULT WINAPI SetNotifyCmdLine(LPCWSTR Program,LPCWSTR Parameters) = 0;
- virtual HRESULT WINAPI GetNotifyCmdLine(LPWSTR *pProgram,LPWSTR *pParameters) = 0;
- virtual HRESULT WINAPI GetReplyProgress(BG_JOB_REPLY_PROGRESS *pProgress) = 0;
- virtual HRESULT WINAPI GetReplyData(byte **ppBuffer,UINT64 *pLength) = 0;
- virtual HRESULT WINAPI SetReplyFileName(LPCWSTR ReplyFileName) = 0;
- virtual HRESULT WINAPI GetReplyFileName(LPWSTR *pReplyFileName) = 0;
- virtual HRESULT WINAPI SetCredentials(BG_AUTH_CREDENTIALS *credentials) = 0;
- virtual HRESULT WINAPI RemoveCredentials(BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme) = 0;
- };
+ virtual HRESULT STDMETHODCALLTYPE GetReplyProgress(
+ BG_JOB_REPLY_PROGRESS *progress) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetReplyData(
+ byte **pBuffer,
+ UINT64 *pLength) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetReplyFileName(
+ LPCWSTR filename) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetReplyFileName(
+ LPWSTR *pFilename) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCredentials(
+ BG_AUTH_CREDENTIALS *cred) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveCredentials(
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJob2, 0x54b50739, 0x686f, 0x45eb, 0x9d,0xff, 0xd6,0xa9,0xa0,0xfa,0xa9,0xaf)
+#endif
#else
- typedef struct IBackgroundCopyJob2Vtbl {
+typedef struct IBackgroundCopyJob2Vtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob2 *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyJob2 *This);
- ULONG (WINAPI *Release)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob2 *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
- HRESULT (WINAPI *AddFile)(IBackgroundCopyJob2 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
- HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob2 *This,IEnumBackgroundCopyFiles **pEnum);
- HRESULT (WINAPI *Suspend)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *Resume)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *Cancel)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *Complete)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *GetId)(IBackgroundCopyJob2 *This,GUID *pVal);
- HRESULT (WINAPI *GetType)(IBackgroundCopyJob2 *This,BG_JOB_TYPE *pVal);
- HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob2 *This,BG_JOB_PROGRESS *pVal);
- HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob2 *This,BG_JOB_TIMES *pVal);
- HRESULT (WINAPI *GetState)(IBackgroundCopyJob2 *This,BG_JOB_STATE *pVal);
- HRESULT (WINAPI *GetError)(IBackgroundCopyJob2 *This,IBackgroundCopyError **ppError);
- HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob2 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob2 *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob2 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob2 *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob2 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob2 *This,BG_JOB_PRIORITY Val);
- HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob2 *This,BG_JOB_PRIORITY *pVal);
- HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob2 *This,ULONG Val);
- HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob2 *This,ULONG *pVal);
- HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob2 *This,IUnknown *Val);
- HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob2 *This,IUnknown **pVal);
- HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob2 *This,ULONG Seconds);
- HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob2 *This,ULONG *Seconds);
- HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob2 *This,ULONG Seconds);
- HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob2 *This,ULONG *Seconds);
- HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob2 *This,ULONG *Errors);
- HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob2 *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
- HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob2 *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
- HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob2 *This);
- HRESULT (WINAPI *SetNotifyCmdLine)(IBackgroundCopyJob2 *This,LPCWSTR Program,LPCWSTR Parameters);
- HRESULT (WINAPI *GetNotifyCmdLine)(IBackgroundCopyJob2 *This,LPWSTR *pProgram,LPWSTR *pParameters);
- HRESULT (WINAPI *GetReplyProgress)(IBackgroundCopyJob2 *This,BG_JOB_REPLY_PROGRESS *pProgress);
- HRESULT (WINAPI *GetReplyData)(IBackgroundCopyJob2 *This,byte **ppBuffer,UINT64 *pLength);
- HRESULT (WINAPI *SetReplyFileName)(IBackgroundCopyJob2 *This,LPCWSTR ReplyFileName);
- HRESULT (WINAPI *GetReplyFileName)(IBackgroundCopyJob2 *This,LPWSTR *pReplyFileName);
- HRESULT (WINAPI *SetCredentials)(IBackgroundCopyJob2 *This,BG_AUTH_CREDENTIALS *credentials);
- HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob2 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJob2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJob2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJob2 *This);
+
+ /*** IBackgroundCopyJob methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddFileSet)(
+ IBackgroundCopyJob2 *This,
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet);
+
+ HRESULT (STDMETHODCALLTYPE *AddFile)(
+ IBackgroundCopyJob2 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumFiles)(
+ IBackgroundCopyJob2 *This,
+ IEnumBackgroundCopyFiles **pEnum);
+
+ HRESULT (STDMETHODCALLTYPE *Suspend)(
+ IBackgroundCopyJob2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Resume)(
+ IBackgroundCopyJob2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Cancel)(
+ IBackgroundCopyJob2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Complete)(
+ IBackgroundCopyJob2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetId)(
+ IBackgroundCopyJob2 *This,
+ GUID *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_TYPE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_PROGRESS *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimes)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_TIMES *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetState)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_STATE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyJob2 *This,
+ IBackgroundCopyError **ppError);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwner)(
+ IBackgroundCopyJob2 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+ IBackgroundCopyJob2 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+ IBackgroundCopyJob2 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDescription)(
+ IBackgroundCopyJob2 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDescription)(
+ IBackgroundCopyJob2 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetPriority)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_PRIORITY Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetPriority)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_PRIORITY *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)(
+ IBackgroundCopyJob2 *This,
+ ULONG Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)(
+ IBackgroundCopyJob2 *This,
+ ULONG *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)(
+ IBackgroundCopyJob2 *This,
+ IUnknown *Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)(
+ IBackgroundCopyJob2 *This,
+ IUnknown **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)(
+ IBackgroundCopyJob2 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)(
+ IBackgroundCopyJob2 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)(
+ IBackgroundCopyJob2 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)(
+ IBackgroundCopyJob2 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorCount)(
+ IBackgroundCopyJob2 *This,
+ ULONG *Errors);
+
+ HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IBackgroundCopyJob2 *This);
+
+ /*** IBackgroundCopyJob2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)(
+ IBackgroundCopyJob2 *This,
+ LPCWSTR prog,
+ LPCWSTR params);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)(
+ IBackgroundCopyJob2 *This,
+ LPWSTR *prog,
+ LPWSTR *params);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyProgress)(
+ IBackgroundCopyJob2 *This,
+ BG_JOB_REPLY_PROGRESS *progress);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyData)(
+ IBackgroundCopyJob2 *This,
+ byte **pBuffer,
+ UINT64 *pLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetReplyFileName)(
+ IBackgroundCopyJob2 *This,
+ LPCWSTR filename);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyFileName)(
+ IBackgroundCopyJob2 *This,
+ LPWSTR *pFilename);
+
+ HRESULT (STDMETHODCALLTYPE *SetCredentials)(
+ IBackgroundCopyJob2 *This,
+ BG_AUTH_CREDENTIALS *cred);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveCredentials)(
+ IBackgroundCopyJob2 *This,
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme);
+
END_INTERFACE
- } IBackgroundCopyJob2Vtbl;
- struct IBackgroundCopyJob2 {
- CONST_VTBL struct IBackgroundCopyJob2Vtbl *lpVtbl;
- };
+} IBackgroundCopyJob2Vtbl;
+
+interface IBackgroundCopyJob2 {
+ CONST_VTBL IBackgroundCopyJob2Vtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IBackgroundCopyJob2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IBackgroundCopyJob2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IBackgroundCopyJob2_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJob methods ***/
#define IBackgroundCopyJob2_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
#define IBackgroundCopyJob2_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
#define IBackgroundCopyJob2_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
@@ -189,49 +344,199 @@ extern "C"{
#define IBackgroundCopyJob2_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
#define IBackgroundCopyJob2_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
#define IBackgroundCopyJob2_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
-#define IBackgroundCopyJob2_SetNotifyCmdLine(This,Program,Parameters) (This)->lpVtbl->SetNotifyCmdLine(This,Program,Parameters)
-#define IBackgroundCopyJob2_GetNotifyCmdLine(This,pProgram,pParameters) (This)->lpVtbl->GetNotifyCmdLine(This,pProgram,pParameters)
-#define IBackgroundCopyJob2_GetReplyProgress(This,pProgress) (This)->lpVtbl->GetReplyProgress(This,pProgress)
-#define IBackgroundCopyJob2_GetReplyData(This,ppBuffer,pLength) (This)->lpVtbl->GetReplyData(This,ppBuffer,pLength)
-#define IBackgroundCopyJob2_SetReplyFileName(This,ReplyFileName) (This)->lpVtbl->SetReplyFileName(This,ReplyFileName)
-#define IBackgroundCopyJob2_GetReplyFileName(This,pReplyFileName) (This)->lpVtbl->GetReplyFileName(This,pReplyFileName)
-#define IBackgroundCopyJob2_SetCredentials(This,credentials) (This)->lpVtbl->SetCredentials(This,credentials)
-#define IBackgroundCopyJob2_RemoveCredentials(This,Target,Scheme) (This)->lpVtbl->RemoveCredentials(This,Target,Scheme)
+/*** IBackgroundCopyJob2 methods ***/
+#define IBackgroundCopyJob2_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob2_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob2_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress)
+#define IBackgroundCopyJob2_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength)
+#define IBackgroundCopyJob2_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename)
+#define IBackgroundCopyJob2_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename)
+#define IBackgroundCopyJob2_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred)
+#define IBackgroundCopyJob2_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob2_QueryInterface(IBackgroundCopyJob2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob2_AddRef(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob2_Release(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJob methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob2_AddFileSet(IBackgroundCopyJob2* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) {
+ return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_AddFile(IBackgroundCopyJob2* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) {
+ return This->lpVtbl->AddFile(This,RemoteUrl,LocalName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_EnumFiles(IBackgroundCopyJob2* This,IEnumBackgroundCopyFiles **pEnum) {
+ return This->lpVtbl->EnumFiles(This,pEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_Suspend(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_Resume(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_Cancel(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_Complete(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->Complete(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetId(IBackgroundCopyJob2* This,GUID *pVal) {
+ return This->lpVtbl->GetId(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetType(IBackgroundCopyJob2* This,BG_JOB_TYPE *pVal) {
+ return This->lpVtbl->GetType(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetProgress(IBackgroundCopyJob2* This,BG_JOB_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetTimes(IBackgroundCopyJob2* This,BG_JOB_TIMES *pVal) {
+ return This->lpVtbl->GetTimes(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetState(IBackgroundCopyJob2* This,BG_JOB_STATE *pVal) {
+ return This->lpVtbl->GetState(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetError(IBackgroundCopyJob2* This,IBackgroundCopyError **ppError) {
+ return This->lpVtbl->GetError(This,ppError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetOwner(IBackgroundCopyJob2* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetOwner(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetDisplayName(IBackgroundCopyJob2* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDisplayName(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetDisplayName(IBackgroundCopyJob2* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDisplayName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetDescription(IBackgroundCopyJob2* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDescription(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetDescription(IBackgroundCopyJob2* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDescription(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetPriority(IBackgroundCopyJob2* This,BG_JOB_PRIORITY Val) {
+ return This->lpVtbl->SetPriority(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetPriority(IBackgroundCopyJob2* This,BG_JOB_PRIORITY *pVal) {
+ return This->lpVtbl->GetPriority(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyFlags(IBackgroundCopyJob2* This,ULONG Val) {
+ return This->lpVtbl->SetNotifyFlags(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyFlags(IBackgroundCopyJob2* This,ULONG *pVal) {
+ return This->lpVtbl->GetNotifyFlags(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyInterface(IBackgroundCopyJob2* This,IUnknown *Val) {
+ return This->lpVtbl->SetNotifyInterface(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyInterface(IBackgroundCopyJob2* This,IUnknown **pVal) {
+ return This->lpVtbl->GetNotifyInterface(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetMinimumRetryDelay(IBackgroundCopyJob2* This,ULONG Seconds) {
+ return This->lpVtbl->SetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetMinimumRetryDelay(IBackgroundCopyJob2* This,ULONG *Seconds) {
+ return This->lpVtbl->GetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNoProgressTimeout(IBackgroundCopyJob2* This,ULONG Seconds) {
+ return This->lpVtbl->SetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNoProgressTimeout(IBackgroundCopyJob2* This,ULONG *Seconds) {
+ return This->lpVtbl->GetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetErrorCount(IBackgroundCopyJob2* This,ULONG *Errors) {
+ return This->lpVtbl->GetErrorCount(This,Errors);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetProxySettings(IBackgroundCopyJob2* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) {
+ return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetProxySettings(IBackgroundCopyJob2* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) {
+ return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_TakeOwnership(IBackgroundCopyJob2* This) {
+ return This->lpVtbl->TakeOwnership(This);
+}
+/*** IBackgroundCopyJob2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetNotifyCmdLine(IBackgroundCopyJob2* This,LPCWSTR prog,LPCWSTR params) {
+ return This->lpVtbl->SetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetNotifyCmdLine(IBackgroundCopyJob2* This,LPWSTR *prog,LPWSTR *params) {
+ return This->lpVtbl->GetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyProgress(IBackgroundCopyJob2* This,BG_JOB_REPLY_PROGRESS *progress) {
+ return This->lpVtbl->GetReplyProgress(This,progress);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyData(IBackgroundCopyJob2* This,byte **pBuffer,UINT64 *pLength) {
+ return This->lpVtbl->GetReplyData(This,pBuffer,pLength);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetReplyFileName(IBackgroundCopyJob2* This,LPCWSTR filename) {
+ return This->lpVtbl->SetReplyFileName(This,filename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_GetReplyFileName(IBackgroundCopyJob2* This,LPWSTR *pFilename) {
+ return This->lpVtbl->GetReplyFileName(This,pFilename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_SetCredentials(IBackgroundCopyJob2* This,BG_AUTH_CREDENTIALS *cred) {
+ return This->lpVtbl->SetCredentials(This,cred);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob2_RemoveCredentials(IBackgroundCopyJob2* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) {
+ return This->lpVtbl->RemoveCredentials(This,target,scheme);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyJob2_SetNotifyCmdLine_Proxy(IBackgroundCopyJob2 *This,LPCWSTR Program,LPCWSTR Parameters);
- void __RPC_STUB IBackgroundCopyJob2_SetNotifyCmdLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_GetNotifyCmdLine_Proxy(IBackgroundCopyJob2 *This,LPWSTR *pProgram,LPWSTR *pParameters);
- void __RPC_STUB IBackgroundCopyJob2_GetNotifyCmdLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_GetReplyProgress_Proxy(IBackgroundCopyJob2 *This,BG_JOB_REPLY_PROGRESS *pProgress);
- void __RPC_STUB IBackgroundCopyJob2_GetReplyProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_GetReplyData_Proxy(IBackgroundCopyJob2 *This,byte **ppBuffer,UINT64 *pLength);
- void __RPC_STUB IBackgroundCopyJob2_GetReplyData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_SetReplyFileName_Proxy(IBackgroundCopyJob2 *This,LPCWSTR ReplyFileName);
- void __RPC_STUB IBackgroundCopyJob2_SetReplyFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_GetReplyFileName_Proxy(IBackgroundCopyJob2 *This,LPWSTR *pReplyFileName);
- void __RPC_STUB IBackgroundCopyJob2_GetReplyFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_SetCredentials_Proxy(IBackgroundCopyJob2 *This,BG_AUTH_CREDENTIALS *credentials);
- void __RPC_STUB IBackgroundCopyJob2_SetCredentials_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob2_RemoveCredentials_Proxy(IBackgroundCopyJob2 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme);
- void __RPC_STUB IBackgroundCopyJob2_RemoveCredentials_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyJob2_INTERFACE_DEFINED__ */
+
#ifndef __BackgroundCopyManager1_5_LIBRARY_DEFINED__
#define __BackgroundCopyManager1_5_LIBRARY_DEFINED__
- EXTERN_C const IID LIBID_BackgroundCopyManager1_5;
- EXTERN_C const CLSID CLSID_BackgroundCopyManager1_5;
+
+DEFINE_GUID(LIBID_BackgroundCopyManager1_5, 0xea9319ea, 0xc628, 0x480f, 0x83,0x31, 0x76,0x8f,0xac,0x39,0x7e,0x4e);
+
+/*****************************************************************************
+ * BackgroundCopyManager1_5 coclass
+ */
+
+DEFINE_GUID(CLSID_BackgroundCopyManager1_5, 0xf087771f, 0xd74f, 0x4c1a, 0xbb,0x8a, 0xe1,0x6a,0xca,0x91,0x24,0xea);
+
#ifdef __cplusplus
- class BackgroundCopyManager1_5;
+class DECLSPEC_UUID("f087771f-d74f-4c1a-bb8a-e16aca9124ea") BackgroundCopyManager1_5;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(BackgroundCopyManager1_5, 0xf087771f, 0xd74f, 0x4c1a, 0xbb,0x8a, 0xe1,0x6a,0xca,0x91,0x24,0xea)
+#endif
#endif
+
+#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
+#define __IBackgroundCopyCallback_FWD_DEFINED__
+typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+#ifdef __cplusplus
+interface IBackgroundCopyCallback;
+#endif /* __cplusplus */
#endif
+#ifndef __IBackgroundCopyJob2_FWD_DEFINED__
+#define __IBackgroundCopyJob2_FWD_DEFINED__
+typedef interface IBackgroundCopyJob2 IBackgroundCopyJob2;
+#ifdef __cplusplus
+interface IBackgroundCopyJob2;
+#endif /* __cplusplus */
+#endif
+
+#endif /* __BackgroundCopyManager1_5_LIBRARY_DEFINED__ */
#include "bits2_0.h"
+/* Begin additional prototypes for all interfaces */
+
- extern RPC_IF_HANDLE __MIDL_itf_bits1_5_0124_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_bits1_5_0124_v0_0_s_ifspec;
+/* End additional prototypes */
#ifdef __cplusplus
}
#endif
-#endif
+
+#endif /* __bits1_5_h__ */
lib/libc/include/any-windows-any/bits2_0.h
@@ -1,34 +1,37 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
+/*** Autogenerated by WIDL 7.0 from include/bits2_0.idl - Do not edit ***/
+
+#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
+#include <rpc.h>
+#include <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
+#include <windows.h>
+#include <ole2.h>
#endif
#ifndef __bits2_0_h__
#define __bits2_0_h__
+
+/* Forward declarations */
+
#ifndef __IBackgroundCopyJob3_FWD_DEFINED__
#define __IBackgroundCopyJob3_FWD_DEFINED__
-typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
+typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3;
+#ifdef __cplusplus
+interface IBackgroundCopyJob3;
+#endif /* __cplusplus */
#endif
#ifndef __IBackgroundCopyFile2_FWD_DEFINED__
#define __IBackgroundCopyFile2_FWD_DEFINED__
-typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2;
+typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2;
+#ifdef __cplusplus
+interface IBackgroundCopyFile2;
+#endif /* __cplusplus */
#endif
#ifndef __BackgroundCopyManager2_0_FWD_DEFINED__
@@ -37,220 +40,648 @@ typedef struct IBackgroundCopyFile2 IBackgroundCopyFile2;
typedef class BackgroundCopyManager2_0 BackgroundCopyManager2_0;
#else
typedef struct BackgroundCopyManager2_0 BackgroundCopyManager2_0;
-#endif
-#endif
+#endif /* defined __cplusplus */
+#endif /* defined __BackgroundCopyManager2_0_FWD_DEFINED__ */
-#ifndef __IBackgroundCopyJob3_FWD_DEFINED__
-#define __IBackgroundCopyJob3_FWD_DEFINED__
-typedef struct IBackgroundCopyJob3 IBackgroundCopyJob3;
-#endif
+/* Headers for imported files */
-#include "bits.h"
-#include "bits1_5.h"
+#include <bits.h>
+#include <bits1_5.h>
#ifdef __cplusplus
-extern "C"{
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
- void *__RPC_API MIDL_user_allocate(size_t);
- void __RPC_API MIDL_user_free(void *);
+extern "C" {
#endif
+#define BG_COPY_FILE_OWNER 1
+#define BG_COPY_FILE_GROUP 2
+#define BG_COPY_FILE_DACL 4
+#define BG_COPY_FILE_SACL 8
+#define BG_COPY_FILE_ALL 15
#define BG_LENGTH_TO_EOF (UINT64)(-1)
- typedef struct _BG_FILE_RANGE {
+#ifndef _BG_FILE_RANGE_DEFINED
+#define _BG_FILE_RANGE_DEFINED
+typedef struct _BG_FILE_RANGE {
UINT64 InitialOffset;
UINT64 Length;
- } BG_FILE_RANGE;
-
-#define BG_COPY_FILE_OWNER 1
-#define BG_COPY_FILE_GROUP 2
-#define BG_COPY_FILE_DACL 4
-#define BG_COPY_FILE_SACL 8
-#define BG_COPY_FILE_ALL 15
-
- extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_c_ifspec;
- extern RPC_IF_HANDLE __MIDL_itf_bits2_0_0000_v0_0_s_ifspec;
-
+} BG_FILE_RANGE;
+#endif
+/*****************************************************************************
+ * IBackgroundCopyJob3 interface
+ */
#ifndef __IBackgroundCopyJob3_INTERFACE_DEFINED__
#define __IBackgroundCopyJob3_INTERFACE_DEFINED__
- EXTERN_C const IID IID_IBackgroundCopyJob3;
+
+DEFINE_GUID(IID_IBackgroundCopyJob3, 0x443c8934, 0x90ff, 0x48ed, 0xbc,0xde, 0x26,0xf5,0xc7,0x45,0x00,0x42);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyJob3 : public IBackgroundCopyJob2 {
- public:
- virtual HRESULT WINAPI ReplaceRemotePrefix(LPCWSTR OldPrefix,LPCWSTR NewPrefix) = 0;
- virtual HRESULT WINAPI AddFileWithRanges(LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) = 0;
- virtual HRESULT WINAPI SetFileACLFlags(DWORD Flags) = 0;
- virtual HRESULT WINAPI GetFileACLFlags(DWORD *Flags) = 0;
- };
+MIDL_INTERFACE("443c8934-90ff-48ed-bcde-26f5c7450042")
+IBackgroundCopyJob3 : public IBackgroundCopyJob2
+{
+ virtual HRESULT STDMETHODCALLTYPE ReplaceRemotePrefix(
+ LPCWSTR OldPrefix,
+ LPCWSTR NewPrefix) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddFileWithRanges(
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName,
+ DWORD RangeCount,
+ BG_FILE_RANGE Ranges[]) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFileACLFlags(
+ DWORD Flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFileACLFlags(
+ DWORD *Flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJob3, 0x443c8934, 0x90ff, 0x48ed, 0xbc,0xde, 0x26,0xf5,0xc7,0x45,0x00,0x42)
+#endif
#else
- typedef struct IBackgroundCopyJob3Vtbl {
+typedef struct IBackgroundCopyJob3Vtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyJob3 *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyJob3 *This);
- ULONG (WINAPI *Release)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *AddFileSet)(IBackgroundCopyJob3 *This,ULONG cFileCount,BG_FILE_INFO *pFileSet);
- HRESULT (WINAPI *AddFile)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName);
- HRESULT (WINAPI *EnumFiles)(IBackgroundCopyJob3 *This,IEnumBackgroundCopyFiles **pEnum);
- HRESULT (WINAPI *Suspend)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *Resume)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *Cancel)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *Complete)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *GetId)(IBackgroundCopyJob3 *This,GUID *pVal);
- HRESULT (WINAPI *GetType)(IBackgroundCopyJob3 *This,BG_JOB_TYPE *pVal);
- HRESULT (WINAPI *GetProgress)(IBackgroundCopyJob3 *This,BG_JOB_PROGRESS *pVal);
- HRESULT (WINAPI *GetTimes)(IBackgroundCopyJob3 *This,BG_JOB_TIMES *pVal);
- HRESULT (WINAPI *GetState)(IBackgroundCopyJob3 *This,BG_JOB_STATE *pVal);
- HRESULT (WINAPI *GetError)(IBackgroundCopyJob3 *This,IBackgroundCopyError **ppError);
- HRESULT (WINAPI *GetOwner)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDisplayName)(IBackgroundCopyJob3 *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDisplayName)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetDescription)(IBackgroundCopyJob3 *This,LPCWSTR Val);
- HRESULT (WINAPI *GetDescription)(IBackgroundCopyJob3 *This,LPWSTR *pVal);
- HRESULT (WINAPI *SetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY Val);
- HRESULT (WINAPI *GetPriority)(IBackgroundCopyJob3 *This,BG_JOB_PRIORITY *pVal);
- HRESULT (WINAPI *SetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG Val);
- HRESULT (WINAPI *GetNotifyFlags)(IBackgroundCopyJob3 *This,ULONG *pVal);
- HRESULT (WINAPI *SetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown *Val);
- HRESULT (WINAPI *GetNotifyInterface)(IBackgroundCopyJob3 *This,IUnknown **pVal);
- HRESULT (WINAPI *SetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG Seconds);
- HRESULT (WINAPI *GetMinimumRetryDelay)(IBackgroundCopyJob3 *This,ULONG *Seconds);
- HRESULT (WINAPI *SetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG Seconds);
- HRESULT (WINAPI *GetNoProgressTimeout)(IBackgroundCopyJob3 *This,ULONG *Seconds);
- HRESULT (WINAPI *GetErrorCount)(IBackgroundCopyJob3 *This,ULONG *Errors);
- HRESULT (WINAPI *SetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList);
- HRESULT (WINAPI *GetProxySettings)(IBackgroundCopyJob3 *This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList);
- HRESULT (WINAPI *TakeOwnership)(IBackgroundCopyJob3 *This);
- HRESULT (WINAPI *SetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPCWSTR Program,LPCWSTR Parameters);
- HRESULT (WINAPI *GetNotifyCmdLine)(IBackgroundCopyJob3 *This,LPWSTR *pProgram,LPWSTR *pParameters);
- HRESULT (WINAPI *GetReplyProgress)(IBackgroundCopyJob3 *This,BG_JOB_REPLY_PROGRESS *pProgress);
- HRESULT (WINAPI *GetReplyData)(IBackgroundCopyJob3 *This,byte **ppBuffer,UINT64 *pLength);
- HRESULT (WINAPI *SetReplyFileName)(IBackgroundCopyJob3 *This,LPCWSTR ReplyFileName);
- HRESULT (WINAPI *GetReplyFileName)(IBackgroundCopyJob3 *This,LPWSTR *pReplyFileName);
- HRESULT (WINAPI *SetCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_CREDENTIALS *credentials);
- HRESULT (WINAPI *RemoveCredentials)(IBackgroundCopyJob3 *This,BG_AUTH_TARGET Target,BG_AUTH_SCHEME Scheme);
- HRESULT (WINAPI *ReplaceRemotePrefix)(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix);
- HRESULT (WINAPI *AddFileWithRanges)(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]);
- HRESULT (WINAPI *SetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD Flags);
- HRESULT (WINAPI *GetFileACLFlags)(IBackgroundCopyJob3 *This,DWORD *Flags);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJob3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJob3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJob3 *This);
+
+ /*** IBackgroundCopyJob methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddFileSet)(
+ IBackgroundCopyJob3 *This,
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet);
+
+ HRESULT (STDMETHODCALLTYPE *AddFile)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumFiles)(
+ IBackgroundCopyJob3 *This,
+ IEnumBackgroundCopyFiles **pEnum);
+
+ HRESULT (STDMETHODCALLTYPE *Suspend)(
+ IBackgroundCopyJob3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Resume)(
+ IBackgroundCopyJob3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Cancel)(
+ IBackgroundCopyJob3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Complete)(
+ IBackgroundCopyJob3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetId)(
+ IBackgroundCopyJob3 *This,
+ GUID *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_TYPE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_PROGRESS *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimes)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_TIMES *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetState)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_STATE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyJob3 *This,
+ IBackgroundCopyError **ppError);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwner)(
+ IBackgroundCopyJob3 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+ IBackgroundCopyJob3 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDescription)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDescription)(
+ IBackgroundCopyJob3 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetPriority)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_PRIORITY Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetPriority)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_PRIORITY *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)(
+ IBackgroundCopyJob3 *This,
+ ULONG Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)(
+ IBackgroundCopyJob3 *This,
+ ULONG *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)(
+ IBackgroundCopyJob3 *This,
+ IUnknown *Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)(
+ IBackgroundCopyJob3 *This,
+ IUnknown **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)(
+ IBackgroundCopyJob3 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)(
+ IBackgroundCopyJob3 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)(
+ IBackgroundCopyJob3 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)(
+ IBackgroundCopyJob3 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorCount)(
+ IBackgroundCopyJob3 *This,
+ ULONG *Errors);
+
+ HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IBackgroundCopyJob3 *This);
+
+ /*** IBackgroundCopyJob2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR prog,
+ LPCWSTR params);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)(
+ IBackgroundCopyJob3 *This,
+ LPWSTR *prog,
+ LPWSTR *params);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyProgress)(
+ IBackgroundCopyJob3 *This,
+ BG_JOB_REPLY_PROGRESS *progress);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyData)(
+ IBackgroundCopyJob3 *This,
+ byte **pBuffer,
+ UINT64 *pLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetReplyFileName)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR filename);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyFileName)(
+ IBackgroundCopyJob3 *This,
+ LPWSTR *pFilename);
+
+ HRESULT (STDMETHODCALLTYPE *SetCredentials)(
+ IBackgroundCopyJob3 *This,
+ BG_AUTH_CREDENTIALS *cred);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveCredentials)(
+ IBackgroundCopyJob3 *This,
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme);
+
+ /*** IBackgroundCopyJob3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR OldPrefix,
+ LPCWSTR NewPrefix);
+
+ HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)(
+ IBackgroundCopyJob3 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName,
+ DWORD RangeCount,
+ BG_FILE_RANGE Ranges[]);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)(
+ IBackgroundCopyJob3 *This,
+ DWORD Flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)(
+ IBackgroundCopyJob3 *This,
+ DWORD *Flags);
+
END_INTERFACE
- } IBackgroundCopyJob3Vtbl;
- struct IBackgroundCopyJob3 {
- CONST_VTBL struct IBackgroundCopyJob3Vtbl *lpVtbl;
- };
+} IBackgroundCopyJob3Vtbl;
+
+interface IBackgroundCopyJob3 {
+ CONST_VTBL IBackgroundCopyJob3Vtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
-#define IBackgroundCopyJob3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-#define IBackgroundCopyJob3_AddRef(This) (This)->lpVtbl -> AddRef(This)
-#define IBackgroundCopyJob3_Release(This) (This)->lpVtbl -> Release(This)
-#define IBackgroundCopyJob3_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl -> AddFileSet(This,cFileCount,pFileSet)
-#define IBackgroundCopyJob3_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl -> AddFile(This,RemoteUrl,LocalName)
-#define IBackgroundCopyJob3_EnumFiles(This,pEnum) (This)->lpVtbl -> EnumFiles(This,pEnum)
-#define IBackgroundCopyJob3_Suspend(This) (This)->lpVtbl -> Suspend(This)
-#define IBackgroundCopyJob3_Resume(This) (This)->lpVtbl -> Resume(This)
-#define IBackgroundCopyJob3_Cancel(This) (This)->lpVtbl -> Cancel(This)
-#define IBackgroundCopyJob3_Complete(This) (This)->lpVtbl -> Complete(This)
-#define IBackgroundCopyJob3_GetId(This,pVal) (This)->lpVtbl -> GetId(This,pVal)
-#define IBackgroundCopyJob3_GetType(This,pVal) (This)->lpVtbl -> GetType(This,pVal)
-#define IBackgroundCopyJob3_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal)
-#define IBackgroundCopyJob3_GetTimes(This,pVal) (This)->lpVtbl -> GetTimes(This,pVal)
-#define IBackgroundCopyJob3_GetState(This,pVal) (This)->lpVtbl -> GetState(This,pVal)
-#define IBackgroundCopyJob3_GetError(This,ppError) (This)->lpVtbl -> GetError(This,ppError)
-#define IBackgroundCopyJob3_GetOwner(This,pVal) (This)->lpVtbl -> GetOwner(This,pVal)
-#define IBackgroundCopyJob3_SetDisplayName(This,Val) (This)->lpVtbl -> SetDisplayName(This,Val)
-#define IBackgroundCopyJob3_GetDisplayName(This,pVal) (This)->lpVtbl -> GetDisplayName(This,pVal)
-#define IBackgroundCopyJob3_SetDescription(This,Val) (This)->lpVtbl -> SetDescription(This,Val)
-#define IBackgroundCopyJob3_GetDescription(This,pVal) (This)->lpVtbl -> GetDescription(This,pVal)
-#define IBackgroundCopyJob3_SetPriority(This,Val) (This)->lpVtbl -> SetPriority(This,Val)
-#define IBackgroundCopyJob3_GetPriority(This,pVal) (This)->lpVtbl -> GetPriority(This,pVal)
-#define IBackgroundCopyJob3_SetNotifyFlags(This,Val) (This)->lpVtbl -> SetNotifyFlags(This,Val)
-#define IBackgroundCopyJob3_GetNotifyFlags(This,pVal) (This)->lpVtbl -> GetNotifyFlags(This,pVal)
-#define IBackgroundCopyJob3_SetNotifyInterface(This,Val) (This)->lpVtbl -> SetNotifyInterface(This,Val)
-#define IBackgroundCopyJob3_GetNotifyInterface(This,pVal) (This)->lpVtbl -> GetNotifyInterface(This,pVal)
-#define IBackgroundCopyJob3_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> SetMinimumRetryDelay(This,Seconds)
-#define IBackgroundCopyJob3_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl -> GetMinimumRetryDelay(This,Seconds)
-#define IBackgroundCopyJob3_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> SetNoProgressTimeout(This,Seconds)
-#define IBackgroundCopyJob3_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl -> GetNoProgressTimeout(This,Seconds)
-#define IBackgroundCopyJob3_GetErrorCount(This,Errors) (This)->lpVtbl -> GetErrorCount(This,Errors)
-#define IBackgroundCopyJob3_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl -> SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
-#define IBackgroundCopyJob3_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl -> GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
-#define IBackgroundCopyJob3_TakeOwnership(This) (This)->lpVtbl -> TakeOwnership(This)
-#define IBackgroundCopyJob3_SetNotifyCmdLine(This,Program,Parameters) (This)->lpVtbl -> SetNotifyCmdLine(This,Program,Parameters)
-#define IBackgroundCopyJob3_GetNotifyCmdLine(This,pProgram,pParameters) (This)->lpVtbl -> GetNotifyCmdLine(This,pProgram,pParameters)
-#define IBackgroundCopyJob3_GetReplyProgress(This,pProgress) (This)->lpVtbl -> GetReplyProgress(This,pProgress)
-#define IBackgroundCopyJob3_GetReplyData(This,ppBuffer,pLength) (This)->lpVtbl -> GetReplyData(This,ppBuffer,pLength)
-#define IBackgroundCopyJob3_SetReplyFileName(This,ReplyFileName) (This)->lpVtbl -> SetReplyFileName(This,ReplyFileName)
-#define IBackgroundCopyJob3_GetReplyFileName(This,pReplyFileName) (This)->lpVtbl -> GetReplyFileName(This,pReplyFileName)
-#define IBackgroundCopyJob3_SetCredentials(This,credentials) (This)->lpVtbl -> SetCredentials(This,credentials)
-#define IBackgroundCopyJob3_RemoveCredentials(This,Target,Scheme) (This)->lpVtbl -> RemoveCredentials(This,Target,Scheme)
-#define IBackgroundCopyJob3_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl -> ReplaceRemotePrefix(This,OldPrefix,NewPrefix)
-#define IBackgroundCopyJob3_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl -> AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges)
-#define IBackgroundCopyJob3_SetFileACLFlags(This,Flags) (This)->lpVtbl -> SetFileACLFlags(This,Flags)
-#define IBackgroundCopyJob3_GetFileACLFlags(This,Flags) (This)->lpVtbl -> GetFileACLFlags(This,Flags)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyJob3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyJob3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyJob3_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJob methods ***/
+#define IBackgroundCopyJob3_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
+#define IBackgroundCopyJob3_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
+#define IBackgroundCopyJob3_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
+#define IBackgroundCopyJob3_Suspend(This) (This)->lpVtbl->Suspend(This)
+#define IBackgroundCopyJob3_Resume(This) (This)->lpVtbl->Resume(This)
+#define IBackgroundCopyJob3_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IBackgroundCopyJob3_Complete(This) (This)->lpVtbl->Complete(This)
+#define IBackgroundCopyJob3_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal)
+#define IBackgroundCopyJob3_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal)
+#define IBackgroundCopyJob3_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
+#define IBackgroundCopyJob3_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal)
+#define IBackgroundCopyJob3_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal)
+#define IBackgroundCopyJob3_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError)
+#define IBackgroundCopyJob3_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal)
+#define IBackgroundCopyJob3_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val)
+#define IBackgroundCopyJob3_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal)
+#define IBackgroundCopyJob3_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val)
+#define IBackgroundCopyJob3_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal)
+#define IBackgroundCopyJob3_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val)
+#define IBackgroundCopyJob3_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal)
+#define IBackgroundCopyJob3_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val)
+#define IBackgroundCopyJob3_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal)
+#define IBackgroundCopyJob3_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val)
+#define IBackgroundCopyJob3_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal)
+#define IBackgroundCopyJob3_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob3_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob3_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob3_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob3_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors)
+#define IBackgroundCopyJob3_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
+#define IBackgroundCopyJob3_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
+#define IBackgroundCopyJob3_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
+/*** IBackgroundCopyJob2 methods ***/
+#define IBackgroundCopyJob3_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob3_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob3_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress)
+#define IBackgroundCopyJob3_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength)
+#define IBackgroundCopyJob3_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename)
+#define IBackgroundCopyJob3_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename)
+#define IBackgroundCopyJob3_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred)
+#define IBackgroundCopyJob3_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme)
+/*** IBackgroundCopyJob3 methods ***/
+#define IBackgroundCopyJob3_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix)
+#define IBackgroundCopyJob3_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges)
+#define IBackgroundCopyJob3_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags)
+#define IBackgroundCopyJob3_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob3_QueryInterface(IBackgroundCopyJob3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob3_AddRef(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob3_Release(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJob methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFileSet(IBackgroundCopyJob3* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) {
+ return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFile(IBackgroundCopyJob3* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) {
+ return This->lpVtbl->AddFile(This,RemoteUrl,LocalName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_EnumFiles(IBackgroundCopyJob3* This,IEnumBackgroundCopyFiles **pEnum) {
+ return This->lpVtbl->EnumFiles(This,pEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_Suspend(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_Resume(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_Cancel(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_Complete(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->Complete(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetId(IBackgroundCopyJob3* This,GUID *pVal) {
+ return This->lpVtbl->GetId(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetType(IBackgroundCopyJob3* This,BG_JOB_TYPE *pVal) {
+ return This->lpVtbl->GetType(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetProgress(IBackgroundCopyJob3* This,BG_JOB_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetTimes(IBackgroundCopyJob3* This,BG_JOB_TIMES *pVal) {
+ return This->lpVtbl->GetTimes(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetState(IBackgroundCopyJob3* This,BG_JOB_STATE *pVal) {
+ return This->lpVtbl->GetState(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetError(IBackgroundCopyJob3* This,IBackgroundCopyError **ppError) {
+ return This->lpVtbl->GetError(This,ppError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetOwner(IBackgroundCopyJob3* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetOwner(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetDisplayName(IBackgroundCopyJob3* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDisplayName(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetDisplayName(IBackgroundCopyJob3* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDisplayName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetDescription(IBackgroundCopyJob3* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDescription(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetDescription(IBackgroundCopyJob3* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDescription(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetPriority(IBackgroundCopyJob3* This,BG_JOB_PRIORITY Val) {
+ return This->lpVtbl->SetPriority(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetPriority(IBackgroundCopyJob3* This,BG_JOB_PRIORITY *pVal) {
+ return This->lpVtbl->GetPriority(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyFlags(IBackgroundCopyJob3* This,ULONG Val) {
+ return This->lpVtbl->SetNotifyFlags(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyFlags(IBackgroundCopyJob3* This,ULONG *pVal) {
+ return This->lpVtbl->GetNotifyFlags(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyInterface(IBackgroundCopyJob3* This,IUnknown *Val) {
+ return This->lpVtbl->SetNotifyInterface(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyInterface(IBackgroundCopyJob3* This,IUnknown **pVal) {
+ return This->lpVtbl->GetNotifyInterface(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetMinimumRetryDelay(IBackgroundCopyJob3* This,ULONG Seconds) {
+ return This->lpVtbl->SetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetMinimumRetryDelay(IBackgroundCopyJob3* This,ULONG *Seconds) {
+ return This->lpVtbl->GetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNoProgressTimeout(IBackgroundCopyJob3* This,ULONG Seconds) {
+ return This->lpVtbl->SetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNoProgressTimeout(IBackgroundCopyJob3* This,ULONG *Seconds) {
+ return This->lpVtbl->GetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetErrorCount(IBackgroundCopyJob3* This,ULONG *Errors) {
+ return This->lpVtbl->GetErrorCount(This,Errors);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetProxySettings(IBackgroundCopyJob3* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) {
+ return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetProxySettings(IBackgroundCopyJob3* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) {
+ return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_TakeOwnership(IBackgroundCopyJob3* This) {
+ return This->lpVtbl->TakeOwnership(This);
+}
+/*** IBackgroundCopyJob2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetNotifyCmdLine(IBackgroundCopyJob3* This,LPCWSTR prog,LPCWSTR params) {
+ return This->lpVtbl->SetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetNotifyCmdLine(IBackgroundCopyJob3* This,LPWSTR *prog,LPWSTR *params) {
+ return This->lpVtbl->GetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyProgress(IBackgroundCopyJob3* This,BG_JOB_REPLY_PROGRESS *progress) {
+ return This->lpVtbl->GetReplyProgress(This,progress);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyData(IBackgroundCopyJob3* This,byte **pBuffer,UINT64 *pLength) {
+ return This->lpVtbl->GetReplyData(This,pBuffer,pLength);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetReplyFileName(IBackgroundCopyJob3* This,LPCWSTR filename) {
+ return This->lpVtbl->SetReplyFileName(This,filename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetReplyFileName(IBackgroundCopyJob3* This,LPWSTR *pFilename) {
+ return This->lpVtbl->GetReplyFileName(This,pFilename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetCredentials(IBackgroundCopyJob3* This,BG_AUTH_CREDENTIALS *cred) {
+ return This->lpVtbl->SetCredentials(This,cred);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_RemoveCredentials(IBackgroundCopyJob3* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) {
+ return This->lpVtbl->RemoveCredentials(This,target,scheme);
+}
+/*** IBackgroundCopyJob3 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob3_ReplaceRemotePrefix(IBackgroundCopyJob3* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) {
+ return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_AddFileWithRanges(IBackgroundCopyJob3* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) {
+ return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_SetFileACLFlags(IBackgroundCopyJob3* This,DWORD Flags) {
+ return This->lpVtbl->SetFileACLFlags(This,Flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob3_GetFileACLFlags(IBackgroundCopyJob3* This,DWORD *Flags) {
+ return This->lpVtbl->GetFileACLFlags(This,Flags);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyJob3_ReplaceRemotePrefix_Proxy(IBackgroundCopyJob3 *This,LPCWSTR OldPrefix,LPCWSTR NewPrefix);
- void __RPC_STUB IBackgroundCopyJob3_ReplaceRemotePrefix_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob3_AddFileWithRanges_Proxy(IBackgroundCopyJob3 *This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]);
- void __RPC_STUB IBackgroundCopyJob3_AddFileWithRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob3_SetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD Flags);
- void __RPC_STUB IBackgroundCopyJob3_SetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyJob3_GetFileACLFlags_Proxy(IBackgroundCopyJob3 *This,DWORD *Flags);
- void __RPC_STUB IBackgroundCopyJob3_GetFileACLFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyJob3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IBackgroundCopyFile2 interface
+ */
#ifndef __IBackgroundCopyFile2_INTERFACE_DEFINED__
#define __IBackgroundCopyFile2_INTERFACE_DEFINED__
- EXTERN_C const IID IID_IBackgroundCopyFile2;
+
+DEFINE_GUID(IID_IBackgroundCopyFile2, 0x83e81b93, 0x0873, 0x474d, 0x8a,0x8c, 0xf2,0x01,0x8b,0x1a,0x93,0x9c);
#if defined(__cplusplus) && !defined(CINTERFACE)
- struct IBackgroundCopyFile2 : public IBackgroundCopyFile {
- public:
- virtual HRESULT WINAPI GetFileRanges(DWORD *RangeCount,BG_FILE_RANGE **Ranges) = 0;
- virtual HRESULT WINAPI SetRemoteName(LPCWSTR Val) = 0;
- };
+MIDL_INTERFACE("83e81b93-0873-474d-8a8c-f2018b1a939c")
+IBackgroundCopyFile2 : public IBackgroundCopyFile
+{
+ virtual HRESULT STDMETHODCALLTYPE GetFileRanges(
+ DWORD *RangeCount,
+ BG_FILE_RANGE **Ranges) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRemoteName(
+ LPCWSTR Val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyFile2, 0x83e81b93, 0x0873, 0x474d, 0x8a,0x8c, 0xf2,0x01,0x8b,0x1a,0x93,0x9c)
+#endif
#else
- typedef struct IBackgroundCopyFile2Vtbl {
+typedef struct IBackgroundCopyFile2Vtbl {
BEGIN_INTERFACE
- HRESULT (WINAPI *QueryInterface)(IBackgroundCopyFile2 *This,REFIID riid,void **ppvObject);
- ULONG (WINAPI *AddRef)(IBackgroundCopyFile2 *This);
- ULONG (WINAPI *Release)(IBackgroundCopyFile2 *This);
- HRESULT (WINAPI *GetRemoteName)(IBackgroundCopyFile2 *This,LPWSTR *pVal);
- HRESULT (WINAPI *GetLocalName)(IBackgroundCopyFile2 *This,LPWSTR *pVal);
- HRESULT (WINAPI *GetProgress)(IBackgroundCopyFile2 *This,BG_FILE_PROGRESS *pVal);
- HRESULT (WINAPI *GetFileRanges)(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges);
- HRESULT (WINAPI *SetRemoteName)(IBackgroundCopyFile2 *This,LPCWSTR Val);
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyFile2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyFile2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyFile2 *This);
+
+ /*** IBackgroundCopyFile methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetRemoteName)(
+ IBackgroundCopyFile2 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetLocalName)(
+ IBackgroundCopyFile2 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyFile2 *This,
+ BG_FILE_PROGRESS *pVal);
+
+ /*** IBackgroundCopyFile2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetFileRanges)(
+ IBackgroundCopyFile2 *This,
+ DWORD *RangeCount,
+ BG_FILE_RANGE **Ranges);
+
+ HRESULT (STDMETHODCALLTYPE *SetRemoteName)(
+ IBackgroundCopyFile2 *This,
+ LPCWSTR Val);
+
END_INTERFACE
- } IBackgroundCopyFile2Vtbl;
- struct IBackgroundCopyFile2 {
- CONST_VTBL struct IBackgroundCopyFile2Vtbl *lpVtbl;
- };
+} IBackgroundCopyFile2Vtbl;
+
+interface IBackgroundCopyFile2 {
+ CONST_VTBL IBackgroundCopyFile2Vtbl* lpVtbl;
+};
+
#ifdef COBJMACROS
-#define IBackgroundCopyFile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
-#define IBackgroundCopyFile2_AddRef(This) (This)->lpVtbl -> AddRef(This)
-#define IBackgroundCopyFile2_Release(This) (This)->lpVtbl -> Release(This)
-#define IBackgroundCopyFile2_GetRemoteName(This,pVal) (This)->lpVtbl -> GetRemoteName(This,pVal)
-#define IBackgroundCopyFile2_GetLocalName(This,pVal) (This)->lpVtbl -> GetLocalName(This,pVal)
-#define IBackgroundCopyFile2_GetProgress(This,pVal) (This)->lpVtbl -> GetProgress(This,pVal)
-#define IBackgroundCopyFile2_GetFileRanges(This,RangeCount,Ranges) (This)->lpVtbl -> GetFileRanges(This,RangeCount,Ranges)
-#define IBackgroundCopyFile2_SetRemoteName(This,Val) (This)->lpVtbl -> SetRemoteName(This,Val)
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyFile2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyFile2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyFile2_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyFile methods ***/
+#define IBackgroundCopyFile2_GetRemoteName(This,pVal) (This)->lpVtbl->GetRemoteName(This,pVal)
+#define IBackgroundCopyFile2_GetLocalName(This,pVal) (This)->lpVtbl->GetLocalName(This,pVal)
+#define IBackgroundCopyFile2_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
+/*** IBackgroundCopyFile2 methods ***/
+#define IBackgroundCopyFile2_GetFileRanges(This,RangeCount,Ranges) (This)->lpVtbl->GetFileRanges(This,RangeCount,Ranges)
+#define IBackgroundCopyFile2_SetRemoteName(This,Val) (This)->lpVtbl->SetRemoteName(This,Val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyFile2_QueryInterface(IBackgroundCopyFile2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyFile2_AddRef(IBackgroundCopyFile2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyFile2_Release(IBackgroundCopyFile2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyFile methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyFile2_GetRemoteName(IBackgroundCopyFile2* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetRemoteName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyFile2_GetLocalName(IBackgroundCopyFile2* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetLocalName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyFile2_GetProgress(IBackgroundCopyFile2* This,BG_FILE_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+/*** IBackgroundCopyFile2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyFile2_GetFileRanges(IBackgroundCopyFile2* This,DWORD *RangeCount,BG_FILE_RANGE **Ranges) {
+ return This->lpVtbl->GetFileRanges(This,RangeCount,Ranges);
+}
+static FORCEINLINE HRESULT IBackgroundCopyFile2_SetRemoteName(IBackgroundCopyFile2* This,LPCWSTR Val) {
+ return This->lpVtbl->SetRemoteName(This,Val);
+}
#endif
#endif
- HRESULT WINAPI IBackgroundCopyFile2_GetFileRanges_Proxy(IBackgroundCopyFile2 *This,DWORD *RangeCount,BG_FILE_RANGE **Ranges);
- void __RPC_STUB IBackgroundCopyFile2_GetFileRanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
- HRESULT WINAPI IBackgroundCopyFile2_SetRemoteName_Proxy(IBackgroundCopyFile2 *This,LPCWSTR Val);
- void __RPC_STUB IBackgroundCopyFile2_SetRemoteName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+
#endif
+
+#endif /* __IBackgroundCopyFile2_INTERFACE_DEFINED__ */
+
#ifndef __BackgroundCopyManager2_0_LIBRARY_DEFINED__
#define __BackgroundCopyManager2_0_LIBRARY_DEFINED__
- EXTERN_C const IID LIBID_BackgroundCopyManager2_0;
- EXTERN_C const CLSID CLSID_BackgroundCopyManager2_0;
+
+DEFINE_GUID(LIBID_BackgroundCopyManager2_0, 0x2289a9af, 0xdc96, 0x486e, 0xb2,0x68, 0x89,0xc9,0xe3,0x39,0x7c,0x3d);
+
+/*****************************************************************************
+ * BackgroundCopyManager2_0 coclass
+ */
+
+DEFINE_GUID(CLSID_BackgroundCopyManager2_0, 0x6d18ad12, 0xbde3, 0x4393, 0xb3,0x11, 0x09,0x9c,0x34,0x6e,0x6d,0xf9);
+
#ifdef __cplusplus
- class BackgroundCopyManager2_0;
+class DECLSPEC_UUID("6d18ad12-bde3-4393-b311-099c346e6df9") BackgroundCopyManager2_0;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(BackgroundCopyManager2_0, 0x6d18ad12, 0xbde3, 0x4393, 0xb3,0x11, 0x09,0x9c,0x34,0x6e,0x6d,0xf9)
#endif
#endif
+#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
+#define __IBackgroundCopyCallback_FWD_DEFINED__
+typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
#ifdef __cplusplus
-}
+interface IBackgroundCopyCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IBackgroundCopyJob3_FWD_DEFINED__
+#define __IBackgroundCopyJob3_FWD_DEFINED__
+typedef interface IBackgroundCopyJob3 IBackgroundCopyJob3;
+#ifdef __cplusplus
+interface IBackgroundCopyJob3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IBackgroundCopyFile2_FWD_DEFINED__
+#define __IBackgroundCopyFile2_FWD_DEFINED__
+typedef interface IBackgroundCopyFile2 IBackgroundCopyFile2;
+#ifdef __cplusplus
+interface IBackgroundCopyFile2;
+#endif /* __cplusplus */
#endif
+
+#endif /* __BackgroundCopyManager2_0_LIBRARY_DEFINED__ */
+#include "bits2_5.h"
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
#endif
+
+#endif /* __bits2_0_h__ */
lib/libc/include/any-windows-any/bits2_5.h
@@ -0,0 +1,270 @@
+/*** Autogenerated by WIDL 7.0 from include/bits2_5.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __bits2_5_h__
+#define __bits2_5_h__
+
+/* Forward declarations */
+
+#ifndef __IBackgroundCopyJobHttpOptions_FWD_DEFINED__
+#define __IBackgroundCopyJobHttpOptions_FWD_DEFINED__
+typedef interface IBackgroundCopyJobHttpOptions IBackgroundCopyJobHttpOptions;
+#ifdef __cplusplus
+interface IBackgroundCopyJobHttpOptions;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __BackgroundCopyManager2_5_FWD_DEFINED__
+#define __BackgroundCopyManager2_5_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class BackgroundCopyManager2_5 BackgroundCopyManager2_5;
+#else
+typedef struct BackgroundCopyManager2_5 BackgroundCopyManager2_5;
+#endif /* defined __cplusplus */
+#endif /* defined __BackgroundCopyManager2_5_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <bits.h>
+#include <bits1_5.h>
+#include <bits2_0.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IBackgroundCopyJobHttpOptions interface
+ */
+#ifndef __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__
+#define __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__
+
+typedef enum __WIDL_bits2_5_generated_name_00000016 {
+ BG_CERT_STORE_LOCATION_CURRENT_USER = 0,
+ BG_CERT_STORE_LOCATION_LOCAL_MACHINE = 1,
+ BG_CERT_STORE_LOCATION_CURRENT_SERVICE = 2,
+ BG_CERT_STORE_LOCATION_SERVICES = 3,
+ BG_CERT_STORE_LOCATION_USERS = 4,
+ BG_CERT_STORE_LOCATION_CURRENT_USER_GROUP_POLICY = 5,
+ BG_CERT_STORE_LOCATION_LOCAL_MACHINE_GROUP_POLICY = 6,
+ BG_CERT_STORE_LOCATION_LOCAL_MACHINE_ENTERPRISE = 7
+} BG_CERT_STORE_LOCATION;
+DEFINE_GUID(IID_IBackgroundCopyJobHttpOptions, 0xf1bd1079, 0x9f01, 0x4bdc, 0x80,0x36, 0xf0,0x9b,0x70,0x09,0x50,0x66);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f1bd1079-9f01-4bdc-8036-f09b70095066")
+IBackgroundCopyJobHttpOptions : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetClientCertificateByID(
+ BG_CERT_STORE_LOCATION StoreLocation,
+ LPCWSTR StoreName,
+ BYTE *pCertHashBlob) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetClientCertificateByName(
+ BG_CERT_STORE_LOCATION StoreLocation,
+ LPCWSTR StoreName,
+ LPCWSTR SubjectName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveClientCertificate(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetClientCertificate(
+ BG_CERT_STORE_LOCATION *pStoreLocation,
+ LPWSTR *pStoreName,
+ BYTE **ppCertHashBlob,
+ LPWSTR *pSubjectName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCustomHeaders(
+ LPCWSTR RequestHeaders) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCustomHeaders(
+ LPWSTR *pRequestHeaders) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSecurityFlags(
+ ULONG Flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSecurityFlags(
+ ULONG *pFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJobHttpOptions, 0xf1bd1079, 0x9f01, 0x4bdc, 0x80,0x36, 0xf0,0x9b,0x70,0x09,0x50,0x66)
+#endif
+#else
+typedef struct IBackgroundCopyJobHttpOptionsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJobHttpOptions *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJobHttpOptions *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJobHttpOptions *This);
+
+ /*** IBackgroundCopyJobHttpOptions methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetClientCertificateByID)(
+ IBackgroundCopyJobHttpOptions *This,
+ BG_CERT_STORE_LOCATION StoreLocation,
+ LPCWSTR StoreName,
+ BYTE *pCertHashBlob);
+
+ HRESULT (STDMETHODCALLTYPE *SetClientCertificateByName)(
+ IBackgroundCopyJobHttpOptions *This,
+ BG_CERT_STORE_LOCATION StoreLocation,
+ LPCWSTR StoreName,
+ LPCWSTR SubjectName);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveClientCertificate)(
+ IBackgroundCopyJobHttpOptions *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetClientCertificate)(
+ IBackgroundCopyJobHttpOptions *This,
+ BG_CERT_STORE_LOCATION *pStoreLocation,
+ LPWSTR *pStoreName,
+ BYTE **ppCertHashBlob,
+ LPWSTR *pSubjectName);
+
+ HRESULT (STDMETHODCALLTYPE *SetCustomHeaders)(
+ IBackgroundCopyJobHttpOptions *This,
+ LPCWSTR RequestHeaders);
+
+ HRESULT (STDMETHODCALLTYPE *GetCustomHeaders)(
+ IBackgroundCopyJobHttpOptions *This,
+ LPWSTR *pRequestHeaders);
+
+ HRESULT (STDMETHODCALLTYPE *SetSecurityFlags)(
+ IBackgroundCopyJobHttpOptions *This,
+ ULONG Flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetSecurityFlags)(
+ IBackgroundCopyJobHttpOptions *This,
+ ULONG *pFlags);
+
+ END_INTERFACE
+} IBackgroundCopyJobHttpOptionsVtbl;
+
+interface IBackgroundCopyJobHttpOptions {
+ CONST_VTBL IBackgroundCopyJobHttpOptionsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyJobHttpOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyJobHttpOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyJobHttpOptions_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJobHttpOptions methods ***/
+#define IBackgroundCopyJobHttpOptions_SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob) (This)->lpVtbl->SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob)
+#define IBackgroundCopyJobHttpOptions_SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName) (This)->lpVtbl->SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName)
+#define IBackgroundCopyJobHttpOptions_RemoveClientCertificate(This) (This)->lpVtbl->RemoveClientCertificate(This)
+#define IBackgroundCopyJobHttpOptions_GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName) (This)->lpVtbl->GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName)
+#define IBackgroundCopyJobHttpOptions_SetCustomHeaders(This,RequestHeaders) (This)->lpVtbl->SetCustomHeaders(This,RequestHeaders)
+#define IBackgroundCopyJobHttpOptions_GetCustomHeaders(This,pRequestHeaders) (This)->lpVtbl->GetCustomHeaders(This,pRequestHeaders)
+#define IBackgroundCopyJobHttpOptions_SetSecurityFlags(This,Flags) (This)->lpVtbl->SetSecurityFlags(This,Flags)
+#define IBackgroundCopyJobHttpOptions_GetSecurityFlags(This,pFlags) (This)->lpVtbl->GetSecurityFlags(This,pFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_QueryInterface(IBackgroundCopyJobHttpOptions* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJobHttpOptions_AddRef(IBackgroundCopyJobHttpOptions* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJobHttpOptions_Release(IBackgroundCopyJobHttpOptions* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJobHttpOptions methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetClientCertificateByID(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION StoreLocation,LPCWSTR StoreName,BYTE *pCertHashBlob) {
+ return This->lpVtbl->SetClientCertificateByID(This,StoreLocation,StoreName,pCertHashBlob);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetClientCertificateByName(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION StoreLocation,LPCWSTR StoreName,LPCWSTR SubjectName) {
+ return This->lpVtbl->SetClientCertificateByName(This,StoreLocation,StoreName,SubjectName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_RemoveClientCertificate(IBackgroundCopyJobHttpOptions* This) {
+ return This->lpVtbl->RemoveClientCertificate(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetClientCertificate(IBackgroundCopyJobHttpOptions* This,BG_CERT_STORE_LOCATION *pStoreLocation,LPWSTR *pStoreName,BYTE **ppCertHashBlob,LPWSTR *pSubjectName) {
+ return This->lpVtbl->GetClientCertificate(This,pStoreLocation,pStoreName,ppCertHashBlob,pSubjectName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetCustomHeaders(IBackgroundCopyJobHttpOptions* This,LPCWSTR RequestHeaders) {
+ return This->lpVtbl->SetCustomHeaders(This,RequestHeaders);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetCustomHeaders(IBackgroundCopyJobHttpOptions* This,LPWSTR *pRequestHeaders) {
+ return This->lpVtbl->GetCustomHeaders(This,pRequestHeaders);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_SetSecurityFlags(IBackgroundCopyJobHttpOptions* This,ULONG Flags) {
+ return This->lpVtbl->SetSecurityFlags(This,Flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJobHttpOptions_GetSecurityFlags(IBackgroundCopyJobHttpOptions* This,ULONG *pFlags) {
+ return This->lpVtbl->GetSecurityFlags(This,pFlags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IBackgroundCopyJobHttpOptions_INTERFACE_DEFINED__ */
+
+#ifndef __BackgroundCopyManager2_5_LIBRARY_DEFINED__
+#define __BackgroundCopyManager2_5_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_BackgroundCopyManager2_5, 0x4974177c, 0x3bb6, 0x4c37, 0x9f,0xf0, 0x6b,0x74,0x26,0xf0,0xab,0xa9);
+
+/*****************************************************************************
+ * BackgroundCopyManager2_5 coclass
+ */
+
+DEFINE_GUID(CLSID_BackgroundCopyManager2_5, 0x03ca98d6, 0xff5d, 0x49b8, 0xab,0xc6, 0x03,0xdd,0x84,0x12,0x70,0x20);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("03ca98d6-ff5d-49b8-abc6-03dd84127020") BackgroundCopyManager2_5;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(BackgroundCopyManager2_5, 0x03ca98d6, 0xff5d, 0x49b8, 0xab,0xc6, 0x03,0xdd,0x84,0x12,0x70,0x20)
+#endif
+#endif
+
+#ifndef __IBackgroundCopyCallback_FWD_DEFINED__
+#define __IBackgroundCopyCallback_FWD_DEFINED__
+typedef interface IBackgroundCopyCallback IBackgroundCopyCallback;
+#ifdef __cplusplus
+interface IBackgroundCopyCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IBackgroundCopyJobHttpOptions_FWD_DEFINED__
+#define __IBackgroundCopyJobHttpOptions_FWD_DEFINED__
+typedef interface IBackgroundCopyJobHttpOptions IBackgroundCopyJobHttpOptions;
+#ifdef __cplusplus
+interface IBackgroundCopyJobHttpOptions;
+#endif /* __cplusplus */
+#endif
+
+#endif /* __BackgroundCopyManager2_5_LIBRARY_DEFINED__ */
+#include "bits3_0.h"
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __bits2_5_h__ */
lib/libc/include/any-windows-any/bits3_0.h
@@ -0,0 +1,704 @@
+/*** Autogenerated by WIDL 7.0 from include/bits3_0.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __bits3_0_h__
+#define __bits3_0_h__
+
+/* Forward declarations */
+
+#ifndef __IBackgroundCopyCallback2_FWD_DEFINED__
+#define __IBackgroundCopyCallback2_FWD_DEFINED__
+typedef interface IBackgroundCopyCallback2 IBackgroundCopyCallback2;
+#ifdef __cplusplus
+interface IBackgroundCopyCallback2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IBackgroundCopyJob4_FWD_DEFINED__
+#define __IBackgroundCopyJob4_FWD_DEFINED__
+typedef interface IBackgroundCopyJob4 IBackgroundCopyJob4;
+#ifdef __cplusplus
+interface IBackgroundCopyJob4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __BackgroundCopyManager3_0_FWD_DEFINED__
+#define __BackgroundCopyManager3_0_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class BackgroundCopyManager3_0 BackgroundCopyManager3_0;
+#else
+typedef struct BackgroundCopyManager3_0 BackgroundCopyManager3_0;
+#endif /* defined __cplusplus */
+#endif /* defined __BackgroundCopyManager3_0_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <bits.h>
+#include <bits2_0.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IBackgroundCopyCallback2 interface
+ */
+#ifndef __IBackgroundCopyCallback2_INTERFACE_DEFINED__
+#define __IBackgroundCopyCallback2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IBackgroundCopyCallback2, 0x659cdeac, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("659cdeac-489e-11d9-a9cd-000d56965251")
+IBackgroundCopyCallback2 : public IBackgroundCopyCallback
+{
+ virtual HRESULT STDMETHODCALLTYPE FileTransferred(
+ IBackgroundCopyJob *job,
+ IBackgroundCopyFile *file) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyCallback2, 0x659cdeac, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51)
+#endif
+#else
+typedef struct IBackgroundCopyCallback2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyCallback2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyCallback2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyCallback2 *This);
+
+ /*** IBackgroundCopyCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *JobTransferred)(
+ IBackgroundCopyCallback2 *This,
+ IBackgroundCopyJob *pJob);
+
+ HRESULT (STDMETHODCALLTYPE *JobError)(
+ IBackgroundCopyCallback2 *This,
+ IBackgroundCopyJob *pJob,
+ IBackgroundCopyError *pError);
+
+ HRESULT (STDMETHODCALLTYPE *JobModification)(
+ IBackgroundCopyCallback2 *This,
+ IBackgroundCopyJob *pJob,
+ DWORD dwReserved);
+
+ /*** IBackgroundCopyCallback2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *FileTransferred)(
+ IBackgroundCopyCallback2 *This,
+ IBackgroundCopyJob *job,
+ IBackgroundCopyFile *file);
+
+ END_INTERFACE
+} IBackgroundCopyCallback2Vtbl;
+
+interface IBackgroundCopyCallback2 {
+ CONST_VTBL IBackgroundCopyCallback2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyCallback2_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyCallback methods ***/
+#define IBackgroundCopyCallback2_JobTransferred(This,pJob) (This)->lpVtbl->JobTransferred(This,pJob)
+#define IBackgroundCopyCallback2_JobError(This,pJob,pError) (This)->lpVtbl->JobError(This,pJob,pError)
+#define IBackgroundCopyCallback2_JobModification(This,pJob,dwReserved) (This)->lpVtbl->JobModification(This,pJob,dwReserved)
+/*** IBackgroundCopyCallback2 methods ***/
+#define IBackgroundCopyCallback2_FileTransferred(This,job,file) (This)->lpVtbl->FileTransferred(This,job,file)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyCallback2_QueryInterface(IBackgroundCopyCallback2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyCallback2_AddRef(IBackgroundCopyCallback2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyCallback2_Release(IBackgroundCopyCallback2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyCallback methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobTransferred(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob) {
+ return This->lpVtbl->JobTransferred(This,pJob);
+}
+static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobError(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob,IBackgroundCopyError *pError) {
+ return This->lpVtbl->JobError(This,pJob,pError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyCallback2_JobModification(IBackgroundCopyCallback2* This,IBackgroundCopyJob *pJob,DWORD dwReserved) {
+ return This->lpVtbl->JobModification(This,pJob,dwReserved);
+}
+/*** IBackgroundCopyCallback2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyCallback2_FileTransferred(IBackgroundCopyCallback2* This,IBackgroundCopyJob *job,IBackgroundCopyFile *file) {
+ return This->lpVtbl->FileTransferred(This,job,file);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IBackgroundCopyCallback2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IBackgroundCopyJob4 interface
+ */
+#ifndef __IBackgroundCopyJob4_INTERFACE_DEFINED__
+#define __IBackgroundCopyJob4_INTERFACE_DEFINED__
+
+#define BG_JOB_ENABLE_PEERCACHING_CLIENT 0x0001
+#define BG_JOB_ENABLE_PEERCACHING_SERVER 0x0002
+#define BG_JOB_DISABLE_BRANCH_CACHE 0x0004
+DEFINE_GUID(IID_IBackgroundCopyJob4, 0x659cdeae, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("659cdeae-489e-11d9-a9cd-000d56965251")
+IBackgroundCopyJob4 : public IBackgroundCopyJob3
+{
+ virtual HRESULT STDMETHODCALLTYPE SetPeerCachingFlags(
+ DWORD flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPeerCachingFlags(
+ DWORD *flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOwnerIntegrityLevel(
+ ULONG *level) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetOwnerElevationState(
+ WINBOOL *elevated) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMaximumDownloadTime(
+ ULONG timeout) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMaximumDownloadTime(
+ ULONG *timeout) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJob4, 0x659cdeae, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51)
+#endif
+#else
+typedef struct IBackgroundCopyJob4Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJob4 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJob4 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJob4 *This);
+
+ /*** IBackgroundCopyJob methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddFileSet)(
+ IBackgroundCopyJob4 *This,
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet);
+
+ HRESULT (STDMETHODCALLTYPE *AddFile)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumFiles)(
+ IBackgroundCopyJob4 *This,
+ IEnumBackgroundCopyFiles **pEnum);
+
+ HRESULT (STDMETHODCALLTYPE *Suspend)(
+ IBackgroundCopyJob4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Resume)(
+ IBackgroundCopyJob4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Cancel)(
+ IBackgroundCopyJob4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Complete)(
+ IBackgroundCopyJob4 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetId)(
+ IBackgroundCopyJob4 *This,
+ GUID *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_TYPE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_PROGRESS *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimes)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_TIMES *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetState)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_STATE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyJob4 *This,
+ IBackgroundCopyError **ppError);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwner)(
+ IBackgroundCopyJob4 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+ IBackgroundCopyJob4 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDescription)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDescription)(
+ IBackgroundCopyJob4 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetPriority)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_PRIORITY Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetPriority)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_PRIORITY *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)(
+ IBackgroundCopyJob4 *This,
+ ULONG Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)(
+ IBackgroundCopyJob4 *This,
+ ULONG *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)(
+ IBackgroundCopyJob4 *This,
+ IUnknown *Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)(
+ IBackgroundCopyJob4 *This,
+ IUnknown **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)(
+ IBackgroundCopyJob4 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)(
+ IBackgroundCopyJob4 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)(
+ IBackgroundCopyJob4 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)(
+ IBackgroundCopyJob4 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorCount)(
+ IBackgroundCopyJob4 *This,
+ ULONG *Errors);
+
+ HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IBackgroundCopyJob4 *This);
+
+ /*** IBackgroundCopyJob2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR prog,
+ LPCWSTR params);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)(
+ IBackgroundCopyJob4 *This,
+ LPWSTR *prog,
+ LPWSTR *params);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyProgress)(
+ IBackgroundCopyJob4 *This,
+ BG_JOB_REPLY_PROGRESS *progress);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyData)(
+ IBackgroundCopyJob4 *This,
+ byte **pBuffer,
+ UINT64 *pLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetReplyFileName)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR filename);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyFileName)(
+ IBackgroundCopyJob4 *This,
+ LPWSTR *pFilename);
+
+ HRESULT (STDMETHODCALLTYPE *SetCredentials)(
+ IBackgroundCopyJob4 *This,
+ BG_AUTH_CREDENTIALS *cred);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveCredentials)(
+ IBackgroundCopyJob4 *This,
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme);
+
+ /*** IBackgroundCopyJob3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR OldPrefix,
+ LPCWSTR NewPrefix);
+
+ HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)(
+ IBackgroundCopyJob4 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName,
+ DWORD RangeCount,
+ BG_FILE_RANGE Ranges[]);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)(
+ IBackgroundCopyJob4 *This,
+ DWORD Flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)(
+ IBackgroundCopyJob4 *This,
+ DWORD *Flags);
+
+ /*** IBackgroundCopyJob4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPeerCachingFlags)(
+ IBackgroundCopyJob4 *This,
+ DWORD flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetPeerCachingFlags)(
+ IBackgroundCopyJob4 *This,
+ DWORD *flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwnerIntegrityLevel)(
+ IBackgroundCopyJob4 *This,
+ ULONG *level);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwnerElevationState)(
+ IBackgroundCopyJob4 *This,
+ WINBOOL *elevated);
+
+ HRESULT (STDMETHODCALLTYPE *SetMaximumDownloadTime)(
+ IBackgroundCopyJob4 *This,
+ ULONG timeout);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumDownloadTime)(
+ IBackgroundCopyJob4 *This,
+ ULONG *timeout);
+
+ END_INTERFACE
+} IBackgroundCopyJob4Vtbl;
+
+interface IBackgroundCopyJob4 {
+ CONST_VTBL IBackgroundCopyJob4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyJob4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyJob4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyJob4_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJob methods ***/
+#define IBackgroundCopyJob4_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
+#define IBackgroundCopyJob4_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
+#define IBackgroundCopyJob4_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
+#define IBackgroundCopyJob4_Suspend(This) (This)->lpVtbl->Suspend(This)
+#define IBackgroundCopyJob4_Resume(This) (This)->lpVtbl->Resume(This)
+#define IBackgroundCopyJob4_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IBackgroundCopyJob4_Complete(This) (This)->lpVtbl->Complete(This)
+#define IBackgroundCopyJob4_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal)
+#define IBackgroundCopyJob4_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal)
+#define IBackgroundCopyJob4_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
+#define IBackgroundCopyJob4_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal)
+#define IBackgroundCopyJob4_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal)
+#define IBackgroundCopyJob4_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError)
+#define IBackgroundCopyJob4_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal)
+#define IBackgroundCopyJob4_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val)
+#define IBackgroundCopyJob4_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal)
+#define IBackgroundCopyJob4_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val)
+#define IBackgroundCopyJob4_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal)
+#define IBackgroundCopyJob4_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val)
+#define IBackgroundCopyJob4_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal)
+#define IBackgroundCopyJob4_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val)
+#define IBackgroundCopyJob4_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal)
+#define IBackgroundCopyJob4_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val)
+#define IBackgroundCopyJob4_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal)
+#define IBackgroundCopyJob4_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob4_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob4_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob4_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob4_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors)
+#define IBackgroundCopyJob4_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
+#define IBackgroundCopyJob4_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
+#define IBackgroundCopyJob4_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
+/*** IBackgroundCopyJob2 methods ***/
+#define IBackgroundCopyJob4_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob4_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob4_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress)
+#define IBackgroundCopyJob4_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength)
+#define IBackgroundCopyJob4_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename)
+#define IBackgroundCopyJob4_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename)
+#define IBackgroundCopyJob4_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred)
+#define IBackgroundCopyJob4_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme)
+/*** IBackgroundCopyJob3 methods ***/
+#define IBackgroundCopyJob4_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix)
+#define IBackgroundCopyJob4_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges)
+#define IBackgroundCopyJob4_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags)
+#define IBackgroundCopyJob4_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags)
+/*** IBackgroundCopyJob4 methods ***/
+#define IBackgroundCopyJob4_SetPeerCachingFlags(This,flags) (This)->lpVtbl->SetPeerCachingFlags(This,flags)
+#define IBackgroundCopyJob4_GetPeerCachingFlags(This,flags) (This)->lpVtbl->GetPeerCachingFlags(This,flags)
+#define IBackgroundCopyJob4_GetOwnerIntegrityLevel(This,level) (This)->lpVtbl->GetOwnerIntegrityLevel(This,level)
+#define IBackgroundCopyJob4_GetOwnerElevationState(This,elevated) (This)->lpVtbl->GetOwnerElevationState(This,elevated)
+#define IBackgroundCopyJob4_SetMaximumDownloadTime(This,timeout) (This)->lpVtbl->SetMaximumDownloadTime(This,timeout)
+#define IBackgroundCopyJob4_GetMaximumDownloadTime(This,timeout) (This)->lpVtbl->GetMaximumDownloadTime(This,timeout)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob4_QueryInterface(IBackgroundCopyJob4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob4_AddRef(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob4_Release(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJob methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFileSet(IBackgroundCopyJob4* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) {
+ return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFile(IBackgroundCopyJob4* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) {
+ return This->lpVtbl->AddFile(This,RemoteUrl,LocalName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_EnumFiles(IBackgroundCopyJob4* This,IEnumBackgroundCopyFiles **pEnum) {
+ return This->lpVtbl->EnumFiles(This,pEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_Suspend(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_Resume(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_Cancel(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_Complete(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->Complete(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetId(IBackgroundCopyJob4* This,GUID *pVal) {
+ return This->lpVtbl->GetId(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetType(IBackgroundCopyJob4* This,BG_JOB_TYPE *pVal) {
+ return This->lpVtbl->GetType(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetProgress(IBackgroundCopyJob4* This,BG_JOB_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetTimes(IBackgroundCopyJob4* This,BG_JOB_TIMES *pVal) {
+ return This->lpVtbl->GetTimes(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetState(IBackgroundCopyJob4* This,BG_JOB_STATE *pVal) {
+ return This->lpVtbl->GetState(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetError(IBackgroundCopyJob4* This,IBackgroundCopyError **ppError) {
+ return This->lpVtbl->GetError(This,ppError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwner(IBackgroundCopyJob4* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetOwner(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetDisplayName(IBackgroundCopyJob4* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDisplayName(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetDisplayName(IBackgroundCopyJob4* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDisplayName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetDescription(IBackgroundCopyJob4* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDescription(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetDescription(IBackgroundCopyJob4* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDescription(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetPriority(IBackgroundCopyJob4* This,BG_JOB_PRIORITY Val) {
+ return This->lpVtbl->SetPriority(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetPriority(IBackgroundCopyJob4* This,BG_JOB_PRIORITY *pVal) {
+ return This->lpVtbl->GetPriority(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyFlags(IBackgroundCopyJob4* This,ULONG Val) {
+ return This->lpVtbl->SetNotifyFlags(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyFlags(IBackgroundCopyJob4* This,ULONG *pVal) {
+ return This->lpVtbl->GetNotifyFlags(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyInterface(IBackgroundCopyJob4* This,IUnknown *Val) {
+ return This->lpVtbl->SetNotifyInterface(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyInterface(IBackgroundCopyJob4* This,IUnknown **pVal) {
+ return This->lpVtbl->GetNotifyInterface(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetMinimumRetryDelay(IBackgroundCopyJob4* This,ULONG Seconds) {
+ return This->lpVtbl->SetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetMinimumRetryDelay(IBackgroundCopyJob4* This,ULONG *Seconds) {
+ return This->lpVtbl->GetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNoProgressTimeout(IBackgroundCopyJob4* This,ULONG Seconds) {
+ return This->lpVtbl->SetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNoProgressTimeout(IBackgroundCopyJob4* This,ULONG *Seconds) {
+ return This->lpVtbl->GetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetErrorCount(IBackgroundCopyJob4* This,ULONG *Errors) {
+ return This->lpVtbl->GetErrorCount(This,Errors);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetProxySettings(IBackgroundCopyJob4* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) {
+ return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetProxySettings(IBackgroundCopyJob4* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) {
+ return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_TakeOwnership(IBackgroundCopyJob4* This) {
+ return This->lpVtbl->TakeOwnership(This);
+}
+/*** IBackgroundCopyJob2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetNotifyCmdLine(IBackgroundCopyJob4* This,LPCWSTR prog,LPCWSTR params) {
+ return This->lpVtbl->SetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetNotifyCmdLine(IBackgroundCopyJob4* This,LPWSTR *prog,LPWSTR *params) {
+ return This->lpVtbl->GetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyProgress(IBackgroundCopyJob4* This,BG_JOB_REPLY_PROGRESS *progress) {
+ return This->lpVtbl->GetReplyProgress(This,progress);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyData(IBackgroundCopyJob4* This,byte **pBuffer,UINT64 *pLength) {
+ return This->lpVtbl->GetReplyData(This,pBuffer,pLength);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetReplyFileName(IBackgroundCopyJob4* This,LPCWSTR filename) {
+ return This->lpVtbl->SetReplyFileName(This,filename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetReplyFileName(IBackgroundCopyJob4* This,LPWSTR *pFilename) {
+ return This->lpVtbl->GetReplyFileName(This,pFilename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetCredentials(IBackgroundCopyJob4* This,BG_AUTH_CREDENTIALS *cred) {
+ return This->lpVtbl->SetCredentials(This,cred);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_RemoveCredentials(IBackgroundCopyJob4* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) {
+ return This->lpVtbl->RemoveCredentials(This,target,scheme);
+}
+/*** IBackgroundCopyJob3 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob4_ReplaceRemotePrefix(IBackgroundCopyJob4* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) {
+ return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_AddFileWithRanges(IBackgroundCopyJob4* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) {
+ return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetFileACLFlags(IBackgroundCopyJob4* This,DWORD Flags) {
+ return This->lpVtbl->SetFileACLFlags(This,Flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetFileACLFlags(IBackgroundCopyJob4* This,DWORD *Flags) {
+ return This->lpVtbl->GetFileACLFlags(This,Flags);
+}
+/*** IBackgroundCopyJob4 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetPeerCachingFlags(IBackgroundCopyJob4* This,DWORD flags) {
+ return This->lpVtbl->SetPeerCachingFlags(This,flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetPeerCachingFlags(IBackgroundCopyJob4* This,DWORD *flags) {
+ return This->lpVtbl->GetPeerCachingFlags(This,flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwnerIntegrityLevel(IBackgroundCopyJob4* This,ULONG *level) {
+ return This->lpVtbl->GetOwnerIntegrityLevel(This,level);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetOwnerElevationState(IBackgroundCopyJob4* This,WINBOOL *elevated) {
+ return This->lpVtbl->GetOwnerElevationState(This,elevated);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_SetMaximumDownloadTime(IBackgroundCopyJob4* This,ULONG timeout) {
+ return This->lpVtbl->SetMaximumDownloadTime(This,timeout);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob4_GetMaximumDownloadTime(IBackgroundCopyJob4* This,ULONG *timeout) {
+ return This->lpVtbl->GetMaximumDownloadTime(This,timeout);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IBackgroundCopyJob4_INTERFACE_DEFINED__ */
+
+#ifndef __BackgroundCopyManager3_0_LIBRARY_DEFINED__
+#define __BackgroundCopyManager3_0_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_BackgroundCopyManager3_0, 0x659cdea6, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51);
+
+/*****************************************************************************
+ * BackgroundCopyManager3_0 coclass
+ */
+
+DEFINE_GUID(CLSID_BackgroundCopyManager3_0, 0x659cdea7, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("659cdea7-489e-11d9-a9cd-000d56965251") BackgroundCopyManager3_0;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(BackgroundCopyManager3_0, 0x659cdea7, 0x489e, 0x11d9, 0xa9,0xcd, 0x00,0x0d,0x56,0x96,0x52,0x51)
+#endif
+#endif
+
+#ifndef __IBackgroundCopyJob4_FWD_DEFINED__
+#define __IBackgroundCopyJob4_FWD_DEFINED__
+typedef interface IBackgroundCopyJob4 IBackgroundCopyJob4;
+#ifdef __cplusplus
+interface IBackgroundCopyJob4;
+#endif /* __cplusplus */
+#endif
+
+#endif /* __BackgroundCopyManager3_0_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __bits3_0_h__ */
lib/libc/include/any-windows-any/bits5_0.h
@@ -0,0 +1,581 @@
+/*** Autogenerated by WIDL 7.0 from include/bits5_0.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __bits5_0_h__
+#define __bits5_0_h__
+
+/* Forward declarations */
+
+#ifndef __IBackgroundCopyJob5_FWD_DEFINED__
+#define __IBackgroundCopyJob5_FWD_DEFINED__
+typedef interface IBackgroundCopyJob5 IBackgroundCopyJob5;
+#ifdef __cplusplus
+interface IBackgroundCopyJob5;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <bits.h>
+#include <bits1_5.h>
+#include <bits2_0.h>
+#include <bits2_5.h>
+#include <bits3_0.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BITS_COST_STATE_TRANSFER_ALWAYS 0x800000ff
+/*****************************************************************************
+ * IBackgroundCopyJob5 interface
+ */
+#ifndef __IBackgroundCopyJob5_INTERFACE_DEFINED__
+#define __IBackgroundCopyJob5_INTERFACE_DEFINED__
+
+typedef enum __WIDL_bits5_0_generated_name_00000017 {
+ BITS_JOB_PROPERTY_ID_COST_FLAGS = 1,
+ BITS_JOB_PROPERTY_NOTIFICATION_CLSID = 2,
+ BITS_JOB_PROPERTY_DYNAMIC_CONTENT = 3,
+ BITS_JOB_PROPERTY_HIGH_PERFORMANCE = 4,
+ BITS_JOB_PROPERTY_MAX_DOWNLOAD_SIZE = 5,
+ BITS_JOB_PROPERTY_USE_STORED_CREDENTIALS = 7,
+ BITS_JOB_PROPERTY_MINIMUM_NOTIFICATION_INTERVAL_MS = 9,
+ BITS_JOB_PROPERTY_ON_DEMAND_MODE = 10
+} BITS_JOB_PROPERTY_ID;
+typedef union _BITS_JOB_PROPERTY_VALUE {
+ DWORD Dword;
+ GUID ClsID;
+ WINBOOL Enable;
+ UINT64 Uint64;
+ BG_AUTH_TARGET Target;
+} BITS_JOB_PROPERTY_VALUE;
+DEFINE_GUID(IID_IBackgroundCopyJob5, 0xe847030c, 0xbbba, 0x4657, 0xaf,0x6d, 0x48,0x4a,0xa4,0x2b,0xf1,0xfe);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e847030c-bbba-4657-af6d-484aa42bf1fe")
+IBackgroundCopyJob5 : public IBackgroundCopyJob4
+{
+ virtual HRESULT STDMETHODCALLTYPE SetProperty(
+ BITS_JOB_PROPERTY_ID id,
+ BITS_JOB_PROPERTY_VALUE value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProperty(
+ BITS_JOB_PROPERTY_ID id,
+ BITS_JOB_PROPERTY_VALUE *value) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IBackgroundCopyJob5, 0xe847030c, 0xbbba, 0x4657, 0xaf,0x6d, 0x48,0x4a,0xa4,0x2b,0xf1,0xfe)
+#endif
+#else
+typedef struct IBackgroundCopyJob5Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IBackgroundCopyJob5 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IBackgroundCopyJob5 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IBackgroundCopyJob5 *This);
+
+ /*** IBackgroundCopyJob methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddFileSet)(
+ IBackgroundCopyJob5 *This,
+ ULONG cFileCount,
+ BG_FILE_INFO *pFileSet);
+
+ HRESULT (STDMETHODCALLTYPE *AddFile)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumFiles)(
+ IBackgroundCopyJob5 *This,
+ IEnumBackgroundCopyFiles **pEnum);
+
+ HRESULT (STDMETHODCALLTYPE *Suspend)(
+ IBackgroundCopyJob5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Resume)(
+ IBackgroundCopyJob5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Cancel)(
+ IBackgroundCopyJob5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *Complete)(
+ IBackgroundCopyJob5 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetId)(
+ IBackgroundCopyJob5 *This,
+ GUID *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetType)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_TYPE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetProgress)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_PROGRESS *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetTimes)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_TIMES *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetState)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_STATE *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetError)(
+ IBackgroundCopyJob5 *This,
+ IBackgroundCopyError **ppError);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwner)(
+ IBackgroundCopyJob5 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
+ IBackgroundCopyJob5 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetDescription)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetDescription)(
+ IBackgroundCopyJob5 *This,
+ LPWSTR *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetPriority)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_PRIORITY Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetPriority)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_PRIORITY *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyFlags)(
+ IBackgroundCopyJob5 *This,
+ ULONG Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyFlags)(
+ IBackgroundCopyJob5 *This,
+ ULONG *pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetNotifyInterface)(
+ IBackgroundCopyJob5 *This,
+ IUnknown *Val);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyInterface)(
+ IBackgroundCopyJob5 *This,
+ IUnknown **pVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetMinimumRetryDelay)(
+ IBackgroundCopyJob5 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetMinimumRetryDelay)(
+ IBackgroundCopyJob5 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *SetNoProgressTimeout)(
+ IBackgroundCopyJob5 *This,
+ ULONG Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetNoProgressTimeout)(
+ IBackgroundCopyJob5 *This,
+ ULONG *Seconds);
+
+ HRESULT (STDMETHODCALLTYPE *GetErrorCount)(
+ IBackgroundCopyJob5 *This,
+ ULONG *Errors);
+
+ HRESULT (STDMETHODCALLTYPE *SetProxySettings)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_PROXY_USAGE ProxyUsage,
+ const WCHAR *ProxyList,
+ const WCHAR *ProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *GetProxySettings)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_PROXY_USAGE *pProxyUsage,
+ LPWSTR *pProxyList,
+ LPWSTR *pProxyBypassList);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IBackgroundCopyJob5 *This);
+
+ /*** IBackgroundCopyJob2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetNotifyCmdLine)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR prog,
+ LPCWSTR params);
+
+ HRESULT (STDMETHODCALLTYPE *GetNotifyCmdLine)(
+ IBackgroundCopyJob5 *This,
+ LPWSTR *prog,
+ LPWSTR *params);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyProgress)(
+ IBackgroundCopyJob5 *This,
+ BG_JOB_REPLY_PROGRESS *progress);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyData)(
+ IBackgroundCopyJob5 *This,
+ byte **pBuffer,
+ UINT64 *pLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetReplyFileName)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR filename);
+
+ HRESULT (STDMETHODCALLTYPE *GetReplyFileName)(
+ IBackgroundCopyJob5 *This,
+ LPWSTR *pFilename);
+
+ HRESULT (STDMETHODCALLTYPE *SetCredentials)(
+ IBackgroundCopyJob5 *This,
+ BG_AUTH_CREDENTIALS *cred);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveCredentials)(
+ IBackgroundCopyJob5 *This,
+ BG_AUTH_TARGET target,
+ BG_AUTH_SCHEME scheme);
+
+ /*** IBackgroundCopyJob3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ReplaceRemotePrefix)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR OldPrefix,
+ LPCWSTR NewPrefix);
+
+ HRESULT (STDMETHODCALLTYPE *AddFileWithRanges)(
+ IBackgroundCopyJob5 *This,
+ LPCWSTR RemoteUrl,
+ LPCWSTR LocalName,
+ DWORD RangeCount,
+ BG_FILE_RANGE Ranges[]);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileACLFlags)(
+ IBackgroundCopyJob5 *This,
+ DWORD Flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetFileACLFlags)(
+ IBackgroundCopyJob5 *This,
+ DWORD *Flags);
+
+ /*** IBackgroundCopyJob4 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPeerCachingFlags)(
+ IBackgroundCopyJob5 *This,
+ DWORD flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetPeerCachingFlags)(
+ IBackgroundCopyJob5 *This,
+ DWORD *flags);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwnerIntegrityLevel)(
+ IBackgroundCopyJob5 *This,
+ ULONG *level);
+
+ HRESULT (STDMETHODCALLTYPE *GetOwnerElevationState)(
+ IBackgroundCopyJob5 *This,
+ WINBOOL *elevated);
+
+ HRESULT (STDMETHODCALLTYPE *SetMaximumDownloadTime)(
+ IBackgroundCopyJob5 *This,
+ ULONG timeout);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaximumDownloadTime)(
+ IBackgroundCopyJob5 *This,
+ ULONG *timeout);
+
+ /*** IBackgroundCopyJob5 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetProperty)(
+ IBackgroundCopyJob5 *This,
+ BITS_JOB_PROPERTY_ID id,
+ BITS_JOB_PROPERTY_VALUE value);
+
+ HRESULT (STDMETHODCALLTYPE *GetProperty)(
+ IBackgroundCopyJob5 *This,
+ BITS_JOB_PROPERTY_ID id,
+ BITS_JOB_PROPERTY_VALUE *value);
+
+ END_INTERFACE
+} IBackgroundCopyJob5Vtbl;
+
+interface IBackgroundCopyJob5 {
+ CONST_VTBL IBackgroundCopyJob5Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IBackgroundCopyJob5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IBackgroundCopyJob5_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IBackgroundCopyJob5_Release(This) (This)->lpVtbl->Release(This)
+/*** IBackgroundCopyJob methods ***/
+#define IBackgroundCopyJob5_AddFileSet(This,cFileCount,pFileSet) (This)->lpVtbl->AddFileSet(This,cFileCount,pFileSet)
+#define IBackgroundCopyJob5_AddFile(This,RemoteUrl,LocalName) (This)->lpVtbl->AddFile(This,RemoteUrl,LocalName)
+#define IBackgroundCopyJob5_EnumFiles(This,pEnum) (This)->lpVtbl->EnumFiles(This,pEnum)
+#define IBackgroundCopyJob5_Suspend(This) (This)->lpVtbl->Suspend(This)
+#define IBackgroundCopyJob5_Resume(This) (This)->lpVtbl->Resume(This)
+#define IBackgroundCopyJob5_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IBackgroundCopyJob5_Complete(This) (This)->lpVtbl->Complete(This)
+#define IBackgroundCopyJob5_GetId(This,pVal) (This)->lpVtbl->GetId(This,pVal)
+#define IBackgroundCopyJob5_GetType(This,pVal) (This)->lpVtbl->GetType(This,pVal)
+#define IBackgroundCopyJob5_GetProgress(This,pVal) (This)->lpVtbl->GetProgress(This,pVal)
+#define IBackgroundCopyJob5_GetTimes(This,pVal) (This)->lpVtbl->GetTimes(This,pVal)
+#define IBackgroundCopyJob5_GetState(This,pVal) (This)->lpVtbl->GetState(This,pVal)
+#define IBackgroundCopyJob5_GetError(This,ppError) (This)->lpVtbl->GetError(This,ppError)
+#define IBackgroundCopyJob5_GetOwner(This,pVal) (This)->lpVtbl->GetOwner(This,pVal)
+#define IBackgroundCopyJob5_SetDisplayName(This,Val) (This)->lpVtbl->SetDisplayName(This,Val)
+#define IBackgroundCopyJob5_GetDisplayName(This,pVal) (This)->lpVtbl->GetDisplayName(This,pVal)
+#define IBackgroundCopyJob5_SetDescription(This,Val) (This)->lpVtbl->SetDescription(This,Val)
+#define IBackgroundCopyJob5_GetDescription(This,pVal) (This)->lpVtbl->GetDescription(This,pVal)
+#define IBackgroundCopyJob5_SetPriority(This,Val) (This)->lpVtbl->SetPriority(This,Val)
+#define IBackgroundCopyJob5_GetPriority(This,pVal) (This)->lpVtbl->GetPriority(This,pVal)
+#define IBackgroundCopyJob5_SetNotifyFlags(This,Val) (This)->lpVtbl->SetNotifyFlags(This,Val)
+#define IBackgroundCopyJob5_GetNotifyFlags(This,pVal) (This)->lpVtbl->GetNotifyFlags(This,pVal)
+#define IBackgroundCopyJob5_SetNotifyInterface(This,Val) (This)->lpVtbl->SetNotifyInterface(This,Val)
+#define IBackgroundCopyJob5_GetNotifyInterface(This,pVal) (This)->lpVtbl->GetNotifyInterface(This,pVal)
+#define IBackgroundCopyJob5_SetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->SetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob5_GetMinimumRetryDelay(This,Seconds) (This)->lpVtbl->GetMinimumRetryDelay(This,Seconds)
+#define IBackgroundCopyJob5_SetNoProgressTimeout(This,Seconds) (This)->lpVtbl->SetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob5_GetNoProgressTimeout(This,Seconds) (This)->lpVtbl->GetNoProgressTimeout(This,Seconds)
+#define IBackgroundCopyJob5_GetErrorCount(This,Errors) (This)->lpVtbl->GetErrorCount(This,Errors)
+#define IBackgroundCopyJob5_SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList) (This)->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList)
+#define IBackgroundCopyJob5_GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList) (This)->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList)
+#define IBackgroundCopyJob5_TakeOwnership(This) (This)->lpVtbl->TakeOwnership(This)
+/*** IBackgroundCopyJob2 methods ***/
+#define IBackgroundCopyJob5_SetNotifyCmdLine(This,prog,params) (This)->lpVtbl->SetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob5_GetNotifyCmdLine(This,prog,params) (This)->lpVtbl->GetNotifyCmdLine(This,prog,params)
+#define IBackgroundCopyJob5_GetReplyProgress(This,progress) (This)->lpVtbl->GetReplyProgress(This,progress)
+#define IBackgroundCopyJob5_GetReplyData(This,pBuffer,pLength) (This)->lpVtbl->GetReplyData(This,pBuffer,pLength)
+#define IBackgroundCopyJob5_SetReplyFileName(This,filename) (This)->lpVtbl->SetReplyFileName(This,filename)
+#define IBackgroundCopyJob5_GetReplyFileName(This,pFilename) (This)->lpVtbl->GetReplyFileName(This,pFilename)
+#define IBackgroundCopyJob5_SetCredentials(This,cred) (This)->lpVtbl->SetCredentials(This,cred)
+#define IBackgroundCopyJob5_RemoveCredentials(This,target,scheme) (This)->lpVtbl->RemoveCredentials(This,target,scheme)
+/*** IBackgroundCopyJob3 methods ***/
+#define IBackgroundCopyJob5_ReplaceRemotePrefix(This,OldPrefix,NewPrefix) (This)->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix)
+#define IBackgroundCopyJob5_AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges) (This)->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges)
+#define IBackgroundCopyJob5_SetFileACLFlags(This,Flags) (This)->lpVtbl->SetFileACLFlags(This,Flags)
+#define IBackgroundCopyJob5_GetFileACLFlags(This,Flags) (This)->lpVtbl->GetFileACLFlags(This,Flags)
+/*** IBackgroundCopyJob4 methods ***/
+#define IBackgroundCopyJob5_SetPeerCachingFlags(This,flags) (This)->lpVtbl->SetPeerCachingFlags(This,flags)
+#define IBackgroundCopyJob5_GetPeerCachingFlags(This,flags) (This)->lpVtbl->GetPeerCachingFlags(This,flags)
+#define IBackgroundCopyJob5_GetOwnerIntegrityLevel(This,level) (This)->lpVtbl->GetOwnerIntegrityLevel(This,level)
+#define IBackgroundCopyJob5_GetOwnerElevationState(This,elevated) (This)->lpVtbl->GetOwnerElevationState(This,elevated)
+#define IBackgroundCopyJob5_SetMaximumDownloadTime(This,timeout) (This)->lpVtbl->SetMaximumDownloadTime(This,timeout)
+#define IBackgroundCopyJob5_GetMaximumDownloadTime(This,timeout) (This)->lpVtbl->GetMaximumDownloadTime(This,timeout)
+/*** IBackgroundCopyJob5 methods ***/
+#define IBackgroundCopyJob5_SetProperty(This,id,value) (This)->lpVtbl->SetProperty(This,id,value)
+#define IBackgroundCopyJob5_GetProperty(This,id,value) (This)->lpVtbl->GetProperty(This,id,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_QueryInterface(IBackgroundCopyJob5* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob5_AddRef(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IBackgroundCopyJob5_Release(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IBackgroundCopyJob methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFileSet(IBackgroundCopyJob5* This,ULONG cFileCount,BG_FILE_INFO *pFileSet) {
+ return This->lpVtbl->AddFileSet(This,cFileCount,pFileSet);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFile(IBackgroundCopyJob5* This,LPCWSTR RemoteUrl,LPCWSTR LocalName) {
+ return This->lpVtbl->AddFile(This,RemoteUrl,LocalName);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_EnumFiles(IBackgroundCopyJob5* This,IEnumBackgroundCopyFiles **pEnum) {
+ return This->lpVtbl->EnumFiles(This,pEnum);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_Suspend(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->Suspend(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_Resume(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_Cancel(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_Complete(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->Complete(This);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetId(IBackgroundCopyJob5* This,GUID *pVal) {
+ return This->lpVtbl->GetId(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetType(IBackgroundCopyJob5* This,BG_JOB_TYPE *pVal) {
+ return This->lpVtbl->GetType(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProgress(IBackgroundCopyJob5* This,BG_JOB_PROGRESS *pVal) {
+ return This->lpVtbl->GetProgress(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetTimes(IBackgroundCopyJob5* This,BG_JOB_TIMES *pVal) {
+ return This->lpVtbl->GetTimes(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetState(IBackgroundCopyJob5* This,BG_JOB_STATE *pVal) {
+ return This->lpVtbl->GetState(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetError(IBackgroundCopyJob5* This,IBackgroundCopyError **ppError) {
+ return This->lpVtbl->GetError(This,ppError);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwner(IBackgroundCopyJob5* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetOwner(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetDisplayName(IBackgroundCopyJob5* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDisplayName(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetDisplayName(IBackgroundCopyJob5* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDisplayName(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetDescription(IBackgroundCopyJob5* This,LPCWSTR Val) {
+ return This->lpVtbl->SetDescription(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetDescription(IBackgroundCopyJob5* This,LPWSTR *pVal) {
+ return This->lpVtbl->GetDescription(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetPriority(IBackgroundCopyJob5* This,BG_JOB_PRIORITY Val) {
+ return This->lpVtbl->SetPriority(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetPriority(IBackgroundCopyJob5* This,BG_JOB_PRIORITY *pVal) {
+ return This->lpVtbl->GetPriority(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyFlags(IBackgroundCopyJob5* This,ULONG Val) {
+ return This->lpVtbl->SetNotifyFlags(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyFlags(IBackgroundCopyJob5* This,ULONG *pVal) {
+ return This->lpVtbl->GetNotifyFlags(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyInterface(IBackgroundCopyJob5* This,IUnknown *Val) {
+ return This->lpVtbl->SetNotifyInterface(This,Val);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyInterface(IBackgroundCopyJob5* This,IUnknown **pVal) {
+ return This->lpVtbl->GetNotifyInterface(This,pVal);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetMinimumRetryDelay(IBackgroundCopyJob5* This,ULONG Seconds) {
+ return This->lpVtbl->SetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetMinimumRetryDelay(IBackgroundCopyJob5* This,ULONG *Seconds) {
+ return This->lpVtbl->GetMinimumRetryDelay(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNoProgressTimeout(IBackgroundCopyJob5* This,ULONG Seconds) {
+ return This->lpVtbl->SetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNoProgressTimeout(IBackgroundCopyJob5* This,ULONG *Seconds) {
+ return This->lpVtbl->GetNoProgressTimeout(This,Seconds);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetErrorCount(IBackgroundCopyJob5* This,ULONG *Errors) {
+ return This->lpVtbl->GetErrorCount(This,Errors);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetProxySettings(IBackgroundCopyJob5* This,BG_JOB_PROXY_USAGE ProxyUsage,const WCHAR *ProxyList,const WCHAR *ProxyBypassList) {
+ return This->lpVtbl->SetProxySettings(This,ProxyUsage,ProxyList,ProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProxySettings(IBackgroundCopyJob5* This,BG_JOB_PROXY_USAGE *pProxyUsage,LPWSTR *pProxyList,LPWSTR *pProxyBypassList) {
+ return This->lpVtbl->GetProxySettings(This,pProxyUsage,pProxyList,pProxyBypassList);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_TakeOwnership(IBackgroundCopyJob5* This) {
+ return This->lpVtbl->TakeOwnership(This);
+}
+/*** IBackgroundCopyJob2 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetNotifyCmdLine(IBackgroundCopyJob5* This,LPCWSTR prog,LPCWSTR params) {
+ return This->lpVtbl->SetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetNotifyCmdLine(IBackgroundCopyJob5* This,LPWSTR *prog,LPWSTR *params) {
+ return This->lpVtbl->GetNotifyCmdLine(This,prog,params);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyProgress(IBackgroundCopyJob5* This,BG_JOB_REPLY_PROGRESS *progress) {
+ return This->lpVtbl->GetReplyProgress(This,progress);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyData(IBackgroundCopyJob5* This,byte **pBuffer,UINT64 *pLength) {
+ return This->lpVtbl->GetReplyData(This,pBuffer,pLength);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetReplyFileName(IBackgroundCopyJob5* This,LPCWSTR filename) {
+ return This->lpVtbl->SetReplyFileName(This,filename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetReplyFileName(IBackgroundCopyJob5* This,LPWSTR *pFilename) {
+ return This->lpVtbl->GetReplyFileName(This,pFilename);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetCredentials(IBackgroundCopyJob5* This,BG_AUTH_CREDENTIALS *cred) {
+ return This->lpVtbl->SetCredentials(This,cred);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_RemoveCredentials(IBackgroundCopyJob5* This,BG_AUTH_TARGET target,BG_AUTH_SCHEME scheme) {
+ return This->lpVtbl->RemoveCredentials(This,target,scheme);
+}
+/*** IBackgroundCopyJob3 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_ReplaceRemotePrefix(IBackgroundCopyJob5* This,LPCWSTR OldPrefix,LPCWSTR NewPrefix) {
+ return This->lpVtbl->ReplaceRemotePrefix(This,OldPrefix,NewPrefix);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_AddFileWithRanges(IBackgroundCopyJob5* This,LPCWSTR RemoteUrl,LPCWSTR LocalName,DWORD RangeCount,BG_FILE_RANGE Ranges[]) {
+ return This->lpVtbl->AddFileWithRanges(This,RemoteUrl,LocalName,RangeCount,Ranges);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetFileACLFlags(IBackgroundCopyJob5* This,DWORD Flags) {
+ return This->lpVtbl->SetFileACLFlags(This,Flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetFileACLFlags(IBackgroundCopyJob5* This,DWORD *Flags) {
+ return This->lpVtbl->GetFileACLFlags(This,Flags);
+}
+/*** IBackgroundCopyJob4 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetPeerCachingFlags(IBackgroundCopyJob5* This,DWORD flags) {
+ return This->lpVtbl->SetPeerCachingFlags(This,flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetPeerCachingFlags(IBackgroundCopyJob5* This,DWORD *flags) {
+ return This->lpVtbl->GetPeerCachingFlags(This,flags);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwnerIntegrityLevel(IBackgroundCopyJob5* This,ULONG *level) {
+ return This->lpVtbl->GetOwnerIntegrityLevel(This,level);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetOwnerElevationState(IBackgroundCopyJob5* This,WINBOOL *elevated) {
+ return This->lpVtbl->GetOwnerElevationState(This,elevated);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetMaximumDownloadTime(IBackgroundCopyJob5* This,ULONG timeout) {
+ return This->lpVtbl->SetMaximumDownloadTime(This,timeout);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetMaximumDownloadTime(IBackgroundCopyJob5* This,ULONG *timeout) {
+ return This->lpVtbl->GetMaximumDownloadTime(This,timeout);
+}
+/*** IBackgroundCopyJob5 methods ***/
+static FORCEINLINE HRESULT IBackgroundCopyJob5_SetProperty(IBackgroundCopyJob5* This,BITS_JOB_PROPERTY_ID id,BITS_JOB_PROPERTY_VALUE value) {
+ return This->lpVtbl->SetProperty(This,id,value);
+}
+static FORCEINLINE HRESULT IBackgroundCopyJob5_GetProperty(IBackgroundCopyJob5* This,BITS_JOB_PROPERTY_ID id,BITS_JOB_PROPERTY_VALUE *value) {
+ return This->lpVtbl->GetProperty(This,id,value);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IBackgroundCopyJob5_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __bits5_0_h__ */
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__
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__
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__;
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__
lib/libc/include/any-windows-any/computecore.h
@@ -0,0 +1,82 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _HYPERV_COMPUTECORE_H_
+#define _HYPERV_COMPUTECORE_H_
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwindef.h>
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#include <computedefs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI HcsEnumerateComputeSystems (PCWSTR query, HCS_OPERATION operation);
+HRESULT WINAPI HcsEnumerateComputeSystemsInNamespace (PCWSTR idNamespace, PCWSTR query, HCS_OPERATION operation);
+HCS_OPERATION WINAPI HcsCreateOperation (const void *context, HCS_OPERATION_COMPLETION callback);
+void WINAPI HcsCloseOperation (HCS_OPERATION operation);
+void* WINAPI HcsGetOperationContext (HCS_OPERATION operation);
+HRESULT WINAPI HcsSetOperationContext (HCS_OPERATION operation, const void *context);
+HCS_SYSTEM WINAPI HcsGetComputeSystemFromOperation (HCS_OPERATION operation);
+HCS_PROCESS WINAPI HcsGetProcessFromOperation (HCS_OPERATION operation);
+HCS_OPERATION_TYPE WINAPI HcsGetOperationType (HCS_OPERATION operation);
+UINT64 WINAPI HcsGetOperationId (HCS_OPERATION operation);
+HRESULT WINAPI HcsGetOperationResult (HCS_OPERATION operation, PWSTR *resultDocument);
+HRESULT WINAPI HcsGetOperationResultAndProcessInfo (HCS_OPERATION operation, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument);
+HRESULT WINAPI HcsGetProcessorCompatibilityFromSavedState (PCWSTR RuntimeFileName, PCWSTR *ProcessorFeaturesString);
+HRESULT WINAPI HcsWaitForOperationResult (HCS_OPERATION operation, DWORD timeoutMs, PWSTR *resultDocument);
+HRESULT WINAPI HcsWaitForOperationResultAndProcessInfo (HCS_OPERATION operation, DWORD timeoutMs, HCS_PROCESS_INFORMATION *processInformation, PWSTR *resultDocument);
+HRESULT WINAPI HcsSetOperationCallback (HCS_OPERATION operation, const void *context, HCS_OPERATION_COMPLETION callback);
+HRESULT WINAPI HcsCancelOperation (HCS_OPERATION operation);
+HRESULT WINAPI HcsCreateComputeSystem (PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_SYSTEM *computeSystem);
+HRESULT WINAPI HcsCreateComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, PCWSTR configuration, HCS_OPERATION operation, const HCS_CREATE_OPTIONS *options, HCS_SYSTEM *computeSystem);
+HRESULT WINAPI HcsOpenComputeSystem (PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem);
+HRESULT WINAPI HcsOpenComputeSystemInNamespace (PCWSTR idNamespace, PCWSTR id, DWORD requestedAccess, HCS_SYSTEM *computeSystem);
+void WINAPI HcsCloseComputeSystem (HCS_SYSTEM computeSystem);
+HRESULT WINAPI HcsStartComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsShutDownComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsTerminateComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsCrashComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsPauseComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsResumeComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsSaveComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsGetComputeSystemProperties (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR propertyQuery);
+HRESULT WINAPI HcsModifyComputeSystem (HCS_SYSTEM computeSystem, HCS_OPERATION operation, PCWSTR configuration, HANDLE identity);
+HRESULT WINAPI HcsWaitForComputeSystemExit (HCS_SYSTEM computeSystem, DWORD timeoutMs, PWSTR *result);
+HRESULT WINAPI HcsSetComputeSystemCallback (HCS_SYSTEM computeSystem, HCS_EVENT_OPTIONS callbackOptions, const void *context, HCS_EVENT_CALLBACK callback);
+HRESULT WINAPI HcsCreateProcess (HCS_SYSTEM computeSystem, PCWSTR processParameters, HCS_OPERATION operation, const SECURITY_DESCRIPTOR *securityDescriptor, HCS_PROCESS *process);
+HRESULT WINAPI HcsOpenProcess (HCS_SYSTEM computeSystem, DWORD processId, DWORD requestedAccess, HCS_PROCESS *process);
+void WINAPI HcsCloseProcess (HCS_PROCESS process);
+HRESULT WINAPI HcsTerminateProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsSignalProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR options);
+HRESULT WINAPI HcsGetProcessInfo (HCS_PROCESS process, HCS_OPERATION operation);
+HRESULT WINAPI HcsGetProcessProperties (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR propertyQuery);
+HRESULT WINAPI HcsModifyProcess (HCS_PROCESS process, HCS_OPERATION operation, PCWSTR settings);
+HRESULT WINAPI HcsSetProcessCallback (HCS_PROCESS process, HCS_EVENT_OPTIONS callbackOptions, void *context, HCS_EVENT_CALLBACK callback);
+HRESULT WINAPI HcsWaitForProcessExit (HCS_PROCESS computeSystem, DWORD timeoutMs, PWSTR *result);
+HRESULT WINAPI HcsGetServiceProperties (PCWSTR propertyQuery, PWSTR *result);
+HRESULT WINAPI HcsModifyServiceSettings (PCWSTR settings, PWSTR *result);
+HRESULT WINAPI HcsSubmitWerReport (PCWSTR settings);
+HRESULT WINAPI HcsCreateEmptyGuestStateFile (PCWSTR guestStateFilePath);
+HRESULT WINAPI HcsCreateEmptyRuntimeStateFile (PCWSTR runtimeStateFilePath);
+HRESULT WINAPI HcsGrantVmAccess (PCWSTR vmId, PCWSTR filePath);
+HRESULT WINAPI HcsRevokeVmAccess (PCWSTR vmId, PCWSTR filePath);
+HRESULT WINAPI HcsGrantVmGroupAccess (PCWSTR filePath);
+HRESULT WINAPI HcsRevokeVmGroupAccess (PCWSTR filePath);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* _HYPERV_COMPUTECORE_H_ */
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_ */
lib/libc/include/any-windows-any/computenetwork.h
@@ -0,0 +1,142 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef HCN_CLIENT_H
+#define HCN_CLIENT_H
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwindef.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum HCN_NOTIFICATIONS {
+ HcnNotificationInvalid = 0x00000000,
+ HcnNotificationNetworkPreCreate = 0x00000001,
+ HcnNotificationNetworkCreate = 0x00000002,
+ HcnNotificationNetworkPreDelete = 0x00000003,
+ HcnNotificationNetworkDelete = 0x00000004,
+ HcnNotificationNamespaceCreate = 0x00000005,
+ HcnNotificationNamespaceDelete = 0x00000006,
+ HcnNotificationGuestNetworkServiceCreate = 0x00000007,
+ HcnNotificationGuestNetworkServiceDelete = 0x00000008,
+ HcnNotificationNetworkEndpointAttached = 0x00000009,
+ HcnNotificationNetworkEndpointDetached = 0x00000010,
+ HcnNotificationGuestNetworkServiceStateChanged = 0x00000011,
+ HcnNotificationGuestNetworkServiceInterfaceStateChanged = 0x00000012,
+ HcnNotificationServiceDisconnect = 0x01000000,
+ HcnNotificationFlagsReserved = 0xF0000000
+} HCN_NOTIFICATIONS;
+
+typedef void* HCN_CALLBACK;
+
+typedef void (CALLBACK *HCN_NOTIFICATION_CALLBACK)(DWORD NotificationType, void *Context, HRESULT NotificationStatus, PCWSTR NotificationData);
+
+typedef void* HCN_NETWORK;
+typedef HCN_NETWORK* PHCN_NETWORK;
+
+HRESULT WINAPI HcnEnumerateNetworks (PCWSTR Query, PWSTR *Networks, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCreateNetwork (REFGUID Id, PCWSTR Settings, PHCN_NETWORK Network, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnOpenNetwork (REFGUID Id, PHCN_NETWORK Network, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnModifyNetwork (HCN_NETWORK Network, PCWSTR Settings, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnQueryNetworkProperties (HCN_NETWORK Network, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnDeleteNetwork (REFGUID Id, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCloseNetwork (HCN_NETWORK Network);
+
+typedef void* HCN_NAMESPACE;
+typedef HCN_NAMESPACE* PHCN_NAMESPACE;
+
+HRESULT WINAPI HcnEnumerateNamespaces (PCWSTR Query, PWSTR *Namespaces, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCreateNamespace (REFGUID Id, PCWSTR Settings, PHCN_NAMESPACE Namespace, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnOpenNamespace (REFGUID Id, PHCN_NAMESPACE Namespace, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnModifyNamespace (HCN_NAMESPACE Namespace, PCWSTR Settings, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnQueryNamespaceProperties (HCN_NAMESPACE Namespace, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnDeleteNamespace (REFGUID Id, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCloseNamespace (HCN_NAMESPACE Namespace);
+
+typedef void* HCN_ENDPOINT;
+typedef HCN_ENDPOINT* PHCN_ENDPOINT;
+
+HRESULT WINAPI HcnEnumerateEndpoints (PCWSTR Query, PWSTR *Endpoints, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCreateEndpoint (HCN_NETWORK Network, REFGUID Id, PCWSTR Settings, PHCN_ENDPOINT Endpoint, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnOpenEndpoint (REFGUID Id, PHCN_ENDPOINT Endpoint, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnModifyEndpoint (HCN_ENDPOINT Endpoint, PCWSTR Settings, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnQueryEndpointProperties (HCN_ENDPOINT Endpoint, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnDeleteEndpoint (REFGUID Id, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCloseEndpoint (HCN_ENDPOINT Endpoint);
+
+typedef void* HCN_LOADBALANCER;
+typedef HCN_LOADBALANCER* PHCN_LOADBALANCER;
+
+HRESULT WINAPI HcnEnumerateLoadBalancers (PCWSTR Query, PWSTR *LoadBalancer, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCreateLoadBalancer (REFGUID Id, PCWSTR Settings, PHCN_LOADBALANCER LoadBalancer, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnOpenLoadBalancer (REFGUID Id, PHCN_LOADBALANCER LoadBalancer, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnModifyLoadBalancer (HCN_LOADBALANCER LoadBalancer, PCWSTR Settings, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnQueryLoadBalancerProperties (HCN_LOADBALANCER LoadBalancer, PCWSTR Query, PWSTR *Properties, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnDeleteLoadBalancer (REFGUID Id, PWSTR *ErrorRecord);
+HRESULT WINAPI HcnCloseLoadBalancer (HCN_LOADBALANCER LoadBalancer);
+
+typedef void* HCN_SERVICE;
+typedef HCN_SERVICE* PHCN_SERVICE;
+
+HRESULT WINAPI HcnRegisterServiceCallback (HCN_NOTIFICATION_CALLBACK Callback, void *Context, HCN_CALLBACK *CallbackHandle);
+HRESULT WINAPI HcnUnregisterServiceCallback (HCN_CALLBACK CallbackHandle);
+
+typedef void* HCN_GUESTNETWORKSERVICE;
+typedef HCN_GUESTNETWORKSERVICE* PHCN_GUESTNETWORKSERVICE;
+
+HRESULT WINAPI HcnRegisterGuestNetworkServiceCallback (HCN_GUESTNETWORKSERVICE GuestNetworkService, HCN_NOTIFICATION_CALLBACK Callback, void* Context, HCN_CALLBACK* CallbackHandle);
+HRESULT WINAPI HcnUnregisterGuestNetworkServiceCallback (HCN_CALLBACK CallbackHandle);
+HRESULT WINAPI HcnCreateGuestNetworkService (REFGUID Id, PCWSTR Settings, PHCN_GUESTNETWORKSERVICE GuestNetworkService, PWSTR* ErrorRecord);
+HRESULT WINAPI HcnCloseGuestNetworkService (HCN_GUESTNETWORKSERVICE GuestNetworkService);
+HRESULT WINAPI HcnModifyGuestNetworkService (HCN_GUESTNETWORKSERVICE GuestNetworkService, PCWSTR Settings, PWSTR* ErrorRecord);
+HRESULT WINAPI HcnDeleteGuestNetworkService (REFGUID Id, PWSTR* ErrorRecord);
+
+typedef enum tagHCN_PORT_PROTOCOL {
+ HCN_PORT_PROTOCOL_TCP = 0x01,
+ HCN_PORT_PROTOCOL_UDP = 0x02,
+ HCN_PORT_PROTOCOL_BOTH = 0x03
+} HCN_PORT_PROTOCOL;
+
+typedef enum tagHCN_PORT_ACCESS {
+ HCN_PORT_ACCESS_EXCLUSIVE = 0x01,
+ HCN_PORT_ACCESS_SHARED = 0x02
+} HCN_PORT_ACCESS;
+
+typedef struct tagHCN_PORT_RANGE_RESERVATION {
+ USHORT startingPort;
+ USHORT endingPort;
+} HCN_PORT_RANGE_RESERVATION;
+
+typedef struct tagHCN_PORT_RANGE_ENTRY {
+ GUID OwningPartitionId;
+ GUID TargetPartitionId;
+ HCN_PORT_PROTOCOL Protocol;
+ UINT64 Priority;
+ UINT32 ReservationType;
+ UINT32 SharingFlags;
+ UINT32 DeliveryMode;
+ UINT16 StartingPort;
+ UINT16 EndingPort;
+} HCN_PORT_RANGE_ENTRY, *PHCN_PORT_RANGE_ENTRY;
+
+HRESULT WINAPI HcnReserveGuestNetworkServicePort (HCN_GUESTNETWORKSERVICE GuestNetworkService, HCN_PORT_PROTOCOL Protocol, HCN_PORT_ACCESS Access, USHORT Port, HANDLE* PortReservationHandle);
+HRESULT WINAPI HcnReserveGuestNetworkServicePortRange (HCN_GUESTNETWORKSERVICE GuestNetworkService, USHORT PortCount, HCN_PORT_RANGE_RESERVATION* PortRangeReservation, HANDLE* PortReservationHandle);
+HRESULT WINAPI HcnReleaseGuestNetworkServicePortReservationHandle (HANDLE PortReservationHandle);
+HRESULT WINAPI HcnEnumerateGuestNetworkPortReservations (ULONG* ReturnCount, HCN_PORT_RANGE_ENTRY** PortEntries);
+VOID WINAPI HcnFreeGuestNetworkPortReservations (HCN_PORT_RANGE_ENTRY* PortEntries);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* HCN_CLIENT_H */
lib/libc/include/any-windows-any/computestorage.h
@@ -0,0 +1,40 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _HYPERV_COMPUTESTORAGE_H_
+#define _HYPERV_COMPUTESTORAGE_H_
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwindef.h>
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WINAPI HcsImportLayer (PCWSTR layerPath, PCWSTR sourceFolderPath, PCWSTR layerData);
+HRESULT WINAPI HcsExportLayer (PCWSTR layerPath, PCWSTR exportFolderPath, PCWSTR layerData, PCWSTR options);
+HRESULT WINAPI HcsExportLegacyWritableLayer (PCWSTR writableLayerMountPath, PCWSTR writableLayerFolderPath, PCWSTR exportFolderPath, PCWSTR layerData);
+HRESULT WINAPI HcsDestroyLayer (PCWSTR layerPath);
+HRESULT WINAPI HcsSetupBaseOSLayer (PCWSTR layerPath, HANDLE vhdHandle, PCWSTR options);
+HRESULT WINAPI HcsInitializeWritableLayer (PCWSTR writableLayerPath, PCWSTR layerData, PCWSTR options);
+HRESULT WINAPI HcsInitializeLegacyWritableLayer (PCWSTR writableLayerMountPath, PCWSTR writableLayerFolderPath, PCWSTR layerData, PCWSTR options);
+HRESULT WINAPI HcsAttachLayerStorageFilter (PCWSTR layerPath, PCWSTR layerData);
+HRESULT WINAPI HcsDetachLayerStorageFilter (PCWSTR layerPath);
+HRESULT WINAPI HcsFormatWritableLayerVhd (HANDLE vhdHandle);
+HRESULT WINAPI HcsGetLayerVhdMountPath (HANDLE vhdHandle, PWSTR *mountPath);
+HRESULT WINAPI HcsSetupBaseOSVolume (PCWSTR layerPath, PCWSTR volumePath, PCWSTR options);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* _HYPERV_COMPUTESTORAGE_H_ */
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__
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;
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__
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
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__
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__
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,
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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,
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__
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__
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);
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__
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__
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__
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__
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;
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__
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__
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__
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__
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__
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__
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__
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__
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__
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
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__
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__
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__
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__
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
*/
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/dxva.h
@@ -563,6 +563,275 @@ typedef struct _DXVA_Status_VPx
USHORT wNumMbsAffected;
} DXVA_Status_VPx, *LPDXVA_Status_VPx;
+
+#define _DIRECTX_AV1_VA_
+
+/* AV1 decoder GUIDs */
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);
+DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);
+DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);
+DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
+
+/* AV1 picture entry data structure */
+typedef struct _DXVA_PicEntry_AV1 {
+ UINT width;
+ UINT height;
+
+ INT wmmat[6];
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR wminvalid : 1;
+ UCHAR wmtype : 2;
+ UCHAR Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR GlobalMotionFlags;
+ } __C89_NAMELESSUNIONNAME;
+ UCHAR Index;
+ UINT16 Reserved16Bits;
+} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1;
+
+/* AV1 picture parameters data structure */
+typedef struct _DXVA_PicParams_AV1 {
+ UINT width;
+ UINT height;
+
+ UINT max_width;
+ UINT max_height;
+
+ UCHAR CurrPicTextureIndex;
+ UCHAR superres_denom;
+ UCHAR bitdepth;
+ UCHAR seq_profile;
+
+ struct {
+ UCHAR cols;
+ UCHAR rows;
+ USHORT context_update_id;
+ USHORT widths[64];
+ USHORT heights[64];
+ } tiles;
+
+ union {
+ __C89_NAMELESS struct {
+ UINT use_128x128_superblock : 1;
+ UINT intra_edge_filter : 1;
+ UINT interintra_compound : 1;
+ UINT masked_compound : 1;
+ UINT warped_motion : 1;
+ UINT dual_filter : 1;
+ UINT jnt_comp : 1;
+ UINT screen_content_tools : 1;
+ UINT integer_mv : 1;
+ UINT cdef : 1;
+ UINT restoration : 1;
+ UINT film_grain : 1;
+ UINT intrabc : 1;
+ UINT high_precision_mv : 1;
+ UINT switchable_motion_mode : 1;
+ UINT filter_intra : 1;
+ UINT disable_frame_end_update_cdf : 1;
+ UINT disable_cdf_update : 1;
+ UINT reference_mode : 1;
+ UINT skip_mode : 1;
+ UINT reduced_tx_set : 1;
+ UINT superres : 1;
+ UINT tx_mode : 2;
+ UINT use_ref_frame_mvs : 1;
+ UINT enable_ref_frame_mvs : 1;
+ UINT reference_frame_update : 1;
+ UINT Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UINT32 CodingParamToolFlags;
+ } coding;
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR frame_type : 2;
+ UCHAR show_frame : 1;
+ UCHAR showable_frame : 1;
+ UCHAR subsampling_x : 1;
+ UCHAR subsampling_y : 1;
+ UCHAR mono_chrome : 1;
+ UCHAR Reserved : 1;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR FormatAndPictureInfoFlags;
+ } format;
+
+ UCHAR primary_ref_frame;
+ UCHAR order_hint;
+ UCHAR order_hint_bits;
+
+ DXVA_PicEntry_AV1 frame_refs[7];
+ UCHAR RefFrameMapTextureIndex[8];
+
+ struct {
+ UCHAR filter_level[2];
+ UCHAR filter_level_u;
+ UCHAR filter_level_v;
+
+ UCHAR sharpness_level;
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR mode_ref_delta_enabled : 1;
+ UCHAR mode_ref_delta_update : 1;
+ UCHAR delta_lf_multi : 1;
+ UCHAR delta_lf_present : 1;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+ CHAR ref_deltas[8];
+ CHAR mode_deltas[2];
+ UCHAR delta_lf_res;
+ UCHAR frame_restoration_type[3];
+ USHORT log2_restoration_unit_size[3];
+ UINT16 Reserved16Bits;
+ } loop_filter;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR delta_q_present : 1;
+ UCHAR delta_q_res : 2;
+ UCHAR Reserved : 5;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ UCHAR base_qindex;
+ CHAR y_dc_delta_q;
+ CHAR u_dc_delta_q;
+ CHAR v_dc_delta_q;
+ CHAR u_ac_delta_q;
+ CHAR v_ac_delta_q;
+ UCHAR qm_y;
+ UCHAR qm_u;
+ UCHAR qm_v;
+ UINT16 Reserved16Bits;
+ } quantization;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR damping : 2;
+ UCHAR bits : 2;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR primary : 6;
+ UCHAR secondary : 2;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR combined;
+ } y_strengths[8];
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR primary : 6;
+ UCHAR secondary : 2;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR combined;
+ } uv_strengths[8];
+
+ } cdef;
+
+ UCHAR interp_filter;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ UCHAR enabled : 1;
+ UCHAR update_map : 1;
+ UCHAR update_data : 1;
+ UCHAR temporal_update : 1;
+ UCHAR Reserved : 4;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+ UCHAR Reserved24Bits[3];
+
+ union {
+ __C89_NAMELESS struct {
+ UCHAR alt_q : 1;
+ UCHAR alt_lf_y_v : 1;
+ UCHAR alt_lf_y_h : 1;
+ UCHAR alt_lf_u : 1;
+ UCHAR alt_lf_v : 1;
+ UCHAR ref_frame : 1;
+ UCHAR skip : 1;
+ UCHAR globalmv : 1;
+ } __C89_NAMELESSSTRUCTNAME;
+ UCHAR mask;
+ } feature_mask[8];
+
+ SHORT feature_data[8][8];
+
+ } segmentation;
+
+ struct {
+ __C89_NAMELESS union {
+ __C89_NAMELESS struct {
+ USHORT apply_grain : 1;
+ USHORT scaling_shift_minus8 : 2;
+ USHORT chroma_scaling_from_luma : 1;
+ USHORT ar_coeff_lag : 2;
+ USHORT ar_coeff_shift_minus6 : 2;
+ USHORT grain_scale_shift : 2;
+ USHORT overlap_flag : 1;
+ USHORT clip_to_restricted_range : 1;
+ USHORT matrix_coeff_is_identity : 1;
+ USHORT Reserved : 3;
+ } __C89_NAMELESSSTRUCTNAME;
+ USHORT ControlFlags;
+ } __C89_NAMELESSUNIONNAME;
+
+ USHORT grain_seed;
+ UCHAR scaling_points_y[14][2];
+ UCHAR num_y_points;
+ UCHAR scaling_points_cb[10][2];
+ UCHAR num_cb_points;
+ UCHAR scaling_points_cr[10][2];
+ UCHAR num_cr_points;
+ UCHAR ar_coeffs_y[24];
+ UCHAR ar_coeffs_cb[25];
+ UCHAR ar_coeffs_cr[25];
+ UCHAR cb_mult;
+ UCHAR cb_luma_mult;
+ UCHAR cr_mult;
+ UCHAR cr_luma_mult;
+ UCHAR Reserved8Bits;
+ SHORT cb_offset;
+ SHORT cr_offset;
+ } film_grain;
+
+ UINT Reserved32Bits;
+ UINT StatusReportFeedbackNumber;
+} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1;
+
+/* AV1 tile data structure */
+typedef struct _DXVA_Tile_AV1 {
+ UINT DataOffset;
+ UINT DataSize;
+ USHORT row;
+ USHORT column;
+ UINT16 Reserved16Bits;
+ UCHAR anchor_frame;
+ UCHAR Reserved8Bits;
+} DXVA_Tile_AV1, *LPDXVA_Tile_AV1;
+
+typedef struct _DXVA_Status_AV1 {
+ UINT StatusReportFeedbackNumber;
+ DXVA_PicEntry_AV1 CurrPic;
+ UCHAR BufType;
+ UCHAR Status;
+ UCHAR Reserved8Bits;
+ USHORT NumMbsAffected;
+} DXVA_Status_AV1, *LPDXVA_Status_AV1;
+
#include <poppack.h>
typedef enum _DXVA_VideoChromaSubsampling
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__
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
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__
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__
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__
lib/libc/include/any-windows-any/evr9.h
@@ -1,29 +1,404 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_EVR9
-#define _INC_EVR9
+/*** Autogenerated by WIDL 7.0 from include/evr9.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __evr9_h__
+#define __evr9_h__
+
+/* Forward declarations */
+
+#ifndef __IMFVideoMixerBitmap_FWD_DEFINED__
+#define __IMFVideoMixerBitmap_FWD_DEFINED__
+typedef interface IMFVideoMixerBitmap IMFVideoMixerBitmap;
+#ifdef __cplusplus
+interface IMFVideoMixerBitmap;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoProcessor_FWD_DEFINED__
+#define __IMFVideoProcessor_FWD_DEFINED__
+typedef interface IMFVideoProcessor IMFVideoProcessor;
+#ifdef __cplusplus
+interface IMFVideoProcessor;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
-#if (_WIN32_WINNT >= 0x0600)
+#include <unknwn.h>
+#include <evr.h>
+#include <dxva2api.h>
#ifdef __cplusplus
extern "C" {
#endif
-typedef enum _evr9_tag_MFVideoAlphaBitmapFlags {
- MFVideoAlphaBitmap_EntireDDS = 0x00000001,
- MFVideoAlphaBitmap_SrcColorKey = 0x00000002,
- MFVideoAlphaBitmap_SrcRect = 0x00000004,
- MFVideoAlphaBitmap_DestRect = 0x00000008,
- MFVideoAlphaBitmap_FilterMode = 0x00000010,
- MFVideoAlphaBitmap_Alpha = 0x00000020,
- MFVideoAlphaBitmap_BitMask = 0x0000003f
+typedef struct MFVideoAlphaBitmapParams {
+ DWORD dwFlags;
+ COLORREF clrSrcKey;
+ RECT rcSrc;
+ MFVideoNormalizedRect nrcDest;
+ FLOAT fAlpha;
+ DWORD dwFilterMode;
+} MFVideoAlphaBitmapParams;
+typedef struct MFVideoAlphaBitmap {
+ WINBOOL GetBitmapFromDC;
+ union {
+ HDC hdc;
+ IDirect3DSurface9 *pDDS;
+ } bitmap;
+ MFVideoAlphaBitmapParams params;
+} MFVideoAlphaBitmap;
+typedef enum __WIDL_evr9_generated_name_00000030 {
+ MFVideoAlphaBitmap_EntireDDS = 0x1,
+ MFVideoAlphaBitmap_SrcColorKey = 0x2,
+ MFVideoAlphaBitmap_SrcRect = 0x4,
+ MFVideoAlphaBitmap_DestRect = 0x8,
+ MFVideoAlphaBitmap_FilterMode = 0x10,
+ MFVideoAlphaBitmap_Alpha = 0x20,
+ MFVideoAlphaBitmap_BitMask = 0x3f
} MFVideoAlphaBitmapFlags;
+/*****************************************************************************
+ * IMFVideoMixerBitmap interface
+ */
+#ifndef __IMFVideoMixerBitmap_INTERFACE_DEFINED__
+#define __IMFVideoMixerBitmap_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFVideoMixerBitmap, 0x814c7b20, 0x0fdb, 0x4eec, 0xaf,0x8f, 0xf9,0x57,0xc8,0xf6,0x9e,0xdc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("814c7b20-0fdb-4eec-af8f-f957c8f69edc")
+IMFVideoMixerBitmap : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetAlphaBitmap(
+ const MFVideoAlphaBitmap *bitmap) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ClearAlphaBitmap(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UpdateAlphaBitmapParameters(
+ const MFVideoAlphaBitmapParams *params) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAlphaBitmapParameters(
+ MFVideoAlphaBitmapParams *params) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFVideoMixerBitmap, 0x814c7b20, 0x0fdb, 0x4eec, 0xaf,0x8f, 0xf9,0x57,0xc8,0xf6,0x9e,0xdc)
+#endif
+#else
+typedef struct IMFVideoMixerBitmapVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFVideoMixerBitmap *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFVideoMixerBitmap *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFVideoMixerBitmap *This);
+
+ /*** IMFVideoMixerBitmap methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetAlphaBitmap)(
+ IMFVideoMixerBitmap *This,
+ const MFVideoAlphaBitmap *bitmap);
+
+ HRESULT (STDMETHODCALLTYPE *ClearAlphaBitmap)(
+ IMFVideoMixerBitmap *This);
+
+ HRESULT (STDMETHODCALLTYPE *UpdateAlphaBitmapParameters)(
+ IMFVideoMixerBitmap *This,
+ const MFVideoAlphaBitmapParams *params);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlphaBitmapParameters)(
+ IMFVideoMixerBitmap *This,
+ MFVideoAlphaBitmapParams *params);
+
+ END_INTERFACE
+} IMFVideoMixerBitmapVtbl;
+
+interface IMFVideoMixerBitmap {
+ CONST_VTBL IMFVideoMixerBitmapVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFVideoMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFVideoMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFVideoMixerBitmap methods ***/
+#define IMFVideoMixerBitmap_SetAlphaBitmap(This,bitmap) (This)->lpVtbl->SetAlphaBitmap(This,bitmap)
+#define IMFVideoMixerBitmap_ClearAlphaBitmap(This) (This)->lpVtbl->ClearAlphaBitmap(This)
+#define IMFVideoMixerBitmap_UpdateAlphaBitmapParameters(This,params) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,params)
+#define IMFVideoMixerBitmap_GetAlphaBitmapParameters(This,params) (This)->lpVtbl->GetAlphaBitmapParameters(This,params)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFVideoMixerBitmap_QueryInterface(IMFVideoMixerBitmap* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFVideoMixerBitmap_AddRef(IMFVideoMixerBitmap* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFVideoMixerBitmap_Release(IMFVideoMixerBitmap* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFVideoMixerBitmap methods ***/
+static FORCEINLINE HRESULT IMFVideoMixerBitmap_SetAlphaBitmap(IMFVideoMixerBitmap* This,const MFVideoAlphaBitmap *bitmap) {
+ return This->lpVtbl->SetAlphaBitmap(This,bitmap);
+}
+static FORCEINLINE HRESULT IMFVideoMixerBitmap_ClearAlphaBitmap(IMFVideoMixerBitmap* This) {
+ return This->lpVtbl->ClearAlphaBitmap(This);
+}
+static FORCEINLINE HRESULT IMFVideoMixerBitmap_UpdateAlphaBitmapParameters(IMFVideoMixerBitmap* This,const MFVideoAlphaBitmapParams *params) {
+ return This->lpVtbl->UpdateAlphaBitmapParameters(This,params);
+}
+static FORCEINLINE HRESULT IMFVideoMixerBitmap_GetAlphaBitmapParameters(IMFVideoMixerBitmap* This,MFVideoAlphaBitmapParams *params) {
+ return This->lpVtbl->GetAlphaBitmapParameters(This,params);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFVideoMixerBitmap_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFVideoProcessor interface
+ */
+#ifndef __IMFVideoProcessor_INTERFACE_DEFINED__
+#define __IMFVideoProcessor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFVideoProcessor, 0x6ab0000c, 0xfece, 0x4d1f, 0xa2,0xac, 0xa9,0x57,0x35,0x30,0x65,0x6e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6ab0000c-fece-4d1f-a2ac-a9573530656e")
+IMFVideoProcessor : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoProcessorModes(
+ UINT *count,
+ GUID **modes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
+ GUID *mode,
+ DXVA2_VideoProcessorCaps *caps) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorMode(
+ GUID *mode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVideoProcessorMode(
+ GUID *mode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange(
+ DWORD prop,
+ DXVA2_ValueRange *range) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProcAmpValues(
+ DWORD flags,
+ DXVA2_ProcAmpValues *values) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProcAmpValues(
+ DWORD flags,
+ DXVA2_ProcAmpValues *values) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFilteringRange(
+ DWORD prop,
+ DXVA2_ValueRange *range) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFilteringValue(
+ DWORD prop,
+ DXVA2_Fixed32 *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFilteringValue(
+ DWORD prop,
+ DXVA2_Fixed32 *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
+ COLORREF *color) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
+ COLORREF color) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFVideoProcessor, 0x6ab0000c, 0xfece, 0x4d1f, 0xa2,0xac, 0xa9,0x57,0x35,0x30,0x65,0x6e)
+#endif
+#else
+typedef struct IMFVideoProcessorVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFVideoProcessor *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFVideoProcessor *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFVideoProcessor *This);
+
+ /*** IMFVideoProcessor methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAvailableVideoProcessorModes)(
+ IMFVideoProcessor *This,
+ UINT *count,
+ GUID **modes);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
+ IMFVideoProcessor *This,
+ GUID *mode,
+ DXVA2_VideoProcessorCaps *caps);
+
+ HRESULT (STDMETHODCALLTYPE *GetVideoProcessorMode)(
+ IMFVideoProcessor *This,
+ GUID *mode);
+
+ HRESULT (STDMETHODCALLTYPE *SetVideoProcessorMode)(
+ IMFVideoProcessor *This,
+ GUID *mode);
+
+ HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)(
+ IMFVideoProcessor *This,
+ DWORD prop,
+ DXVA2_ValueRange *range);
+
+ HRESULT (STDMETHODCALLTYPE *GetProcAmpValues)(
+ IMFVideoProcessor *This,
+ DWORD flags,
+ DXVA2_ProcAmpValues *values);
+
+ HRESULT (STDMETHODCALLTYPE *SetProcAmpValues)(
+ IMFVideoProcessor *This,
+ DWORD flags,
+ DXVA2_ProcAmpValues *values);
+
+ HRESULT (STDMETHODCALLTYPE *GetFilteringRange)(
+ IMFVideoProcessor *This,
+ DWORD prop,
+ DXVA2_ValueRange *range);
+
+ HRESULT (STDMETHODCALLTYPE *GetFilteringValue)(
+ IMFVideoProcessor *This,
+ DWORD prop,
+ DXVA2_Fixed32 *value);
+
+ HRESULT (STDMETHODCALLTYPE *SetFilteringValue)(
+ IMFVideoProcessor *This,
+ DWORD prop,
+ DXVA2_Fixed32 *value);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
+ IMFVideoProcessor *This,
+ COLORREF *color);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
+ IMFVideoProcessor *This,
+ COLORREF color);
+
+ END_INTERFACE
+} IMFVideoProcessorVtbl;
+
+interface IMFVideoProcessor {
+ CONST_VTBL IMFVideoProcessorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFVideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFVideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFVideoProcessor_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFVideoProcessor methods ***/
+#define IMFVideoProcessor_GetAvailableVideoProcessorModes(This,count,modes) (This)->lpVtbl->GetAvailableVideoProcessorModes(This,count,modes)
+#define IMFVideoProcessor_GetVideoProcessorCaps(This,mode,caps) (This)->lpVtbl->GetVideoProcessorCaps(This,mode,caps)
+#define IMFVideoProcessor_GetVideoProcessorMode(This,mode) (This)->lpVtbl->GetVideoProcessorMode(This,mode)
+#define IMFVideoProcessor_SetVideoProcessorMode(This,mode) (This)->lpVtbl->SetVideoProcessorMode(This,mode)
+#define IMFVideoProcessor_GetProcAmpRange(This,prop,range) (This)->lpVtbl->GetProcAmpRange(This,prop,range)
+#define IMFVideoProcessor_GetProcAmpValues(This,flags,values) (This)->lpVtbl->GetProcAmpValues(This,flags,values)
+#define IMFVideoProcessor_SetProcAmpValues(This,flags,values) (This)->lpVtbl->SetProcAmpValues(This,flags,values)
+#define IMFVideoProcessor_GetFilteringRange(This,prop,range) (This)->lpVtbl->GetFilteringRange(This,prop,range)
+#define IMFVideoProcessor_GetFilteringValue(This,prop,value) (This)->lpVtbl->GetFilteringValue(This,prop,value)
+#define IMFVideoProcessor_SetFilteringValue(This,prop,value) (This)->lpVtbl->SetFilteringValue(This,prop,value)
+#define IMFVideoProcessor_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
+#define IMFVideoProcessor_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFVideoProcessor_QueryInterface(IMFVideoProcessor* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFVideoProcessor_AddRef(IMFVideoProcessor* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFVideoProcessor_Release(IMFVideoProcessor* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFVideoProcessor methods ***/
+static FORCEINLINE HRESULT IMFVideoProcessor_GetAvailableVideoProcessorModes(IMFVideoProcessor* This,UINT *count,GUID **modes) {
+ return This->lpVtbl->GetAvailableVideoProcessorModes(This,count,modes);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetVideoProcessorCaps(IMFVideoProcessor* This,GUID *mode,DXVA2_VideoProcessorCaps *caps) {
+ return This->lpVtbl->GetVideoProcessorCaps(This,mode,caps);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetVideoProcessorMode(IMFVideoProcessor* This,GUID *mode) {
+ return This->lpVtbl->GetVideoProcessorMode(This,mode);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_SetVideoProcessorMode(IMFVideoProcessor* This,GUID *mode) {
+ return This->lpVtbl->SetVideoProcessorMode(This,mode);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetProcAmpRange(IMFVideoProcessor* This,DWORD prop,DXVA2_ValueRange *range) {
+ return This->lpVtbl->GetProcAmpRange(This,prop,range);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetProcAmpValues(IMFVideoProcessor* This,DWORD flags,DXVA2_ProcAmpValues *values) {
+ return This->lpVtbl->GetProcAmpValues(This,flags,values);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_SetProcAmpValues(IMFVideoProcessor* This,DWORD flags,DXVA2_ProcAmpValues *values) {
+ return This->lpVtbl->SetProcAmpValues(This,flags,values);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetFilteringRange(IMFVideoProcessor* This,DWORD prop,DXVA2_ValueRange *range) {
+ return This->lpVtbl->GetFilteringRange(This,prop,range);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetFilteringValue(IMFVideoProcessor* This,DWORD prop,DXVA2_Fixed32 *value) {
+ return This->lpVtbl->GetFilteringValue(This,prop,value);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_SetFilteringValue(IMFVideoProcessor* This,DWORD prop,DXVA2_Fixed32 *value) {
+ return This->lpVtbl->SetFilteringValue(This,prop,value);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_GetBackgroundColor(IMFVideoProcessor* This,COLORREF *color) {
+ return This->lpVtbl->GetBackgroundColor(This,color);
+}
+static FORCEINLINE HRESULT IMFVideoProcessor_SetBackgroundColor(IMFVideoProcessor* This,COLORREF color) {
+ return This->lpVtbl->SetBackgroundColor(This,color);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFVideoProcessor_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
#ifdef __cplusplus
}
#endif
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-#endif /*_INC_EVR9*/
+
+#endif /* __evr9_h__ */
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__
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__
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
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
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__
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/httpext.h
@@ -6,6 +6,10 @@
#ifndef _HTTPEXT_H_
#define _HTTPEXT_H_
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
#include <windows.h>
#ifdef __cplusplus
@@ -60,6 +64,14 @@ extern "C" {
#define HSE_REQ_GET_CACHE_INVALIDATION_CALLBACK (HSE_REQ_END_RESERVED+40)
#define HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN (HSE_REQ_END_RESERVED+41)
#define HSE_REQ_GET_TRACE_INFO (HSE_REQ_END_RESERVED+42)
+#define HSE_REQ_SET_FLUSH_FLAG (HSE_REQ_END_RESERVED+43)
+#define HSE_REQ_GET_TRACE_INFO_EX (HSE_REQ_END_RESERVED+44)
+#define HSE_REQ_RAISE_TRACE_EVENT (HSE_REQ_END_RESERVED+45)
+#define HSE_REQ_GET_CONFIG_OBJECT (HSE_REQ_END_RESERVED+46)
+#define HSE_REQ_GET_WORKER_PROCESS_SETTINGS (HSE_REQ_END_RESERVED+47)
+#define HSE_REQ_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK (HSE_REQ_END_RESERVED+48)
+#define HSE_REQ_CANCEL_IO (HSE_REQ_END_RESERVED+49)
+#define HSE_REQ_GET_CHANNEL_BINDING_TOKEN (HSE_REQ_END_RESERVED+50)
#define HSE_TERM_ADVISORY_UNLOAD 0x00000001
#define HSE_TERM_MUST_UNLOAD 0x00000002
@@ -72,6 +84,7 @@ extern "C" {
#define HSE_IO_FINAL_SEND 0x00000010
#define HSE_IO_CACHE_RESPONSE 0x00000020
+#define HSE_IO_TRY_SKIP_CUSTOM_ERRORS 0x00000040
typedef LPVOID HCONN;
@@ -159,6 +172,7 @@ extern "C" {
#define HSE_EXEC_URL_IGNORE_VALIDATION_AND_RANGE 0x10
#define HSE_EXEC_URL_DISABLE_CUSTOM_ERROR 0x20
#define HSE_EXEC_URL_SSI_CMD 0x40
+#define HSE_EXEC_URL_HTTP_CACHE_ELIGIBLE 0x80
typedef struct _HSE_EXEC_URL_USER_INFO {
HANDLE hImpersonationToken;
@@ -242,6 +256,8 @@ extern "C" {
DWORD dwReserved2;
} HSE_TRACE_INFO,*LPHSE_TRACE_INFO;
+ typedef HRESULT (WINAPI *PFN_HSE_GET_PROTOCOL_MANAGER_CUSTOM_INTERFACE_CALLBACK)(LPCWSTR pszProtocolManagerDll, LPCWSTR pszProtocolManagerDllInitFunction, DWORD dwCustomInterfaceId, PVOID *ppCustomInterface );
+
#define HSE_APP_FLAG_IN_PROCESS 0
#define HSE_APP_FLAG_ISOLATED_OOP 1
#define HSE_APP_FLAG_POOLED_OOP 2
@@ -257,4 +273,7 @@ extern "C" {
#ifdef __cplusplus
}
#endif
-#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* _HTTPEXT_H_ */
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/intrin.h
@@ -67,6 +67,10 @@ extern "C" {
#endif
#include <x86intrin.h>
+#include <cpuid.h>
+
+/* Undefine the GCC one taking 5 parameters to prefer the mingw-w64 one. */
+#undef __cpuid
/* Before 4.9.2, x86intrin.h had broken versions of these. */
#undef _lrotl
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)
lib/libc/include/any-windows-any/ioringapi.h
@@ -0,0 +1,140 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _APISET_IORING_
+#define _APISET_IORING_
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwindef.h>
+#include <minwinbase.h>
+#include <ntioring_x.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#if NTDDI_VERSION >= NTDDI_WIN10_CO
+
+DECLARE_HANDLE(HIORING);
+
+typedef enum IORING_SQE_FLAGS {
+ IOSQE_FLAGS_NONE = 0
+} IORING_SQE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(IORING_SQE_FLAGS)
+
+typedef enum IORING_CREATE_REQUIRED_FLAGS {
+ IORING_CREATE_REQUIRED_FLAGS_NONE = 0
+} IORING_CREATE_REQUIRED_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(IORING_CREATE_REQUIRED_FLAGS)
+
+typedef enum IORING_CREATE_ADVISORY_FLAGS {
+ IORING_CREATE_ADVISORY_FLAGS_NONE = 0
+} IORING_CREATE_ADVISORY_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(IORING_CREATE_ADVISORY_FLAGS)
+
+typedef struct IORING_CREATE_FLAGS {
+ IORING_CREATE_REQUIRED_FLAGS Required;
+ IORING_CREATE_ADVISORY_FLAGS Advisory;
+} IORING_CREATE_FLAGS;
+
+typedef struct IORING_INFO {
+ IORING_VERSION IoRingVersion;
+ IORING_CREATE_FLAGS Flags;
+ UINT32 SubmissionQueueSize;
+ UINT32 CompletionQueueSize;
+} IORING_INFO;
+
+typedef struct IORING_CAPABILITIES {
+ IORING_VERSION MaxVersion;
+ UINT32 MaxSubmissionQueueSize;
+ UINT32 MaxCompletionQueueSize;
+ IORING_FEATURE_FLAGS FeatureFlags;
+} IORING_CAPABILITIES;
+
+typedef enum IORING_REF_KIND {
+ IORING_REF_RAW,
+ IORING_REF_REGISTERED
+} IORING_REF_KIND;
+
+typedef struct IORING_HANDLE_REF {
+#ifdef __cplusplus
+ explicit IORING_HANDLE_REF(HANDLE h) : Kind(IORING_REF_KIND::IORING_REF_RAW), Handle(h) {}
+ explicit IORING_HANDLE_REF(UINT32 index) : Kind(IORING_REF_KIND::IORING_REF_REGISTERED), Handle(index) {}
+#endif
+
+ IORING_REF_KIND Kind;
+ union HandleUnion {
+#ifdef __cplusplus
+ HandleUnion(HANDLE h) : Handle(h) {}
+ HandleUnion(UINT32 index) : Index(index) {}
+#endif
+ HANDLE Handle;
+ UINT32 Index;
+ } Handle;
+} IORING_HANDLE_REF;
+
+#ifdef __cplusplus
+#define IoRingHandleRefFromHandle(h) IORING_HANDLE_REF(static_cast<HANDLE>(h))
+#define IoRingHandleRefFromIndex(i) IORING_HANDLE_REF(static_cast<UINT32>(i))
+#else
+#define IoRingHandleRefFromHandle(h) {IORING_REF_RAW, {.Handle = h}}
+#define IoRingHandleRefFromIndex(i) {IORING_REF_REGISTERED, {.Index = i}}
+#endif
+
+typedef struct IORING_BUFFER_REF {
+#ifdef __cplusplus
+ explicit IORING_BUFFER_REF(void* address) : Kind(IORING_REF_KIND::IORING_REF_RAW), Buffer(address) {}
+ explicit IORING_BUFFER_REF(IORING_REGISTERED_BUFFER registeredBuffer) : Kind(IORING_REF_KIND::IORING_REF_REGISTERED), Buffer(registeredBuffer) {}
+ IORING_BUFFER_REF(UINT32 index, UINT32 offset) : IORING_BUFFER_REF(IORING_REGISTERED_BUFFER{index, offset}) {}
+#endif
+
+ IORING_REF_KIND Kind;
+ union BufferUnion {
+#ifdef __cplusplus
+ BufferUnion(void* address) : Address(address) {}
+ BufferUnion(IORING_REGISTERED_BUFFER indexAndOffset) : IndexAndOffset(indexAndOffset) {}
+#endif
+ void* Address;
+ IORING_REGISTERED_BUFFER IndexAndOffset;
+ }Buffer;
+} IORING_BUFFER_REF;
+
+#ifdef __cplusplus
+#define IoRingBufferRefFromPointer(p) IORING_BUFFER_REF(static_cast<void*>(p))
+#define IoRingBufferRefFromIndexAndOffset(i,o) IORING_BUFFER_REF((i),(o))
+#else
+#define IoRingBufferRefFromPointer(p) {IORING_REF_RAW, {.Address = p}}
+#define IoRingBufferRefFromIndexAndOffset(i,o) {IORING_REF_REGISTERED, {.IndexAndOffset = {(i),(o)}}}
+#endif
+
+typedef struct IORING_CQE {
+ UINT_PTR UserData;
+ HRESULT ResultCode;
+ ULONG_PTR Information;
+} IORING_CQE;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+STDAPI QueryIoRingCapabilities(IORING_CAPABILITIES* capabilities);
+STDAPI_(WINBOOL) IsIoRingOpSupported(HIORING ioRing, IORING_OP_CODE op);
+STDAPI CreateIoRing(IORING_VERSION ioringVersion, IORING_CREATE_FLAGS flags, UINT32 submissionQueueSize, UINT32 completionQueueSize, HIORING* h);
+STDAPI GetIoRingInfo(HIORING ioRing, IORING_INFO* info);
+STDAPI SubmitIoRing(HIORING ioRing, UINT32 waitOperations, UINT32 milliseconds, UINT32* submittedEntries);
+STDAPI CloseIoRing(HIORING ioRing);
+STDAPI PopIoRingCompletion(HIORING ioRing, IORING_CQE* cqe);
+STDAPI SetIoRingCompletionEvent(HIORING ioRing, HANDLE hEvent);
+STDAPI BuildIoRingCancelRequest(HIORING ioRing, IORING_HANDLE_REF file, UINT_PTR opToCancel, UINT_PTR userData);
+STDAPI BuildIoRingReadFile(HIORING ioRing, IORING_HANDLE_REF fileRef, IORING_BUFFER_REF dataRef, UINT32 numberOfBytesToRead, UINT64 fileOffset, UINT_PTR userData, IORING_SQE_FLAGS flags);
+STDAPI BuildIoRingRegisterFileHandles(HIORING ioRing, UINT32 count, HANDLE const handles[], UINT_PTR userData);
+STDAPI BuildIoRingRegisterBuffers(HIORING ioRing, UINT32 count, IORING_BUFFER_INFO const buffers[], UINT_PTR userData);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NTDDI_WIN10_CO */
+#endif /* WINAPI_PARTITION_APP */
+#endif /* _APISET_IORING_ */
lib/libc/include/any-windows-any/ks.h
@@ -581,20 +581,15 @@ DEFINE_GUIDSTRUCT("085AFF00-62CE-11CF-A5D6-28DB04C10000",KSCATEGORY_BRIDGE);
DEFINE_GUIDSTRUCT("65E8773D-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_CAPTURE);
#define KSCATEGORY_CAPTURE DEFINE_GUIDNAMED(KSCATEGORY_CAPTURE)
-#define STATIC_KSCATEGORY_RENDER \
- 0x65E8773E,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96
-DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_RENDER);
-#define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER)
-
-#define STATIC_KSCATEGORY_MIXER \
- 0xAD809C00,0x7B88,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
-DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000",KSCATEGORY_MIXER);
-#define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER)
+#define STATIC_KSCATEGORY_CLOCK \
+ 0x53172480,0x4791,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
+DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000",KSCATEGORY_CLOCK);
+#define KSCATEGORY_CLOCK DEFINE_GUIDNAMED(KSCATEGORY_CLOCK)
-#define STATIC_KSCATEGORY_SPLITTER \
- 0x0A4252A0,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
-DEFINE_GUIDSTRUCT("0A4252A0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_SPLITTER);
-#define KSCATEGORY_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_SPLITTER)
+#define STATIC_KSCATEGORY_COMMUNICATIONSTRANSFORM \
+ 0xCF1DDA2C,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96
+DEFINE_GUIDSTRUCT("CF1DDA2C-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_COMMUNICATIONSTRANSFORM);
+#define KSCATEGORY_COMMUNICATIONSTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_COMMUNICATIONSTRANSFORM)
#define STATIC_KSCATEGORY_DATACOMPRESSOR \
0x1E84C900,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
@@ -611,10 +606,10 @@ DEFINE_GUIDSTRUCT("2721AE20-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_DATADECOMPRE
DEFINE_GUIDSTRUCT("2EB07EA0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_DATATRANSFORM);
#define KSCATEGORY_DATATRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_DATATRANSFORM)
-#define STATIC_KSCATEGORY_COMMUNICATIONSTRANSFORM \
- 0xCF1DDA2C,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96
-DEFINE_GUIDSTRUCT("CF1DDA2C-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_COMMUNICATIONSTRANSFORM);
-#define KSCATEGORY_COMMUNICATIONSTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_COMMUNICATIONSTRANSFORM)
+#define STATIC_KSCATEGORY_FILESYSTEM \
+ 0x760FED5E,0x9357,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
+DEFINE_GUIDSTRUCT("760FED5E-9357-11D0-A3CC-00A0C9223196",KSCATEGORY_FILESYSTEM);
+#define KSCATEGORY_FILESYSTEM DEFINE_GUIDNAMED(KSCATEGORY_FILESYSTEM)
#define STATIC_KSCATEGORY_INTERFACETRANSFORM \
0xCF1DDA2D,0x9743,0x11D0,0xA3,0xEE,0x00,0xA0,0xC9,0x22,0x31,0x96
@@ -626,15 +621,10 @@ DEFINE_GUIDSTRUCT("CF1DDA2D-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_INTERFACETRA
DEFINE_GUIDSTRUCT("CF1DDA2E-9743-11D0-A3EE-00A0C9223196",KSCATEGORY_MEDIUMTRANSFORM);
#define KSCATEGORY_MEDIUMTRANSFORM DEFINE_GUIDNAMED(KSCATEGORY_MEDIUMTRANSFORM)
-#define STATIC_KSCATEGORY_FILESYSTEM \
- 0x760FED5E,0x9357,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
-DEFINE_GUIDSTRUCT("760FED5E-9357-11D0-A3CC-00A0C9223196",KSCATEGORY_FILESYSTEM);
-#define KSCATEGORY_FILESYSTEM DEFINE_GUIDNAMED(KSCATEGORY_FILESYSTEM)
-
-#define STATIC_KSCATEGORY_CLOCK \
- 0x53172480,0x4791,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
-DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000",KSCATEGORY_CLOCK);
-#define KSCATEGORY_CLOCK DEFINE_GUIDNAMED(KSCATEGORY_CLOCK)
+#define STATIC_KSCATEGORY_MIXER \
+ 0xAD809C00,0x7B88,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
+DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000",KSCATEGORY_MIXER);
+#define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER)
#define STATIC_KSCATEGORY_PROXY \
0x97EBAACA,0x95BD,0x11D0,0xA3,0xEA,0x00,0xA0,0xC9,0x22,0x31,0x96
@@ -646,6 +636,21 @@ DEFINE_GUIDSTRUCT("97EBAACA-95BD-11D0-A3EA-00A0C9223196",KSCATEGORY_PROXY);
DEFINE_GUIDSTRUCT("97EBAACB-95BD-11D0-A3EA-00A0C9223196",KSCATEGORY_QUALITY);
#define KSCATEGORY_QUALITY DEFINE_GUIDNAMED(KSCATEGORY_QUALITY)
+#define STATIC_KSCATEGORY_RENDER \
+ 0x65E8773E,0x8F56,0x11D0,0xA3,0xB9,0x00,0xA0,0xC9,0x22,0x31,0x96
+DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196",KSCATEGORY_RENDER);
+#define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER)
+
+#define STATIC_KSCATEGORY_SPLITTER \
+ 0x0A4252A0,0x7E70,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
+DEFINE_GUIDSTRUCT("0A4252A0-7E70-11D0-A5D6-28DB04C10000",KSCATEGORY_SPLITTER);
+#define KSCATEGORY_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_SPLITTER)
+
+#define STATIC_KSCATEGORY_VIDEO_CAMERA \
+ 0xE5323777,0xF976,0x4F5B,0x9B,0x55,0xB9,0x46,0x99,0xC4,0x6E,0x44
+DEFINE_GUIDSTRUCT("E5323777-F976-4F5B-9B55-B94699C46E44",KSCATEGORY_VIDEO_CAMERA);
+#define KSCATEGORY_VIDEO_CAMERA DEFINE_GUIDNAMED(KSCATEGORY_VIDEO_CAMERA)
+
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
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
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
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__
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__
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__
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);
lib/libc/include/any-windows-any/mfcaptureengine.h
@@ -0,0 +1,1769 @@
+/*** Autogenerated by WIDL 7.0 from include/mfcaptureengine.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __mfcaptureengine_h__
+#define __mfcaptureengine_h__
+
+/* Forward declarations */
+
+#ifndef __IMFCaptureEngineOnEventCallback_FWD_DEFINED__
+#define __IMFCaptureEngineOnEventCallback_FWD_DEFINED__
+typedef interface IMFCaptureEngineOnEventCallback IMFCaptureEngineOnEventCallback;
+#ifdef __cplusplus
+interface IMFCaptureEngineOnEventCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureEngineOnSampleCallback_FWD_DEFINED__
+#define __IMFCaptureEngineOnSampleCallback_FWD_DEFINED__
+typedef interface IMFCaptureEngineOnSampleCallback IMFCaptureEngineOnSampleCallback;
+#ifdef __cplusplus
+interface IMFCaptureEngineOnSampleCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureSink_FWD_DEFINED__
+#define __IMFCaptureSink_FWD_DEFINED__
+typedef interface IMFCaptureSink IMFCaptureSink;
+#ifdef __cplusplus
+interface IMFCaptureSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureRecordSink_FWD_DEFINED__
+#define __IMFCaptureRecordSink_FWD_DEFINED__
+typedef interface IMFCaptureRecordSink IMFCaptureRecordSink;
+#ifdef __cplusplus
+interface IMFCaptureRecordSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCapturePreviewSink_FWD_DEFINED__
+#define __IMFCapturePreviewSink_FWD_DEFINED__
+typedef interface IMFCapturePreviewSink IMFCapturePreviewSink;
+#ifdef __cplusplus
+interface IMFCapturePreviewSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCapturePhotoSink_FWD_DEFINED__
+#define __IMFCapturePhotoSink_FWD_DEFINED__
+typedef interface IMFCapturePhotoSink IMFCapturePhotoSink;
+#ifdef __cplusplus
+interface IMFCapturePhotoSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureSource_FWD_DEFINED__
+#define __IMFCaptureSource_FWD_DEFINED__
+typedef interface IMFCaptureSource IMFCaptureSource;
+#ifdef __cplusplus
+interface IMFCaptureSource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureEngine_FWD_DEFINED__
+#define __IMFCaptureEngine_FWD_DEFINED__
+typedef interface IMFCaptureEngine IMFCaptureEngine;
+#ifdef __cplusplus
+interface IMFCaptureEngine;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureEngineClassFactory_FWD_DEFINED__
+#define __IMFCaptureEngineClassFactory_FWD_DEFINED__
+typedef interface IMFCaptureEngineClassFactory IMFCaptureEngineClassFactory;
+#ifdef __cplusplus
+interface IMFCaptureEngineClassFactory;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureEngineOnSampleCallback2_FWD_DEFINED__
+#define __IMFCaptureEngineOnSampleCallback2_FWD_DEFINED__
+typedef interface IMFCaptureEngineOnSampleCallback2 IMFCaptureEngineOnSampleCallback2;
+#ifdef __cplusplus
+interface IMFCaptureEngineOnSampleCallback2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFCaptureSink2_FWD_DEFINED__
+#define __IMFCaptureSink2_FWD_DEFINED__
+typedef interface IMFCaptureSink2 IMFCaptureSink2;
+#ifdef __cplusplus
+interface IMFCaptureSink2;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <mfobjects.h>
+#include <mfidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINVER >= _WIN32_WINNT_WIN7
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef _MFVideoNormalizedRect_
+#define _MFVideoNormalizedRect_
+typedef struct MFVideoNormalizedRect {
+ float left;
+ float top;
+ float right;
+ float bottom;
+} MFVideoNormalizedRect;
+#endif
+typedef enum MF_CAPTURE_ENGINE_DEVICE_TYPE {
+ MF_CAPTURE_ENGINE_DEVICE_TYPE_AUDIO = 0x0,
+ MF_CAPTURE_ENGINE_DEVICE_TYPE_VIDEO = 0x1
+} MF_CAPTURE_ENGINE_DEVICE_TYPE;
+typedef enum MF_CAPTURE_ENGINE_SINK_TYPE {
+ MF_CAPTURE_ENGINE_SINK_TYPE_RECORD = 0x0,
+ MF_CAPTURE_ENGINE_SINK_TYPE_PREVIEW = 0x1,
+ MF_CAPTURE_ENGINE_SINK_TYPE_PHOTO = 0x2
+} MF_CAPTURE_ENGINE_SINK_TYPE;
+enum {
+ MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_PREVIEW = 0xfffffffa,
+ MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_VIDEO_RECORD = 0xfffffff9,
+ MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_PHOTO = 0xfffffff8,
+ MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_AUDIO = 0xfffffff7,
+ MF_CAPTURE_ENGINE_PREFERRED_SOURCE_STREAM_FOR_METADATA = 0xfffffff6,
+ MF_CAPTURE_ENGINE_MEDIASOURCE = 0xffffffff
+};
+typedef enum MF_CAPTURE_ENGINE_STREAM_CATEGORY {
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_PREVIEW = 0x0,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_VIDEO_CAPTURE = 0x1,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_INDEPENDENT = 0x2,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_PHOTO_DEPENDENT = 0x3,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_AUDIO = 0x4,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_UNSUPPORTED = 0x5,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY_METADATA = 0x6
+} MF_CAPTURE_ENGINE_STREAM_CATEGORY;
+typedef enum MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE {
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_OTHER = 0,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_COMMUNICATIONS = 1,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_MEDIA = 2,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_GAMECHAT = 3,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_SPEECH = 4,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_FARFIELDSPEECH = 5,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_UNIFORMSPEECH = 6,
+ MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE_VOICETYPING = 7
+} MF_CAPTURE_ENGINE_MEDIA_CATEGORY_TYPE;
+typedef enum MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE {
+ MF_CAPTURE_ENGINE_AUDIO_PROCESSING_DEFAULT = 0,
+ MF_CAPTURE_ENGINE_AUDIO_PROCESSING_RAW = 1
+} MF_CAPTURE_ENGINE_AUDIO_PROCESSING_MODE;
+EXTERN_GUID(MF_CAPTURE_ENGINE_INITIALIZED, 0x219992bc, 0xcf92, 0x4531, 0xa1, 0xae, 0x96, 0xe1, 0xe8, 0x86, 0xc8, 0xf1);
+EXTERN_GUID(MF_CAPTURE_ENGINE_PREVIEW_STARTED, 0xa416df21, 0xf9d3, 0x4a74, 0x99, 0x1b, 0xb8, 0x17, 0x29, 0x89, 0x52, 0xc4);
+EXTERN_GUID(MF_CAPTURE_ENGINE_PREVIEW_STOPPED, 0x13d5143c, 0x1edd, 0x4e50,0xa2, 0xef, 0x35, 0x0a, 0x47, 0x67, 0x80, 0x60);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_STARTED, 0xac2b027b, 0xddf9, 0x48a0,0x89, 0xbe, 0x38, 0xab, 0x35, 0xef, 0x45, 0xc0);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_STOPPED, 0x55e5200a, 0xf98f, 0x4c0d, 0xa9, 0xec, 0x9e, 0xb2, 0x5e, 0xd3, 0xd7, 0x73);
+EXTERN_GUID(MF_CAPTURE_ENGINE_PHOTO_TAKEN, 0x3c50c445, 0x7304, 0x48eb,0x86, 0x5d, 0xbb, 0xa1, 0x9b, 0xa3, 0xaf, 0x5c);
+EXTERN_GUID(MF_CAPTURE_SOURCE_CURRENT_DEVICE_MEDIA_TYPE_SET, 0xe7e75e4c, 0x039c, 0x4410, 0x81, 0x5b, 0x87, 0x41, 0x30, 0x7b, 0x63, 0xaa);
+EXTERN_GUID(MF_CAPTURE_ENGINE_ERROR, 0x46b89fc6, 0x33cc, 0x4399,0x9d, 0xad, 0x78, 0x4d, 0xe7, 0x7d, 0x58, 0x7c);
+EXTERN_GUID(MF_CAPTURE_ENGINE_EFFECT_ADDED, 0xaa8dc7b5, 0xa048, 0x4e13, 0x8e, 0xbe, 0xf2, 0x3c, 0x46, 0xc8, 0x30, 0xc1);
+EXTERN_GUID(MF_CAPTURE_ENGINE_EFFECT_REMOVED, 0xc6e8db07, 0xfb09, 0x4a48, 0x89, 0xc6, 0xbf, 0x92, 0xa0, 0x42, 0x22, 0xc9);
+EXTERN_GUID(MF_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED, 0xfded7521, 0x8ed8, 0x431a, 0xa9, 0x6b, 0xf3, 0xe2, 0x56, 0x5e, 0x98, 0x1c);
+EXTERN_GUID(MF_CAPTURE_SINK_PREPARED, 0x7bfce257, 0x12b1, 0x4409, 0x8c, 0x34, 0xd4, 0x45, 0xda, 0xab, 0x75, 0x78);
+EXTERN_GUID(MF_CAPTURE_ENGINE_OUTPUT_MEDIA_TYPE_SET, 0xcaaad994, 0x83ec, 0x45e9,0xa3, 0x0a, 0x1f, 0x20, 0xaa, 0xdb, 0x98, 0x31);
+EXTERN_GUID(MF_CAPTURE_ENGINE_CAMERA_STREAM_BLOCKED, 0xa4209417, 0x8d39, 0x46f3, 0xb7, 0x59, 0x59, 0x12, 0x52, 0x8f, 0x42, 0x07);
+EXTERN_GUID(MF_CAPTURE_ENGINE_CAMERA_STREAM_UNBLOCKED, 0x9be9eef0, 0xcdaf, 0x4717, 0x85, 0x64, 0x83, 0x4a, 0xae, 0x66, 0x41, 0x5c);
+EXTERN_GUID(MF_CAPTURE_ENGINE_D3D_MANAGER, 0x76e25e7b, 0xd595, 0x4283, 0x96, 0x2c, 0xc5, 0x94, 0xaf, 0xd7, 0x8d, 0xdf);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_UNPROCESSED_SAMPLES, 0xb467f705, 0x7913, 0x4894, 0x9d, 0x42, 0xa2, 0x15, 0xfe, 0xa2, 0x3d, 0xa9);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_UNPROCESSED_SAMPLES, 0x1cddb141, 0xa7f4, 0x4d58, 0x98, 0x96, 0x4d, 0x15, 0xa5, 0x3c, 0x4e, 0xfe);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_PROCESSED_SAMPLES, 0xe7b4a49e, 0x382c, 0x4aef, 0xa9, 0x46, 0xae, 0xd5, 0x49, 0xb, 0x71, 0x11);
+EXTERN_GUID(MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_PROCESSED_SAMPLES, 0x9896e12a, 0xf707, 0x4500, 0xb6, 0xbd, 0xdb, 0x8e, 0xb8, 0x10, 0xb5, 0xf);
+EXTERN_GUID(MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY, 0x1c8077da, 0x8466, 0x4dc4, 0x8b, 0x8e, 0x27, 0x6b, 0x3f, 0x85, 0x92, 0x3b);
+EXTERN_GUID(MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY, 0x7e025171, 0xcf32, 0x4f2e, 0x8f, 0x19, 0x41, 0x5, 0x77, 0xb7, 0x3a, 0x66);
+EXTERN_GUID(MF_CAPTURE_ENGINE_DISABLE_HARDWARE_TRANSFORMS, 0xb7c42a6b, 0x3207, 0x4495, 0xb4, 0xe7, 0x81, 0xf9, 0xc3, 0x5d, 0x59, 0x91);
+EXTERN_GUID(MF_CAPTURE_ENGINE_DISABLE_DXVA, 0xf9818862, 0x179d, 0x433f, 0xa3, 0x2f, 0x74, 0xcb, 0xcf, 0x74, 0x46, 0x6d);
+EXTERN_GUID(MF_CAPTURE_ENGINE_MEDIASOURCE_CONFIG, 0xbc6989d2, 0x0fc1, 0x46e1, 0xa7, 0x4f, 0xef, 0xd3, 0x6b, 0xc7, 0x88, 0xde);
+EXTERN_GUID(MF_CAPTURE_ENGINE_DECODER_MFT_FIELDOFUSE_UNLOCK_Attribute, 0x2b8ad2e8, 0x7acb, 0x4321, 0xa6, 0x06, 0x32, 0x5c, 0x42, 0x49, 0xf4, 0xfc);
+EXTERN_GUID(MF_CAPTURE_ENGINE_ENCODER_MFT_FIELDOFUSE_UNLOCK_Attribute, 0x54c63a00, 0x78d5, 0x422f, 0xaa, 0x3e, 0x5e, 0x99, 0xac, 0x64, 0x92, 0x69);
+EXTERN_GUID(MF_CAPTURE_ENGINE_ENABLE_CAMERA_STREAMSTATE_NOTIFICATION, 0x4c808e9d, 0xaaed, 0x4713, 0x90, 0xfb, 0xcb, 0x24, 0x06, 0x4a, 0xb8, 0xda);
+EXTERN_GUID(MF_CAPTURE_ENGINE_MEDIA_CATEGORY, 0x8e3f5bd5, 0xdbbf, 0x42f0, 0x85, 0x42, 0xd0, 0x7a, 0x39, 0x71, 0x76, 0x2a);
+EXTERN_GUID(MF_CAPTURE_ENGINE_AUDIO_PROCESSING, 0x10f1be5e, 0x7e11, 0x410b, 0x97, 0x3d, 0xf4, 0xb6, 0x10, 0x90, 0x0, 0xfe);
+EXTERN_GUID(MF_CAPTURE_ENGINE_EVENT_GENERATOR_GUID, 0xabfa8ad5, 0xfc6d, 0x4911, 0x87, 0xe0, 0x96, 0x19, 0x45, 0xf8, 0xf7, 0xce);
+EXTERN_GUID(MF_CAPTURE_ENGINE_EVENT_STREAM_INDEX, 0x82697f44, 0xb1cf, 0x42eb, 0x97, 0x53, 0xf8, 0x6d, 0x64, 0x9c, 0x88, 0x65);
+EXTERN_GUID(MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE, 0x03160b7e, 0x1c6f, 0x4db2, 0xad, 0x56, 0xa7, 0xc4, 0x30, 0xf8, 0x23, 0x92);
+EXTERN_GUID(MF_CAPTURE_ENGINE_SELECTEDCAMERAPROFILE_INDEX, 0x3ce88613, 0x2214, 0x46c3, 0xb4, 0x17, 0x82, 0xf8, 0xa3, 0x13, 0xc9, 0xc3);
+/*****************************************************************************
+ * IMFCaptureEngineOnEventCallback interface
+ */
+#ifndef __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__
+#define __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureEngineOnEventCallback, 0xaeda51c0, 0x9025, 0x4983, 0x90,0x12, 0xde,0x59,0x7b,0x88,0xb0,0x89);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aeda51c0-9025-4983-9012-de597b88b089")
+IMFCaptureEngineOnEventCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnEvent(
+ IMFMediaEvent *pEvent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureEngineOnEventCallback, 0xaeda51c0, 0x9025, 0x4983, 0x90,0x12, 0xde,0x59,0x7b,0x88,0xb0,0x89)
+#endif
+#else
+typedef struct IMFCaptureEngineOnEventCallbackVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureEngineOnEventCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureEngineOnEventCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureEngineOnEventCallback *This);
+
+ /*** IMFCaptureEngineOnEventCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnEvent)(
+ IMFCaptureEngineOnEventCallback *This,
+ IMFMediaEvent *pEvent);
+
+ END_INTERFACE
+} IMFCaptureEngineOnEventCallbackVtbl;
+
+interface IMFCaptureEngineOnEventCallback {
+ CONST_VTBL IMFCaptureEngineOnEventCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureEngineOnEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureEngineOnEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureEngineOnEventCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureEngineOnEventCallback methods ***/
+#define IMFCaptureEngineOnEventCallback_OnEvent(This,pEvent) (This)->lpVtbl->OnEvent(This,pEvent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnEventCallback_QueryInterface(IMFCaptureEngineOnEventCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnEventCallback_AddRef(IMFCaptureEngineOnEventCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnEventCallback_Release(IMFCaptureEngineOnEventCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureEngineOnEventCallback methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnEventCallback_OnEvent(IMFCaptureEngineOnEventCallback* This,IMFMediaEvent *pEvent) {
+ return This->lpVtbl->OnEvent(This,pEvent);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureEngineOnEventCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCaptureEngineOnSampleCallback interface
+ */
+#ifndef __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__
+#define __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureEngineOnSampleCallback, 0x52150b82, 0xab39, 0x4467, 0x98,0x0f, 0xe4,0x8b,0xf0,0x82,0x2e,0xcd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("52150b82-ab39-4467-980f-e48bf0822ecd")
+IMFCaptureEngineOnSampleCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnSample(
+ IMFSample *pSample) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureEngineOnSampleCallback, 0x52150b82, 0xab39, 0x4467, 0x98,0x0f, 0xe4,0x8b,0xf0,0x82,0x2e,0xcd)
+#endif
+#else
+typedef struct IMFCaptureEngineOnSampleCallbackVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureEngineOnSampleCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureEngineOnSampleCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureEngineOnSampleCallback *This);
+
+ /*** IMFCaptureEngineOnSampleCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnSample)(
+ IMFCaptureEngineOnSampleCallback *This,
+ IMFSample *pSample);
+
+ END_INTERFACE
+} IMFCaptureEngineOnSampleCallbackVtbl;
+
+interface IMFCaptureEngineOnSampleCallback {
+ CONST_VTBL IMFCaptureEngineOnSampleCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureEngineOnSampleCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureEngineOnSampleCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureEngineOnSampleCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureEngineOnSampleCallback methods ***/
+#define IMFCaptureEngineOnSampleCallback_OnSample(This,pSample) (This)->lpVtbl->OnSample(This,pSample)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback_QueryInterface(IMFCaptureEngineOnSampleCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback_AddRef(IMFCaptureEngineOnSampleCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback_Release(IMFCaptureEngineOnSampleCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureEngineOnSampleCallback methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback_OnSample(IMFCaptureEngineOnSampleCallback* This,IMFSample *pSample) {
+ return This->lpVtbl->OnSample(This,pSample);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureEngineOnSampleCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCaptureSink interface
+ */
+#ifndef __IMFCaptureSink_INTERFACE_DEFINED__
+#define __IMFCaptureSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureSink, 0x72d6135b, 0x35e9, 0x412c, 0xb9,0x26, 0xfd,0x52,0x65,0xf2,0xa8,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("72d6135b-35e9-412c-b926-fd5265f2a885")
+IMFCaptureSink : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetOutputMediaType(
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetService(
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddStream(
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Prepare(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveAllStreams(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureSink, 0x72d6135b, 0x35e9, 0x412c, 0xb9,0x26, 0xfd,0x52,0x65,0xf2,0xa8,0x85)
+#endif
+#else
+typedef struct IMFCaptureSinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureSink *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureSink *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureSink *This);
+
+ /*** IMFCaptureSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)(
+ IMFCaptureSink *This,
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCaptureSink *This,
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddStream)(
+ IMFCaptureSink *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *Prepare)(
+ IMFCaptureSink *This);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)(
+ IMFCaptureSink *This);
+
+ END_INTERFACE
+} IMFCaptureSinkVtbl;
+
+interface IMFCaptureSink {
+ CONST_VTBL IMFCaptureSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSink methods ***/
+#define IMFCaptureSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType)
+#define IMFCaptureSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown)
+#define IMFCaptureSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex)
+#define IMFCaptureSink_Prepare(This) (This)->lpVtbl->Prepare(This)
+#define IMFCaptureSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureSink_QueryInterface(IMFCaptureSink* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureSink_AddRef(IMFCaptureSink* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureSink_Release(IMFCaptureSink* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSink methods ***/
+static FORCEINLINE HRESULT IMFCaptureSink_GetOutputMediaType(IMFCaptureSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureSink_GetService(IMFCaptureSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureSink_AddStream(IMFCaptureSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) {
+ return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCaptureSink_Prepare(IMFCaptureSink* This) {
+ return This->lpVtbl->Prepare(This);
+}
+static FORCEINLINE HRESULT IMFCaptureSink_RemoveAllStreams(IMFCaptureSink* This) {
+ return This->lpVtbl->RemoveAllStreams(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCaptureRecordSink interface
+ */
+#ifndef __IMFCaptureRecordSink_INTERFACE_DEFINED__
+#define __IMFCaptureRecordSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureRecordSink, 0x3323b55a, 0xf92a, 0x4fe2, 0x8e,0xdc, 0xe9,0xbf,0xc0,0x63,0x4d,0x77);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3323b55a-f92a-4fe2-8edc-e9bfc0634d77")
+IMFCaptureRecordSink : public IMFCaptureSink
+{
+ virtual HRESULT STDMETHODCALLTYPE SetOutputByteStream(
+ IMFByteStream *pByteStream,
+ REFGUID guidContainerType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
+ LPCWSTR fileName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSampleCallback(
+ DWORD dwStreamSinkIndex,
+ IMFCaptureEngineOnSampleCallback *pCallback) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCustomSink(
+ IMFMediaSink *pMediaSink) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRotation(
+ DWORD dwStreamIndex,
+ DWORD *pdwRotationValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRotation(
+ DWORD dwStreamIndex,
+ DWORD dwRotationValue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureRecordSink, 0x3323b55a, 0xf92a, 0x4fe2, 0x8e,0xdc, 0xe9,0xbf,0xc0,0x63,0x4d,0x77)
+#endif
+#else
+typedef struct IMFCaptureRecordSinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureRecordSink *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureRecordSink *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureRecordSink *This);
+
+ /*** IMFCaptureSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)(
+ IMFCaptureRecordSink *This,
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCaptureRecordSink *This,
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddStream)(
+ IMFCaptureRecordSink *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *Prepare)(
+ IMFCaptureRecordSink *This);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)(
+ IMFCaptureRecordSink *This);
+
+ /*** IMFCaptureRecordSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetOutputByteStream)(
+ IMFCaptureRecordSink *This,
+ IMFByteStream *pByteStream,
+ REFGUID guidContainerType);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
+ IMFCaptureRecordSink *This,
+ LPCWSTR fileName);
+
+ HRESULT (STDMETHODCALLTYPE *SetSampleCallback)(
+ IMFCaptureRecordSink *This,
+ DWORD dwStreamSinkIndex,
+ IMFCaptureEngineOnSampleCallback *pCallback);
+
+ HRESULT (STDMETHODCALLTYPE *SetCustomSink)(
+ IMFCaptureRecordSink *This,
+ IMFMediaSink *pMediaSink);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IMFCaptureRecordSink *This,
+ DWORD dwStreamIndex,
+ DWORD *pdwRotationValue);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IMFCaptureRecordSink *This,
+ DWORD dwStreamIndex,
+ DWORD dwRotationValue);
+
+ END_INTERFACE
+} IMFCaptureRecordSinkVtbl;
+
+interface IMFCaptureRecordSink {
+ CONST_VTBL IMFCaptureRecordSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureRecordSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureRecordSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureRecordSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSink methods ***/
+#define IMFCaptureRecordSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType)
+#define IMFCaptureRecordSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown)
+#define IMFCaptureRecordSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex)
+#define IMFCaptureRecordSink_Prepare(This) (This)->lpVtbl->Prepare(This)
+#define IMFCaptureRecordSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This)
+/*** IMFCaptureRecordSink methods ***/
+#define IMFCaptureRecordSink_SetOutputByteStream(This,pByteStream,guidContainerType) (This)->lpVtbl->SetOutputByteStream(This,pByteStream,guidContainerType)
+#define IMFCaptureRecordSink_SetOutputFileName(This,fileName) (This)->lpVtbl->SetOutputFileName(This,fileName)
+#define IMFCaptureRecordSink_SetSampleCallback(This,dwStreamSinkIndex,pCallback) (This)->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback)
+#define IMFCaptureRecordSink_SetCustomSink(This,pMediaSink) (This)->lpVtbl->SetCustomSink(This,pMediaSink)
+#define IMFCaptureRecordSink_GetRotation(This,dwStreamIndex,pdwRotationValue) (This)->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue)
+#define IMFCaptureRecordSink_SetRotation(This,dwStreamIndex,dwRotationValue) (This)->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureRecordSink_QueryInterface(IMFCaptureRecordSink* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureRecordSink_AddRef(IMFCaptureRecordSink* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureRecordSink_Release(IMFCaptureRecordSink* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSink methods ***/
+static FORCEINLINE HRESULT IMFCaptureRecordSink_GetOutputMediaType(IMFCaptureRecordSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_GetService(IMFCaptureRecordSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_AddStream(IMFCaptureRecordSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) {
+ return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_Prepare(IMFCaptureRecordSink* This) {
+ return This->lpVtbl->Prepare(This);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_RemoveAllStreams(IMFCaptureRecordSink* This) {
+ return This->lpVtbl->RemoveAllStreams(This);
+}
+/*** IMFCaptureRecordSink methods ***/
+static FORCEINLINE HRESULT IMFCaptureRecordSink_SetOutputByteStream(IMFCaptureRecordSink* This,IMFByteStream *pByteStream,REFGUID guidContainerType) {
+ return This->lpVtbl->SetOutputByteStream(This,pByteStream,guidContainerType);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_SetOutputFileName(IMFCaptureRecordSink* This,LPCWSTR fileName) {
+ return This->lpVtbl->SetOutputFileName(This,fileName);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_SetSampleCallback(IMFCaptureRecordSink* This,DWORD dwStreamSinkIndex,IMFCaptureEngineOnSampleCallback *pCallback) {
+ return This->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_SetCustomSink(IMFCaptureRecordSink* This,IMFMediaSink *pMediaSink) {
+ return This->lpVtbl->SetCustomSink(This,pMediaSink);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_GetRotation(IMFCaptureRecordSink* This,DWORD dwStreamIndex,DWORD *pdwRotationValue) {
+ return This->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue);
+}
+static FORCEINLINE HRESULT IMFCaptureRecordSink_SetRotation(IMFCaptureRecordSink* This,DWORD dwStreamIndex,DWORD dwRotationValue) {
+ return This->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureRecordSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCapturePreviewSink interface
+ */
+#ifndef __IMFCapturePreviewSink_INTERFACE_DEFINED__
+#define __IMFCapturePreviewSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCapturePreviewSink, 0x77346cfd, 0x5b49, 0x4d73, 0xac,0xe0, 0x5b,0x52,0xa8,0x59,0xf2,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("77346cfd-5b49-4d73-ace0-5b52a859f2e0")
+IMFCapturePreviewSink : public IMFCaptureSink
+{
+ virtual HRESULT STDMETHODCALLTYPE SetRenderHandle(
+ HANDLE handle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRenderSurface(
+ IUnknown *pSurface) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UpdateVideo(
+ const MFVideoNormalizedRect *pSrc,
+ const RECT *pDst,
+ const COLORREF *pBorderClr) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSampleCallback(
+ DWORD dwStreamSinkIndex,
+ IMFCaptureEngineOnSampleCallback *pCallback) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMirrorState(
+ WINBOOL *pfMirrorState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMirrorState(
+ WINBOOL fMirrorState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRotation(
+ DWORD dwStreamIndex,
+ DWORD *pdwRotationValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRotation(
+ DWORD dwStreamIndex,
+ DWORD dwRotationValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCustomSink(
+ IMFMediaSink *pMediaSink) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCapturePreviewSink, 0x77346cfd, 0x5b49, 0x4d73, 0xac,0xe0, 0x5b,0x52,0xa8,0x59,0xf2,0xe0)
+#endif
+#else
+typedef struct IMFCapturePreviewSinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCapturePreviewSink *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCapturePreviewSink *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCapturePreviewSink *This);
+
+ /*** IMFCaptureSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)(
+ IMFCapturePreviewSink *This,
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCapturePreviewSink *This,
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddStream)(
+ IMFCapturePreviewSink *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *Prepare)(
+ IMFCapturePreviewSink *This);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)(
+ IMFCapturePreviewSink *This);
+
+ /*** IMFCapturePreviewSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetRenderHandle)(
+ IMFCapturePreviewSink *This,
+ HANDLE handle);
+
+ HRESULT (STDMETHODCALLTYPE *SetRenderSurface)(
+ IMFCapturePreviewSink *This,
+ IUnknown *pSurface);
+
+ HRESULT (STDMETHODCALLTYPE *UpdateVideo)(
+ IMFCapturePreviewSink *This,
+ const MFVideoNormalizedRect *pSrc,
+ const RECT *pDst,
+ const COLORREF *pBorderClr);
+
+ HRESULT (STDMETHODCALLTYPE *SetSampleCallback)(
+ IMFCapturePreviewSink *This,
+ DWORD dwStreamSinkIndex,
+ IMFCaptureEngineOnSampleCallback *pCallback);
+
+ HRESULT (STDMETHODCALLTYPE *GetMirrorState)(
+ IMFCapturePreviewSink *This,
+ WINBOOL *pfMirrorState);
+
+ HRESULT (STDMETHODCALLTYPE *SetMirrorState)(
+ IMFCapturePreviewSink *This,
+ WINBOOL fMirrorState);
+
+ HRESULT (STDMETHODCALLTYPE *GetRotation)(
+ IMFCapturePreviewSink *This,
+ DWORD dwStreamIndex,
+ DWORD *pdwRotationValue);
+
+ HRESULT (STDMETHODCALLTYPE *SetRotation)(
+ IMFCapturePreviewSink *This,
+ DWORD dwStreamIndex,
+ DWORD dwRotationValue);
+
+ HRESULT (STDMETHODCALLTYPE *SetCustomSink)(
+ IMFCapturePreviewSink *This,
+ IMFMediaSink *pMediaSink);
+
+ END_INTERFACE
+} IMFCapturePreviewSinkVtbl;
+
+interface IMFCapturePreviewSink {
+ CONST_VTBL IMFCapturePreviewSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCapturePreviewSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCapturePreviewSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCapturePreviewSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSink methods ***/
+#define IMFCapturePreviewSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType)
+#define IMFCapturePreviewSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown)
+#define IMFCapturePreviewSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex)
+#define IMFCapturePreviewSink_Prepare(This) (This)->lpVtbl->Prepare(This)
+#define IMFCapturePreviewSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This)
+/*** IMFCapturePreviewSink methods ***/
+#define IMFCapturePreviewSink_SetRenderHandle(This,handle) (This)->lpVtbl->SetRenderHandle(This,handle)
+#define IMFCapturePreviewSink_SetRenderSurface(This,pSurface) (This)->lpVtbl->SetRenderSurface(This,pSurface)
+#define IMFCapturePreviewSink_UpdateVideo(This,pSrc,pDst,pBorderClr) (This)->lpVtbl->UpdateVideo(This,pSrc,pDst,pBorderClr)
+#define IMFCapturePreviewSink_SetSampleCallback(This,dwStreamSinkIndex,pCallback) (This)->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback)
+#define IMFCapturePreviewSink_GetMirrorState(This,pfMirrorState) (This)->lpVtbl->GetMirrorState(This,pfMirrorState)
+#define IMFCapturePreviewSink_SetMirrorState(This,fMirrorState) (This)->lpVtbl->SetMirrorState(This,fMirrorState)
+#define IMFCapturePreviewSink_GetRotation(This,dwStreamIndex,pdwRotationValue) (This)->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue)
+#define IMFCapturePreviewSink_SetRotation(This,dwStreamIndex,dwRotationValue) (This)->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue)
+#define IMFCapturePreviewSink_SetCustomSink(This,pMediaSink) (This)->lpVtbl->SetCustomSink(This,pMediaSink)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCapturePreviewSink_QueryInterface(IMFCapturePreviewSink* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCapturePreviewSink_AddRef(IMFCapturePreviewSink* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCapturePreviewSink_Release(IMFCapturePreviewSink* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSink methods ***/
+static FORCEINLINE HRESULT IMFCapturePreviewSink_GetOutputMediaType(IMFCapturePreviewSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_GetService(IMFCapturePreviewSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_AddStream(IMFCapturePreviewSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) {
+ return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_Prepare(IMFCapturePreviewSink* This) {
+ return This->lpVtbl->Prepare(This);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_RemoveAllStreams(IMFCapturePreviewSink* This) {
+ return This->lpVtbl->RemoveAllStreams(This);
+}
+/*** IMFCapturePreviewSink methods ***/
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRenderHandle(IMFCapturePreviewSink* This,HANDLE handle) {
+ return This->lpVtbl->SetRenderHandle(This,handle);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRenderSurface(IMFCapturePreviewSink* This,IUnknown *pSurface) {
+ return This->lpVtbl->SetRenderSurface(This,pSurface);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_UpdateVideo(IMFCapturePreviewSink* This,const MFVideoNormalizedRect *pSrc,const RECT *pDst,const COLORREF *pBorderClr) {
+ return This->lpVtbl->UpdateVideo(This,pSrc,pDst,pBorderClr);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetSampleCallback(IMFCapturePreviewSink* This,DWORD dwStreamSinkIndex,IMFCaptureEngineOnSampleCallback *pCallback) {
+ return This->lpVtbl->SetSampleCallback(This,dwStreamSinkIndex,pCallback);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_GetMirrorState(IMFCapturePreviewSink* This,WINBOOL *pfMirrorState) {
+ return This->lpVtbl->GetMirrorState(This,pfMirrorState);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetMirrorState(IMFCapturePreviewSink* This,WINBOOL fMirrorState) {
+ return This->lpVtbl->SetMirrorState(This,fMirrorState);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_GetRotation(IMFCapturePreviewSink* This,DWORD dwStreamIndex,DWORD *pdwRotationValue) {
+ return This->lpVtbl->GetRotation(This,dwStreamIndex,pdwRotationValue);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetRotation(IMFCapturePreviewSink* This,DWORD dwStreamIndex,DWORD dwRotationValue) {
+ return This->lpVtbl->SetRotation(This,dwStreamIndex,dwRotationValue);
+}
+static FORCEINLINE HRESULT IMFCapturePreviewSink_SetCustomSink(IMFCapturePreviewSink* This,IMFMediaSink *pMediaSink) {
+ return This->lpVtbl->SetCustomSink(This,pMediaSink);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCapturePreviewSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCapturePhotoSink interface
+ */
+#ifndef __IMFCapturePhotoSink_INTERFACE_DEFINED__
+#define __IMFCapturePhotoSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCapturePhotoSink, 0xd2d43cc8, 0x48bb, 0x4aa7, 0x95,0xdb, 0x10,0xc0,0x69,0x77,0xe7,0x77);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d2d43cc8-48bb-4aa7-95db-10c06977e777")
+IMFCapturePhotoSink : public IMFCaptureSink
+{
+ virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
+ LPCWSTR fileName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSampleCallback(
+ IMFCaptureEngineOnSampleCallback *pCallback) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOutputByteStream(
+ IMFByteStream *pByteStream) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCapturePhotoSink, 0xd2d43cc8, 0x48bb, 0x4aa7, 0x95,0xdb, 0x10,0xc0,0x69,0x77,0xe7,0x77)
+#endif
+#else
+typedef struct IMFCapturePhotoSinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCapturePhotoSink *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCapturePhotoSink *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCapturePhotoSink *This);
+
+ /*** IMFCaptureSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)(
+ IMFCapturePhotoSink *This,
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCapturePhotoSink *This,
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddStream)(
+ IMFCapturePhotoSink *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *Prepare)(
+ IMFCapturePhotoSink *This);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)(
+ IMFCapturePhotoSink *This);
+
+ /*** IMFCapturePhotoSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
+ IMFCapturePhotoSink *This,
+ LPCWSTR fileName);
+
+ HRESULT (STDMETHODCALLTYPE *SetSampleCallback)(
+ IMFCapturePhotoSink *This,
+ IMFCaptureEngineOnSampleCallback *pCallback);
+
+ HRESULT (STDMETHODCALLTYPE *SetOutputByteStream)(
+ IMFCapturePhotoSink *This,
+ IMFByteStream *pByteStream);
+
+ END_INTERFACE
+} IMFCapturePhotoSinkVtbl;
+
+interface IMFCapturePhotoSink {
+ CONST_VTBL IMFCapturePhotoSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCapturePhotoSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCapturePhotoSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCapturePhotoSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSink methods ***/
+#define IMFCapturePhotoSink_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType)
+#define IMFCapturePhotoSink_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown)
+#define IMFCapturePhotoSink_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex)
+#define IMFCapturePhotoSink_Prepare(This) (This)->lpVtbl->Prepare(This)
+#define IMFCapturePhotoSink_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This)
+/*** IMFCapturePhotoSink methods ***/
+#define IMFCapturePhotoSink_SetOutputFileName(This,fileName) (This)->lpVtbl->SetOutputFileName(This,fileName)
+#define IMFCapturePhotoSink_SetSampleCallback(This,pCallback) (This)->lpVtbl->SetSampleCallback(This,pCallback)
+#define IMFCapturePhotoSink_SetOutputByteStream(This,pByteStream) (This)->lpVtbl->SetOutputByteStream(This,pByteStream)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCapturePhotoSink_QueryInterface(IMFCapturePhotoSink* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCapturePhotoSink_AddRef(IMFCapturePhotoSink* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCapturePhotoSink_Release(IMFCapturePhotoSink* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSink methods ***/
+static FORCEINLINE HRESULT IMFCapturePhotoSink_GetOutputMediaType(IMFCapturePhotoSink* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_GetService(IMFCapturePhotoSink* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_AddStream(IMFCapturePhotoSink* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) {
+ return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_Prepare(IMFCapturePhotoSink* This) {
+ return This->lpVtbl->Prepare(This);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_RemoveAllStreams(IMFCapturePhotoSink* This) {
+ return This->lpVtbl->RemoveAllStreams(This);
+}
+/*** IMFCapturePhotoSink methods ***/
+static FORCEINLINE HRESULT IMFCapturePhotoSink_SetOutputFileName(IMFCapturePhotoSink* This,LPCWSTR fileName) {
+ return This->lpVtbl->SetOutputFileName(This,fileName);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_SetSampleCallback(IMFCapturePhotoSink* This,IMFCaptureEngineOnSampleCallback *pCallback) {
+ return This->lpVtbl->SetSampleCallback(This,pCallback);
+}
+static FORCEINLINE HRESULT IMFCapturePhotoSink_SetOutputByteStream(IMFCapturePhotoSink* This,IMFByteStream *pByteStream) {
+ return This->lpVtbl->SetOutputByteStream(This,pByteStream);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCapturePhotoSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCaptureSource interface
+ */
+#ifndef __IMFCaptureSource_INTERFACE_DEFINED__
+#define __IMFCaptureSource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureSource, 0x439a42a8, 0x0d2c, 0x4505, 0xbe,0x83, 0xf7,0x9b,0x2a,0x05,0xd5,0xc4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("439a42a8-0d2c-4505-be83-f79b2a05d5c4")
+IMFCaptureSource : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCaptureDeviceSource(
+ MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,
+ IMFMediaSource **ppMediaSource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCaptureDeviceActivate(
+ MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,
+ IMFActivate **ppActivate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetService(
+ REFIID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddEffect(
+ DWORD dwSourceStreamIndex,
+ IUnknown *pUnknown) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveEffect(
+ DWORD dwSourceStreamIndex,
+ IUnknown *pUnknown) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveAllEffects(
+ DWORD dwSourceStreamIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAvailableDeviceMediaType(
+ DWORD dwSourceStreamIndex,
+ DWORD dwMediaTypeIndex,
+ IMFMediaType **ppMediaType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCurrentDeviceMediaType(
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentDeviceMediaType(
+ DWORD dwSourceStreamIndex,
+ IMFMediaType **ppMediaType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceStreamCount(
+ DWORD *pdwStreamCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDeviceStreamCategory(
+ DWORD dwSourceStreamIndex,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMirrorState(
+ DWORD dwStreamIndex,
+ WINBOOL *pfMirrorState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMirrorState(
+ DWORD dwStreamIndex,
+ WINBOOL fMirrorState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStreamIndexFromFriendlyName(
+ UINT32 uifriendlyName,
+ DWORD *pdwActualStreamIndex) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureSource, 0x439a42a8, 0x0d2c, 0x4505, 0xbe,0x83, 0xf7,0x9b,0x2a,0x05,0xd5,0xc4)
+#endif
+#else
+typedef struct IMFCaptureSourceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureSource *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureSource *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureSource *This);
+
+ /*** IMFCaptureSource methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCaptureDeviceSource)(
+ IMFCaptureSource *This,
+ MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,
+ IMFMediaSource **ppMediaSource);
+
+ HRESULT (STDMETHODCALLTYPE *GetCaptureDeviceActivate)(
+ IMFCaptureSource *This,
+ MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,
+ IMFActivate **ppActivate);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCaptureSource *This,
+ REFIID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddEffect)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ IUnknown *pUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveEffect)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ IUnknown *pUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllEffects)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *GetAvailableDeviceMediaType)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ DWORD dwMediaTypeIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *SetCurrentDeviceMediaType)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetCurrentDeviceMediaType)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceStreamCount)(
+ IMFCaptureSource *This,
+ DWORD *pdwStreamCount);
+
+ HRESULT (STDMETHODCALLTYPE *GetDeviceStreamCategory)(
+ IMFCaptureSource *This,
+ DWORD dwSourceStreamIndex,
+ MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory);
+
+ HRESULT (STDMETHODCALLTYPE *GetMirrorState)(
+ IMFCaptureSource *This,
+ DWORD dwStreamIndex,
+ WINBOOL *pfMirrorState);
+
+ HRESULT (STDMETHODCALLTYPE *SetMirrorState)(
+ IMFCaptureSource *This,
+ DWORD dwStreamIndex,
+ WINBOOL fMirrorState);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamIndexFromFriendlyName)(
+ IMFCaptureSource *This,
+ UINT32 uifriendlyName,
+ DWORD *pdwActualStreamIndex);
+
+ END_INTERFACE
+} IMFCaptureSourceVtbl;
+
+interface IMFCaptureSource {
+ CONST_VTBL IMFCaptureSourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureSource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureSource_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSource methods ***/
+#define IMFCaptureSource_GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource) (This)->lpVtbl->GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource)
+#define IMFCaptureSource_GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate) (This)->lpVtbl->GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate)
+#define IMFCaptureSource_GetService(This,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,rguidService,riid,ppUnknown)
+#define IMFCaptureSource_AddEffect(This,dwSourceStreamIndex,pUnknown) (This)->lpVtbl->AddEffect(This,dwSourceStreamIndex,pUnknown)
+#define IMFCaptureSource_RemoveEffect(This,dwSourceStreamIndex,pUnknown) (This)->lpVtbl->RemoveEffect(This,dwSourceStreamIndex,pUnknown)
+#define IMFCaptureSource_RemoveAllEffects(This,dwSourceStreamIndex) (This)->lpVtbl->RemoveAllEffects(This,dwSourceStreamIndex)
+#define IMFCaptureSource_GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType) (This)->lpVtbl->GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType)
+#define IMFCaptureSource_SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType) (This)->lpVtbl->SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType)
+#define IMFCaptureSource_GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType) (This)->lpVtbl->GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType)
+#define IMFCaptureSource_GetDeviceStreamCount(This,pdwStreamCount) (This)->lpVtbl->GetDeviceStreamCount(This,pdwStreamCount)
+#define IMFCaptureSource_GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory) (This)->lpVtbl->GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory)
+#define IMFCaptureSource_GetMirrorState(This,dwStreamIndex,pfMirrorState) (This)->lpVtbl->GetMirrorState(This,dwStreamIndex,pfMirrorState)
+#define IMFCaptureSource_SetMirrorState(This,dwStreamIndex,fMirrorState) (This)->lpVtbl->SetMirrorState(This,dwStreamIndex,fMirrorState)
+#define IMFCaptureSource_GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex) (This)->lpVtbl->GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureSource_QueryInterface(IMFCaptureSource* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureSource_AddRef(IMFCaptureSource* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureSource_Release(IMFCaptureSource* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSource methods ***/
+static FORCEINLINE HRESULT IMFCaptureSource_GetCaptureDeviceSource(IMFCaptureSource* This,MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,IMFMediaSource **ppMediaSource) {
+ return This->lpVtbl->GetCaptureDeviceSource(This,mfCaptureEngineDeviceType,ppMediaSource);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetCaptureDeviceActivate(IMFCaptureSource* This,MF_CAPTURE_ENGINE_DEVICE_TYPE mfCaptureEngineDeviceType,IMFActivate **ppActivate) {
+ return This->lpVtbl->GetCaptureDeviceActivate(This,mfCaptureEngineDeviceType,ppActivate);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetService(IMFCaptureSource* This,REFIID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_AddEffect(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IUnknown *pUnknown) {
+ return This->lpVtbl->AddEffect(This,dwSourceStreamIndex,pUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_RemoveEffect(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IUnknown *pUnknown) {
+ return This->lpVtbl->RemoveEffect(This,dwSourceStreamIndex,pUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_RemoveAllEffects(IMFCaptureSource* This,DWORD dwSourceStreamIndex) {
+ return This->lpVtbl->RemoveAllEffects(This,dwSourceStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetAvailableDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,DWORD dwMediaTypeIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetAvailableDeviceMediaType(This,dwSourceStreamIndex,dwMediaTypeIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_SetCurrentDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType) {
+ return This->lpVtbl->SetCurrentDeviceMediaType(This,dwSourceStreamIndex,pMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetCurrentDeviceMediaType(IMFCaptureSource* This,DWORD dwSourceStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetCurrentDeviceMediaType(This,dwSourceStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetDeviceStreamCount(IMFCaptureSource* This,DWORD *pdwStreamCount) {
+ return This->lpVtbl->GetDeviceStreamCount(This,pdwStreamCount);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetDeviceStreamCategory(IMFCaptureSource* This,DWORD dwSourceStreamIndex,MF_CAPTURE_ENGINE_STREAM_CATEGORY *pStreamCategory) {
+ return This->lpVtbl->GetDeviceStreamCategory(This,dwSourceStreamIndex,pStreamCategory);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetMirrorState(IMFCaptureSource* This,DWORD dwStreamIndex,WINBOOL *pfMirrorState) {
+ return This->lpVtbl->GetMirrorState(This,dwStreamIndex,pfMirrorState);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_SetMirrorState(IMFCaptureSource* This,DWORD dwStreamIndex,WINBOOL fMirrorState) {
+ return This->lpVtbl->SetMirrorState(This,dwStreamIndex,fMirrorState);
+}
+static FORCEINLINE HRESULT IMFCaptureSource_GetStreamIndexFromFriendlyName(IMFCaptureSource* This,UINT32 uifriendlyName,DWORD *pdwActualStreamIndex) {
+ return This->lpVtbl->GetStreamIndexFromFriendlyName(This,uifriendlyName,pdwActualStreamIndex);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureSource_INTERFACE_DEFINED__ */
+
+EXTERN_GUID(CLSID_MFCaptureEngine, 0xefce38d3, 0x8914, 0x4674,0xa7, 0xdf, 0xae, 0x1b, 0x3d, 0x65, 0x4b, 0x8a);
+/*****************************************************************************
+ * IMFCaptureEngine interface
+ */
+#ifndef __IMFCaptureEngine_INTERFACE_DEFINED__
+#define __IMFCaptureEngine_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureEngine, 0xa6bba433, 0x176b, 0x48b2, 0xb3,0x75, 0x53,0xaa,0x03,0x47,0x32,0x07);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a6bba433-176b-48b2-b375-53aa03473207")
+IMFCaptureEngine : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Initialize(
+ IMFCaptureEngineOnEventCallback *pEventCallback,
+ IMFAttributes *pAttributes,
+ IUnknown *pAudioSource,
+ IUnknown *pVideoSource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartPreview(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StopPreview(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StartRecord(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE StopRecord(
+ WINBOOL bFinalize,
+ WINBOOL bFlushUnprocessedSamples) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE TakePhoto(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSink(
+ MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType,
+ IMFCaptureSink **ppSink) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSource(
+ IMFCaptureSource **ppSource) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureEngine, 0xa6bba433, 0x176b, 0x48b2, 0xb3,0x75, 0x53,0xaa,0x03,0x47,0x32,0x07)
+#endif
+#else
+typedef struct IMFCaptureEngineVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureEngine *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureEngine *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureEngine *This);
+
+ /*** IMFCaptureEngine methods ***/
+ HRESULT (STDMETHODCALLTYPE *Initialize)(
+ IMFCaptureEngine *This,
+ IMFCaptureEngineOnEventCallback *pEventCallback,
+ IMFAttributes *pAttributes,
+ IUnknown *pAudioSource,
+ IUnknown *pVideoSource);
+
+ HRESULT (STDMETHODCALLTYPE *StartPreview)(
+ IMFCaptureEngine *This);
+
+ HRESULT (STDMETHODCALLTYPE *StopPreview)(
+ IMFCaptureEngine *This);
+
+ HRESULT (STDMETHODCALLTYPE *StartRecord)(
+ IMFCaptureEngine *This);
+
+ HRESULT (STDMETHODCALLTYPE *StopRecord)(
+ IMFCaptureEngine *This,
+ WINBOOL bFinalize,
+ WINBOOL bFlushUnprocessedSamples);
+
+ HRESULT (STDMETHODCALLTYPE *TakePhoto)(
+ IMFCaptureEngine *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetSink)(
+ IMFCaptureEngine *This,
+ MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType,
+ IMFCaptureSink **ppSink);
+
+ HRESULT (STDMETHODCALLTYPE *GetSource)(
+ IMFCaptureEngine *This,
+ IMFCaptureSource **ppSource);
+
+ END_INTERFACE
+} IMFCaptureEngineVtbl;
+
+interface IMFCaptureEngine {
+ CONST_VTBL IMFCaptureEngineVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureEngine_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureEngine_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureEngine_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureEngine methods ***/
+#define IMFCaptureEngine_Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource) (This)->lpVtbl->Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource)
+#define IMFCaptureEngine_StartPreview(This) (This)->lpVtbl->StartPreview(This)
+#define IMFCaptureEngine_StopPreview(This) (This)->lpVtbl->StopPreview(This)
+#define IMFCaptureEngine_StartRecord(This) (This)->lpVtbl->StartRecord(This)
+#define IMFCaptureEngine_StopRecord(This,bFinalize,bFlushUnprocessedSamples) (This)->lpVtbl->StopRecord(This,bFinalize,bFlushUnprocessedSamples)
+#define IMFCaptureEngine_TakePhoto(This) (This)->lpVtbl->TakePhoto(This)
+#define IMFCaptureEngine_GetSink(This,mfCaptureEngineSinkType,ppSink) (This)->lpVtbl->GetSink(This,mfCaptureEngineSinkType,ppSink)
+#define IMFCaptureEngine_GetSource(This,ppSource) (This)->lpVtbl->GetSource(This,ppSource)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngine_QueryInterface(IMFCaptureEngine* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureEngine_AddRef(IMFCaptureEngine* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureEngine_Release(IMFCaptureEngine* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureEngine methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngine_Initialize(IMFCaptureEngine* This,IMFCaptureEngineOnEventCallback *pEventCallback,IMFAttributes *pAttributes,IUnknown *pAudioSource,IUnknown *pVideoSource) {
+ return This->lpVtbl->Initialize(This,pEventCallback,pAttributes,pAudioSource,pVideoSource);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_StartPreview(IMFCaptureEngine* This) {
+ return This->lpVtbl->StartPreview(This);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_StopPreview(IMFCaptureEngine* This) {
+ return This->lpVtbl->StopPreview(This);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_StartRecord(IMFCaptureEngine* This) {
+ return This->lpVtbl->StartRecord(This);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_StopRecord(IMFCaptureEngine* This,WINBOOL bFinalize,WINBOOL bFlushUnprocessedSamples) {
+ return This->lpVtbl->StopRecord(This,bFinalize,bFlushUnprocessedSamples);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_TakePhoto(IMFCaptureEngine* This) {
+ return This->lpVtbl->TakePhoto(This);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_GetSink(IMFCaptureEngine* This,MF_CAPTURE_ENGINE_SINK_TYPE mfCaptureEngineSinkType,IMFCaptureSink **ppSink) {
+ return This->lpVtbl->GetSink(This,mfCaptureEngineSinkType,ppSink);
+}
+static FORCEINLINE HRESULT IMFCaptureEngine_GetSource(IMFCaptureEngine* This,IMFCaptureSource **ppSource) {
+ return This->lpVtbl->GetSource(This,ppSource);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureEngine_INTERFACE_DEFINED__ */
+
+EXTERN_GUID(CLSID_MFCaptureEngineClassFactory, 0xefce38d3, 0x8914, 0x4674,0xa7, 0xdf, 0xae, 0x1b, 0x3d, 0x65, 0x4b, 0x8a);
+/*****************************************************************************
+ * IMFCaptureEngineClassFactory interface
+ */
+#ifndef __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__
+#define __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureEngineClassFactory, 0x8f02d140, 0x56fc, 0x4302, 0xa7,0x05, 0x3a,0x97,0xc7,0x8b,0xe7,0x79);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8f02d140-56fc-4302-a705-3a97c78be779")
+IMFCaptureEngineClassFactory : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateInstance(
+ REFCLSID clsid,
+ REFIID riid,
+ LPVOID *ppvObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureEngineClassFactory, 0x8f02d140, 0x56fc, 0x4302, 0xa7,0x05, 0x3a,0x97,0xc7,0x8b,0xe7,0x79)
+#endif
+#else
+typedef struct IMFCaptureEngineClassFactoryVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureEngineClassFactory *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureEngineClassFactory *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureEngineClassFactory *This);
+
+ /*** IMFCaptureEngineClassFactory methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateInstance)(
+ IMFCaptureEngineClassFactory *This,
+ REFCLSID clsid,
+ REFIID riid,
+ LPVOID *ppvObject);
+
+ END_INTERFACE
+} IMFCaptureEngineClassFactoryVtbl;
+
+interface IMFCaptureEngineClassFactory {
+ CONST_VTBL IMFCaptureEngineClassFactoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureEngineClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureEngineClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureEngineClassFactory_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureEngineClassFactory methods ***/
+#define IMFCaptureEngineClassFactory_CreateInstance(This,clsid,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,clsid,riid,ppvObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineClassFactory_QueryInterface(IMFCaptureEngineClassFactory* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureEngineClassFactory_AddRef(IMFCaptureEngineClassFactory* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureEngineClassFactory_Release(IMFCaptureEngineClassFactory* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureEngineClassFactory methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineClassFactory_CreateInstance(IMFCaptureEngineClassFactory* This,REFCLSID clsid,REFIID riid,LPVOID *ppvObject) {
+ return This->lpVtbl->CreateInstance(This,clsid,riid,ppvObject);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureEngineClassFactory_INTERFACE_DEFINED__ */
+
+EXTERN_GUID(MFSampleExtension_DeviceReferenceSystemTime, 0x6523775a, 0xba2d, 0x405f,0xb2, 0xc5, 0x01, 0xff, 0x88, 0xe2, 0xe8, 0xf6);
+/*****************************************************************************
+ * IMFCaptureEngineOnSampleCallback2 interface
+ */
+#ifndef __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__
+#define __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureEngineOnSampleCallback2, 0xe37ceed7, 0x340f, 0x4514, 0x9f,0x4d, 0x9c,0x2a,0xe0,0x26,0x10,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e37ceed7-340f-4514-9f4d-9c2ae026100b")
+IMFCaptureEngineOnSampleCallback2 : public IMFCaptureEngineOnSampleCallback
+{
+ virtual HRESULT STDMETHODCALLTYPE OnSynchronizedEvent(
+ IMFMediaEvent *pEvent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureEngineOnSampleCallback2, 0xe37ceed7, 0x340f, 0x4514, 0x9f,0x4d, 0x9c,0x2a,0xe0,0x26,0x10,0x0b)
+#endif
+#else
+typedef struct IMFCaptureEngineOnSampleCallback2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureEngineOnSampleCallback2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureEngineOnSampleCallback2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureEngineOnSampleCallback2 *This);
+
+ /*** IMFCaptureEngineOnSampleCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnSample)(
+ IMFCaptureEngineOnSampleCallback2 *This,
+ IMFSample *pSample);
+
+ /*** IMFCaptureEngineOnSampleCallback2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnSynchronizedEvent)(
+ IMFCaptureEngineOnSampleCallback2 *This,
+ IMFMediaEvent *pEvent);
+
+ END_INTERFACE
+} IMFCaptureEngineOnSampleCallback2Vtbl;
+
+interface IMFCaptureEngineOnSampleCallback2 {
+ CONST_VTBL IMFCaptureEngineOnSampleCallback2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureEngineOnSampleCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureEngineOnSampleCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureEngineOnSampleCallback2_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureEngineOnSampleCallback methods ***/
+#define IMFCaptureEngineOnSampleCallback2_OnSample(This,pSample) (This)->lpVtbl->OnSample(This,pSample)
+/*** IMFCaptureEngineOnSampleCallback2 methods ***/
+#define IMFCaptureEngineOnSampleCallback2_OnSynchronizedEvent(This,pEvent) (This)->lpVtbl->OnSynchronizedEvent(This,pEvent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_QueryInterface(IMFCaptureEngineOnSampleCallback2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback2_AddRef(IMFCaptureEngineOnSampleCallback2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureEngineOnSampleCallback2_Release(IMFCaptureEngineOnSampleCallback2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureEngineOnSampleCallback methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_OnSample(IMFCaptureEngineOnSampleCallback2* This,IMFSample *pSample) {
+ return This->lpVtbl->OnSample(This,pSample);
+}
+/*** IMFCaptureEngineOnSampleCallback2 methods ***/
+static FORCEINLINE HRESULT IMFCaptureEngineOnSampleCallback2_OnSynchronizedEvent(IMFCaptureEngineOnSampleCallback2* This,IMFMediaEvent *pEvent) {
+ return This->lpVtbl->OnSynchronizedEvent(This,pEvent);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureEngineOnSampleCallback2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFCaptureSink2 interface
+ */
+#ifndef __IMFCaptureSink2_INTERFACE_DEFINED__
+#define __IMFCaptureSink2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFCaptureSink2, 0xf9e4219e, 0x6197, 0x4b5e, 0xb8,0x88, 0xbe,0xe3,0x10,0xab,0x2c,0x59);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f9e4219e-6197-4b5e-b888-bee310ab2c59")
+IMFCaptureSink2 : public IMFCaptureSink
+{
+ virtual HRESULT STDMETHODCALLTYPE SetOutputMediaType(
+ DWORD dwStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pEncodingAttributes) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFCaptureSink2, 0xf9e4219e, 0x6197, 0x4b5e, 0xb8,0x88, 0xbe,0xe3,0x10,0xab,0x2c,0x59)
+#endif
+#else
+typedef struct IMFCaptureSink2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFCaptureSink2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFCaptureSink2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFCaptureSink2 *This);
+
+ /*** IMFCaptureSink methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetOutputMediaType)(
+ IMFCaptureSink2 *This,
+ DWORD dwSinkStreamIndex,
+ IMFMediaType **ppMediaType);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IMFCaptureSink2 *This,
+ DWORD dwSinkStreamIndex,
+ REFGUID rguidService,
+ REFIID riid,
+ IUnknown **ppUnknown);
+
+ HRESULT (STDMETHODCALLTYPE *AddStream)(
+ IMFCaptureSink2 *This,
+ DWORD dwSourceStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pAttributes,
+ DWORD *pdwSinkStreamIndex);
+
+ HRESULT (STDMETHODCALLTYPE *Prepare)(
+ IMFCaptureSink2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveAllStreams)(
+ IMFCaptureSink2 *This);
+
+ /*** IMFCaptureSink2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetOutputMediaType)(
+ IMFCaptureSink2 *This,
+ DWORD dwStreamIndex,
+ IMFMediaType *pMediaType,
+ IMFAttributes *pEncodingAttributes);
+
+ END_INTERFACE
+} IMFCaptureSink2Vtbl;
+
+interface IMFCaptureSink2 {
+ CONST_VTBL IMFCaptureSink2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFCaptureSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFCaptureSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFCaptureSink2_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFCaptureSink methods ***/
+#define IMFCaptureSink2_GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType) (This)->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType)
+#define IMFCaptureSink2_GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown) (This)->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown)
+#define IMFCaptureSink2_AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex) (This)->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex)
+#define IMFCaptureSink2_Prepare(This) (This)->lpVtbl->Prepare(This)
+#define IMFCaptureSink2_RemoveAllStreams(This) (This)->lpVtbl->RemoveAllStreams(This)
+/*** IMFCaptureSink2 methods ***/
+#define IMFCaptureSink2_SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes) (This)->lpVtbl->SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFCaptureSink2_QueryInterface(IMFCaptureSink2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFCaptureSink2_AddRef(IMFCaptureSink2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFCaptureSink2_Release(IMFCaptureSink2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFCaptureSink methods ***/
+static FORCEINLINE HRESULT IMFCaptureSink2_GetOutputMediaType(IMFCaptureSink2* This,DWORD dwSinkStreamIndex,IMFMediaType **ppMediaType) {
+ return This->lpVtbl->GetOutputMediaType(This,dwSinkStreamIndex,ppMediaType);
+}
+static FORCEINLINE HRESULT IMFCaptureSink2_GetService(IMFCaptureSink2* This,DWORD dwSinkStreamIndex,REFGUID rguidService,REFIID riid,IUnknown **ppUnknown) {
+ return This->lpVtbl->GetService(This,dwSinkStreamIndex,rguidService,riid,ppUnknown);
+}
+static FORCEINLINE HRESULT IMFCaptureSink2_AddStream(IMFCaptureSink2* This,DWORD dwSourceStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pAttributes,DWORD *pdwSinkStreamIndex) {
+ return This->lpVtbl->AddStream(This,dwSourceStreamIndex,pMediaType,pAttributes,pdwSinkStreamIndex);
+}
+static FORCEINLINE HRESULT IMFCaptureSink2_Prepare(IMFCaptureSink2* This) {
+ return This->lpVtbl->Prepare(This);
+}
+static FORCEINLINE HRESULT IMFCaptureSink2_RemoveAllStreams(IMFCaptureSink2* This) {
+ return This->lpVtbl->RemoveAllStreams(This);
+}
+/*** IMFCaptureSink2 methods ***/
+static FORCEINLINE HRESULT IMFCaptureSink2_SetOutputMediaType(IMFCaptureSink2* This,DWORD dwStreamIndex,IMFMediaType *pMediaType,IMFAttributes *pEncodingAttributes) {
+ return This->lpVtbl->SetOutputMediaType(This,dwStreamIndex,pMediaType,pEncodingAttributes);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFCaptureSink2_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+#endif /* WINVER >= _WIN32_WINNT_WIN7 */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __mfcaptureengine_h__ */
lib/libc/include/any-windows-any/mfd3d12.h
@@ -0,0 +1,275 @@
+/*** Autogenerated by WIDL 7.0 from include/mfd3d12.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __mfd3d12_h__
+#define __mfd3d12_h__
+
+/* Forward declarations */
+
+#ifndef __IMFD3D12SynchronizationObjectCommands_FWD_DEFINED__
+#define __IMFD3D12SynchronizationObjectCommands_FWD_DEFINED__
+typedef interface IMFD3D12SynchronizationObjectCommands IMFD3D12SynchronizationObjectCommands;
+#ifdef __cplusplus
+interface IMFD3D12SynchronizationObjectCommands;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFD3D12SynchronizationObject_FWD_DEFINED__
+#define __IMFD3D12SynchronizationObject_FWD_DEFINED__
+typedef interface IMFD3D12SynchronizationObject IMFD3D12SynchronizationObject;
+#ifdef __cplusplus
+interface IMFD3D12SynchronizationObject;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <mfidl.h>
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+/*****************************************************************************
+ * IMFD3D12SynchronizationObjectCommands interface
+ */
+#ifndef __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__
+#define __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFD3D12SynchronizationObjectCommands, 0x09d0f835, 0x92ff, 0x4e53, 0x8e,0xfa, 0x40,0xfa,0xa5,0x51,0xf2,0x33);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("09d0f835-92ff-4e53-8efa-40faa551f233")
+IMFD3D12SynchronizationObjectCommands : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE EnqueueResourceReady(
+ ID3D12CommandQueue *pProducerCommandQueue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnqueueResourceReadyWait(
+ ID3D12CommandQueue *pConsumerCommandQueue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SignalEventOnResourceReady(
+ HANDLE hEvent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnqueueResourceRelease(
+ ID3D12CommandQueue *pConsumerCommandQueue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFD3D12SynchronizationObjectCommands, 0x09d0f835, 0x92ff, 0x4e53, 0x8e,0xfa, 0x40,0xfa,0xa5,0x51,0xf2,0x33)
+#endif
+#else
+typedef struct IMFD3D12SynchronizationObjectCommandsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFD3D12SynchronizationObjectCommands *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFD3D12SynchronizationObjectCommands *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFD3D12SynchronizationObjectCommands *This);
+
+ /*** IMFD3D12SynchronizationObjectCommands methods ***/
+ HRESULT (STDMETHODCALLTYPE *EnqueueResourceReady)(
+ IMFD3D12SynchronizationObjectCommands *This,
+ ID3D12CommandQueue *pProducerCommandQueue);
+
+ HRESULT (STDMETHODCALLTYPE *EnqueueResourceReadyWait)(
+ IMFD3D12SynchronizationObjectCommands *This,
+ ID3D12CommandQueue *pConsumerCommandQueue);
+
+ HRESULT (STDMETHODCALLTYPE *SignalEventOnResourceReady)(
+ IMFD3D12SynchronizationObjectCommands *This,
+ HANDLE hEvent);
+
+ HRESULT (STDMETHODCALLTYPE *EnqueueResourceRelease)(
+ IMFD3D12SynchronizationObjectCommands *This,
+ ID3D12CommandQueue *pConsumerCommandQueue);
+
+ END_INTERFACE
+} IMFD3D12SynchronizationObjectCommandsVtbl;
+
+interface IMFD3D12SynchronizationObjectCommands {
+ CONST_VTBL IMFD3D12SynchronizationObjectCommandsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFD3D12SynchronizationObjectCommands_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFD3D12SynchronizationObjectCommands_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFD3D12SynchronizationObjectCommands_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFD3D12SynchronizationObjectCommands methods ***/
+#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceReady(This,pProducerCommandQueue) (This)->lpVtbl->EnqueueResourceReady(This,pProducerCommandQueue)
+#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceReadyWait(This,pConsumerCommandQueue) (This)->lpVtbl->EnqueueResourceReadyWait(This,pConsumerCommandQueue)
+#define IMFD3D12SynchronizationObjectCommands_SignalEventOnResourceReady(This,hEvent) (This)->lpVtbl->SignalEventOnResourceReady(This,hEvent)
+#define IMFD3D12SynchronizationObjectCommands_EnqueueResourceRelease(This,pConsumerCommandQueue) (This)->lpVtbl->EnqueueResourceRelease(This,pConsumerCommandQueue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_QueryInterface(IMFD3D12SynchronizationObjectCommands* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFD3D12SynchronizationObjectCommands_AddRef(IMFD3D12SynchronizationObjectCommands* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFD3D12SynchronizationObjectCommands_Release(IMFD3D12SynchronizationObjectCommands* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFD3D12SynchronizationObjectCommands methods ***/
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceReady(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pProducerCommandQueue) {
+ return This->lpVtbl->EnqueueResourceReady(This,pProducerCommandQueue);
+}
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceReadyWait(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pConsumerCommandQueue) {
+ return This->lpVtbl->EnqueueResourceReadyWait(This,pConsumerCommandQueue);
+}
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_SignalEventOnResourceReady(IMFD3D12SynchronizationObjectCommands* This,HANDLE hEvent) {
+ return This->lpVtbl->SignalEventOnResourceReady(This,hEvent);
+}
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObjectCommands_EnqueueResourceRelease(IMFD3D12SynchronizationObjectCommands* This,ID3D12CommandQueue *pConsumerCommandQueue) {
+ return This->lpVtbl->EnqueueResourceRelease(This,pConsumerCommandQueue);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFD3D12SynchronizationObjectCommands_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFD3D12SynchronizationObject interface
+ */
+#ifndef __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__
+#define __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFD3D12SynchronizationObject, 0x802302b0, 0x82de, 0x45e1, 0xb4,0x21, 0xf1,0x9e,0xe5,0xbd,0xaf,0x23);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("802302b0-82de-45e1-b421-f19ee5bdaf23")
+IMFD3D12SynchronizationObject : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SignalEventOnFinalResourceRelease(
+ HANDLE hEvent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFD3D12SynchronizationObject, 0x802302b0, 0x82de, 0x45e1, 0xb4,0x21, 0xf1,0x9e,0xe5,0xbd,0xaf,0x23)
+#endif
+#else
+typedef struct IMFD3D12SynchronizationObjectVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFD3D12SynchronizationObject *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFD3D12SynchronizationObject *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFD3D12SynchronizationObject *This);
+
+ /*** IMFD3D12SynchronizationObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SignalEventOnFinalResourceRelease)(
+ IMFD3D12SynchronizationObject *This,
+ HANDLE hEvent);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IMFD3D12SynchronizationObject *This);
+
+ END_INTERFACE
+} IMFD3D12SynchronizationObjectVtbl;
+
+interface IMFD3D12SynchronizationObject {
+ CONST_VTBL IMFD3D12SynchronizationObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFD3D12SynchronizationObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFD3D12SynchronizationObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFD3D12SynchronizationObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFD3D12SynchronizationObject methods ***/
+#define IMFD3D12SynchronizationObject_SignalEventOnFinalResourceRelease(This,hEvent) (This)->lpVtbl->SignalEventOnFinalResourceRelease(This,hEvent)
+#define IMFD3D12SynchronizationObject_Reset(This) (This)->lpVtbl->Reset(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_QueryInterface(IMFD3D12SynchronizationObject* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFD3D12SynchronizationObject_AddRef(IMFD3D12SynchronizationObject* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFD3D12SynchronizationObject_Release(IMFD3D12SynchronizationObject* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFD3D12SynchronizationObject methods ***/
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_SignalEventOnFinalResourceRelease(IMFD3D12SynchronizationObject* This,HANDLE hEvent) {
+ return This->lpVtbl->SignalEventOnFinalResourceRelease(This,hEvent);
+}
+static FORCEINLINE HRESULT IMFD3D12SynchronizationObject_Reset(IMFD3D12SynchronizationObject* This) {
+ return This->lpVtbl->Reset(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFD3D12SynchronizationObject_INTERFACE_DEFINED__ */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_CO
+HRESULT MFCreateD3D12SynchronizationObject(ID3D12Device *pDevice, REFIID riid, void **ppvSyncObject);
+#endif /* NTDDI_WIN10_CO */
+typedef enum MF_MT_D3D_RESOURCE_VERSION_ENUM {
+ MF_D3D11_RESOURCE = 0,
+ MF_D3D12_RESOURCE = 1
+} MF_MT_D3D_RESOURCE_VERSION_ENUM;
+EXTERN_GUID(MF_D3D12_SYNCHRONIZATION_OBJECT, 0x2a7c8d6a, 0x85a6, 0x494d, 0xa0, 0x46, 0x6, 0xea, 0x1a, 0x13, 0x8f, 0x4b);
+EXTERN_GUID(MF_MT_D3D_RESOURCE_VERSION, 0x174f1e85, 0xfe26, 0x453d, 0xb5, 0x2e, 0x5b, 0xdd, 0x4e, 0x55, 0xb9, 0x44);
+EXTERN_GUID(MF_MT_D3D12_CPU_READBACK, 0x28ee9fe3, 0xd481, 0x46a6, 0xb9, 0x8a, 0x7f, 0x69, 0xd5, 0x28, 0xe, 0x82);
+EXTERN_GUID(MF_MT_D3D12_TEXTURE_LAYOUT, 0x97c85caa, 0xbeb, 0x4ee1, 0x97, 0x15, 0xf2, 0x2f, 0xad, 0x8c, 0x10, 0xf5);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, 0xeeac2585, 0x3430, 0x498c, 0x84, 0xa2, 0x77, 0xb1, 0xbb, 0xa5, 0x70, 0xf6);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, 0xb1138dc3, 0x1d5, 0x4c14, 0x9b, 0xdc, 0xcd, 0xc9, 0x33, 0x6f, 0x55, 0xb9);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, 0x82c85647, 0x5057, 0x4960, 0x95, 0x59, 0xf4, 0x5b, 0x8e, 0x27, 0x14, 0x27);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE, 0xba06bfac, 0xffe3, 0x474a, 0xab, 0x55, 0x16, 0x1e, 0xe4, 0x41, 0x7a, 0x2e);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER, 0xa6a1e439, 0x2f96, 0x4ab5, 0x98, 0xdc, 0xad, 0xf7, 0x49, 0x73, 0x50, 0x5d);
+EXTERN_GUID(MF_MT_D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, 0xa4940b2, 0xcfd6, 0x4738, 0x9d, 0x2, 0x98, 0x11, 0x37, 0x34, 0x1, 0x5a);
+EXTERN_GUID(MF_SA_D3D12_HEAP_FLAGS, 0x496b3266, 0xd28f, 0x4f8c, 0x93, 0xa7, 0x4a, 0x59, 0x6b, 0x1a, 0x31, 0xa1);
+EXTERN_GUID(MF_SA_D3D12_HEAP_TYPE, 0x56f26a76, 0xbbc1, 0x4ce0, 0xbb, 0x11, 0xe2, 0x23, 0x68, 0xd8, 0x74, 0xed);
+EXTERN_GUID(MF_SA_D3D12_CLEAR_VALUE, 0x86ba9a39, 0x526, 0x495d, 0x9a, 0xb5, 0x54, 0xec, 0x9f, 0xad, 0x6f, 0xc3);
+#endif /* WINAPI_PARTITION_APP */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __mfd3d12_h__ */
lib/libc/include/any-windows-any/mfidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/mfidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/mfidl.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -90,6 +90,14 @@ interface IMFMediaSource;
#endif /* __cplusplus */
#endif
+#ifndef __IMFMediaSourceEx_FWD_DEFINED__
+#define __IMFMediaSourceEx_FWD_DEFINED__
+typedef interface IMFMediaSourceEx IMFMediaSourceEx;
+#ifdef __cplusplus
+interface IMFMediaSourceEx;
+#endif /* __cplusplus */
+#endif
+
#ifndef __IMFByteStreamBuffering_FWD_DEFINED__
#define __IMFByteStreamBuffering_FWD_DEFINED__
typedef interface IMFByteStreamBuffering IMFByteStreamBuffering;
@@ -202,6 +210,22 @@ interface IMFSampleGrabberSinkCallback;
#endif /* __cplusplus */
#endif
+#ifndef __IMFShutdown_FWD_DEFINED__
+#define __IMFShutdown_FWD_DEFINED__
+typedef interface IMFShutdown IMFShutdown;
+#ifdef __cplusplus
+interface IMFShutdown;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSimpleAudioVolume_FWD_DEFINED__
+#define __IMFSimpleAudioVolume_FWD_DEFINED__
+typedef interface IMFSimpleAudioVolume IMFSimpleAudioVolume;
+#ifdef __cplusplus
+interface IMFSimpleAudioVolume;
+#endif /* __cplusplus */
+#endif
+
#ifndef __IMFSourceResolver_FWD_DEFINED__
#define __IMFSourceResolver_FWD_DEFINED__
typedef interface IMFSourceResolver IMFSourceResolver;
@@ -218,6 +242,14 @@ interface IMFStreamSink;
#endif /* __cplusplus */
#endif
+#ifndef __IMFTimer_FWD_DEFINED__
+#define __IMFTimer_FWD_DEFINED__
+typedef interface IMFTimer IMFTimer;
+#ifdef __cplusplus
+interface IMFTimer;
+#endif /* __cplusplus */
+#endif
+
#ifndef __IMFTopoLoader_FWD_DEFINED__
#define __IMFTopoLoader_FWD_DEFINED__
typedef interface IMFTopoLoader IMFTopoLoader;
@@ -226,6 +258,78 @@ interface IMFTopoLoader;
#endif /* __cplusplus */
#endif
+#ifndef __IMFVideoSampleAllocator_FWD_DEFINED__
+#define __IMFVideoSampleAllocator_FWD_DEFINED__
+typedef interface IMFVideoSampleAllocator IMFVideoSampleAllocator;
+#ifdef __cplusplus
+interface IMFVideoSampleAllocator;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoSampleAllocatorNotify_FWD_DEFINED__
+#define __IMFVideoSampleAllocatorNotify_FWD_DEFINED__
+typedef interface IMFVideoSampleAllocatorNotify IMFVideoSampleAllocatorNotify;
+#ifdef __cplusplus
+interface IMFVideoSampleAllocatorNotify;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoSampleAllocatorNotifyEx_FWD_DEFINED__
+#define __IMFVideoSampleAllocatorNotifyEx_FWD_DEFINED__
+typedef interface IMFVideoSampleAllocatorNotifyEx IMFVideoSampleAllocatorNotifyEx;
+#ifdef __cplusplus
+interface IMFVideoSampleAllocatorNotifyEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoSampleAllocatorCallback_FWD_DEFINED__
+#define __IMFVideoSampleAllocatorCallback_FWD_DEFINED__
+typedef interface IMFVideoSampleAllocatorCallback IMFVideoSampleAllocatorCallback;
+#ifdef __cplusplus
+interface IMFVideoSampleAllocatorCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoSampleAllocatorEx_FWD_DEFINED__
+#define __IMFVideoSampleAllocatorEx_FWD_DEFINED__
+typedef interface IMFVideoSampleAllocatorEx IMFVideoSampleAllocatorEx;
+#ifdef __cplusplus
+interface IMFVideoSampleAllocatorEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoProcessorControl_FWD_DEFINED__
+#define __IMFVideoProcessorControl_FWD_DEFINED__
+typedef interface IMFVideoProcessorControl IMFVideoProcessorControl;
+#ifdef __cplusplus
+interface IMFVideoProcessorControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoProcessorControl2_FWD_DEFINED__
+#define __IMFVideoProcessorControl2_FWD_DEFINED__
+typedef interface IMFVideoProcessorControl2 IMFVideoProcessorControl2;
+#ifdef __cplusplus
+interface IMFVideoProcessorControl2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoProcessorControl3_FWD_DEFINED__
+#define __IMFVideoProcessorControl3_FWD_DEFINED__
+typedef interface IMFVideoProcessorControl3 IMFVideoProcessorControl3;
+#ifdef __cplusplus
+interface IMFVideoProcessorControl3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFVideoRendererEffectControl_FWD_DEFINED__
+#define __IMFVideoRendererEffectControl_FWD_DEFINED__
+typedef interface IMFVideoRendererEffectControl IMFVideoRendererEffectControl;
+#ifdef __cplusplus
+interface IMFVideoRendererEffectControl;
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <mfobjects.h>
@@ -242,10 +346,11 @@ typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
} MFSESSION_SETTOPOLOGY_FLAGS;
typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
- MFSESSION_GETFULLTOPOLOGY_CURRENT = 0
+ MFSESSION_GETFULLTOPOLOGY_CURRENT = 0x1
} MFSESSION_GETFULLTOPOLOGY_FLAGS;
typedef enum MFPMPSESSION_CREATION_FLAGS {
- MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
+ MFPMPSESSION_UNPROTECTED_PROCESS = 0x1,
+ MFPMPSESSION_IN_PROCESS = 0x2
} MFPMPSESSION_CREATION_FLAGS;
typedef UINT64 TOPOID;
typedef enum MF_TOPOLOGY_TYPE {
@@ -2852,6 +2957,201 @@ HRESULT __RPC_STUB IMFMediaSource_CreatePresentationDescriptor_Stub(
#endif /* __IMFMediaSource_INTERFACE_DEFINED__ */
+#if (WINVER >= _WIN32_WINNT_WIN8)
+/*****************************************************************************
+ * IMFMediaSourceEx interface
+ */
+#ifndef __IMFMediaSourceEx_INTERFACE_DEFINED__
+#define __IMFMediaSourceEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMediaSourceEx, 0x3c9b2eb9, 0x86d5, 0x4514, 0xa3,0x94, 0xf5,0x66,0x64,0xf9,0xf0,0xd8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3c9b2eb9-86d5-4514-a394-f56664f9f0d8")
+IMFMediaSourceEx : public IMFMediaSource
+{
+ virtual HRESULT STDMETHODCALLTYPE GetSourceAttributes(
+ IMFAttributes **ppAttributes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStreamAttributes(
+ DWORD dwStreamIdentifier,
+ IMFAttributes **ppAttributes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetD3DManager(
+ IUnknown *pManager) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMediaSourceEx, 0x3c9b2eb9, 0x86d5, 0x4514, 0xa3,0x94, 0xf5,0x66,0x64,0xf9,0xf0,0xd8)
+#endif
+#else
+typedef struct IMFMediaSourceExVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFMediaSourceEx *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFMediaSourceEx *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFMediaSourceEx *This);
+
+ /*** IMFMediaEventGenerator methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetEvent)(
+ IMFMediaSourceEx *This,
+ DWORD dwFlags,
+ IMFMediaEvent **ppEvent);
+
+ HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
+ IMFMediaSourceEx *This,
+ IMFAsyncCallback *pCallback,
+ IUnknown *punkState);
+
+ HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
+ IMFMediaSourceEx *This,
+ IMFAsyncResult *pResult,
+ IMFMediaEvent **ppEvent);
+
+ HRESULT (STDMETHODCALLTYPE *QueueEvent)(
+ IMFMediaSourceEx *This,
+ MediaEventType met,
+ REFGUID guidExtendedType,
+ HRESULT hrStatus,
+ const PROPVARIANT *pvValue);
+
+ /*** IMFMediaSource methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
+ IMFMediaSourceEx *This,
+ DWORD *pdwCharacteristics);
+
+ HRESULT (STDMETHODCALLTYPE *CreatePresentationDescriptor)(
+ IMFMediaSourceEx *This,
+ IMFPresentationDescriptor **ppPresentationDescriptor);
+
+ HRESULT (STDMETHODCALLTYPE *Start)(
+ IMFMediaSourceEx *This,
+ IMFPresentationDescriptor *pPresentationDescriptor,
+ const GUID *pguidTimeFormat,
+ const PROPVARIANT *pvarStartPosition);
+
+ HRESULT (STDMETHODCALLTYPE *Stop)(
+ IMFMediaSourceEx *This);
+
+ HRESULT (STDMETHODCALLTYPE *Pause)(
+ IMFMediaSourceEx *This);
+
+ HRESULT (STDMETHODCALLTYPE *Shutdown)(
+ IMFMediaSourceEx *This);
+
+ /*** IMFMediaSourceEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSourceAttributes)(
+ IMFMediaSourceEx *This,
+ IMFAttributes **ppAttributes);
+
+ HRESULT (STDMETHODCALLTYPE *GetStreamAttributes)(
+ IMFMediaSourceEx *This,
+ DWORD dwStreamIdentifier,
+ IMFAttributes **ppAttributes);
+
+ HRESULT (STDMETHODCALLTYPE *SetD3DManager)(
+ IMFMediaSourceEx *This,
+ IUnknown *pManager);
+
+ END_INTERFACE
+} IMFMediaSourceExVtbl;
+
+interface IMFMediaSourceEx {
+ CONST_VTBL IMFMediaSourceExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMediaSourceEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSourceEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMediaSourceEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaEventGenerator methods ***/
+#define IMFMediaSourceEx_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFMediaSourceEx_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFMediaSourceEx_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFMediaSourceEx_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+/*** IMFMediaSource methods ***/
+#define IMFMediaSourceEx_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define IMFMediaSourceEx_CreatePresentationDescriptor(This,ppPresentationDescriptor) (This)->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor)
+#define IMFMediaSourceEx_Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition) (This)->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition)
+#define IMFMediaSourceEx_Stop(This) (This)->lpVtbl->Stop(This)
+#define IMFMediaSourceEx_Pause(This) (This)->lpVtbl->Pause(This)
+#define IMFMediaSourceEx_Shutdown(This) (This)->lpVtbl->Shutdown(This)
+/*** IMFMediaSourceEx methods ***/
+#define IMFMediaSourceEx_GetSourceAttributes(This,ppAttributes) (This)->lpVtbl->GetSourceAttributes(This,ppAttributes)
+#define IMFMediaSourceEx_GetStreamAttributes(This,dwStreamIdentifier,ppAttributes) (This)->lpVtbl->GetStreamAttributes(This,dwStreamIdentifier,ppAttributes)
+#define IMFMediaSourceEx_SetD3DManager(This,pManager) (This)->lpVtbl->SetD3DManager(This,pManager)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMediaSourceEx_QueryInterface(IMFMediaSourceEx* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMediaSourceEx_AddRef(IMFMediaSourceEx* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMediaSourceEx_Release(IMFMediaSourceEx* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFMediaEventGenerator methods ***/
+static FORCEINLINE HRESULT IMFMediaSourceEx_GetEvent(IMFMediaSourceEx* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
+ return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_BeginGetEvent(IMFMediaSourceEx* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+ return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_EndGetEvent(IMFMediaSourceEx* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
+ return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_QueueEvent(IMFMediaSourceEx* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
+ return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
+}
+/*** IMFMediaSource methods ***/
+static FORCEINLINE HRESULT IMFMediaSourceEx_GetCharacteristics(IMFMediaSourceEx* This,DWORD *pdwCharacteristics) {
+ return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_CreatePresentationDescriptor(IMFMediaSourceEx* This,IMFPresentationDescriptor **ppPresentationDescriptor) {
+ return This->lpVtbl->CreatePresentationDescriptor(This,ppPresentationDescriptor);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_Start(IMFMediaSourceEx* This,IMFPresentationDescriptor *pPresentationDescriptor,const GUID *pguidTimeFormat,const PROPVARIANT *pvarStartPosition) {
+ return This->lpVtbl->Start(This,pPresentationDescriptor,pguidTimeFormat,pvarStartPosition);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_Stop(IMFMediaSourceEx* This) {
+ return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_Pause(IMFMediaSourceEx* This) {
+ return This->lpVtbl->Pause(This);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_Shutdown(IMFMediaSourceEx* This) {
+ return This->lpVtbl->Shutdown(This);
+}
+/*** IMFMediaSourceEx methods ***/
+static FORCEINLINE HRESULT IMFMediaSourceEx_GetSourceAttributes(IMFMediaSourceEx* This,IMFAttributes **ppAttributes) {
+ return This->lpVtbl->GetSourceAttributes(This,ppAttributes);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_GetStreamAttributes(IMFMediaSourceEx* This,DWORD dwStreamIdentifier,IMFAttributes **ppAttributes) {
+ return This->lpVtbl->GetStreamAttributes(This,dwStreamIdentifier,ppAttributes);
+}
+static FORCEINLINE HRESULT IMFMediaSourceEx_SetD3DManager(IMFMediaSourceEx* This,IUnknown *pManager) {
+ return This->lpVtbl->SetD3DManager(This,pManager);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFMediaSourceEx_INTERFACE_DEFINED__ */
+
+EXTERN_GUID(MF_SOURCE_STREAM_SUPPORTS_HW_CONNECTION, 0xa38253aa, 0x6314, 0x42fd, 0xa3, 0xce, 0xbb, 0x27, 0xb6, 0x85, 0x99, 0x46);
+#endif /* (WINVER >= _WIN32_WINNT_WIN8) */
typedef struct _MF_LEAKY_BUCKET_PAIR {
DWORD dwBitrate;
DWORD msBufferWindow;
@@ -3141,6 +3441,21 @@ typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS {
MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
#endif
+EXTERN_GUID(MF_TRANSCODE_CONTAINERTYPE, 0x150ff23f, 0x4abc, 0x478b, 0xac, 0x4f, 0xe1, 0x91, 0x6f, 0xba, 0x1c, 0xca);
+EXTERN_GUID(MFTranscodeContainerType_ASF, 0x430f6f6e, 0xb6bf, 0x4fc1, 0xa0, 0xbd, 0x9e, 0xe4, 0x6e, 0xee, 0x2a, 0xfb);
+EXTERN_GUID(MFTranscodeContainerType_MPEG4, 0xdc6cd05d, 0xb9d0, 0x40ef, 0xbd, 0x35, 0xfa, 0x62, 0x2c, 0x1a, 0xb2, 0x8a);
+EXTERN_GUID(MFTranscodeContainerType_MP3, 0xe438b912, 0x83f1, 0x4de6, 0x9e, 0x3a, 0x9f, 0xfb, 0xc6, 0xdd, 0x24, 0xd1);
+EXTERN_GUID(MFTranscodeContainerType_FLAC, 0x31344aa3, 0x05a9, 0x42b5, 0x90, 0x1b, 0x8e, 0x9d, 0x42, 0x57, 0xf7, 0x5e);
+EXTERN_GUID(MFTranscodeContainerType_3GP, 0x34c50167, 0x4472, 0x4f34, 0x9e, 0xa0, 0xc4, 0x9f, 0xba, 0xcf, 0x03, 0x7d);
+EXTERN_GUID(MFTranscodeContainerType_AC3, 0x6d8d91c3, 0x8c91, 0x4ed1, 0x87, 0x42, 0x8c, 0x34, 0x7d, 0x5b, 0x44, 0xd0);
+EXTERN_GUID(MFTranscodeContainerType_ADTS, 0x132fd27d, 0x0f02, 0x43de, 0xa3, 0x01, 0x38, 0xfb, 0xbb, 0xb3, 0x83, 0x4e);
+EXTERN_GUID(MFTranscodeContainerType_MPEG2, 0xbfc2dbf9, 0x7bb4, 0x4f8f, 0xaf, 0xde, 0xe1, 0x12, 0xc4, 0x4b, 0xa8, 0x82);
+EXTERN_GUID(MFTranscodeContainerType_WAVE, 0x64c3453c, 0x0f26, 0x4741, 0xbe, 0x63, 0x87, 0xbd, 0xf8, 0xbb, 0x93, 0x5b);
+EXTERN_GUID(MFTranscodeContainerType_AVI, 0x7edfe8af, 0x402f, 0x4d76, 0xa3, 0x3c, 0x61, 0x9f, 0xd1, 0x57, 0xd0, 0xf1);
+#if (WINVER >= _WIN32_WINNT_WIN8)
+EXTERN_GUID(MFTranscodeContainerType_FMPEG4, 0x9ba876f1, 0x419f, 0x4b77, 0xa1, 0xe0, 0x35, 0x95, 0x9d, 0x9d, 0x40, 0x4);
+#endif /* (WINVER >= _WIN32_WINNT_WIN8) */
+EXTERN_GUID(MFTranscodeContainerType_AMR, 0x25d5ad3, 0x621a, 0x475b, 0x96, 0x4d, 0x66, 0xb1, 0xc8, 0x24, 0xf0, 0x79);
typedef enum __WIDL_mfidl_generated_name_0000002E {
MF_LICENSE_URL_UNTRUSTED = 0,
MF_LICENSE_URL_TRUSTED = 1,
@@ -5055,116 +5370,313 @@ static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnShutdown(IMFSampleGrab
#endif /* __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ */
/*****************************************************************************
- * IMFSourceResolver interface
+ * IMFShutdown interface
*/
-#ifndef __IMFSourceResolver_INTERFACE_DEFINED__
-#define __IMFSourceResolver_INTERFACE_DEFINED__
+#ifndef __IMFShutdown_INTERFACE_DEFINED__
+#define __IMFShutdown_INTERFACE_DEFINED__
-DEFINE_GUID(IID_IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3);
+DEFINE_GUID(IID_IMFShutdown, 0x97ec2ea4, 0x0e42, 0x4937, 0x97,0xac, 0x9d,0x6d,0x32,0x88,0x24,0xe1);
#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("fbe5a32d-a497-4b61-bb85-97b1a848a6e3")
-IMFSourceResolver : public IUnknown
+MIDL_INTERFACE("97ec2ea4-0e42-4937-97ac-9d6d328824e1")
+IMFShutdown : public IUnknown
{
- virtual HRESULT STDMETHODCALLTYPE CreateObjectFromURL(
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE CreateObjectFromByteStream(
- IMFByteStream *pByteStream,
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromURL(
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- IUnknown **ppIUnknownCancelCookie,
- IMFAsyncCallback *pCallback,
- IUnknown *punkState) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromURL(
- IMFAsyncResult *pResult,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromByteStream(
- IMFByteStream *pByteStream,
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- IUnknown **ppIUnknownCancelCookie,
- IMFAsyncCallback *pCallback,
- IUnknown *punkState) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromByteStream(
- IMFAsyncResult *pResult,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject) = 0;
+ virtual HRESULT STDMETHODCALLTYPE Shutdown(
+ ) = 0;
- virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation(
- IUnknown *pIUnknownCancelCookie) = 0;
+ virtual HRESULT STDMETHODCALLTYPE GetShutdownStatus(
+ MFSHUTDOWN_STATUS *pStatus) = 0;
};
#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3)
+__CRT_UUID_DECL(IMFShutdown, 0x97ec2ea4, 0x0e42, 0x4937, 0x97,0xac, 0x9d,0x6d,0x32,0x88,0x24,0xe1)
#endif
#else
-typedef struct IMFSourceResolverVtbl {
+typedef struct IMFShutdownVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
- IMFSourceResolver *This,
+ IMFShutdown *This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
- IMFSourceResolver *This);
+ IMFShutdown *This);
ULONG (STDMETHODCALLTYPE *Release)(
- IMFSourceResolver *This);
+ IMFShutdown *This);
- /*** IMFSourceResolver methods ***/
- HRESULT (STDMETHODCALLTYPE *CreateObjectFromURL)(
- IMFSourceResolver *This,
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject);
+ /*** IMFShutdown methods ***/
+ HRESULT (STDMETHODCALLTYPE *Shutdown)(
+ IMFShutdown *This);
- HRESULT (STDMETHODCALLTYPE *CreateObjectFromByteStream)(
- IMFSourceResolver *This,
- IMFByteStream *pByteStream,
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject);
+ HRESULT (STDMETHODCALLTYPE *GetShutdownStatus)(
+ IMFShutdown *This,
+ MFSHUTDOWN_STATUS *pStatus);
- HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromURL)(
- IMFSourceResolver *This,
- LPCWSTR pwszURL,
- DWORD dwFlags,
- IPropertyStore *pProps,
- IUnknown **ppIUnknownCancelCookie,
- IMFAsyncCallback *pCallback,
- IUnknown *punkState);
+ END_INTERFACE
+} IMFShutdownVtbl;
- HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromURL)(
- IMFSourceResolver *This,
- IMFAsyncResult *pResult,
- MF_OBJECT_TYPE *pObjectType,
- IUnknown **ppObject);
+interface IMFShutdown {
+ CONST_VTBL IMFShutdownVtbl* lpVtbl;
+};
- HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromByteStream)(
- IMFSourceResolver *This,
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFShutdown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFShutdown_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFShutdown_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFShutdown methods ***/
+#define IMFShutdown_Shutdown(This) (This)->lpVtbl->Shutdown(This)
+#define IMFShutdown_GetShutdownStatus(This,pStatus) (This)->lpVtbl->GetShutdownStatus(This,pStatus)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFShutdown_QueryInterface(IMFShutdown* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFShutdown_AddRef(IMFShutdown* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFShutdown_Release(IMFShutdown* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFShutdown methods ***/
+static FORCEINLINE HRESULT IMFShutdown_Shutdown(IMFShutdown* This) {
+ return This->lpVtbl->Shutdown(This);
+}
+static FORCEINLINE HRESULT IMFShutdown_GetShutdownStatus(IMFShutdown* This,MFSHUTDOWN_STATUS *pStatus) {
+ return This->lpVtbl->GetShutdownStatus(This,pStatus);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFShutdown_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSimpleAudioVolume interface
+ */
+#ifndef __IMFSimpleAudioVolume_INTERFACE_DEFINED__
+#define __IMFSimpleAudioVolume_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSimpleAudioVolume, 0x089edf13, 0xcf71, 0x4338, 0x8d,0x13, 0x9e,0x56,0x9d,0xbd,0xc3,0x19);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("089edf13-cf71-4338-8d13-9e569dbdc319")
+IMFSimpleAudioVolume : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetMasterVolume(
+ float fLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
+ float *pfLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMute(
+ const WINBOOL bMute) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMute(
+ WINBOOL *pbMute) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSimpleAudioVolume, 0x089edf13, 0xcf71, 0x4338, 0x8d,0x13, 0x9e,0x56,0x9d,0xbd,0xc3,0x19)
+#endif
+#else
+typedef struct IMFSimpleAudioVolumeVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFSimpleAudioVolume *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFSimpleAudioVolume *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFSimpleAudioVolume *This);
+
+ /*** IMFSimpleAudioVolume methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetMasterVolume)(
+ IMFSimpleAudioVolume *This,
+ float fLevel);
+
+ HRESULT (STDMETHODCALLTYPE *GetMasterVolume)(
+ IMFSimpleAudioVolume *This,
+ float *pfLevel);
+
+ HRESULT (STDMETHODCALLTYPE *SetMute)(
+ IMFSimpleAudioVolume *This,
+ const WINBOOL bMute);
+
+ HRESULT (STDMETHODCALLTYPE *GetMute)(
+ IMFSimpleAudioVolume *This,
+ WINBOOL *pbMute);
+
+ END_INTERFACE
+} IMFSimpleAudioVolumeVtbl;
+
+interface IMFSimpleAudioVolume {
+ CONST_VTBL IMFSimpleAudioVolumeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSimpleAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSimpleAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSimpleAudioVolume_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSimpleAudioVolume methods ***/
+#define IMFSimpleAudioVolume_SetMasterVolume(This,fLevel) (This)->lpVtbl->SetMasterVolume(This,fLevel)
+#define IMFSimpleAudioVolume_GetMasterVolume(This,pfLevel) (This)->lpVtbl->GetMasterVolume(This,pfLevel)
+#define IMFSimpleAudioVolume_SetMute(This,bMute) (This)->lpVtbl->SetMute(This,bMute)
+#define IMFSimpleAudioVolume_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSimpleAudioVolume_QueryInterface(IMFSimpleAudioVolume* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSimpleAudioVolume_AddRef(IMFSimpleAudioVolume* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSimpleAudioVolume_Release(IMFSimpleAudioVolume* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IMFSimpleAudioVolume methods ***/
+static FORCEINLINE HRESULT IMFSimpleAudioVolume_SetMasterVolume(IMFSimpleAudioVolume* This,float fLevel) {
+ return This->lpVtbl->SetMasterVolume(This,fLevel);
+}
+static FORCEINLINE HRESULT IMFSimpleAudioVolume_GetMasterVolume(IMFSimpleAudioVolume* This,float *pfLevel) {
+ return This->lpVtbl->GetMasterVolume(This,pfLevel);
+}
+static FORCEINLINE HRESULT IMFSimpleAudioVolume_SetMute(IMFSimpleAudioVolume* This,const WINBOOL bMute) {
+ return This->lpVtbl->SetMute(This,bMute);
+}
+static FORCEINLINE HRESULT IMFSimpleAudioVolume_GetMute(IMFSimpleAudioVolume* This,WINBOOL *pbMute) {
+ return This->lpVtbl->GetMute(This,pbMute);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IMFSimpleAudioVolume_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSourceResolver interface
+ */
+#ifndef __IMFSourceResolver_INTERFACE_DEFINED__
+#define __IMFSourceResolver_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fbe5a32d-a497-4b61-bb85-97b1a848a6e3")
+IMFSourceResolver : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateObjectFromURL(
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CreateObjectFromByteStream(
+ IMFByteStream *pByteStream,
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromURL(
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ IUnknown **ppIUnknownCancelCookie,
+ IMFAsyncCallback *pCallback,
+ IUnknown *punkState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromURL(
+ IMFAsyncResult *pResult,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromByteStream(
+ IMFByteStream *pByteStream,
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ IUnknown **ppIUnknownCancelCookie,
+ IMFAsyncCallback *pCallback,
+ IUnknown *punkState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromByteStream(
+ IMFAsyncResult *pResult,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation(
+ IUnknown *pIUnknownCancelCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3)
+#endif
+#else
+typedef struct IMFSourceResolverVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IMFSourceResolver *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IMFSourceResolver *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IMFSourceResolver *This);
+
+ /*** IMFSourceResolver methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateObjectFromURL)(
+ IMFSourceResolver *This,
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject);
+
+ HRESULT (STDMETHODCALLTYPE *CreateObjectFromByteStream)(
+ IMFSourceResolver *This,
+ IMFByteStream *pByteStream,
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject);
+
+ HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromURL)(
+ IMFSourceResolver *This,
+ LPCWSTR pwszURL,
+ DWORD dwFlags,
+ IPropertyStore *pProps,
+ IUnknown **ppIUnknownCancelCookie,
+ IMFAsyncCallback *pCallback,
+ IUnknown *punkState);
+
+ HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromURL)(
+ IMFSourceResolver *This,
+ IMFAsyncResult *pResult,
+ MF_OBJECT_TYPE *pObjectType,
+ IUnknown **ppObject);
+
+ HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromByteStream)(
+ IMFSourceResolver *This,
IMFByteStream *pByteStream,
LPCWSTR pwszURL,
DWORD dwFlags,
@@ -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 */
lib/libc/include/any-windows-any/mfmediacapture.h
@@ -0,0 +1,298 @@
+/*** Autogenerated by WIDL 7.0 from include/mfmediacapture.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __mfmediacapture_h__
+#define __mfmediacapture_h__
+
+/* Forward declarations */
+
+#ifndef __IAdvancedMediaCaptureInitializationSettings_FWD_DEFINED__
+#define __IAdvancedMediaCaptureInitializationSettings_FWD_DEFINED__
+typedef interface IAdvancedMediaCaptureInitializationSettings IAdvancedMediaCaptureInitializationSettings;
+#ifdef __cplusplus
+interface IAdvancedMediaCaptureInitializationSettings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAdvancedMediaCaptureSettings_FWD_DEFINED__
+#define __IAdvancedMediaCaptureSettings_FWD_DEFINED__
+typedef interface IAdvancedMediaCaptureSettings IAdvancedMediaCaptureSettings;
+#ifdef __cplusplus
+interface IAdvancedMediaCaptureSettings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAdvancedMediaCapture_FWD_DEFINED__
+#define __IAdvancedMediaCapture_FWD_DEFINED__
+typedef interface IAdvancedMediaCapture IAdvancedMediaCapture;
+#ifdef __cplusplus
+interface IAdvancedMediaCapture;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <mfobjects.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if NTDDI_VERSION >= NTDDI_WIN8
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+/*****************************************************************************
+ * IAdvancedMediaCaptureInitializationSettings interface
+ */
+#ifndef __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__
+#define __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAdvancedMediaCaptureInitializationSettings, 0x3de21209, 0x8ba6, 0x4f2a, 0xa5,0x77, 0x28,0x19,0xb5,0x6f,0xf1,0x4d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3de21209-8ba6-4f2a-a577-2819b56ff14d")
+IAdvancedMediaCaptureInitializationSettings : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetDirectxDeviceManager(
+ IMFDXGIDeviceManager *pManager) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAdvancedMediaCaptureInitializationSettings, 0x3de21209, 0x8ba6, 0x4f2a, 0xa5,0x77, 0x28,0x19,0xb5,0x6f,0xf1,0x4d)
+#endif
+#else
+typedef struct IAdvancedMediaCaptureInitializationSettingsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IAdvancedMediaCaptureInitializationSettings *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IAdvancedMediaCaptureInitializationSettings *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IAdvancedMediaCaptureInitializationSettings *This);
+
+ /*** IAdvancedMediaCaptureInitializationSettings methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetDirectxDeviceManager)(
+ IAdvancedMediaCaptureInitializationSettings *This,
+ IMFDXGIDeviceManager *pManager);
+
+ END_INTERFACE
+} IAdvancedMediaCaptureInitializationSettingsVtbl;
+
+interface IAdvancedMediaCaptureInitializationSettings {
+ CONST_VTBL IAdvancedMediaCaptureInitializationSettingsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAdvancedMediaCaptureInitializationSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAdvancedMediaCaptureInitializationSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAdvancedMediaCaptureInitializationSettings_Release(This) (This)->lpVtbl->Release(This)
+/*** IAdvancedMediaCaptureInitializationSettings methods ***/
+#define IAdvancedMediaCaptureInitializationSettings_SetDirectxDeviceManager(This,pManager) (This)->lpVtbl->SetDirectxDeviceManager(This,pManager)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCaptureInitializationSettings_QueryInterface(IAdvancedMediaCaptureInitializationSettings* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAdvancedMediaCaptureInitializationSettings_AddRef(IAdvancedMediaCaptureInitializationSettings* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAdvancedMediaCaptureInitializationSettings_Release(IAdvancedMediaCaptureInitializationSettings* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IAdvancedMediaCaptureInitializationSettings methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCaptureInitializationSettings_SetDirectxDeviceManager(IAdvancedMediaCaptureInitializationSettings* This,IMFDXGIDeviceManager *pManager) {
+ return This->lpVtbl->SetDirectxDeviceManager(This,pManager);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IAdvancedMediaCaptureInitializationSettings_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAdvancedMediaCaptureSettings interface
+ */
+#ifndef __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__
+#define __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAdvancedMediaCaptureSettings, 0x24e0485f, 0xa33e, 0x4aa1, 0xb5,0x64, 0x60,0x19,0xb1,0xd1,0x4f,0x65);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("24e0485f-a33e-4aa1-b564-6019b1d14f65")
+IAdvancedMediaCaptureSettings : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDirectxDeviceManager(
+ IMFDXGIDeviceManager **ppManager) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAdvancedMediaCaptureSettings, 0x24e0485f, 0xa33e, 0x4aa1, 0xb5,0x64, 0x60,0x19,0xb1,0xd1,0x4f,0x65)
+#endif
+#else
+typedef struct IAdvancedMediaCaptureSettingsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IAdvancedMediaCaptureSettings *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IAdvancedMediaCaptureSettings *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IAdvancedMediaCaptureSettings *This);
+
+ /*** IAdvancedMediaCaptureSettings methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDirectxDeviceManager)(
+ IAdvancedMediaCaptureSettings *This,
+ IMFDXGIDeviceManager **ppManager);
+
+ END_INTERFACE
+} IAdvancedMediaCaptureSettingsVtbl;
+
+interface IAdvancedMediaCaptureSettings {
+ CONST_VTBL IAdvancedMediaCaptureSettingsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAdvancedMediaCaptureSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAdvancedMediaCaptureSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAdvancedMediaCaptureSettings_Release(This) (This)->lpVtbl->Release(This)
+/*** IAdvancedMediaCaptureSettings methods ***/
+#define IAdvancedMediaCaptureSettings_GetDirectxDeviceManager(This,ppManager) (This)->lpVtbl->GetDirectxDeviceManager(This,ppManager)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCaptureSettings_QueryInterface(IAdvancedMediaCaptureSettings* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAdvancedMediaCaptureSettings_AddRef(IAdvancedMediaCaptureSettings* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAdvancedMediaCaptureSettings_Release(IAdvancedMediaCaptureSettings* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IAdvancedMediaCaptureSettings methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCaptureSettings_GetDirectxDeviceManager(IAdvancedMediaCaptureSettings* This,IMFDXGIDeviceManager **ppManager) {
+ return This->lpVtbl->GetDirectxDeviceManager(This,ppManager);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IAdvancedMediaCaptureSettings_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAdvancedMediaCapture interface
+ */
+#ifndef __IAdvancedMediaCapture_INTERFACE_DEFINED__
+#define __IAdvancedMediaCapture_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAdvancedMediaCapture, 0xd0751585, 0xd216, 0x4344, 0xb5,0xbf, 0x46,0x3b,0x68,0xf9,0x77,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d0751585-d216-4344-b5bf-463b68f977bb")
+IAdvancedMediaCapture : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetAdvancedMediaCaptureSettings(
+ IAdvancedMediaCaptureSettings **ppSettings) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAdvancedMediaCapture, 0xd0751585, 0xd216, 0x4344, 0xb5,0xbf, 0x46,0x3b,0x68,0xf9,0x77,0xbb)
+#endif
+#else
+typedef struct IAdvancedMediaCaptureVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IAdvancedMediaCapture *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IAdvancedMediaCapture *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IAdvancedMediaCapture *This);
+
+ /*** IAdvancedMediaCapture methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAdvancedMediaCaptureSettings)(
+ IAdvancedMediaCapture *This,
+ IAdvancedMediaCaptureSettings **ppSettings);
+
+ END_INTERFACE
+} IAdvancedMediaCaptureVtbl;
+
+interface IAdvancedMediaCapture {
+ CONST_VTBL IAdvancedMediaCaptureVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAdvancedMediaCapture_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAdvancedMediaCapture_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAdvancedMediaCapture_Release(This) (This)->lpVtbl->Release(This)
+/*** IAdvancedMediaCapture methods ***/
+#define IAdvancedMediaCapture_GetAdvancedMediaCaptureSettings(This,ppSettings) (This)->lpVtbl->GetAdvancedMediaCaptureSettings(This,ppSettings)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCapture_QueryInterface(IAdvancedMediaCapture* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAdvancedMediaCapture_AddRef(IAdvancedMediaCapture* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAdvancedMediaCapture_Release(IAdvancedMediaCapture* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IAdvancedMediaCapture methods ***/
+static FORCEINLINE HRESULT IAdvancedMediaCapture_GetAdvancedMediaCaptureSettings(IAdvancedMediaCapture* This,IAdvancedMediaCaptureSettings **ppSettings) {
+ return This->lpVtbl->GetAdvancedMediaCaptureSettings(This,ppSettings);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IAdvancedMediaCapture_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_APP */
+#endif /* NTDDI >= NTDDI_WIN8 */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __mfmediacapture_h__ */
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__
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__
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__
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__
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__
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)
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__
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;
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/msinkaut_i.c
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/msinkaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/msinkaut.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
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__
lib/libc/include/any-windows-any/mstcpip.h
@@ -15,12 +15,68 @@
#define u_long __ms_u_long
#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+typedef enum _TCPSTATE {
+ TCPSTATE_CLOSED,
+ TCPSTATE_LISTEN,
+ TCPSTATE_SYN_SENT,
+ TCPSTATE_SYN_RCVD,
+ TCPSTATE_ESTABLISHED,
+ TCPSTATE_FIN_WAIT_1,
+ TCPSTATE_FIN_WAIT_2,
+ TCPSTATE_CLOSE_WAIT,
+ TCPSTATE_CLOSING,
+ TCPSTATE_LAST_ACK,
+ TCPSTATE_TIME_WAIT,
+ TCPSTATE_MAX
+} TCPSTATE;
+#endif
+
+#ifndef _TRANSPORT_SETTING_COMMON_
+#define _TRANSPORT_SETTING_COMMON_
+typedef struct TRANSPORT_SETTING_ID {
+ GUID Guid;
+} TRANSPORT_SETTING_ID, *PTRANSPORT_SETTING_ID;
+#endif
+
struct tcp_keepalive {
u_long onoff;
u_long keepalivetime;
u_long keepaliveinterval;
};
+typedef enum {
+ CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1,
+ CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2,
+ CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4,
+ CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6
+} CONTROL_CHANNEL_TRIGGER_STATUS, *PCONTROL_CHANNEL_TRIGGER_STATUS;
+
+#define CONTROL_CHANNEL_TRIGGER_STATUS_MAX CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT {
+ TRANSPORT_SETTING_ID TransportSettingId;
+ GUID BrokerEventGuid;
+} REAL_TIME_NOTIFICATION_SETTING_INPUT, *PREAL_TIME_NOTIFICATION_SETTING_INPUT;
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT_EX {
+ TRANSPORT_SETTING_ID TransportSettingId;
+ GUID BrokerEventGuid;
+ BOOLEAN Unmark;
+} REAL_TIME_NOTIFICATION_SETTING_INPUT_EX, *PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX;
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_OUTPUT {
+ CONTROL_CHANNEL_TRIGGER_STATUS ChannelStatus;
+} REAL_TIME_NOTIFICATION_SETTING_OUTPUT, *PREAL_TIME_NOTIFICATION_SETTING_OUTPUT;
+
+typedef struct _ASSOCIATE_NAMERES_CONTEXT_INPUT {
+ TRANSPORT_SETTING_ID TransportSettingId;
+ UINT64 Handle;
+} ASSOCIATE_NAMERES_CONTEXT_INPUT, *PASSOCIATE_NAMERES_CONTEXT_INPUT;
+
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
@@ -32,11 +88,188 @@ struct tcp_keepalive {
#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)
#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)
+#define SIO_RCVALL_MCAST_IF _WSAIOW(IOC_VENDOR,13)
+#define SIO_RCVALL_IF _WSAIOW(IOC_VENDOR,14)
+#define SIO_LOOPBACK_FAST_PATH _WSAIOW(IOC_VENDOR,16)
+#define SIO_TCP_INITIAL_RTO _WSAIOW(IOC_VENDOR,17)
+#define SIO_APPLY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,19)
+#define SIO_QUERY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,20)
+#define SIO_TCP_SET_ICW _WSAIOW(IOC_VENDOR,22)
+#define SIO_TCP_SET_ACK_FREQUENCY _WSAIOW(IOC_VENDOR,23)
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+#define SIO_SET_PRIORITY_HINT _WSAIOW(IOC_VENDOR,24)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_FE
+#define SIO_PRIORITY_HINT SIO_SET_PRIORITY_HINT
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+#define SIO_TCP_INFO _WSAIORW(IOC_VENDOR,39)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+#define SIO_CPU_AFFINITY _WSAIOW(IOC_VENDOR,21)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_FE
+
+#define SIO_TIMESTAMPING _WSAIOW(IOC_VENDOR, 235)
+
+typedef struct _TIMESTAMPING_CONFIG {
+ ULONG Flags;
+ USHORT TxTimestampsBuffered;
+} TIMESTAMPING_CONFIG, *PTIMESTAMPING_CONFIG;
+
+#define TIMESTAMPING_FLAG_RX 0x1
+#define TIMESTAMPING_FLAG_TX 0x2
+
+#define SO_TIMESTAMP 0x300A
+
+#define SO_TIMESTAMP_ID 0x300B
+
+#define SIO_GET_TX_TIMESTAMP _WSAIOW(IOC_VENDOR, 234)
+
+typedef enum {
+ SocketPriorityHintVeryLow = 0,
+ SocketPriorityHintLow,
+ SocketPriorityHintNormal,
+ SocketMaximumPriorityHintType
+} SOCKET_PRIORITY_HINT, *PSOCKET_PRIORITY_HINT;
+
+typedef struct _PRIORITY_STATUS {
+ SOCKET_PRIORITY_HINT Sender;
+ SOCKET_PRIORITY_HINT Receiver;
+} PRIORITY_STATUS, *PPRIORITY_STATUS;
+#endif /* NTDDI_WIN10_FE */
+
+typedef enum {
+ RCVALL_OFF = 0,
+ RCVALL_ON = 1,
+ RCVALL_SOCKETLEVELONLY = 2,
+ RCVALL_IPLEVEL = 3
+} RCVALL_VALUE, *PRCVALL_VALUE;
+
+#define RCVALL_MAX RCVALL_IPLEVEL
+
+typedef struct {
+ RCVALL_VALUE Mode;
+ ULONG Interface;
+} RCVALL_IF, *PRCVALL_IF;
+
+#define TCP_INITIAL_RTO_UNSPECIFIED_RTT ((USHORT) -1)
+#define TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS ((UCHAR) -1)
+
+#define TCP_INITIAL_RTO_DEFAULT_RTT (0)
+#define TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS (0)
+#define TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS ((UCHAR) -2)
+
+typedef struct _TCP_INITIAL_RTO_PARAMETERS {
+ USHORT Rtt;
+ UCHAR MaxSynRetransmissions;
+} TCP_INITIAL_RTO_PARAMETERS, *PTCP_INITIAL_RTO_PARAMETERS;
+
+typedef enum {
+ TCP_ICW_LEVEL_DEFAULT = 0,
+ TCP_ICW_LEVEL_HIGH = 1,
+ TCP_ICW_LEVEL_VERY_HIGH = 2,
+ TCP_ICW_LEVEL_AGGRESSIVE = 3,
+ TCP_ICW_LEVEL_EXPERIMENTAL = 4,
+ TCP_ICW_LEVEL_COMPAT = 254,
+ TCP_ICW_LEVEL_MAX = 255
+} TCP_ICW_LEVEL, *PTCP_ICW_LEVEL;
+
+typedef struct _TCP_ICW_PARAMETERS {
+ TCP_ICW_LEVEL Level;
+} TCP_ICW_PARAMETERS, *PTCP_ICW_PARAMETERS;
+
+typedef struct _TCP_ACK_FREQUENCY_PARAMETERS {
+ UCHAR TcpDelayedAckFrequency;
+} TCP_ACK_FREQUENCY_PARAMETERS, *PTCP_ACK_FREQUENCY_PARAMETERS;
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+typedef struct _TCP_INFO_v0 {
+ TCPSTATE State;
+ ULONG Mss;
+ ULONG64 ConnectionTimeMs;
+ BOOLEAN TimestampsEnabled;
+ ULONG RttUs;
+ ULONG MinRttUs;
+ ULONG BytesInFlight;
+ ULONG Cwnd;
+ ULONG SndWnd;
+ ULONG RcvWnd;
+ ULONG RcvBuf;
+ ULONG64 BytesOut;
+ ULONG64 BytesIn;
+ ULONG BytesReordered;
+ ULONG BytesRetrans;
+ ULONG FastRetrans;
+ ULONG DupAcksIn;
+ ULONG TimeoutEpisodes;
+ UCHAR SynRetrans;
+} TCP_INFO_v0, *PTCP_INFO_v0;
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
+typedef struct _TCP_INFO_v1 {
+ TCPSTATE State;
+ ULONG Mss;
+ ULONG64 ConnectionTimeMs;
+ BOOLEAN TimestampsEnabled;
+ ULONG RttUs;
+ ULONG MinRttUs;
+ ULONG BytesInFlight;
+ ULONG Cwnd;
+ ULONG SndWnd;
+ ULONG RcvWnd;
+ ULONG RcvBuf;
+ ULONG64 BytesOut;
+ ULONG64 BytesIn;
+ ULONG BytesReordered;
+ ULONG BytesRetrans;
+ ULONG FastRetrans;
+ ULONG DupAcksIn;
+ ULONG TimeoutEpisodes;
+ UCHAR SynRetrans;
+ ULONG SndLimTransRwin;
+ ULONG SndLimTimeRwin;
+ ULONG64 SndLimBytesRwin;
+ ULONG SndLimTransCwnd;
+ ULONG SndLimTimeCwnd;
+ ULONG64 SndLimBytesCwnd;
+ ULONG SndLimTransSnd;
+ ULONG SndLimTimeSnd;
+ ULONG64 SndLimBytesSnd;
+} TCP_INFO_v1, *PTCP_INFO_v1;
+#endif
+
+#define SIO_ACQUIRE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 100)
+#define SIO_RELEASE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 101)
+#define SIO_ASSOCIATE_PORT_RESERVATION _WSAIOW(IOC_VENDOR, 102)
+
+typedef struct _INET_PORT_RANGE {
+ USHORT StartPort;
+ USHORT NumberOfPorts;
+} INET_PORT_RANGE, *PINET_PORT_RANGE;
+
+typedef struct _INET_PORT_RANGE INET_PORT_RESERVATION, *PINET_PORT_RESERVATION;
+
+typedef struct {
+ ULONG64 Token;
+} INET_PORT_RESERVATION_TOKEN, *PINET_PORT_RESERVATION_TOKEN;
+
+#define INVALID_PORT_RESERVATION_TOKEN ((ULONG64)0)
+
+typedef struct {
+#ifdef __cplusplus
+ INET_PORT_RESERVATION Reservation;
+ INET_PORT_RESERVATION_TOKEN Token;
+#else
+ INET_PORT_RESERVATION;
+ INET_PORT_RESERVATION_TOKEN;
+#endif
+} INET_PORT_RESERVATION_INSTANCE, *PINET_PORT_RESERVATION_INSTANCE;
-#define RCVALL_OFF 0
-#define RCVALL_ON 1
-#define RCVALL_SOCKETLEVELONLY 2
-#define RCVALL_IPLEVEL 3
+typedef struct {
+ ULONG OwningPid;
+} INET_PORT_RESERVATION_INFORMATION, *PINET_PORT_RESERVATION_INFORMATION;
#if (_WIN32_WINNT >= 0x0502)
typedef enum _SOCKET_SECURITY_PROTOCOL {
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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__
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;
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_ */
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
}
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)
lib/libc/include/any-windows-any/nvme.h
@@ -0,0 +1,2835 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef NVME_INCLUDED
+#define NVME_INCLUDED
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+typedef enum {
+ NVME_AMS_ROUND_ROBIN = 0,
+ NVME_AMS_WEIGHTED_ROUND_ROBIN_URGENT = 1
+} NVME_AMS_OPTION;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONGLONG MQES : 16;
+ ULONGLONG CQR : 1;
+ ULONGLONG AMS_WeightedRoundRobinWithUrgent : 1;
+ ULONGLONG AMS_VendorSpecific : 1;
+ ULONGLONG Reserved0 : 5;
+ ULONGLONG TO : 8;
+ ULONGLONG DSTRD : 4;
+ ULONGLONG NSSRS : 1;
+ ULONGLONG CSS_NVM : 1;
+ ULONGLONG CSS_Reserved0 : 1;
+ ULONGLONG CSS_Reserved1 : 1;
+ ULONGLONG CSS_Reserved2 : 1;
+ ULONGLONG CSS_Reserved3 : 1;
+ ULONGLONG CSS_Reserved4 : 1;
+ ULONGLONG CSS_MultipleIo : 1;
+ ULONGLONG CSS_AdminOnly : 1;
+ ULONGLONG Reserved2 : 3;
+ ULONGLONG MPSMIN : 4;
+ ULONGLONG MPSMAX : 4;
+ ULONGLONG Reserved3 : 8;
+ };
+ ULONGLONG AsUlonglong;
+} NVME_CONTROLLER_CAPABILITIES, *PNVME_CONTROLLER_CAPABILITIES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG TER : 8;
+ ULONG MNR : 8;
+ ULONG MJR : 16;
+ };
+ ULONG AsUlong;
+} NVME_VERSION, *PNVME_VERSION;
+
+typedef enum {
+ NVME_CC_SHN_NO_NOTIFICATION = 0,
+ NVME_CC_SHN_NORMAL_SHUTDOWN = 1,
+ NVME_CC_SHN_ABRUPT_SHUTDOWN = 2
+} NVME_CC_SHN_SHUTDOWN_NOTIFICATIONS;
+
+typedef enum {
+ NVME_CSS_NVM_COMMAND_SET = 0,
+ NVME_CSS_ALL_SUPPORTED_IO_COMMAND_SET = 6,
+ NVME_CSS_ADMIN_COMMAND_SET_ONLY = 7
+} NVME_CSS_COMMAND_SETS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG EN : 1;
+ ULONG Reserved0 : 3;
+ ULONG CSS : 3;
+ ULONG MPS : 4;
+ ULONG AMS : 3;
+ ULONG SHN : 2;
+ ULONG IOSQES : 4;
+ ULONG IOCQES : 4;
+ ULONG Reserved1 : 8;
+ };
+ ULONG AsUlong;
+} NVME_CONTROLLER_CONFIGURATION, *PNVME_CONTROLLER_CONFIGURATION;
+
+typedef enum {
+ NVME_CSTS_SHST_NO_SHUTDOWN = 0,
+ NVME_CSTS_SHST_SHUTDOWN_IN_PROCESS = 1,
+ NVME_CSTS_SHST_SHUTDOWN_COMPLETED = 2
+} NVME_CSTS_SHST_SHUTDOWN_STATUS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG RDY : 1;
+ ULONG CFS : 1;
+ ULONG SHST : 2;
+ ULONG NSSRO : 1;
+ ULONG PP : 1;
+ ULONG Reserved0 : 26;
+ };
+ ULONG AsUlong;
+} NVME_CONTROLLER_STATUS, *PNVME_CONTROLLER_STATUS;
+
+typedef struct _NVME_NVM_SUBSYSTEM_RESET {
+ ULONG NSSRC;
+} NVME_NVM_SUBSYSTEM_RESET, *PNVME_NVM_SUBSYSTEM_RESET;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG ASQS : 12;
+ ULONG Reserved0 : 4;
+ ULONG ACQS : 12;
+ ULONG Reserved1 : 4;
+ };
+ ULONG AsUlong;
+} NVME_ADMIN_QUEUE_ATTRIBUTES, *PNVME_ADMIN_QUEUE_ATTRIBUTES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONGLONG Reserved0 : 12;
+ ULONGLONG ASQB : 52;
+ };
+ ULONGLONG AsUlonglong;
+} NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS, *PNVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONGLONG Reserved0 : 12;
+ ULONGLONG ACQB : 52;
+ };
+ ULONGLONG AsUlonglong;
+} NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS, *PNVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG BIR : 3;
+ ULONG Reserved : 9;
+ ULONG OFST : 20;
+ };
+ ULONG AsUlong;
+} NVME_CONTROLLER_MEMORY_BUFFER_LOCATION, *PNVME_CONTROLLER_MEMORY_BUFFER_LOCATION;
+
+typedef enum {
+ NVME_CMBSZ_SIZE_UNITS_4KB = 0,
+ NVME_CMBSZ_SIZE_UNITS_64KB = 1,
+ NVME_CMBSZ_SIZE_UNITS_1MB = 2,
+ NVME_CMBSZ_SIZE_UNITS_16MB = 3,
+ NVME_CMBSZ_SIZE_UNITS_256MB = 4,
+ NVME_CMBSZ_SIZE_UNITS_4GB = 5,
+ NVME_CMBSZ_SIZE_UNITS_64GB = 6
+} NVME_CMBSZ_SIZE_UNITS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG SQS : 1;
+ ULONG CQS : 1;
+ ULONG LISTS : 1;
+ ULONG RDS : 1;
+ ULONG WDS : 1;
+ ULONG Reserved : 3;
+ ULONG SZU : 4;
+ ULONG SZ : 20;
+ };
+ ULONG AsUlong;
+} NVME_CONTROLLER_MEMORY_BUFFER_SIZE, *PNVME_CONTROLLER_MEMORY_BUFFER_SIZE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG SQT : 16;
+ ULONG Reserved0 : 16;
+ };
+ ULONG AsUlong;
+} NVME_SUBMISSION_QUEUE_TAIL_DOORBELL, *PNVME_SUBMISSION_QUEUE_TAIL_DOORBELL;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG CQH : 16;
+ ULONG Reserved0 : 16;
+ };
+ ULONG AsUlong;
+} NVME_COMPLETION_QUEUE_HEAD_DOORBELL, *PNVME_COMPLETION_QUEUE_HEAD_DOORBELL;
+
+typedef struct {
+ NVME_CONTROLLER_CAPABILITIES CAP;
+ NVME_VERSION VS;
+ ULONG INTMS;
+ ULONG INTMC;
+ NVME_CONTROLLER_CONFIGURATION CC;
+ ULONG Reserved0;
+ NVME_CONTROLLER_STATUS CSTS;
+ NVME_NVM_SUBSYSTEM_RESET NSSR;
+ NVME_ADMIN_QUEUE_ATTRIBUTES AQA;
+ NVME_ADMIN_SUBMISSION_QUEUE_BASE_ADDRESS ASQ;
+ NVME_ADMIN_COMPLETION_QUEUE_BASE_ADDRESS ACQ;
+ NVME_CONTROLLER_MEMORY_BUFFER_LOCATION CMBLOC;
+ NVME_CONTROLLER_MEMORY_BUFFER_SIZE CMBSZ;
+ ULONG Reserved2[944];
+ ULONG Reserved3[64];
+ ULONG Doorbells[0];
+} NVME_CONTROLLER_REGISTERS, *PNVME_CONTROLLER_REGISTERS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ USHORT P : 1;
+ USHORT SC : 8;
+ USHORT SCT : 3;
+ USHORT Reserved : 2;
+ USHORT M : 1;
+ USHORT DNR : 1;
+ };
+ USHORT AsUshort;
+} NVME_COMMAND_STATUS, *PNVME_COMMAND_STATUS;
+
+typedef struct {
+ ULONG DW0;
+ ULONG DW1;
+ union {
+ __C89_NAMELESS struct {
+ USHORT SQHD;
+ USHORT SQID;
+ };
+ ULONG AsUlong;
+ } DW2;
+ union {
+ __C89_NAMELESS struct {
+ USHORT CID;
+ NVME_COMMAND_STATUS Status;
+ };
+ ULONG AsUlong;
+ } DW3;
+} NVME_COMPLETION_ENTRY, *PNVME_COMPLETION_ENTRY;
+
+typedef enum {
+ NVME_ASYNC_EVENT_TYPE_ERROR_STATUS = 0,
+ NVME_ASYNC_EVENT_TYPE_HEALTH_STATUS = 1,
+ NVME_ASYNC_EVENT_TYPE_NOTICE = 2,
+ NVME_ASYNC_EVENT_TYPE_IO_COMMAND_SET_STATUS = 6,
+ NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC = 7
+} NVME_ASYNC_EVENT_TYPES;
+
+typedef enum {
+ NVME_ASYNC_ERROR_INVALID_SUBMISSION_QUEUE = 0,
+ NVME_ASYNC_ERROR_INVALID_DOORBELL_WRITE_VALUE = 1,
+ NVME_ASYNC_ERROR_DIAG_FAILURE = 2,
+ NVME_ASYNC_ERROR_PERSISTENT_INTERNAL_DEVICE_ERROR = 3,
+ NVME_ASYNC_ERROR_TRANSIENT_INTERNAL_DEVICE_ERROR = 4,
+ NVME_ASYNC_ERROR_FIRMWARE_IMAGE_LOAD_ERROR = 5
+} NVME_ASYNC_EVENT_ERROR_STATUS_CODES;
+
+typedef enum {
+ NVME_ASYNC_HEALTH_NVM_SUBSYSTEM_RELIABILITY = 0,
+ NVME_ASYNC_HEALTH_TEMPERATURE_THRESHOLD = 1,
+ NVME_ASYNC_HEALTH_SPARE_BELOW_THRESHOLD = 2
+} NVME_ASYNC_EVENT_HEALTH_STATUS_CODES;
+
+typedef enum {
+ NVME_ASYNC_NOTICE_NAMESPACE_ATTRIBUTE_CHANGED = 0,
+ NVME_ASYNC_NOTICE_FIRMWARE_ACTIVATION_STARTING = 1,
+ NVME_ASYNC_NOTICE_TELEMETRY_LOG_CHANGED = 2,
+ NVME_ASYNC_NOTICE_ASYMMETRIC_ACCESS_CHANGE = 3,
+ NVME_ASYNC_NOTICE_PREDICTABLE_LATENCY_EVENT_AGGREGATE_LOG_CHANGE = 4,
+ NVME_ASYNC_NOTICE_LBA_STATUS_INFORMATION_ALERT = 5,
+ NVME_ASYNC_NOTICE_ENDURANCE_GROUP_EVENT_AGGREGATE_LOG_CHANGE = 6,
+ NVME_ASYNC_NOTICE_ZONE_DESCRIPTOR_CHANGED = 0xEF
+} NVME_ASYNC_EVENT_NOTICE_CODES;
+
+typedef enum {
+ NVME_ASYNC_IO_CMD_SET_RESERVATION_LOG_PAGE_AVAILABLE = 0,
+ NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED = 1,
+ NVME_ASYNC_IO_CMD_SANITIZE_OPERATION_COMPLETED_WITH_UNEXPECTED_DEALLOCATION = 2
+} NVME_ASYNC_EVENT_IO_COMMAND_SET_STATUS_CODES;
+
+typedef struct {
+ ULONG AsyncEventType : 3;
+ ULONG Reserved0 : 5;
+ ULONG AsyncEventInfo : 8;
+ ULONG LogPage : 8;
+ ULONG Reserved1 : 8;
+} NVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST, *PNVME_COMPLETION_DW0_ASYNC_EVENT_REQUEST;
+
+typedef enum {
+ NVME_STATUS_TYPE_GENERIC_COMMAND = 0,
+ NVME_STATUS_TYPE_COMMAND_SPECIFIC = 1,
+ NVME_STATUS_TYPE_MEDIA_ERROR = 2,
+ NVME_STATUS_TYPE_VENDOR_SPECIFIC = 7
+} NVME_STATUS_TYPES;
+
+typedef enum {
+ NVME_STATUS_SUCCESS_COMPLETION = 0x00,
+ NVME_STATUS_INVALID_COMMAND_OPCODE = 0x01,
+ NVME_STATUS_INVALID_FIELD_IN_COMMAND = 0x02,
+ NVME_STATUS_COMMAND_ID_CONFLICT = 0x03,
+ NVME_STATUS_DATA_TRANSFER_ERROR = 0x04,
+ NVME_STATUS_COMMAND_ABORTED_DUE_TO_POWER_LOSS_NOTIFICATION = 0x05,
+ NVME_STATUS_INTERNAL_DEVICE_ERROR = 0x06,
+ NVME_STATUS_COMMAND_ABORT_REQUESTED = 0x07,
+ NVME_STATUS_COMMAND_ABORTED_DUE_TO_SQ_DELETION = 0x08,
+ NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_FUSED_COMMAND = 0x09,
+ NVME_STATUS_COMMAND_ABORTED_DUE_TO_FAILED_MISSING_COMMAND = 0x0A,
+ NVME_STATUS_INVALID_NAMESPACE_OR_FORMAT = 0x0B,
+ NVME_STATUS_COMMAND_SEQUENCE_ERROR = 0x0C,
+ NVME_STATUS_INVALID_SGL_LAST_SEGMENT_DESCR = 0x0D,
+ NVME_STATUS_INVALID_NUMBER_OF_SGL_DESCR = 0x0E,
+ NVME_STATUS_DATA_SGL_LENGTH_INVALID = 0x0F,
+ NVME_STATUS_METADATA_SGL_LENGTH_INVALID = 0x10,
+ NVME_STATUS_SGL_DESCR_TYPE_INVALID = 0x11,
+ NVME_STATUS_INVALID_USE_OF_CONTROLLER_MEMORY_BUFFER = 0x12,
+ NVME_STATUS_PRP_OFFSET_INVALID = 0x13,
+ NVME_STATUS_ATOMIC_WRITE_UNIT_EXCEEDED = 0x14,
+ NVME_STATUS_OPERATION_DENIED = 0x15,
+ NVME_STATUS_SGL_OFFSET_INVALID = 0x16,
+ NVME_STATUS_RESERVED = 0x17,
+ NVME_STATUS_HOST_IDENTIFIER_INCONSISTENT_FORMAT = 0x18,
+ NVME_STATUS_KEEP_ALIVE_TIMEOUT_EXPIRED = 0x19,
+ NVME_STATUS_KEEP_ALIVE_TIMEOUT_INVALID = 0x1A,
+ NVME_STATUS_COMMAND_ABORTED_DUE_TO_PREEMPT_ABORT = 0x1B,
+ NVME_STATUS_SANITIZE_FAILED = 0x1C,
+ NVME_STATUS_SANITIZE_IN_PROGRESS = 0x1D,
+ NVME_STATUS_SGL_DATA_BLOCK_GRANULARITY_INVALID = 0x1E,
+ NVME_STATUS_DIRECTIVE_TYPE_INVALID = 0x70,
+ NVME_STATUS_DIRECTIVE_ID_INVALID = 0x71,
+ NVME_STATUS_NVM_LBA_OUT_OF_RANGE = 0x80,
+ NVME_STATUS_NVM_CAPACITY_EXCEEDED = 0x81,
+ NVME_STATUS_NVM_NAMESPACE_NOT_READY = 0x82,
+ NVME_STATUS_NVM_RESERVATION_CONFLICT = 0x83,
+ NVME_STATUS_FORMAT_IN_PROGRESS = 0x84
+} NVME_STATUS_GENERIC_COMMAND_CODES;
+
+typedef enum {
+ NVME_STATUS_COMPLETION_QUEUE_INVALID = 0x00,
+ NVME_STATUS_INVALID_QUEUE_IDENTIFIER = 0x01,
+ NVME_STATUS_MAX_QUEUE_SIZE_EXCEEDED = 0x02,
+ NVME_STATUS_ABORT_COMMAND_LIMIT_EXCEEDED = 0x03,
+ NVME_STATUS_ASYNC_EVENT_REQUEST_LIMIT_EXCEEDED = 0x05,
+ NVME_STATUS_INVALID_FIRMWARE_SLOT = 0x06,
+ NVME_STATUS_INVALID_FIRMWARE_IMAGE = 0x07,
+ NVME_STATUS_INVALID_INTERRUPT_VECTOR = 0x08,
+ NVME_STATUS_INVALID_LOG_PAGE = 0x09,
+ NVME_STATUS_INVALID_FORMAT = 0x0A,
+ NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_CONVENTIONAL_RESET = 0x0B,
+ NVME_STATUS_INVALID_QUEUE_DELETION = 0x0C,
+ NVME_STATUS_FEATURE_ID_NOT_SAVEABLE = 0x0D,
+ NVME_STATUS_FEATURE_NOT_CHANGEABLE = 0x0E,
+ NVME_STATUS_FEATURE_NOT_NAMESPACE_SPECIFIC = 0x0F,
+ NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_NVM_SUBSYSTEM_RESET = 0x10,
+ NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_RESET = 0x11,
+ NVME_STATUS_FIRMWARE_ACTIVATION_REQUIRES_MAX_TIME_VIOLATION = 0x12,
+ NVME_STATUS_FIRMWARE_ACTIVATION_PROHIBITED = 0x13,
+ NVME_STATUS_OVERLAPPING_RANGE = 0x14,
+ NVME_STATUS_NAMESPACE_INSUFFICIENT_CAPACITY = 0x15,
+ NVME_STATUS_NAMESPACE_IDENTIFIER_UNAVAILABLE = 0x16,
+ NVME_STATUS_NAMESPACE_ALREADY_ATTACHED = 0x18,
+ NVME_STATUS_NAMESPACE_IS_PRIVATE = 0x19,
+ NVME_STATUS_NAMESPACE_NOT_ATTACHED = 0x1A,
+ NVME_STATUS_NAMESPACE_THIN_PROVISIONING_NOT_SUPPORTED = 0x1B,
+ NVME_STATUS_CONTROLLER_LIST_INVALID = 0x1C,
+ NVME_STATUS_DEVICE_SELF_TEST_IN_PROGRESS = 0x1D,
+ NVME_STATUS_BOOT_PARTITION_WRITE_PROHIBITED = 0x1E,
+ NVME_STATUS_INVALID_CONTROLLER_IDENTIFIER = 0x1F,
+ NVME_STATUS_INVALID_SECONDARY_CONTROLLER_STATE = 0x20,
+ NVME_STATUS_INVALID_NUMBER_OF_CONTROLLER_RESOURCES = 0x21,
+ NVME_STATUS_INVALID_RESOURCE_IDENTIFIER = 0x22,
+ NVME_STATUS_SANITIZE_PROHIBITED_ON_PERSISTENT_MEMORY = 0x23,
+ NVME_STATUS_INVALID_ANA_GROUP_IDENTIFIER = 0x24,
+ NVME_STATUS_ANA_ATTACH_FAILED = 0x25,
+ NVME_IO_COMMAND_SET_NOT_SUPPORTED = 0x29,
+ NVME_IO_COMMAND_SET_NOT_ENABLED = 0x2A,
+ NVME_IO_COMMAND_SET_COMBINATION_REJECTED = 0x2B,
+ NVME_IO_COMMAND_SET_INVALID = 0x2C,
+ NVME_STATUS_STREAM_RESOURCE_ALLOCATION_FAILED = 0x7F,
+ NVME_STATUS_ZONE_INVALID_FORMAT = 0x7F,
+ NVME_STATUS_NVM_CONFLICTING_ATTRIBUTES = 0x80,
+ NVME_STATUS_NVM_INVALID_PROTECTION_INFORMATION = 0x81,
+ NVME_STATUS_NVM_ATTEMPTED_WRITE_TO_READ_ONLY_RANGE = 0x82,
+ NVME_STATUS_NVM_COMMAND_SIZE_LIMIT_EXCEEDED = 0x83,
+ NVME_STATUS_ZONE_BOUNDARY_ERROR = 0xB8,
+ NVME_STATUS_ZONE_FULL = 0xB9,
+ NVME_STATUS_ZONE_READ_ONLY = 0xBA,
+ NVME_STATUS_ZONE_OFFLINE = 0xBB,
+ NVME_STATUS_ZONE_INVALID_WRITE = 0xBC,
+ NVME_STATUS_ZONE_TOO_MANY_ACTIVE = 0xBD,
+ NVME_STATUS_ZONE_TOO_MANY_OPEN = 0xBE,
+ NVME_STATUS_ZONE_INVALID_STATE_TRANSITION = 0xBF
+} NVME_STATUS_COMMAND_SPECIFIC_CODES;
+
+typedef enum {
+ NVME_STATUS_NVM_WRITE_FAULT = 0x80,
+ NVME_STATUS_NVM_UNRECOVERED_READ_ERROR = 0x81,
+ NVME_STATUS_NVM_END_TO_END_GUARD_CHECK_ERROR = 0x82,
+ NVME_STATUS_NVM_END_TO_END_APPLICATION_TAG_CHECK_ERROR = 0x83,
+ NVME_STATUS_NVM_END_TO_END_REFERENCE_TAG_CHECK_ERROR = 0x84,
+ NVME_STATUS_NVM_COMPARE_FAILURE = 0x85,
+ NVME_STATUS_NVM_ACCESS_DENIED = 0x86,
+ NVME_STATUS_NVM_DEALLOCATED_OR_UNWRITTEN_LOGICAL_BLOCK = 0x87
+} NVME_STATUS_MEDIA_ERROR_CODES;
+
+typedef enum {
+ NVME_ADMIN_COMMAND_DELETE_IO_SQ = 0x00,
+ NVME_ADMIN_COMMAND_CREATE_IO_SQ = 0x01,
+ NVME_ADMIN_COMMAND_GET_LOG_PAGE = 0x02,
+ NVME_ADMIN_COMMAND_DELETE_IO_CQ = 0x04,
+ NVME_ADMIN_COMMAND_CREATE_IO_CQ = 0x05,
+ NVME_ADMIN_COMMAND_IDENTIFY = 0x06,
+ NVME_ADMIN_COMMAND_ABORT = 0x08,
+ NVME_ADMIN_COMMAND_SET_FEATURES = 0x09,
+ NVME_ADMIN_COMMAND_GET_FEATURES = 0x0A,
+ NVME_ADMIN_COMMAND_ASYNC_EVENT_REQUEST = 0x0C,
+ NVME_ADMIN_COMMAND_NAMESPACE_MANAGEMENT = 0x0D,
+ NVME_ADMIN_COMMAND_FIRMWARE_ACTIVATE = 0x10,
+ NVME_ADMIN_COMMAND_FIRMWARE_COMMIT = 0x10,
+ NVME_ADMIN_COMMAND_FIRMWARE_IMAGE_DOWNLOAD = 0x11,
+ NVME_ADMIN_COMMAND_DEVICE_SELF_TEST = 0x14,
+ NVME_ADMIN_COMMAND_NAMESPACE_ATTACHMENT = 0x15,
+ NVME_ADMIN_COMMAND_DIRECTIVE_SEND = 0x19,
+ NVME_ADMIN_COMMAND_DIRECTIVE_RECEIVE = 0x1A,
+ NVME_ADMIN_COMMAND_VIRTUALIZATION_MANAGEMENT = 0x1C,
+ NVME_ADMIN_COMMAND_NVME_MI_SEND = 0x1D,
+ NVME_ADMIN_COMMAND_NVME_MI_RECEIVE = 0x1E,
+ NVME_ADMIN_COMMAND_DOORBELL_BUFFER_CONFIG = 0x7C,
+ NVME_ADMIN_COMMAND_FORMAT_NVM = 0x80,
+ NVME_ADMIN_COMMAND_SECURITY_SEND = 0x81,
+ NVME_ADMIN_COMMAND_SECURITY_RECEIVE = 0x82,
+ NVME_ADMIN_COMMAND_SANITIZE = 0x84,
+ NVME_ADMIN_COMMAND_GET_LBA_STATUS = 0x86
+} NVME_ADMIN_COMMANDS;
+
+typedef enum {
+ NVME_FEATURE_ARBITRATION = 0x01,
+ NVME_FEATURE_POWER_MANAGEMENT = 0x02,
+ NVME_FEATURE_LBA_RANGE_TYPE = 0x03,
+ NVME_FEATURE_TEMPERATURE_THRESHOLD = 0x04,
+ NVME_FEATURE_ERROR_RECOVERY = 0x05,
+ NVME_FEATURE_VOLATILE_WRITE_CACHE = 0x06,
+ NVME_FEATURE_NUMBER_OF_QUEUES = 0x07,
+ NVME_FEATURE_INTERRUPT_COALESCING = 0x08,
+ NVME_FEATURE_INTERRUPT_VECTOR_CONFIG = 0x09,
+ NVME_FEATURE_WRITE_ATOMICITY = 0x0A,
+ NVME_FEATURE_ASYNC_EVENT_CONFIG = 0x0B,
+ NVME_FEATURE_AUTONOMOUS_POWER_STATE_TRANSITION = 0x0C,
+ NVME_FEATURE_HOST_MEMORY_BUFFER = 0x0D,
+ NVME_FEATURE_TIMESTAMP = 0x0E,
+ NVME_FEATURE_KEEP_ALIVE = 0x0F,
+ NVME_FEATURE_HOST_CONTROLLED_THERMAL_MANAGEMENT = 0x10,
+ NVME_FEATURE_NONOPERATIONAL_POWER_STATE = 0x11,
+ NVME_FEATURE_READ_RECOVERY_LEVEL_CONFIG = 0x12,
+ NVME_FEATURE_PREDICTABLE_LATENCY_MODE_CONFIG = 0x13,
+ NVME_FEATURE_PREDICTABLE_LATENCY_MODE_WINDOW = 0x14,
+ NVME_FEATURE_LBA_STATUS_INFORMATION_REPORT_INTERVAL = 0x15,
+ NVME_FEATURE_HOST_BEHAVIOR_SUPPORT = 0x16,
+ NVME_FEATURE_SANITIZE_CONFIG = 0x17,
+ NVME_FEATURE_ENDURANCE_GROUP_EVENT_CONFIG = 0x18,
+ NVME_FEATURE_IO_COMMAND_SET_PROFILE = 0x19,
+ NVME_FEATURE_ENHANCED_CONTROLLER_METADATA = 0x7D,
+ NVME_FEATURE_CONTROLLER_METADATA = 0x7E,
+ NVME_FEATURE_NAMESPACE_METADATA = 0x7F,
+ NVME_FEATURE_NVM_SOFTWARE_PROGRESS_MARKER = 0x80,
+ NVME_FEATURE_NVM_HOST_IDENTIFIER = 0x81,
+ NVME_FEATURE_NVM_RESERVATION_NOTIFICATION_MASK = 0x82,
+ NVME_FEATURE_NVM_RESERVATION_PERSISTANCE = 0x83,
+ NVME_FEATURE_NVM_NAMESPACE_WRITE_PROTECTION_CONFIG = 0x84,
+ NVME_FEATURE_ERROR_INJECTION = 0xC0,
+ NVME_FEATURE_CLEAR_FW_UPDATE_HISTORY = 0xC1,
+ NVME_FEATURE_READONLY_WRITETHROUGH_MODE = 0xC2,
+ NVME_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS = 0xC3,
+ NVME_FEATURE_ENABLE_IEEE1667_SILO = 0xC4,
+ NVME_FEATURE_PLP_HEALTH_MONITOR = 0xC5
+} NVME_FEATURES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG SQID : 8;
+ ULONG CID : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_ABORT, *PNVME_CDW10_ABORT;
+
+typedef enum {
+ NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE = 0x0,
+ NVME_IDENTIFY_CNS_CONTROLLER = 0x1,
+ NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES = 0x2,
+ NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE = 0x3,
+ NVME_IDENTIFY_CNS_NVM_SET = 0x4,
+ NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE_IO_COMMAND_SET = 0x5,
+ NVME_IDENTIFY_CNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET = 0x6,
+ NVME_IDENTIFY_CNS_ACTIVE_NAMESPACE_LIST_IO_COMMAND_SET = 0x7,
+ NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_LIST = 0x10,
+ NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE = 0x11,
+ NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NSID = 0x12,
+ NVME_IDENTIFY_CNS_CONTROLLER_LIST_OF_NVM_SUBSYSTEM = 0x13,
+ NVME_IDENTIFY_CNS_PRIMARY_CONTROLLER_CAPABILITIES = 0x14,
+ NVME_IDENTIFY_CNS_SECONDARY_CONTROLLER_LIST = 0x15,
+ NVME_IDENTIFY_CNS_NAMESPACE_GRANULARITY_LIST = 0x16,
+ NVME_IDENTIFY_CNS_UUID_LIST = 0x17,
+ NVME_IDENTIFY_CNS_DOMAIN_LIST = 0x18,
+ NVME_IDENTIFY_CNS_ENDURANCE_GROUP_LIST = 0x19,
+ NVME_IDENTIFY_CNS_ALLOCATED_NAMSPACE_LIST_IO_COMMAND_SET = 0x1A,
+ NVME_IDENTIFY_CNS_ALLOCATED_NAMESPACE_IO_COMMAND_SET = 0x1B,
+ NVME_IDENTIFY_CNS_IO_COMMAND_SET = 0x1C
+} NVME_IDENTIFY_CNS_CODES;
+
+typedef enum {
+ NVME_COMMAND_SET_NVM = 0x0,
+ NVME_COMMAND_SET_KEY_VALUE = 0x1,
+ NVME_COMMAND_SET_ZONED_NAMESPACE = 0x2
+} NVME_COMMAND_SET_IDENTIFIERS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG CNS : 8;
+ ULONG Reserved : 8;
+ ULONG CNTID : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_IDENTIFY, *PNVME_CDW10_IDENTIFY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ USHORT NVMSETID;
+ USHORT Reserved;
+ };
+ __C89_NAMELESS struct {
+ ULONG CNSID : 16;
+ ULONG Reserved2 : 8;
+ ULONG CSI : 8;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_IDENTIFY, *PNVME_CDW11_IDENTIFY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ USHORT MS;
+ UCHAR LBADS;
+ UCHAR RP : 2;
+ UCHAR Reserved0 : 6;
+ };
+ ULONG AsUlong;
+} NVME_LBA_FORMAT, *PNVME_LBA_FORMAT;
+
+typedef union {
+ __C89_NAMELESS struct {
+ UCHAR PersistThroughPowerLoss : 1;
+ UCHAR WriteExclusiveReservation : 1;
+ UCHAR ExclusiveAccessReservation : 1;
+ UCHAR WriteExclusiveRegistrantsOnlyReservation : 1;
+ UCHAR ExclusiveAccessRegistrantsOnlyReservation : 1;
+ UCHAR WriteExclusiveAllRegistrantsReservation : 1;
+ UCHAR ExclusiveAccessAllRegistrantsReservation : 1;
+ UCHAR Reserved : 1;
+ };
+ UCHAR AsUchar;
+} NVM_RESERVATION_CAPABILITIES, *PNVME_RESERVATION_CAPABILITIES;
+
+typedef struct {
+ ULONGLONG NSZE;
+ ULONGLONG NCAP;
+ ULONGLONG NUSE;
+ struct {
+ UCHAR ThinProvisioning : 1;
+ UCHAR NameSpaceAtomicWriteUnit : 1;
+ UCHAR DeallocatedOrUnwrittenError : 1;
+ UCHAR SkipReuseUI : 1;
+ UCHAR NameSpaceIoOptimization : 1;
+ UCHAR Reserved : 3;
+ } NSFEAT;
+ UCHAR NLBAF;
+ struct {
+ UCHAR LbaFormatIndex : 4;
+ UCHAR MetadataInExtendedDataLBA : 1;
+ UCHAR Reserved : 3;
+ } FLBAS;
+ struct {
+ UCHAR MetadataInExtendedDataLBA : 1;
+ UCHAR MetadataInSeparateBuffer : 1;
+ UCHAR Reserved : 6;
+ } MC;
+ struct {
+ UCHAR ProtectionInfoType1 : 1;
+ UCHAR ProtectionInfoType2 : 1;
+ UCHAR ProtectionInfoType3 : 1;
+ UCHAR InfoAtBeginningOfMetadata : 1;
+ UCHAR InfoAtEndOfMetadata : 1;
+ UCHAR Reserved : 3;
+ } DPC;
+ struct {
+ UCHAR ProtectionInfoTypeEnabled : 3;
+ UCHAR InfoAtBeginningOfMetadata : 1;
+ UCHAR Reserved : 4;
+ } DPS;
+ struct {
+ UCHAR SharedNameSpace : 1;
+ UCHAR Reserved : 7;
+ } NMIC;
+ NVM_RESERVATION_CAPABILITIES RESCAP;
+ struct {
+ UCHAR PercentageRemained : 7;
+ UCHAR Supported : 1;
+ } FPI;
+ struct {
+ UCHAR ReadBehavior : 3;
+ UCHAR WriteZeroes : 1;
+ UCHAR GuardFieldWithCRC : 1;
+ UCHAR Reserved : 3;
+ } DLFEAT;
+ USHORT NAWUN;
+ USHORT NAWUPF;
+ USHORT NACWU;
+ USHORT NABSN;
+ USHORT NABO;
+ USHORT NABSPF;
+ USHORT NOIOB;
+ UCHAR NVMCAP[16];
+ USHORT NPWG;
+ USHORT NPWA;
+ USHORT NPDG;
+ USHORT NPDA;
+ USHORT NOWS;
+ USHORT MSSRL;
+ ULONG MCL;
+ UCHAR MSRC;
+ UCHAR Reserved2[11];
+ ULONG ANAGRPID;
+ UCHAR Reserved3[3];
+ struct {
+ UCHAR WriteProtected : 1;
+ UCHAR Reserved : 7;
+ } NSATTR;
+ USHORT NVMSETID;
+ USHORT ENDGID;
+ UCHAR NGUID[16];
+ UCHAR EUI64[8];
+ NVME_LBA_FORMAT LBAF[16];
+ UCHAR Reserved4[192];
+ UCHAR VS[3712];
+} NVME_IDENTIFY_NAMESPACE_DATA, *PNVME_IDENTIFY_NAMESPACE_DATA;
+
+typedef struct {
+ USHORT MP;
+ UCHAR Reserved0;
+ UCHAR MPS : 1;
+ UCHAR NOPS : 1;
+ UCHAR Reserved1 : 6;
+ ULONG ENLAT;
+ ULONG EXLAT;
+ UCHAR RRT : 5;
+ UCHAR Reserved2 : 3;
+ UCHAR RRL : 5;
+ UCHAR Reserved3 : 3;
+ UCHAR RWT : 5;
+ UCHAR Reserved4 : 3;
+ UCHAR RWL : 5;
+ UCHAR Reserved5 : 3;
+ USHORT IDLP;
+ UCHAR Reserved6 : 6;
+ UCHAR IPS : 2;
+ UCHAR Reserved7;
+ USHORT ACTP;
+ UCHAR APW : 3;
+ UCHAR Reserved8 : 3;
+ UCHAR APS : 2;
+ UCHAR Reserved9[9];
+} NVME_POWER_STATE_DESC, *PNVME_POWER_STATE_DESC;
+
+typedef struct {
+ USHORT VID;
+ USHORT SSVID;
+ UCHAR SN[20];
+ UCHAR MN[40];
+ UCHAR FR[8];
+ UCHAR RAB;
+ UCHAR IEEE[3];
+ struct {
+ UCHAR MultiPCIePorts : 1;
+ UCHAR MultiControllers : 1;
+ UCHAR SRIOV : 1;
+ UCHAR Reserved : 5;
+ } CMIC;
+ UCHAR MDTS;
+ USHORT CNTLID;
+ ULONG VER;
+ ULONG RTD3R;
+ ULONG RTD3E;
+ struct {
+ ULONG Reserved0 : 8;
+ ULONG NamespaceAttributeChanged : 1;
+ ULONG FirmwareActivation : 1;
+ ULONG Reserved1 : 1;
+ ULONG AsymmetricAccessChanged : 1;
+ ULONG PredictableLatencyAggregateLogChanged : 1;
+ ULONG LbaStatusChanged : 1;
+ ULONG EnduranceGroupAggregateLogChanged : 1;
+ ULONG Reserved2 : 12;
+ ULONG ZoneInformation : 1;
+ ULONG Reserved3 : 4;
+ } OAES;
+ struct {
+ ULONG HostIdentifier128Bit : 1;
+ ULONG NOPSPMode : 1;
+ ULONG NVMSets : 1;
+ ULONG ReadRecoveryLevels : 1;
+ ULONG EnduranceGroups : 1;
+ ULONG PredictableLatencyMode : 1;
+ ULONG TBKAS : 1;
+ ULONG NamespaceGranularity : 1;
+ ULONG SQAssociations : 1;
+ ULONG UUIDList : 1;
+ ULONG Reserved0 : 22;
+ } CTRATT;
+ struct {
+ USHORT ReadRecoveryLevel0 : 1;
+ USHORT ReadRecoveryLevel1 : 1;
+ USHORT ReadRecoveryLevel2 : 1;
+ USHORT ReadRecoveryLevel3 : 1;
+ USHORT ReadRecoveryLevel4 : 1;
+ USHORT ReadRecoveryLevel5 : 1;
+ USHORT ReadRecoveryLevel6 : 1;
+ USHORT ReadRecoveryLevel7 : 1;
+ USHORT ReadRecoveryLevel8 : 1;
+ USHORT ReadRecoveryLevel9 : 1;
+ USHORT ReadRecoveryLevel10 : 1;
+ USHORT ReadRecoveryLevel11 : 1;
+ USHORT ReadRecoveryLevel12 : 1;
+ USHORT ReadRecoveryLevel13 : 1;
+ USHORT ReadRecoveryLevel14 : 1;
+ USHORT ReadRecoveryLevel15 : 1;
+ } RRLS;
+ UCHAR Reserved0[9];
+ UCHAR CNTRLTYPE;
+ UCHAR FGUID[16];
+ USHORT CRDT1;
+ USHORT CRDT2;
+ USHORT CRDT3;
+ UCHAR Reserved0_1[106];
+ UCHAR ReservedForManagement[16];
+ struct {
+ USHORT SecurityCommands : 1;
+ USHORT FormatNVM : 1;
+ USHORT FirmwareCommands : 1;
+ USHORT NamespaceCommands : 1;
+ USHORT DeviceSelfTest : 1;
+ USHORT Directives : 1;
+ USHORT NVMeMICommands : 1;
+ USHORT VirtualizationMgmt : 1;
+ USHORT DoorBellBufferConfig: 1;
+ USHORT GetLBAStatus : 1;
+ USHORT Reserved : 6;
+ } OACS;
+ UCHAR ACL;
+ UCHAR AERL;
+ struct {
+ UCHAR Slot1ReadOnly : 1;
+ UCHAR SlotCount : 3;
+ UCHAR ActivationWithoutReset : 1;
+ UCHAR Reserved : 3;
+ } FRMW;
+ struct {
+ UCHAR SmartPagePerNamespace : 1;
+ UCHAR CommandEffectsLog : 1;
+ UCHAR LogPageExtendedData : 1;
+ UCHAR TelemetrySupport : 1;
+ UCHAR PersistentEventLog : 1;
+ UCHAR Reserved0 : 1;
+ UCHAR TelemetryDataArea4 : 1;
+ UCHAR Reserved1 : 1;
+ } LPA;
+ UCHAR ELPE;
+ UCHAR NPSS;
+ struct {
+ UCHAR CommandFormatInSpec : 1;
+ UCHAR Reserved : 7;
+ } AVSCC;
+ struct {
+ UCHAR Supported : 1;
+ UCHAR Reserved : 7;
+ } APSTA;
+ USHORT WCTEMP;
+ USHORT CCTEMP;
+ USHORT MTFA;
+ ULONG HMPRE;
+ ULONG HMMIN;
+ UCHAR TNVMCAP[16];
+ UCHAR UNVMCAP[16];
+ struct {
+ ULONG RPMBUnitCount : 3;
+ ULONG AuthenticationMethod : 3;
+ ULONG Reserved0 : 10;
+ ULONG TotalSize : 8;
+ ULONG AccessSize : 8;
+ } RPMBS;
+ USHORT EDSTT;
+ UCHAR DSTO;
+ UCHAR FWUG;
+ USHORT KAS;
+ struct {
+ USHORT Supported : 1;
+ USHORT Reserved : 15;
+ } HCTMA;
+ USHORT MNTMT;
+ USHORT MXTMT;
+ struct {
+ ULONG CryptoErase : 1;
+ ULONG BlockErase : 1;
+ ULONG Overwrite : 1;
+ ULONG Reserved : 26;
+ ULONG NDI : 1;
+ ULONG NODMMAS : 2;
+ } SANICAP;
+ ULONG HMMINDS;
+ USHORT HMMAXD;
+ USHORT NSETIDMAX;
+ USHORT ENDGIDMAX;
+ UCHAR ANATT;
+ struct {
+ UCHAR OptimizedState : 1;
+ UCHAR NonOptimizedState : 1;
+ UCHAR InaccessibleState : 1;
+ UCHAR PersistentLossState : 1;
+ UCHAR ChangeState : 1;
+ UCHAR Reserved : 1;
+ UCHAR StaticANAGRPID : 1;
+ UCHAR SupportNonZeroANAGRPID : 1;
+ } ANACAP;
+ ULONG ANAGRPMAX;
+ ULONG NANAGRPID;
+ ULONG PELS;
+ UCHAR Reserved1[156];
+ struct {
+ UCHAR RequiredEntrySize : 4;
+ UCHAR MaxEntrySize : 4;
+ } SQES;
+ struct {
+ UCHAR RequiredEntrySize : 4;
+ UCHAR MaxEntrySize : 4;
+ } CQES;
+ USHORT MAXCMD;
+ ULONG NN;
+ struct {
+ USHORT Compare : 1;
+ USHORT WriteUncorrectable : 1;
+ USHORT DatasetManagement : 1;
+ USHORT WriteZeroes : 1;
+ USHORT FeatureField : 1;
+ USHORT Reservations : 1;
+ USHORT Timestamp : 1;
+ USHORT Verify : 1;
+ USHORT Reserved : 8;
+ } ONCS;
+ struct {
+ USHORT CompareAndWrite : 1;
+ USHORT Reserved : 15;
+ } FUSES;
+ struct {
+ UCHAR FormatApplyToAll : 1;
+ UCHAR SecureEraseApplyToAll : 1;
+ UCHAR CryptographicEraseSupported : 1;
+ UCHAR FormatSupportNSIDAllF : 1;
+ UCHAR Reserved : 4;
+ } FNA;
+ struct {
+ UCHAR Present : 1;
+ UCHAR FlushBehavior : 2;
+ UCHAR Reserved : 5;
+ } VWC;
+ USHORT AWUN;
+ USHORT AWUPF;
+ struct {
+ UCHAR CommandFormatInSpec : 1;
+ UCHAR Reserved : 7;
+ } NVSCC;
+ struct {
+ UCHAR WriteProtect : 1;
+ UCHAR UntilPowerCycle : 1;
+ UCHAR Permanent : 1;
+ UCHAR Reserved : 5;
+ } NWPC;
+ USHORT ACWU;
+ UCHAR Reserved4[2];
+ struct {
+ ULONG SGLSupported : 2;
+ ULONG KeyedSGLData : 1;
+ ULONG Reserved0 : 13;
+ ULONG BitBucketDescrSupported : 1;
+ ULONG ByteAlignedContiguousPhysicalBuffer : 1;
+ ULONG SGLLengthLargerThanDataLength : 1;
+ ULONG MPTRSGLDescriptor : 1;
+ ULONG AddressFieldSGLDataBlock: 1;
+ ULONG TransportSGLData : 1;
+ ULONG Reserved1 : 10;
+ } SGLS;
+ ULONG MNAN;
+ UCHAR Reserved6[224];
+ UCHAR SUBNQN[256];
+ UCHAR Reserved7[768];
+ UCHAR Reserved8[256];
+ NVME_POWER_STATE_DESC PDS[32];
+ UCHAR VS[1024];
+} NVME_IDENTIFY_CONTROLLER_DATA, *PNVME_IDENTIFY_CONTROLLER_DATA;
+
+typedef enum {
+ NVME_IDENTIFIER_TYPE_EUI64 = 0x1,
+ NVME_IDENTIFIER_TYPE_NGUID = 0x2,
+ NVME_IDENTIFIER_TYPE_UUID = 0x3,
+ NVME_IDENTIFIER_TYPE_CSI = 0x4
+} NVME_IDENTIFIER_TYPE;
+
+typedef enum {
+ NVME_IDENTIFIER_TYPE_EUI64_LENGTH = 0x8,
+ NVME_IDENTIFIER_TYPE_NGUID_LENGTH = 0x10,
+ NVME_IDENTIFIER_TYPE_UUID_LENGTH = 0x10,
+ NVME_IDENTIFIER_TYPE_CSI_LENGTH = 0x1
+} NVME_IDENTIFIER_TYPE_LENGTH;
+
+#define NVME_IDENTIFY_CNS_DESCRIPTOR_NAMESPACE_SIZE 0x1000
+
+typedef struct {
+ UCHAR NIDT;
+ UCHAR NIDL;
+ UCHAR Reserved[2];
+ UCHAR NID[ANYSIZE_ARRAY];
+} NVME_IDENTIFY_NAMESPACE_DESCRIPTOR, *PNVME_IDENTIFY_NAMESPACE_DESCRIPTOR;
+
+typedef struct {
+ USHORT Identifier;
+ USHORT ENDGID;
+ ULONG Reserved1;
+ ULONG Random4KBReadTypical;
+ ULONG OptimalWriteSize;
+ UCHAR TotalCapacity[16];
+ UCHAR UnallocatedCapacity[16];
+ UCHAR Reserved2[80];
+} NVME_SET_ATTRIBUTES_ENTRY, *PNVME_SET_ATTRIBUTES_ENTRY;
+
+typedef struct {
+ UCHAR IdentifierCount;
+ UCHAR Reserved[127];
+ NVME_SET_ATTRIBUTES_ENTRY Entry[ANYSIZE_ARRAY];
+} NVM_SET_LIST, *PNVM_SET_LIST;
+
+typedef struct {
+ ULONGLONG ZoneSize;
+ UCHAR ZDES;
+ UCHAR Reserved[7];
+} NVME_LBA_ZONE_FORMAT, *PNVME_LBA_ZONE_FORMAT;
+
+typedef struct {
+ struct {
+ USHORT VariableZoneCapacity : 1;
+ USHORT ZoneExcursions : 1;
+ USHORT Reserved : 14;
+ } ZOC;
+ struct {
+ USHORT ReadAcrossZoneBoundaries : 1;
+ USHORT Reserved : 15;
+ } OZCS;
+ ULONG MAR;
+ ULONG MOR;
+ ULONG RRL;
+ ULONG FRL;
+ UCHAR Reserved0[2796];
+ NVME_LBA_ZONE_FORMAT LBAEF[16];
+ UCHAR Reserved1[768];
+ UCHAR VS[256];
+} NVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET, *PNVME_IDENTIFY_SPECIFIC_NAMESPACE_IO_COMMAND_SET;
+
+typedef struct {
+ UCHAR VSL;
+ UCHAR WZSL;
+ UCHAR WUSL;
+ UCHAR DMRL;
+ ULONG DMRSL;
+ ULONGLONG DMSL;
+ UCHAR Reserved[4080];
+} NVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET, *PNVME_IDENTIFY_NVM_SPECIFIC_CONTROLLER_IO_COMMAND_SET;
+
+typedef struct {
+ UCHAR ZASL;
+ UCHAR Reserved[4095];
+} NVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET, *PNVME_IDENTIFY_ZNS_SPECIFIC_CONTROLLER_IO_COMMAND_SET;
+
+typedef struct {
+ USHORT NumberOfIdentifiers;
+ USHORT ControllerID[2047];
+} NVME_CONTROLLER_LIST, *PNVME_CONTROLLER_LIST;
+
+typedef struct {
+ ULONGLONG IOCommandSetVector[512];
+} NVME_IDENTIFY_IO_COMMAND_SET, *PNVME_IDENTIFY_IO_COMMAND_SET;
+
+typedef enum {
+ NVME_LBA_RANGE_TYPE_RESERVED = 0,
+ NVME_LBA_RANGE_TYPE_FILESYSTEM = 1,
+ NVME_LBA_RANGE_TYPE_RAID = 2,
+ NVME_LBA_RANGE_TYPE_CACHE = 3,
+ NVME_LBA_RANGE_TYPE_PAGE_SWAP_FILE = 4
+} NVME_LBA_RANGE_TYPES;
+
+typedef struct {
+ UCHAR Type;
+ struct {
+ UCHAR MayOverwritten : 1;
+ UCHAR Hidden : 1;
+ UCHAR Reserved : 6;
+ } Attributes;
+ UCHAR Reserved0[14];
+ ULONGLONG SLBA;
+ ULONGLONG NLB;
+ UCHAR GUID[16];
+ UCHAR Reserved1[16];
+} NVME_LBA_RANGET_TYPE_ENTRY, *PNVME_LBA_RANGET_TYPE_ENTRY;
+
+typedef enum {
+ NVME_LOG_PAGE_WCS_DEVICE_SMART_ATTRIBUTES = 0xC0,
+ NVME_LOG_PAGE_WCS_DEVICE_ERROR_RECOVERY = 0xC1
+} NVME_VENDOR_LOG_PAGES;
+
+#define GUID_WCS_DEVICE_SMART_ATTRIBUTESGuid { 0x2810AFC5, 0xBFEA, 0xA4F2, { 0x9C, 0x4F, 0x6F, 0x7C, 0xC9, 0x14, 0xD5, 0xAF} }
+DEFINE_GUID(GUID_WCS_DEVICE_SMART_ATTRIBUTES, 0x2810AFC5, 0xBFEA, 0xA4F2, 0x9C, 0x4F, 0x6F, 0x7C, 0xC9, 0x14, 0xD5, 0xAF);
+
+#define GUID_WCS_DEVICE_ERROR_RECOVERYGuid { 0x2131D944, 0x30FE, 0xAE34, {0xAB, 0x4D, 0xFD, 0x3D, 0xBA, 0x83, 0x19, 0x5A} }
+DEFINE_GUID(GUID_WCS_DEVICE_ERROR_RECOVERY, 0x2131D944, 0x30FE, 0xAE34, 0xAB, 0x4D, 0xFD, 0x3D, 0xBA, 0x83, 0x19, 0x5A);
+
+typedef enum {
+ NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_RESERVED = 0,
+ NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_DEVICE_PANIC = 1
+} NVME_ASYNC_EVENT_TYPE_VENDOR_SPECIFIC_CODES;
+
+typedef struct _NVME_WCS_DEVICE_RESET_ACTION {
+ union {
+ __C89_NAMELESS struct {
+ UCHAR ControllerReset : 1;
+ UCHAR NVMeSubsystemReset : 1;
+ UCHAR PCIeFLR : 1;
+ UCHAR PERST : 1;
+ UCHAR PowerCycle : 1;
+ UCHAR PCIeConventionalHotReset : 1;
+ UCHAR Reserved : 2;
+ };
+ UCHAR AsUCHAR;
+ };
+} NVME_WCS_DEVICE_RESET_ACTION, *PNVME_WCS_DEVICE_RESET_ACTION;
+
+typedef struct _NVME_WCS_DEVICE_CAPABILITIES {
+ union {
+ __C89_NAMELESS struct {
+ ULONG PanicAEN : 1;
+ ULONG PanicCFS : 1;
+ ULONG Reserved : 30;
+ };
+ ULONG AsULONG;
+ };
+} NVME_WCS_DEVICE_CAPABILITIES, *PNVME_WCS_DEVICE_CAPABILITIES;
+
+typedef enum _NVME_WCS_DEVICE_RECOVERY_ACTION {
+ NVMeDeviceRecoveryNoAction = 0,
+ NVMeDeviceRecoveryFormatNVM,
+ NVMeDeviceRecoveryVendorSpecificCommand,
+ NVMeDeviceRecoveryVendorAnalysis,
+ NVMeDeviceRecoveryDeviceReplacement,
+ NVMeDeviceRecoverySanitize,
+ NVMeDeviceRecoveryMax = 15
+} NVME_WCS_DEVICE_RECOVERY_ACTION, *PNVME_WCS_DEVICE_RECOVERY_ACTION;
+
+#pragma pack(push, 1)
+
+typedef struct _NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG {
+ UCHAR VersionSpecificData[494];
+ USHORT LogPageVersionNumber;
+ GUID LogPageGUID;
+} NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG, *PNVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG;
+
+C_ASSERT(sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG) == 512);
+
+#define NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_VERSION_2 0x0002
+
+typedef struct _NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2 {
+ UCHAR MediaUnitsWritten[16];
+ UCHAR MediaUnitsRead[16];
+ struct {
+ UCHAR RawCount[6];
+ UCHAR Normalized[2];
+ } BadUserNANDBlockCount;
+ struct {
+ UCHAR RawCount[6];
+ UCHAR Normalized[2];
+ } BadSystemNANDBlockCount;
+ ULONGLONG XORRecoveryCount;
+ ULONGLONG UnrecoverableReadErrorCount;
+ ULONGLONG SoftECCErrorCount;
+ struct {
+ ULONG DetectedCounts;
+ ULONG CorrectedCounts;
+ } EndToEndCorrectionCounts;
+ UCHAR PercentageSystemDataUsed;
+ UCHAR RefreshCount[7];
+ struct {
+ ULONG MaximumCount;
+ ULONG MinimumCount;
+ } UserDataEraseCounts;
+ struct {
+ UCHAR EventCount;
+ UCHAR Status;
+ } ThermalThrottling;
+ UCHAR Reserved0[6];
+ ULONGLONG PCIeCorrectableErrorCount;
+ ULONG IncompleteShutdownCount;
+ ULONG Reserved1;
+ UCHAR PercentageFreeBlocks;
+ UCHAR Reserved2[7];
+ USHORT CapacitorHealth;
+ UCHAR Reserved3[6];
+ ULONGLONG UnalignedIOCount;
+ ULONGLONG SecurityVersionNumber;
+ ULONGLONG NUSE;
+ UCHAR PLPStartCount[16];
+ UCHAR EnduranceEstimate[16];
+ UCHAR Reserved4[302];
+ USHORT LogPageVersionNumber;
+ GUID LogPageGUID;
+} NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2, *PNVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2;
+
+C_ASSERT(sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG_V2) == sizeof(NVME_WCS_DEVICE_SMART_ATTRIBUTES_LOG));
+
+typedef struct _NVME_WCS_DEVICE_ERROR_RECOVERY_LOG {
+ USHORT PanicResetWaitTime;
+ NVME_WCS_DEVICE_RESET_ACTION PanicResetAction;
+ UCHAR DriveRecoveryAction;
+ ULONGLONG PanicId;
+ NVME_WCS_DEVICE_CAPABILITIES DeviceCapabilities;
+ UCHAR VendorSpecificRecoveryCode;
+ UCHAR Reserved0[3];
+ ULONG VendorSpecificCommandCDW12;
+ ULONG VendorSpecificCommandCDW13;
+ UCHAR Reserved1[466];
+ USHORT LogPageVersionNumber;
+ GUID LogPageGUID;
+} NVME_WCS_DEVICE_ERROR_RECOVERY_LOG, *PNVME_WCS_DEVICE_ERROR_RECOVERY_LOG;
+
+C_ASSERT(sizeof(NVME_WCS_DEVICE_ERROR_RECOVERY_LOG) == 512);
+
+#pragma pack(pop)
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG QID : 16;
+ ULONG QSIZE : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_CREATE_IO_QUEUE, *PNVME_CDW10_CREATE_IO_QUEUE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG PC : 1;
+ ULONG IEN : 1;
+ ULONG Reserved0 : 14;
+ ULONG IV : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_CREATE_IO_CQ, *PNVME_CDW11_CREATE_IO_CQ;
+
+typedef enum {
+ NVME_NVM_QUEUE_PRIORITY_URGENT = 0,
+ NVME_NVM_QUEUE_PRIORITY_HIGH = 1,
+ NVME_NVM_QUEUE_PRIORITY_MEDIUM = 2,
+ NVME_NVM_QUEUE_PRIORITY_LOW = 3
+} NVME_NVM_QUEUE_PRIORITIES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG PC : 1;
+ ULONG QPRIO : 2;
+ ULONG Reserved0 : 13;
+ ULONG CQID : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_CREATE_IO_SQ, *PNVME_CDW11_CREATE_IO_SQ;
+
+typedef enum {
+ NVME_FEATURE_VALUE_CURRENT = 0,
+ NVME_FEATURE_VALUE_DEFAULT = 1,
+ NVME_FEATURE_VALUE_SAVED = 2,
+ NVME_FEATURE_VALUE_SUPPORTED_CAPABILITIES = 3
+} NVME_FEATURE_VALUE_CODES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG FID : 8;
+ ULONG SEL : 3;
+ ULONG Reserved0 : 21;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_GET_FEATURES, *PNVME_CDW10_GET_FEATURES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG FID : 8;
+ ULONG Reserved0 : 23;
+ ULONG SV : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_SET_FEATURES, *PNVME_CDW10_SET_FEATURES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NSQ : 16;
+ ULONG NCQ : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_NUMBER_OF_QUEUES, *PNVME_CDW11_FEATURE_NUMBER_OF_QUEUES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG THR : 8;
+ ULONG TIME : 8;
+ ULONG Reserved0 : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_INTERRUPT_COALESCING, *PNVME_CDW11_FEATURE_INTERRUPT_COALESCING;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG IV : 16;
+ ULONG CD : 1;
+ ULONG Reserved0 : 15;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG, *PNVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG DN : 1;
+ ULONG Reserved0 : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL, *PNVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NOPPME : 1;
+ ULONG Reserved0 : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE, *PNVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NUM : 6;
+ ULONG Reserved0 : 26;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_LBA_RANGE_TYPE, *PNVME_CDW11_FEATURE_LBA_RANGE_TYPE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG AB : 3;
+ ULONG Reserved0 : 5;
+ ULONG LPW : 8;
+ ULONG MPW : 8;
+ ULONG HPW : 8;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_ARBITRATION, *PNVME_CDW11_FEATURE_ARBITRATION;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG WCE : 1;
+ ULONG Reserved0 : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE, *PNVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG SAVE : 1;
+ ULONG NSS : 1;
+ ULONG MOD : 1;
+ ULONG Reserved0 : 29;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_SUPPORTED_CAPABILITY, *PNVME_CDW11_FEATURE_SUPPORTED_CAPABILITY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG CriticalWarnings : 8;
+ ULONG NsAttributeNotices : 1;
+ ULONG FwActivationNotices : 1;
+ ULONG TelemetryLogNotices : 1;
+ ULONG ANAChangeNotices : 1;
+ ULONG PredictableLogChangeNotices : 1;
+ ULONG LBAStatusNotices : 1;
+ ULONG EnduranceEventNotices : 1;
+ ULONG Reserved0 : 12;
+ ULONG ZoneDescriptorNotices : 1;
+ ULONG Reserved1 : 4;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG, *PNVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG PS : 5;
+ ULONG Reserved0 : 27;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_POWER_MANAGEMENT, *PNVME_CDW11_FEATURE_POWER_MANAGEMENT;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG APSTE : 1;
+ ULONG Reserved0 : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION, *PNVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION;
+
+typedef struct {
+ ULONG Reserved0 : 3;
+ ULONG IdleTransitionPowerState : 5;
+ ULONG IdleTimePriorToTransition : 24;
+ ULONG Reserved1;
+} NVME_AUTO_POWER_STATE_TRANSITION_ENTRY, *PNVME_AUTO_POWER_STATE_TRANSITION_ENTRY;
+
+typedef enum {
+ NVME_TEMPERATURE_OVER_THRESHOLD = 0,
+ NVME_TEMPERATURE_UNDER_THRESHOLD = 1
+} NVME_TEMPERATURE_THRESHOLD_TYPES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG TMPTH : 16;
+ ULONG TMPSEL : 4;
+ ULONG THSEL : 2;
+ ULONG Reserved0 : 10;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD, *PNVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG TLER : 16;
+ ULONG DULBE : 1;
+ ULONG Reserved0 : 15;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_ERROR_RECOVERY, *PNVME_CDW11_FEATURE_ERROR_RECOVERY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG EHM : 1;
+ ULONG MR : 1;
+ ULONG Reserved : 30;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW11_FEATURE_HOST_MEMORY_BUFFER;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG HSIZE;
+ };
+ ULONG AsUlong;
+} NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW12_FEATURE_HOST_MEMORY_BUFFER;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved : 4;
+ ULONG HMDLLA : 28;
+ };
+ ULONG AsUlong;
+} NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW13_FEATURE_HOST_MEMORY_BUFFER;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG HMDLUA;
+ };
+ ULONG AsUlong;
+} NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW14_FEATURE_HOST_MEMORY_BUFFER;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG HMDLEC;
+ };
+ ULONG AsUlong;
+} NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER, *PNVME_CDW15_FEATURE_HOST_MEMORY_BUFFER;
+
+typedef struct {
+ ULONGLONG BADD;
+ ULONG BSIZE;
+ ULONG Reserved;
+} NVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY, *PNVME_HOST_MEMORY_BUFFER_DESCRIPTOR_ENTRY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG IOCSCI : 8;
+ ULONG Reserved : 24;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE, *PNVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG GDHM : 1;
+ ULONG Reserved : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_GET_HOST_METADATA, *PNVME_CDW11_FEATURE_GET_HOST_METADATA;
+
+typedef enum {
+ NVME_HOST_METADATA_ADD_REPLACE_ENTRY = 0,
+ NVME_HOST_METADATA_DELETE_ENTRY_MULTIPLE = 1,
+ NVME_HOST_METADATA_ADD_ENTRY_MULTIPLE = 2
+} NVME_HOST_METADATA_ELEMENT_ACTIONS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 13;
+ ULONG EA : 2;
+ ULONG Reserved1 : 17;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_SET_HOST_METADATA, *PNVME_CDW11_FEATURE_SET_HOST_METADATA;
+
+typedef enum {
+ NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_CONTROLLER_NAME = 0x1,
+ NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_NAME = 0x2,
+ NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_VERSION = 0x3,
+ NVME_CONTROLLER_METADATA_PREBOOT_CONTROLLER_NAME = 0x4,
+ NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_NAME = 0x5,
+ NVME_CONTROLLER_METADATA_PREBOOT_DRIVER_VERSION = 0x6,
+ NVME_CONTROLLER_METADATA_SYSTEM_PROCESSOR_MODEL = 0x7,
+ NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_NAME = 0x8,
+ NVME_CONTROLLER_METADATA_CHIPSET_DRIVER_VERSION = 0x9,
+ NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_NAME_AND_BUILD = 0xA,
+ NVME_CONTROLLER_METADATA_SYSTEM_PRODUCT_NAME = 0xB,
+ NVME_CONTROLLER_METADATA_FIRMWARE_VERSION = 0xC,
+ NVME_CONTROLLER_METADATA_OPERATING_SYSTEM_DRIVER_FILENAME = 0xD,
+ NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_NAME = 0xE,
+ NVME_CONTROLLER_METADATA_DISPLAY_DRIVER_VERSION = 0xF,
+ NVME_CONTROLLER_METADATA_HOST_DETERMINED_FAILURE_RECORD = 0x10
+} NVME_CONTROLLER_METADATA_ELEMENT_TYPES;
+
+typedef enum {
+ NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME = 0x1,
+ NVME_NAMESPACE_METADATA_PREBOOT_NAMESPACE_NAME = 0x2,
+ NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_1 = 0x3,
+ NVME_NAMESPACE_METADATA_OPERATING_SYSTEM_NAMESPACE_NAME_QUALIFIER_2 = 0x4
+} NVME_NAMESPACE_METADATA_ELEMENT_TYPES;
+
+typedef struct {
+ ULONG ET : 6;
+ ULONG Reserved0 : 2;
+ ULONG ER : 4;
+ ULONG Reserved1 : 4;
+ ULONG ELEN : 16;
+ UCHAR EVAL[ANYSIZE_ARRAY];
+} NVME_HOST_METADATA_ELEMENT_DESCRIPTOR, *PNVME_HOST_METADATA_ELEMENT_DESCRIPTOR;
+
+typedef struct {
+ UCHAR NumberOfMetadataElementDescriptors;
+ UCHAR Reserved0;
+ UCHAR MetadataElementDescriptors[4094];
+} NVME_FEATURE_HOST_METADATA_DATA, *PNVME_FEATURE_HOST_METADATA_DATA;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NUM : 7;
+ ULONG Reserved0 : 25;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_ERROR_INJECTION, *PNVME_CDW11_FEATURE_ERROR_INJECTION;
+
+typedef NVME_CDW11_FEATURE_ERROR_INJECTION NVME_CDW0_FEATURE_ERROR_INJECTION, *PNVME_CDW0_FEATURE_ERROR_INJECTION;
+
+typedef struct {
+ union {
+ __C89_NAMELESS struct {
+ UCHAR Enable : 1;
+ UCHAR SingleInstance : 1;
+ UCHAR Reserved0 : 6;
+ };
+ UCHAR AsUchar;
+ } Flags;
+ UCHAR Reserved1;
+ USHORT ErrorInjectionType;
+ UCHAR ErrorInjectionTypeSpecific[28];
+} NVME_ERROR_INJECTION_ENTRY, *PNVME_ERROR_INJECTION_ENTRY;
+
+typedef enum {
+ NVME_ERROR_INJECTION_TYPE_RESERVED0 = 0,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_CPU_CONTROLLER_HANG,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_HANG,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_PLP_DEFECT,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_LOGICAL_FW_ERROR,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_CRITICAL,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_DRAM_CORRUPTION_NONCRITICAL,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_NAND_CORRUPTION,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_SRAM_CORRUPTION,
+ NVME_ERROR_INJECTION_TYPE_DEVICE_PANIC_HW_MALFUNCTION,
+ NVME_ERROR_INJECTION_TYPE_RESERVED1,
+ NVME_ERROR_INJECTION_TYPE_MAX = 0xFFFF
+} NVME_ERROR_INJECTION_TYPES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 31;
+ ULONG Clear : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY, *PNVME_CDW11_FEATURE_CLEAR_FW_UPDATE_HISTORY;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 30;
+ ULONG EOLBehavior : 2;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE, *PNVME_CDW11_FEATURE_READONLY_WRITETHROUGH_MODE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG EOLBehavior : 3;
+ ULONG Reserved0 : 29;
+ };
+ ULONG AsUlong;
+} NVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE, *PNVME_CDW0_FEATURE_READONLY_WRITETHROUGH_MODE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 31;
+ ULONG Clear : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS, *PNVME_CDW11_FEATURE_CLEAR_PCIE_CORRECTABLE_ERROR_COUNTERS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 31;
+ ULONG Enable : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO, *PNVME_CDW11_FEATURE_ENABLE_IEEE1667_SILO;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Enabled : 3;
+ ULONG Reserved0 : 29;
+ };
+ ULONG AsUlong;
+} NVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO, *PNVME_CDW0_FEATURE_ENABLE_IEEE1667_SILO;
+
+#define NVME_MAX_HOST_IDENTIFIER_SIZE 16
+#define NVME_HOST_IDENTIFIER_SIZE 8
+#define NVME_EXTENDED_HOST_IDENTIFIER_SIZE 16
+
+typedef struct {
+ ULONG EXHID : 1;
+ ULONG Reserved : 31;
+} NVME_CDW11_FEATURE_HOST_IDENTIFIER, *PNVME_CDW11_FEATURE_HOST_IDENTIFIER;
+
+typedef struct {
+ UCHAR HOSTID[NVME_MAX_HOST_IDENTIFIER_SIZE];
+} NVME_FEATURE_HOST_IDENTIFIER_DATA, *PNVME_FEATURE_HOST_IDENTIFIER_DATA;
+
+typedef struct {
+ ULONG PTPL : 1;
+ ULONG Reserved : 31;
+} NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE, *PNVME_CDW11_FEATURE_RESERVATION_PERSISTENCE;
+
+typedef struct {
+ ULONG Reserved : 1;
+ ULONG REGPRE : 1;
+ ULONG RESREL : 1;
+ ULONG RESPRE : 1;
+ ULONG Reserved1 : 28;
+} NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK, *PNVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK;
+
+typedef union {
+ NVME_CDW11_FEATURE_NUMBER_OF_QUEUES NumberOfQueues;
+ NVME_CDW11_FEATURE_INTERRUPT_COALESCING InterruptCoalescing;
+ NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG InterruptVectorConfig;
+ NVME_CDW11_FEATURE_LBA_RANGE_TYPE LbaRangeType;
+ NVME_CDW11_FEATURE_ARBITRATION Arbitration;
+ NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE VolatileWriteCache;
+ NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG AsyncEventConfig;
+ NVME_CDW11_FEATURE_POWER_MANAGEMENT PowerManagement;
+ NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION AutoPowerStateTransition;
+ NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD TemperatureThreshold;
+ NVME_CDW11_FEATURE_ERROR_RECOVERY ErrorRecovery;
+ NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
+ NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL WriteAtomicityNormal;
+ NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE NonOperationalPowerState;
+ NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE IoCommandSetProfile;
+ NVME_CDW11_FEATURE_ERROR_INJECTION ErrorInjection;
+ NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier;
+ NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence;
+ NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask;
+ NVME_CDW11_FEATURE_GET_HOST_METADATA GetHostMetadata;
+ NVME_CDW11_FEATURE_SET_HOST_METADATA SetHostMetadata;
+ ULONG AsUlong;
+} NVME_CDW11_FEATURES, *PNVME_CDW11_FEATURES;
+
+typedef union {
+ NVME_CDW12_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
+ ULONG AsUlong;
+} NVME_CDW12_FEATURES, *PNVME_CDW12_FEATURES;
+
+typedef union {
+ NVME_CDW13_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
+ ULONG AsUlong;
+} NVME_CDW13_FEATURES, *PNVME_CDW13_FEATURES;
+
+typedef union {
+ NVME_CDW14_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
+ ULONG AsUlong;
+} NVME_CDW14_FEATURES, *PNVME_CDW14_FEATURES;
+
+typedef union {
+ NVME_CDW15_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
+ ULONG AsUlong;
+} NVME_CDW15_FEATURES, *PNVME_CDW15_FEATURES;
+
+#define NVME_MAX_LOG_SIZE 0x1000
+
+typedef enum {
+ NVME_LOG_PAGE_ERROR_INFO = 0x01,
+ NVME_LOG_PAGE_HEALTH_INFO = 0x02,
+ NVME_LOG_PAGE_FIRMWARE_SLOT_INFO = 0x03,
+ NVME_LOG_PAGE_CHANGED_NAMESPACE_LIST = 0x04,
+ NVME_LOG_PAGE_COMMAND_EFFECTS = 0x05,
+ NVME_LOG_PAGE_DEVICE_SELF_TEST = 0x06,
+ NVME_LOG_PAGE_TELEMETRY_HOST_INITIATED = 0x07,
+ NVME_LOG_PAGE_TELEMETRY_CTLR_INITIATED = 0x08,
+ NVME_LOG_PAGE_ENDURANCE_GROUP_INFORMATION = 0x09,
+ NVME_LOG_PAGE_PREDICTABLE_LATENCY_NVM_SET = 0x0A,
+ NVME_LOG_PAGE_PREDICTABLE_LATENCY_EVENT_AGGREGATE = 0x0B,
+ NVME_LOG_PAGE_ASYMMETRIC_NAMESPACE_ACCESS = 0x0C,
+ NVME_LOG_PAGE_PERSISTENT_EVENT_LOG = 0x0D,
+ NVME_LOG_PAGE_LBA_STATUS_INFORMATION = 0x0E,
+ NVME_LOG_PAGE_ENDURANCE_GROUP_EVENT_AGGREGATE = 0x0F,
+ NVME_LOG_PAGE_RESERVATION_NOTIFICATION = 0x80,
+ NVME_LOG_PAGE_SANITIZE_STATUS = 0x81,
+ NVME_LOG_PAGE_CHANGED_ZONE_LIST = 0xBF
+} NVME_LOG_PAGES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG LID : 8;
+ ULONG Reserved0 : 8;
+ ULONG NUMD : 12;
+ ULONG Reserved1 : 4;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_GET_LOG_PAGE, *PNVME_CDW10_GET_LOG_PAGE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG LID : 8;
+ ULONG LSP : 4;
+ ULONG Reserved0 : 3;
+ ULONG RAE : 1;
+ ULONG NUMDL : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_GET_LOG_PAGE_V13, *PNVME_CDW10_GET_LOG_PAGE_V13;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NUMDU : 16;
+ ULONG LogSpecificIdentifier : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_GET_LOG_PAGE, *PNVME_CDW11_GET_LOG_PAGE;
+
+typedef struct {
+ ULONG LPOL;
+} NVME_CDW12_GET_LOG_PAGE, *PNVME_CDW12_GET_LOG_PAGE;
+
+typedef struct {
+ ULONG LPOU;
+} NVME_CDW13_GET_LOG_PAGE, *PNVME_CDW13_GET_LOG_PAGE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG UUIDIndex : 7;
+ ULONG Reserved : 17;
+ ULONG CommandSetIdentifier : 8;
+ };
+ ULONG AsUlong;
+} NVME_CDW14_GET_LOG_PAGE, *PNVME_CDW14_GET_LOG_PAGE;
+
+typedef struct {
+ ULONGLONG ErrorCount;
+ USHORT SQID;
+ USHORT CMDID;
+ NVME_COMMAND_STATUS Status;
+ struct {
+ USHORT Byte : 8;
+ USHORT Bit : 3;
+ USHORT Reserved : 5;
+ } ParameterErrorLocation;
+ ULONGLONG Lba;
+ ULONG NameSpace;
+ UCHAR VendorInfoAvailable;
+ UCHAR Reserved0[3];
+ ULONGLONG CommandSpecificInfo;
+ UCHAR Reserved1[24];
+} NVME_ERROR_INFO_LOG, *PNVME_ERROR_INFO_LOG;
+
+typedef struct {
+ union {
+ __C89_NAMELESS struct {
+ UCHAR AvailableSpaceLow : 1;
+ UCHAR TemperatureThreshold : 1;
+ UCHAR ReliabilityDegraded : 1;
+ UCHAR ReadOnly : 1;
+ UCHAR VolatileMemoryBackupDeviceFailed : 1;
+ UCHAR Reserved : 3;
+ };
+ UCHAR AsUchar;
+ } CriticalWarning;
+ UCHAR Temperature[2];
+ UCHAR AvailableSpare;
+ UCHAR AvailableSpareThreshold;
+ UCHAR PercentageUsed;
+ UCHAR Reserved0[26];
+ UCHAR DataUnitRead[16];
+ UCHAR DataUnitWritten[16];
+ UCHAR HostReadCommands[16];
+ UCHAR HostWrittenCommands[16];
+ UCHAR ControllerBusyTime[16];
+ UCHAR PowerCycle[16];
+ UCHAR PowerOnHours[16];
+ UCHAR UnsafeShutdowns[16];
+ UCHAR MediaErrors[16];
+ UCHAR ErrorInfoLogEntryCount[16];
+ ULONG WarningCompositeTemperatureTime;
+ ULONG CriticalCompositeTemperatureTime;
+ USHORT TemperatureSensor1;
+ USHORT TemperatureSensor2;
+ USHORT TemperatureSensor3;
+ USHORT TemperatureSensor4;
+ USHORT TemperatureSensor5;
+ USHORT TemperatureSensor6;
+ USHORT TemperatureSensor7;
+ USHORT TemperatureSensor8;
+ UCHAR Reserved1[296];
+} NVME_HEALTH_INFO_LOG, *PNVME_HEALTH_INFO_LOG;
+
+#define NVME_TELEMETRY_DATA_BLOCK_SIZE 0x200
+
+typedef struct _NVME_TELEMETRY_HOST_INITIATED_LOG {
+ UCHAR LogIdentifier;
+ UCHAR Reserved0[4];
+ UCHAR OrganizationID[3];
+ USHORT Area1LastBlock;
+ USHORT Area2LastBlock;
+ USHORT Area3LastBlock;
+ UCHAR Reserved1[2];
+ ULONG Area4LastBlock;
+ UCHAR Reserved2[361];
+ UCHAR HostInitiatedDataGenerationNumber;
+ UCHAR ControllerInitiatedDataAvailable;
+ UCHAR ControllerInitiatedDataGenerationNumber;
+ UCHAR ReasonIdentifier[128];
+} NVME_TELEMETRY_HOST_INITIATED_LOG, *PNVME_TELEMETRY_HOST_INITIATED_LOG;
+
+typedef struct _NVME_TELEMETRY_CONTROLLER_INITIATED_LOG {
+ UCHAR LogIdentifier;
+ UCHAR Reserved0[4];
+ UCHAR OrganizationID[3];
+ USHORT Area1LastBlock;
+ USHORT Area2LastBlock;
+ USHORT Area3LastBlock;
+ UCHAR Reserved1[2];
+ ULONG Area4LastBlock;
+ UCHAR Reserved2[362];
+ UCHAR ControllerInitiatedDataAvailable;
+ UCHAR ControllerInitiatedDataGenerationNumber;
+ UCHAR ReasonIdentifier[128];
+} NVME_TELEMETRY_CONTROLLER_INITIATED_LOG, *PNVME_TELEMETRY_CONTROLLER_INITIATED_LOG;
+
+typedef struct {
+ struct {
+ UCHAR ActiveSlot : 3;
+ UCHAR Reserved0 : 1;
+ UCHAR PendingActivateSlot : 3;
+ UCHAR Reserved1 : 1;
+ } AFI;
+ UCHAR Reserved0[7];
+ ULONGLONG FRS[7];
+ UCHAR Reserved1[448];
+} NVME_FIRMWARE_SLOT_INFO_LOG, *PNVME_FIRMWARE_SLOT_INFO_LOG;
+
+typedef struct {
+ ULONG NSID[1024];
+} NVME_CHANGED_NAMESPACE_LIST_LOG, *PNVME_CHANGED_NAMESPACE_LIST_LOG;
+
+typedef struct {
+ USHORT ZoneIdentifiersCount;
+ UCHAR Reserved[6];
+ ULONGLONG ZoneIdentifier[511];
+} NVME_CHANGED_ZONE_LIST_LOG, *PNVME_CHANGED_ZONE_LIST_LOG;
+
+typedef enum {
+ NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_NONE = 0,
+ NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_NAMESPACE = 1,
+ NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMIT_SINGLE_PER_CONTROLLER = 2
+} NVME_COMMAND_EFFECT_SBUMISSION_EXECUTION_LIMITS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG CSUPP : 1;
+ ULONG LBCC : 1;
+ ULONG NCC : 1;
+ ULONG NIC : 1;
+ ULONG CCC : 1;
+ ULONG Reserved0 : 11;
+ ULONG CSE : 3;
+ ULONG Reserved1 : 13;
+ };
+ ULONG AsUlong;
+} NVME_COMMAND_EFFECTS_DATA, *PNVME_COMMAND_EFFECTS_DATA;
+
+typedef struct {
+ NVME_COMMAND_EFFECTS_DATA ACS[256];
+ NVME_COMMAND_EFFECTS_DATA IOCS[256];
+ UCHAR Reserved[2048];
+} NVME_COMMAND_EFFECTS_LOG, *PNVME_COMMAND_EFFECTS_LOG;
+
+#pragma pack(push, 1)
+typedef struct {
+ struct {
+ UCHAR Result : 4;
+ UCHAR CodeValue : 4;
+ } Status;
+ UCHAR SegmentNumber;
+ struct {
+ UCHAR NSIDValid : 1;
+ UCHAR FLBAValid : 1;
+ UCHAR SCTValid : 1;
+ UCHAR SCValid : 1;
+ UCHAR Reserved : 4;
+ } ValidDiagnostics;
+ UCHAR Reserved;
+ ULONGLONG POH;
+ ULONG NSID;
+ ULONGLONG FailingLBA;
+ struct {
+ UCHAR AdditionalInfo : 3;
+ UCHAR Reserved : 5;
+ } StatusCodeType;
+ UCHAR StatusCode;
+ USHORT VendorSpecific;
+} NVME_DEVICE_SELF_TEST_RESULT_DATA, *PNVME_DEVICE_SELF_TEST_RESULT_DATA;
+
+typedef struct {
+ struct {
+ UCHAR Status : 4;
+ UCHAR Reserved : 4;
+ } CurrentOperation;
+ struct {
+ UCHAR CompletePercent : 7;
+ UCHAR Reserved : 1;
+ } CurrentCompletion;
+ UCHAR Reserved[2];
+ NVME_DEVICE_SELF_TEST_RESULT_DATA ResultData[20];
+} NVME_DEVICE_SELF_TEST_LOG, *PNVME_DEVICE_SELF_TEST_LOG;
+
+typedef struct {
+ ULONG Reserved0;
+ UCHAR AvailableSpareThreshold;
+ UCHAR PercentageUsed;
+ UCHAR Reserved1[26];
+ UCHAR EnduranceEstimate[16];
+ UCHAR DataUnitsRead[16];
+ UCHAR DataUnitsWritten[16];
+ UCHAR MediaUnitsWritten[16];
+ UCHAR Reserved2[416];
+} NVME_ENDURANCE_GROUP_LOG, *PNVME_ENDURANCE_GROUP_LOG;
+
+typedef struct {
+ UCHAR LogIdentifier;
+ UCHAR Reserved0[3];
+ ULONG TotalNumberOfEvents;
+ ULONGLONG TotalLogLength;
+ UCHAR LogRevision;
+ UCHAR Reserved1;
+ USHORT LogHeaderLength;
+ ULONGLONG Timestamp;
+ UCHAR PowerOnHours[16];
+ ULONGLONG PowerCycleCount;
+ USHORT PciVendorId;
+ USHORT PciSubsystemVendorId;
+ UCHAR SerialNumber[20];
+ UCHAR ModelNumber[40];
+ UCHAR NVMSubsystemNVMeQualifiedName[256];
+ UCHAR Reserved[108];
+ UCHAR SupportedEventsBitmap[32];
+} NVME_PERSISTENT_EVENT_LOG_HEADER, *PNVME_PERSISTENT_EVENT_LOG_HEADER;
+
+typedef struct {
+ UCHAR EventType;
+ UCHAR EventTypeRevision;
+ UCHAR EventHeaderLength;
+ UCHAR Reserved0;
+ USHORT ControllerIdentifier;
+ ULONGLONG EventTimestamp;
+ UCHAR Reserved1[6];
+ USHORT VendorSpecificInformationLength;
+ USHORT EventLength;
+} NVME_PERSISTENT_EVENT_LOG_EVENT_HEADER, *PNVME_PERSISTENT_EVENT_LOG_EVENT_HEADER;
+
+typedef enum {
+ NVME_PERSISTENT_EVENT_TYPE_RESERVED0 = 0x00,
+ NVME_PERSISTENT_EVENT_TYPE_SMART_HEALTH_LOG_SNAPSHOT = 0x01,
+ NVME_PERSISTENT_EVENT_TYPE_FIRMWARE_COMMIT = 0x02,
+ NVME_PERSISTENT_EVENT_TYPE_TIMESTAMP_CHANGE = 0x03,
+ NVME_PERSISTENT_EVENT_TYPE_POWER_ON_OR_RESET = 0x04,
+ NVME_PERSISTENT_EVENT_TYPE_NVM_SUBSYSTEM_HARDWARE_ERROR = 0x05,
+ NVME_PERSISTENT_EVENT_TYPE_CHANGE_NAMESPACE = 0x06,
+ NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_START = 0x07,
+ NVME_PERSISTENT_EVENT_TYPE_FORMAT_NVM_COMPLETION = 0x08,
+ NVME_PERSISTENT_EVENT_TYPE_SANITIZE_START = 0x09,
+ NVME_PERSISTENT_EVENT_TYPE_SANITIZE_COMPLETION = 0x0A,
+ NVME_PERSISTENT_EVENT_TYPE_SET_FEATURE = 0x0B,
+ NVME_PERSISTENT_EVENT_TYPE_TELEMETRY_LOG_CREATED = 0x0C,
+ NVME_PERSISTENT_EVENT_TYPE_THERMAL_EXCURSION = 0x0D,
+ NVME_PERSISTENT_EVENT_TYPE_RESERVED1_BEGIN = 0x0E,
+ NVME_PERSISTENT_EVENT_TYPE_RESERVED1_END = 0xDD,
+ NVME_PERSISTENT_EVENT_TYPE_VENDOR_SPECIFIC_EVENT = 0xDE,
+ NVME_PERSISTENT_EVENT_TYPE_TCG_DEFINED = 0xDF,
+ NVME_PERSISTENT_EVENT_TYPE_RESERVED2_BEGIN = 0xE0,
+ NVME_PERSISTENT_EVENT_TYPE_RESERVED2_END = 0xFF,
+ NVME_PERSISTENT_EVENT_TYPE_MAX = 0xFF
+} NVME_PERSISTENT_EVENT_LOG_EVENT_TYPES;
+
+#pragma pack(pop)
+
+typedef enum {
+ NVME_RESERVATION_NOTIFICATION_TYPE_EMPTY_LOG_PAGE = 0,
+ NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_PREEMPTED = 1,
+ NVME_RESERVATION_NOTIFICATION_TYPE_REGISTRATION_RELEASED = 2,
+ NVME_RESERVATION_NOTIFICATION_TYPE_RESERVATION_PREEPMPTED = 3
+} NVME_RESERVATION_NOTIFICATION_TYPES;
+
+typedef struct {
+ ULONGLONG LogPageCount;
+ UCHAR LogPageType;
+ UCHAR AvailableLogPageCount;
+ UCHAR Reserved0[2];
+ ULONG NameSpaceId;
+ UCHAR Reserved1[48];
+} NVME_RESERVATION_NOTIFICATION_LOG, *PNVME_RESERVATION_NOTIFICATION_LOG;
+
+typedef enum {
+ NVME_SANITIZE_OPERATION_NONE = 0,
+ NVME_SANITIZE_OPERATION_SUCCEEDED = 1,
+ NVME_SANITIZE_OPERATION_IN_PROGRESS = 2,
+ NVME_SANITIZE_OPERATION_FAILED = 3,
+ NVME_SANITIZE_OPERATION_SUCCEEDED_WITH_FORCED_DEALLOCATION = 4
+} NVME_SANITIZE_OPERATION_STATUS, *PNVME_SANITIZE_OPERATION_STATUS;
+
+typedef struct {
+ USHORT MostRecentSanitizeOperationStatus : 3;
+ USHORT NumberCompletedPassesOfOverwrite : 4;
+ USHORT GlobalDataErased : 1;
+ USHORT Reserved : 8;
+} NVME_SANITIZE_STATUS, *PNVME_SANITIZE_STATUS;
+
+typedef struct {
+ USHORT SPROG;
+ NVME_SANITIZE_STATUS SSTAT;
+ ULONG SCDW10;
+ ULONG EstimatedTimeForOverwrite;
+ ULONG EstimatedTimeForBlockErase;
+ ULONG EstimatedTimeForCryptoErase;
+ ULONG EstimatedTimeForOverwriteWithNoDeallocateMediaModification;
+ ULONG EstimatedTimeForBlockEraseWithNoDeallocateMediaModification;
+ ULONG EstimatedTimeForCryptoEraseWithNoDeallocateMediaModification;
+ UCHAR Reserved[480];
+} NVME_SANITIZE_STATUS_LOG, *PNVME_SANITIZE_STATUS_LOG;
+
+typedef struct {
+ ULONG NUMD;
+} NVME_CDW10_FIRMWARE_DOWNLOAD, *PNVME_CDW10_FIRMWARE_DOWNLOAD;
+
+typedef struct {
+ ULONG OFST;
+} NVME_CDW11_FIRMWARE_DOWNLOAD, *PNVME_CDW11_FIRMWARE_DOWNLOAD;
+
+typedef enum {
+ NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT = 0,
+ NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE = 1,
+ NVME_FIRMWARE_ACTIVATE_ACTION_ACTIVATE = 2,
+ NVME_FIRMWARE_ACTIVATE_ACTION_DOWNLOAD_TO_SLOT_AND_ACTIVATE_IMMEDIATE = 3
+} NVME_FIRMWARE_ACTIVATE_ACTIONS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG FS : 3;
+ ULONG AA : 2;
+ ULONG Reserved : 27;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_FIRMWARE_ACTIVATE, *PNVME_CDW10_FIRMWARE_ACTIVATE;
+
+typedef enum {
+ NVME_PROTECTION_INFORMATION_NOT_ENABLED = 0,
+ NVME_PROTECTION_INFORMATION_TYPE1 = 1,
+ NVME_PROTECTION_INFORMATION_TYPE2 = 2,
+ NVME_PROTECTION_INFORMATION_TYPE3 = 3
+} NVME_PROTECTION_INFORMATION_TYPES;
+
+typedef enum {
+ NVME_SECURE_ERASE_NONE = 0,
+ NVME_SECURE_ERASE_USER_DATA = 1,
+ NVME_SECURE_ERASE_CRYPTOGRAPHIC = 2
+} NVME_SECURE_ERASE_SETTINGS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG LBAF : 4;
+ ULONG MS : 1;
+ ULONG PI : 3;
+ ULONG PIL : 1;
+ ULONG SES : 3;
+ ULONG ZF : 2;
+ ULONG Reserved : 18;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_FORMAT_NVM, *PNVME_CDW10_FORMAT_NVM;
+
+typedef enum {
+ NVME_MEDIA_ADDITIONALLY_MODIFIED_AFTER_SANITIZE_NOT_DEFINED = 0,
+ NVME_MEDIA_NOT_ADDITIONALLY_MODIFIED_AFTER_SANITIZE = 1,
+ NVME_MEDIA_ADDITIONALLY_MOFIDIED_AFTER_SANITIZE = 2
+} NVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE, *PNVME_NO_DEALLOCATE_MODIFIES_MEDIA_AFTER_SANITIZE;
+
+typedef enum {
+ NVME_SANITIZE_ACTION_RESERVED = 0,
+ NVME_SANITIZE_ACTION_EXIT_FAILURE_MODE = 1,
+ NVME_SANITIZE_ACTION_START_BLOCK_ERASE_SANITIZE = 2,
+ NVME_SANITIZE_ACTION_START_OVERWRITE_SANITIZE = 3,
+ NVME_SANITIZE_ACTION_START_CRYPTO_ERASE_SANITIZE = 4
+} NVME_SANITIZE_ACTION, *PNVME_SANITIZE_ACTION;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG SANACT : 3;
+ ULONG AUSE : 1;
+ ULONG OWPASS : 4;
+ ULONG OIPBP : 1;
+ ULONG NDAS : 1;
+ ULONG Reserved : 22;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_SANITIZE, *PNVME_CDW10_SANITIZE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG OVRPAT;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_SANITIZE;
+
+typedef enum {
+ NVME_RESERVATION_TYPE_RESERVED = 0,
+ NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE = 1,
+ NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS = 2,
+ NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS_ONLY = 3,
+ NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY = 4,
+ NVME_RESERVATION_TYPE_WRITE_EXCLUSIVE_ALL_REGISTRANTS = 5,
+ NVME_RESERVATION_TYPE_EXCLUSIVE_ACCESS_ALL_REGISTRANTS = 6
+} NVME_RESERVATION_TYPES;
+
+typedef enum {
+ NVME_RESERVATION_ACQUIRE_ACTION_ACQUIRE = 0,
+ NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT = 1,
+ NVME_RESERVATION_ACQUIRE_ACTION_PREEMPT_AND_ABORT = 2
+} NVME_RESERVATION_ACQUIRE_ACTIONS;
+
+typedef struct {
+ ULONG PTPL : 1;
+ ULONG Reserved : 31;
+} NVME_CDW0_RESERVATION_PERSISTENCE, *PNVME_CDW0_RESERVATION_PERSISTENCE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG RACQA : 3;
+ ULONG IEKEY : 1;
+ ULONG Reserved : 4;
+ ULONG RTYPE : 8;
+ ULONG Reserved1 : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_RESERVATION_ACQUIRE, *PNVME_CDW10_RESERVATION_ACQUIRE;
+
+typedef struct {
+ ULONGLONG CRKEY;
+ ULONGLONG PRKEY;
+} NVME_RESERVATION_ACQUIRE_DATA_STRUCTURE, *PNVME_RESERVATION_ACQUIRE_DATA_STRUCTURE;
+
+typedef enum {
+ NVME_RESERVATION_REGISTER_ACTION_REGISTER = 0,
+ NVME_RESERVATION_REGISTER_ACTION_UNREGISTER = 1,
+ NVME_RESERVATION_REGISTER_ACTION_REPLACE = 2
+} NVME_RESERVATION_REGISTER_ACTIONS;
+
+typedef enum {
+ NVME_RESERVATION_REGISTER_PTPL_STATE_NO_CHANGE = 0,
+ NVME_RESERVATION_REGISTER_PTPL_STATE_RESERVED = 1,
+ NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_0 = 2,
+ NVME_RESERVATION_REGISTER_PTPL_STATE_SET_TO_1 = 3
+} NVME_RESERVATION_REGISTER_PTPL_STATE_CHANGES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG RREGA : 3;
+ ULONG IEKEY : 1;
+ ULONG Reserved : 26;
+ ULONG CPTPL : 2;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_RESERVATION_REGISTER, *PNVME_CDW10_RESERVATION_REGISTER;
+
+typedef struct {
+ ULONGLONG CRKEY;
+ ULONGLONG NRKEY;
+} NVME_RESERVATION_REGISTER_DATA_STRUCTURE, *PNVME_RESERVATION_REGISTER_DATA_STRUCTURE;
+
+typedef enum {
+ NVME_RESERVATION_RELEASE_ACTION_RELEASE = 0,
+ NVME_RESERVATION_RELEASE_ACTION_CLEAR = 1
+} NVME_RESERVATION_RELEASE_ACTIONS;
+
+typedef union {
+ struct {
+ ULONG RRELA : 3;
+ ULONG IEKEY : 1;
+ ULONG Reserved : 4;
+ ULONG RTYPE : 8;
+ ULONG Reserved1 : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_RESERVATION_RELEASE, *PNVME_CDW10_RESERVATION_RELEASE;
+
+typedef struct {
+ ULONGLONG CRKEY;
+} NVME_RESERVATION_RELEASE_DATA_STRUCTURE, *PNVME_RESERVATION_RELEASE_DATA_STRUCTURE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NUMD;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_RESERVATION_REPORT, *PNVME_CDW10_RESERVATION_REPORT;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG EDS : 1;
+ ULONG Reserved : 31;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_RESERVATION_REPORT, *PNVME_CDW11_RESERVATION_REPORT;
+
+#pragma pack(push, 1)
+typedef struct {
+ ULONG GEN;
+ UCHAR RTYPE;
+ USHORT REGCTL;
+ UCHAR Reserved[2];
+ UCHAR PTPLS;
+ UCHAR Reserved1[14];
+} NVME_RESERVATION_REPORT_STATUS_HEADER, *PNVME_RESERVATION_REPORT_STATUS_HEADER;
+#pragma pack(pop)
+
+C_ASSERT(sizeof(NVME_RESERVATION_REPORT_STATUS_HEADER) == 24);
+
+typedef struct {
+ USHORT CNTLID;
+ struct {
+ UCHAR HoldReservation : 1;
+ UCHAR Reserved : 7;
+ } RCSTS;
+ UCHAR Reserved[5];
+ UCHAR HOSTID[8];
+ ULONGLONG RKEY;
+} NVME_REGISTERED_CONTROLLER_DATA, *PNVME_REGISTERED_CONTROLLER_DATA;
+
+C_ASSERT(sizeof(NVME_REGISTERED_CONTROLLER_DATA) == 24);
+
+typedef struct {
+ NVME_RESERVATION_REPORT_STATUS_HEADER Header;
+ NVME_REGISTERED_CONTROLLER_DATA RegisteredControllersData[ANYSIZE_ARRAY];
+} NVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE, *PNVME_RESERVATION_REPORT_STATUS_DATA_STRUCTURE;
+
+typedef struct {
+ USHORT CNTLID;
+ struct {
+ UCHAR HoldReservation : 1;
+ UCHAR Reserved : 7;
+ } RCSTS;
+ UCHAR Reserved[5];
+ ULONGLONG RKEY;
+ UCHAR HOSTID[16];
+ UCHAR Reserved1[32];
+} NVME_REGISTERED_CONTROLLER_EXTENDED_DATA, *PNVME_REGISTERED_CONTROLLER_EXTENDED_DATA;
+
+C_ASSERT(sizeof(NVME_REGISTERED_CONTROLLER_EXTENDED_DATA) == 64);
+
+typedef struct {
+ NVME_RESERVATION_REPORT_STATUS_HEADER Header;
+ UCHAR Reserved1[40];
+ NVME_REGISTERED_CONTROLLER_EXTENDED_DATA RegisteredControllersExtendedData[ANYSIZE_ARRAY];
+} NVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE, *PNVME_RESERVATION_REPORT_STATUS_EXTENDED_DATA_STRUCTURE;
+
+typedef enum {
+ NVME_DIRECTIVE_TYPE_IDENTIFY = 0x00,
+ NVME_DIRECTIVE_TYPE_STREAMS = 0x01
+} NVME_DIRECTIVE_TYPES;
+
+#define NVME_STREAMS_ID_MIN 1
+#define NVME_STREAMS_ID_MAX 0xFFFF
+
+typedef struct {
+ ULONG NUMD;
+} NVME_CDW10_DIRECTIVE_RECEIVE, *PNVME_CDW10_DIRECTIVE_RECEIVE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG DOPER : 8;
+ ULONG DTYPE : 8;
+ ULONG DSPEC : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_DIRECTIVE_RECEIVE, *PNVME_CDW11_DIRECTIVE_RECEIVE;
+
+typedef struct {
+ ULONG NUMD;
+} NVME_CDW10_DIRECTIVE_SEND, *PNVME_CDW10_DIRECTIVE_SEND;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG DOPER : 8;
+ ULONG DTYPE : 8;
+ ULONG DSPEC : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_DIRECTIVE_SEND, *PNVME_CDW11_DIRECTIVE_SEND;
+
+typedef enum {
+ NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATION_RETURN_PARAMETERS = 1
+} NVME_DIRECTIVE_RECEIVE_IDENTIFY_OPERATIONS;
+
+typedef enum {
+ NVME_DIRECTIVE_SEND_IDENTIFY_OPERATION_ENABLE_DIRECTIVE = 1
+} NVME_DIRECTIVE_SEND_IDENTIFY_OPERATIONS;
+
+typedef struct {
+ UCHAR Identify : 1;
+ UCHAR Streams : 1;
+ UCHAR Reserved0 : 6;
+ UCHAR Reserved1[31];
+} NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR, *PNVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR;
+
+typedef struct {
+ NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR DirectivesSupported;
+ NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS_DESCRIPTOR DirectivesEnabled;
+} NVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS, *PNVME_DIRECTIVE_IDENTIFY_RETURN_PARAMETERS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG ENDIR : 1;
+ ULONG Reserved0 : 7;
+ ULONG DTYPE : 8;
+ ULONG Reserved1 : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE, *PNVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE;
+
+typedef enum {
+ NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_RETURN_PARAMETERS = 1,
+ NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_GET_STATUS = 2,
+ NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATION_ALLOCATE_RESOURCES = 3
+} NVME_DIRECTIVE_RECEIVE_STREAMS_OPERATIONS;
+
+typedef enum {
+ NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_IDENTIFIER = 1,
+ NVME_DIRECTIVE_SEND_STREAMS_OPERATION_RELEASE_RESOURCES = 2
+} NVME_DIRECTIVE_SEND_STREAMS_OPERATIONS;
+
+typedef struct {
+ USHORT MSL;
+ USHORT NSSA;
+ USHORT NSSO;
+ UCHAR Reserved0[10];
+ ULONG SWS;
+ USHORT SGS;
+ USHORT NSA;
+ USHORT NSO;
+ UCHAR Reserved1[6];
+} NVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS, *PNVME_DIRECTIVE_STREAMS_RETURN_PARAMETERS;
+
+#define NVME_STREAMS_GET_STATUS_MAX_IDS 65535
+
+typedef struct {
+ USHORT OpenStreamCount;
+ USHORT StreamIdentifiers[NVME_STREAMS_GET_STATUS_MAX_IDS];
+} NVME_DIRECTIVE_STREAMS_GET_STATUS_DATA, *PNVME_DIRECTIVE_STREAMS_GET_STATUS_DATA;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NSR : 16;
+ ULONG Reserved : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES, *PNVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES;
+
+typedef struct {
+ __C89_NAMELESS struct {
+ ULONG NSA : 16;
+ ULONG Reserved : 16;
+ };
+ ULONG AsUlong;
+} NVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES, *PNVME_COMPLETION_DW0_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES;
+
+typedef union {
+ NVME_CDW12_DIRECTIVE_SEND_IDENTIFY_ENABLE_DIRECTIVE EnableDirective;
+ ULONG AsUlong;
+} NVME_CDW12_DIRECTIVE_SEND;
+
+typedef union {
+ NVME_CDW12_DIRECTIVE_RECEIVE_STREAMS_ALLOCATE_RESOURCES AllocateResources;
+ ULONG AsUlong;
+} NVME_CDW12_DIRECTIVE_RECEIVE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG Reserved0 : 8;
+ ULONG SPSP : 16;
+ ULONG SECP : 8;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_SECURITY_SEND_RECEIVE, *PNVME_CDW10_SECURITY_SEND_RECEIVE;
+
+typedef struct {
+ ULONG TL;
+} NVME_CDW11_SECURITY_SEND, *PNVME_CDW11_SECURITY_SEND;
+
+typedef struct {
+ ULONG AL;
+} NVME_CDW11_SECURITY_RECEIVE, *PNVME_CDW11_SECURITY_RECEIVE;
+
+typedef enum {
+ NVME_NVM_COMMAND_FLUSH = 0x00,
+ NVME_NVM_COMMAND_WRITE = 0x01,
+ NVME_NVM_COMMAND_READ = 0x02,
+ NVME_NVM_COMMAND_WRITE_UNCORRECTABLE = 0x04,
+ NVME_NVM_COMMAND_COMPARE = 0x05,
+ NVME_NVM_COMMAND_WRITE_ZEROES = 0x08,
+ NVME_NVM_COMMAND_DATASET_MANAGEMENT = 0x09,
+ NVME_NVM_COMMAND_VERIFY = 0x0C,
+ NVME_NVM_COMMAND_RESERVATION_REGISTER = 0x0D,
+ NVME_NVM_COMMAND_RESERVATION_REPORT = 0x0E,
+ NVME_NVM_COMMAND_RESERVATION_ACQUIRE = 0x11,
+ NVME_NVM_COMMAND_RESERVATION_RELEASE = 0x15,
+ NVME_NVM_COMMAND_COPY = 0x19,
+ NVME_NVM_COMMAND_ZONE_MANAGEMENT_SEND = 0x79,
+ NVME_NVM_COMMAND_ZONE_MANAGEMENT_RECEIVE = 0x7A,
+ NVME_NVM_COMMAND_ZONE_APPEND = 0x7D
+} NVME_NVM_COMMANDS;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NLB : 16;
+ ULONG Reserved0 : 4;
+ ULONG DTYPE : 4;
+ ULONG Reserved1 : 2;
+ ULONG PRINFO : 4;
+ ULONG FUA : 1;
+ ULONG LR : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW12_READ_WRITE, *PNVME_CDW12_READ_WRITE;
+
+typedef enum {
+ NVME_ACCESS_FREQUENCY_NONE = 0,
+ NVME_ACCESS_FREQUENCY_TYPICAL = 1,
+ NVME_ACCESS_FREQUENCY_INFR_WRITE_INFR_READ = 2,
+ NVME_ACCESS_FREQUENCY_INFR_WRITE_FR_READ = 3,
+ NVME_ACCESS_FREQUENCY_FR_WRITE_INFR_READ = 4,
+ NVME_ACCESS_FREQUENCY_FR_WRITE_FR_READ = 5,
+ NVME_ACCESS_FREQUENCY_ONE_TIME_READ = 6,
+ NVME_ACCESS_FREQUENCY_SPECULATIVE_READ = 7,
+ NVME_ACCESS_FREQUENCY_WILL_BE_OVERWRITTEN = 8
+} NVME_ACCESS_FREQUENCIES;
+
+typedef enum {
+ NVME_ACCESS_LATENCY_NONE = 0,
+ NVME_ACCESS_LATENCY_IDLE = 1,
+ NVME_ACCESS_LATENCY_NORMAL = 2,
+ NVME_ACCESS_LATENCY_LOW = 3
+} NVME_ACCESS_LATENCIES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ struct {
+ UCHAR AccessFrequency : 4;
+ UCHAR AccessLatency : 2;
+ UCHAR SequentialRequest : 1;
+ UCHAR Incompressible : 1;
+ } DSM;
+ UCHAR Reserved;
+ USHORT DSPEC;
+ };
+ ULONG AsUlong;
+} NVME_CDW13_READ_WRITE, *PNVME_CDW13_READ_WRITE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG ELBAT : 16;
+ ULONG ELBATM : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW15_READ_WRITE, *PNVME_CDW15_READ_WRITE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG AccessFrequency : 4;
+ ULONG AccessLatency : 2;
+ ULONG Reserved0 : 2;
+ ULONG SequentialReadRange : 1;
+ ULONG SequentialWriteRange : 1;
+ ULONG WritePrepare : 1;
+ ULONG Reserved1 : 13;
+ ULONG CommandAccessSize : 8;
+ };
+ ULONG AsUlong;
+} NVME_CONTEXT_ATTRIBUTES, *PNVME_CONTEXT_ATTRIBUTES;
+
+typedef struct {
+ NVME_CONTEXT_ATTRIBUTES Attributes;
+ ULONG LogicalBlockCount;
+ ULONGLONG StartingLBA;
+} NVME_LBA_RANGE, *PNVME_LBA_RANGE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NR : 8;
+ ULONG Reserved : 24;
+ };
+ ULONG AsUlong;
+} NVME_CDW10_DATASET_MANAGEMENT, *PNVME_CDW10_DATASET_MANAGEMENT;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG IDR : 1;
+ ULONG IDW : 1;
+ ULONG AD : 1;
+ ULONG Reserved : 29;
+ };
+ ULONG AsUlong;
+} NVME_CDW11_DATASET_MANAGEMENT, *PNVME_CDW11_DATASET_MANAGEMENT;
+
+typedef struct {
+ __C89_NAMELESS struct {
+ UCHAR ZT : 4;
+ UCHAR Reserved1 : 4;
+ };
+ __C89_NAMELESS struct {
+ UCHAR Reserved2 : 4;
+ UCHAR ZS : 4;
+ };
+ struct {
+ UCHAR ZFC : 1;
+ UCHAR FZR : 1;
+ UCHAR RZR : 1;
+ UCHAR Reserved : 4;
+ UCHAR ZDEV : 1;
+ } ZA;
+ UCHAR Reserved3[5];
+ ULONGLONG ZCAP;
+ ULONGLONG ZSLBA;
+ ULONGLONG WritePointer;
+ UCHAR Reserved4[32];
+} NVME_ZONE_DESCRIPTOR, *PNVME_ZONE_DESCRIPTOR;
+
+typedef enum {
+ NVME_STATE_ZSE = 0x1,
+ NVME_STATE_ZSIO = 0x2,
+ NVME_STATE_ZSEO = 0x3,
+ NVME_STATE_ZSC = 0x4,
+ NVME_STATE_ZSRO = 0xD,
+ NVME_STATE_ZSF = 0xE,
+ NVME_STATE_ZSO = 0xF
+} ZONE_STATE;
+
+typedef enum {
+ NVME_ZONE_SEND_CLOSE = 1,
+ NVME_ZONE_SEND_FINISH = 2,
+ NVME_ZONE_SEND_OPEN = 3,
+ NVME_ZONE_SEND_RESET = 4,
+ NVME_ZONE_SEND_OFFLINE = 5,
+ NVME_ZONE_SEND_SET_ZONE_DESCRIPTOR = 0x10
+} NVME_ZONE_SEND_ACTION;
+
+typedef struct {
+ ULONGLONG SLBA;
+} NVME_CDW10_ZONE_MANAGEMENT_SEND, *PNVME_CDW10_ZONE_MANAGEMENT_SEND;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG ZSA : 8;
+ ULONG SelectAll : 1;
+ ULONG Reserved : 23;
+ };
+ ULONG AsUlong;
+} NVME_CDW13_ZONE_MANAGEMENT_SEND, *PNVME_CDW13_ZONE_MANAGEMENT_SEND;
+
+typedef struct {
+ ULONGLONG ZoneCount;
+ ULONGLONG Reserved[7];
+ NVME_ZONE_DESCRIPTOR ZoneDescriptor[ANYSIZE_ARRAY];
+} NVME_REPORT_ZONE_INFO, *PNVME_REPORT_ZONE_INFO;
+
+typedef struct{
+ UCHAR ZoneDescriptorExtensionInfo[64];
+} NVME_ZONE_DESCRIPTOR_EXTENSION, *PNVME_ZONE_DESCRIPTOR_EXTENSION;
+
+typedef struct {
+ NVME_ZONE_DESCRIPTOR ZoneDescriptor;
+ NVME_ZONE_DESCRIPTOR_EXTENSION ZoneDescriptorExtension[ANYSIZE_ARRAY];
+} NVME_ZONE_EXTENDED_REPORT_ZONE_DESC, *PNVME_ZONE_EXTENDED_REPORT_ZONE_DESC;
+
+typedef struct {
+ ULONGLONG ZoneCount;
+ ULONGLONG Reserved[7];
+ NVME_ZONE_EXTENDED_REPORT_ZONE_DESC Desc[ANYSIZE_ARRAY];
+} NVME_EXTENDED_REPORT_ZONE_INFO, *PNVME_EXTENDED_REPORT_ZONE_INFO;
+
+typedef enum {
+ NVME_ZONE_RECEIVE_REPORT_ZONES = 0,
+ NVME_ZONE_RECEIVE_EXTENDED_REPORT_ZONES = 1
+} NVME_ZONE_RECEIVE_ACTION;
+
+typedef enum {
+ NVME_ZRA_ALL_ZONES = 0,
+ NVME_ZRA_EMPTY_STATE_ZONES = 1,
+ NVME_ZRA_IO_STATE_ZONES = 2,
+ NVME_ZRA_EO_STATE_ZONES = 3,
+ NVME_ZRA_CLOSED_STATE_ZONES = 4,
+ NVME_ZRA_FULL_STATE_ZONES = 5,
+ NVME_ZRA_RO_STATE_ZONES = 6,
+ NVME_ZRA_OFFLINE_STATE_ZONES = 7
+} NVME_ZONE_RECEIVE_ACTION_SPECIFIC;
+
+typedef struct {
+ ULONGLONG SLBA;
+} NVME_CDW10_ZONE_MANAGEMENT_RECEIVE, *PNVME_CDW10_ZONE_MANAGEMENT_RECEIVE;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG ZRA : 8;
+ ULONG ZRASpecific : 8;
+ ULONG Partial : 1;
+ ULONG Reserved : 15;
+ };
+ ULONG AsUlong;
+} NVME_CDW13_ZONE_MANAGEMENT_RECEIVE, *PNVME_CDW13_ZONE_MANAGEMENT_RECEIVE;
+
+typedef struct {
+ ULONGLONG SLBA;
+} NVME_CDW10_ZONE_APPEND, *PNVME_CDW10_ZONE_APPEND;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG NLB : 16;
+ ULONG Reserved : 9;
+ ULONG PIREMAP : 1;
+ ULONG PRINFO : 4;
+ ULONG FUA : 1;
+ ULONG LR : 1;
+ };
+ ULONG AsUlong;
+} NVME_CDW12_ZONE_APPEND, *PNVME_CDW12_ZONE_APPEND;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG LBAT : 16;
+ ULONG LBATM : 16;
+ };
+ ULONG AsUlong;
+} NVME_CDW15_ZONE_APPEND, *PNVME_CDW15_ZONE_APPEND;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONG OPC : 8;
+ ULONG FUSE : 2;
+ ULONG Reserved0 : 5;
+ ULONG PSDT : 1;
+ ULONG CID : 16;
+ };
+ ULONG AsUlong;
+} NVME_COMMAND_DWORD0, *PNVME_COMMAND_DWORD0;
+
+typedef enum {
+ NVME_FUSED_OPERATION_NORMAL = 0,
+ NVME_FUSED_OPERATION_FIRST_CMD = 1,
+ NVME_FUSED_OPERATION_SECOND_CMD = 2
+} NVME_FUSED_OPERATION_CODES;
+
+typedef union {
+ __C89_NAMELESS struct {
+ ULONGLONG Reserved0 : 2;
+ ULONGLONG PBAO : 62;
+ };
+ ULONGLONG AsUlonglong;
+} NVME_PRP_ENTRY, *PNVME_PRP_ENTRY;
+
+#define NVME_NAMESPACE_ALL 0xFFFFFFFF
+
+typedef struct {
+ NVME_COMMAND_DWORD0 CDW0;
+ ULONG NSID;
+ ULONG Reserved0[2];
+ ULONGLONG MPTR;
+ ULONGLONG PRP1;
+ ULONGLONG PRP2;
+ union {
+ struct {
+ ULONG CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } GENERAL;
+ struct {
+ NVME_CDW10_IDENTIFY CDW10;
+ NVME_CDW11_IDENTIFY CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } IDENTIFY;
+ struct {
+ NVME_CDW10_ABORT CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } ABORT;
+ struct {
+ NVME_CDW10_GET_FEATURES CDW10;
+ NVME_CDW11_FEATURES CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } GETFEATURES;
+ struct {
+ NVME_CDW10_SET_FEATURES CDW10;
+ NVME_CDW11_FEATURES CDW11;
+ NVME_CDW12_FEATURES CDW12;
+ NVME_CDW13_FEATURES CDW13;
+ NVME_CDW14_FEATURES CDW14;
+ NVME_CDW15_FEATURES CDW15;
+ } SETFEATURES;
+ struct {
+ union {
+ NVME_CDW10_GET_LOG_PAGE CDW10;
+ NVME_CDW10_GET_LOG_PAGE_V13 CDW10_V13;
+ };
+ NVME_CDW11_GET_LOG_PAGE CDW11;
+ NVME_CDW12_GET_LOG_PAGE CDW12;
+ NVME_CDW13_GET_LOG_PAGE CDW13;
+ NVME_CDW14_GET_LOG_PAGE CDW14;
+ ULONG CDW15;
+ } GETLOGPAGE;
+ struct {
+ NVME_CDW10_CREATE_IO_QUEUE CDW10;
+ NVME_CDW11_CREATE_IO_CQ CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } CREATEIOCQ;
+ struct {
+ NVME_CDW10_CREATE_IO_QUEUE CDW10;
+ NVME_CDW11_CREATE_IO_SQ CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } CREATEIOSQ;
+ struct {
+ NVME_CDW10_DATASET_MANAGEMENT CDW10;
+ NVME_CDW11_DATASET_MANAGEMENT CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } DATASETMANAGEMENT;
+ struct {
+ NVME_CDW10_SECURITY_SEND_RECEIVE CDW10;
+ NVME_CDW11_SECURITY_SEND CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } SECURITYSEND;
+ struct {
+ NVME_CDW10_SECURITY_SEND_RECEIVE CDW10;
+ NVME_CDW11_SECURITY_RECEIVE CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } SECURITYRECEIVE;
+ struct {
+ NVME_CDW10_FIRMWARE_DOWNLOAD CDW10;
+ NVME_CDW11_FIRMWARE_DOWNLOAD CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } FIRMWAREDOWNLOAD;
+ struct {
+ NVME_CDW10_FIRMWARE_ACTIVATE CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } FIRMWAREACTIVATE;
+ struct {
+ NVME_CDW10_FORMAT_NVM CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } FORMATNVM;
+ struct {
+ NVME_CDW10_DIRECTIVE_RECEIVE CDW10;
+ NVME_CDW11_DIRECTIVE_RECEIVE CDW11;
+ NVME_CDW12_DIRECTIVE_RECEIVE CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } DIRECTIVERECEIVE;
+ struct {
+ NVME_CDW10_DIRECTIVE_SEND CDW10;
+ NVME_CDW11_DIRECTIVE_SEND CDW11;
+ NVME_CDW12_DIRECTIVE_SEND CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } DIRECTIVESEND;
+ struct {
+ NVME_CDW10_SANITIZE CDW10;
+ NVME_CDW11_SANITIZE CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } SANITIZE;
+ struct {
+ ULONG LBALOW;
+ ULONG LBAHIGH;
+ NVME_CDW12_READ_WRITE CDW12;
+ NVME_CDW13_READ_WRITE CDW13;
+ ULONG CDW14;
+ NVME_CDW15_READ_WRITE CDW15;
+ } READWRITE;
+ struct {
+ NVME_CDW10_RESERVATION_ACQUIRE CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } RESERVATIONACQUIRE;
+ struct {
+ NVME_CDW10_RESERVATION_REGISTER CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } RESERVATIONREGISTER;
+ struct {
+ NVME_CDW10_RESERVATION_RELEASE CDW10;
+ ULONG CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } RESERVATIONRELEASE;
+ struct {
+ NVME_CDW10_RESERVATION_REPORT CDW10;
+ NVME_CDW11_RESERVATION_REPORT CDW11;
+ ULONG CDW12;
+ ULONG CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } RESERVATIONREPORT;
+ struct {
+ NVME_CDW10_ZONE_MANAGEMENT_SEND CDW1011;
+ ULONG CDW12;
+ NVME_CDW13_ZONE_MANAGEMENT_SEND CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } ZONEMANAGEMENTSEND;
+ struct {
+ NVME_CDW10_ZONE_MANAGEMENT_RECEIVE CDW1011;
+ ULONG DWORDCOUNT;
+ NVME_CDW13_ZONE_MANAGEMENT_RECEIVE CDW13;
+ ULONG CDW14;
+ ULONG CDW15;
+ } ZONEMANAGEMENTRECEIVE;
+ struct {
+ NVME_CDW10_ZONE_APPEND CDW1011;
+ NVME_CDW12_ZONE_APPEND CDW12;
+ ULONG CDW13;
+ ULONG ILBRT;
+ NVME_CDW15_ZONE_APPEND CDW15;
+ } ZONEAPPEND;
+ } u;
+} NVME_COMMAND, *PNVME_COMMAND;
+
+C_ASSERT(sizeof(NVME_COMMAND) == 64);
+
+typedef struct {
+ CHAR PCIVendorID[4];
+ CHAR ModelNumber[40];
+ CHAR NamespaceID[4];
+ CHAR SerialNumber[20];
+} NVME_SCSI_NAME_STRING, *PNVME_SCSI_NAME_STRING;
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* NVME_INCLUDED */
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__
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__
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/pchannel.h
@@ -3,10 +3,18 @@
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
+
#ifndef _H_PCHANNEL
#define _H_PCHANNEL
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#if NTDDI_VERSION >= NTDDI_XP
+
#define CHANNEL_CHUNK_LENGTH 1600
+#define CHANNEL_BUFFER_SIZE 65535
#define CHANNEL_PDU_LENGTH (CHANNEL_CHUNK_LENGTH + sizeof(CHANNEL_PDU_HEADER))
@@ -29,6 +37,7 @@
#define CHANNEL_OPTION_COMPRESS_RDP 0x00800000
#define CHANNEL_OPTION_COMPRESS 0x00400000
#define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000
+#define CHANNEL_OPTION_REMOTE_CONTROL_PERSISTENT 0x00100000
#define CHANNEL_MAX_COUNT 30
#define CHANNEL_NAME_LEN 7
@@ -42,4 +51,9 @@ typedef struct tagCHANNEL_PDU_HEADER {
UINT32 length;
UINT32 flags;
} CHANNEL_PDU_HEADER,*PCHANNEL_PDU_HEADER;
-#endif
+
+#endif /* (NTDDI_VERSION >= NTDDI_XP) */
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+
+#endif /* _H_PCHANNEL */
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__
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
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__
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__
lib/libc/include/any-windows-any/propvarutil.h
@@ -22,9 +22,13 @@
#include <shtypes.h>
#include <shlwapi.h>
-#if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK)
-#define _NTSTATUS_PSDK
-typedef LONG NTSTATUS, *PNTSTATUS;
+#ifndef WINE_NTSTATUS_DECLARED
+#define WINE_NTSTATUS_DECLARED
+typedef LONG NTSTATUS;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
#endif
enum tagPROPVAR_CHANGE_FLAGS
@@ -69,26 +73,42 @@ HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT p
HRESULT WINAPI InitPropVariantFromGUIDAsString(REFGUID guid, PROPVARIANT *ppropvar);
HRESULT WINAPI InitVariantFromGUIDAsString(REFGUID guid, VARIANT *pvar);
HRESULT WINAPI InitPropVariantFromBuffer(const VOID *pv, UINT cb, PROPVARIANT *ppropvar);
+HRESULT WINAPI InitPropVariantFromCLSID(REFCLSID clsid, PROPVARIANT *ppropvar);
HRESULT WINAPI InitVariantFromBuffer(const VOID *pv, UINT cb, VARIANT *pvar);
HRESULT WINAPI PropVariantToGUID(const PROPVARIANT *ppropvar, GUID *guid);
HRESULT WINAPI VariantToGUID(const VARIANT *pvar, GUID *guid);
INT WINAPI PropVariantCompareEx(REFPROPVARIANT propvar1, REFPROPVARIANT propvar2,
PROPVAR_COMPARE_UNIT uint, PROPVAR_COMPARE_FLAGS flags);
+HRESULT WINAPI InitPropVariantFromFileTime(const FILETIME *pftIn, PROPVARIANT *ppropvar);
+HRESULT WINAPI PropVariantToDouble(REFPROPVARIANT propvarIn, double *ret);
HRESULT WINAPI PropVariantToInt16(REFPROPVARIANT propvarIn, SHORT *ret);
HRESULT WINAPI PropVariantToInt32(REFPROPVARIANT propvarIn, LONG *ret);
HRESULT WINAPI PropVariantToInt64(REFPROPVARIANT propvarIn, LONGLONG *ret);
HRESULT WINAPI PropVariantToUInt16(REFPROPVARIANT propvarIn, USHORT *ret);
HRESULT WINAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret);
HRESULT WINAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret);
+HRESULT WINAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret);
+HRESULT WINAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb);
+HRESULT WINAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch);
+PCWSTR WINAPI PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault);
HRESULT WINAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret);
#ifdef __cplusplus
HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar);
-HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromInt16(SHORT nVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromUInt16(USHORT uiVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromInt32(LONG lVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromUInt32(ULONG ulVal, PROPVARIANT *ppropvar);
HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromUInt64(ULONGLONG ullVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromDouble(DOUBLE dblVal, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar);
+HRESULT InitPropVariantFromGUIDAsBuffer(REFGUID guid, PROPVARIANT *ppropvar);
+WINBOOL IsPropVariantVector(REFPROPVARIANT propvar);
+WINBOOL IsPropVariantString(REFPROPVARIANT propvar);
#ifndef NO_PROPVAR_INLINES
@@ -99,6 +119,55 @@ inline HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar)
return S_OK;
}
+inline HRESULT InitPropVariantFromInt16(SHORT nVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_I2;
+ ppropvar->iVal = nVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromUInt16(USHORT uiVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_UI2;
+ ppropvar->uiVal = uiVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromInt32(LONG lVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_I4;
+ ppropvar->lVal = lVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromUInt32(ULONG ulVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_UI4;
+ ppropvar->ulVal = ulVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_I8;
+ ppropvar->hVal.QuadPart = llVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromUInt64(ULONGLONG ullVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_UI8;
+ ppropvar->uhVal.QuadPart = ullVal;
+ return S_OK;
+}
+
+inline HRESULT InitPropVariantFromDouble(DOUBLE dblVal, PROPVARIANT *ppropvar)
+{
+ ppropvar->vt = VT_R8;
+ ppropvar->dblVal = dblVal;
+ return S_OK;
+}
+
inline HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar)
{
HRESULT hres;
@@ -112,14 +181,31 @@ inline HRESULT InitPropVariantFromString(PCWSTR psz, PROPVARIANT *ppropvar)
return hres;
}
-inline HRESULT InitPropVariantFromInt64(LONGLONG llVal, PROPVARIANT *ppropvar)
+inline HRESULT InitPropVariantFromGUIDAsBuffer(REFGUID guid, PROPVARIANT *ppropvar)
{
- ppropvar->vt = VT_I8;
- ppropvar->hVal.QuadPart = llVal;
- return S_OK;
+#ifdef __cplusplus
+ return InitPropVariantFromBuffer(&guid, sizeof(GUID), ppropvar);
+#else
+ return InitPropVariantFromBuffer(guid, sizeof(GUID), ppropvar);
+#endif
}
-#endif
+inline WINBOOL IsPropVariantVector(REFPROPVARIANT propvar)
+{
+ return (propvar.vt & (VT_ARRAY | VT_VECTOR));
+}
+
+inline WINBOOL IsPropVariantString(REFPROPVARIANT propvar)
+{
+ return (PropVariantToStringWithDefault(propvar, NULL) != NULL);
+}
+
+#endif /* NO_PROPVAR_INLINES */
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
#endif
#endif /* __WINE_PROPVARUTIL_H */
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__
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__
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__
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__
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__
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__
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)
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__
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__
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__
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
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__
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__
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
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__
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
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__
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__
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__
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);
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/time.h
@@ -21,6 +21,9 @@
#endif /* _SECIMP */
#endif /* defined(_CRTBLD) || defined(__LIBMSVCRT__) */
+/* Adding timespec definition. */
+#include <sys/timeb.h>
+
#pragma pack(push,_CRT_PACKING)
#ifdef __cplusplus
@@ -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 <sys/timeb.h>
-
/* POSIX 2008 says clock_gettime and timespec are defined in time.h header,
but other systems - like Linux, Solaris, etc - tend to declare such
recent extensions only if the following guards are met. */
lib/libc/include/any-windows-any/timeapi.h
@@ -0,0 +1,12 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#ifndef _INC_TIMEAPI
+#define _INC_TIMEAPI
+
+/* timeBeginPeriod and al are defined in mmsystem.h */
+#include <mmsystem.h>
+
+#endif
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__
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__
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__
lib/libc/include/any-windows-any/tsvirtualchannels.h
@@ -0,0 +1,1060 @@
+/*** Autogenerated by WIDL 7.0 from include/tsvirtualchannels.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __tsvirtualchannels_h__
+#define __tsvirtualchannels_h__
+
+/* Forward declarations */
+
+#ifndef __IWTSPlugin_FWD_DEFINED__
+#define __IWTSPlugin_FWD_DEFINED__
+typedef interface IWTSPlugin IWTSPlugin;
+#ifdef __cplusplus
+interface IWTSPlugin;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListener_FWD_DEFINED__
+#define __IWTSListener_FWD_DEFINED__
+typedef interface IWTSListener IWTSListener;
+#ifdef __cplusplus
+interface IWTSListener;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListenerCallback_FWD_DEFINED__
+#define __IWTSListenerCallback_FWD_DEFINED__
+typedef interface IWTSListenerCallback IWTSListenerCallback;
+#ifdef __cplusplus
+interface IWTSListenerCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__
+#define __IWTSVirtualChannelCallback_FWD_DEFINED__
+typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback;
+#ifdef __cplusplus
+interface IWTSVirtualChannelCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__
+#define __IWTSVirtualChannelManager_FWD_DEFINED__
+typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager;
+#ifdef __cplusplus
+interface IWTSVirtualChannelManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannel_FWD_DEFINED__
+#define __IWTSVirtualChannel_FWD_DEFINED__
+typedef interface IWTSVirtualChannel IWTSVirtualChannel;
+#ifdef __cplusplus
+interface IWTSVirtualChannel;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSPluginServiceProvider_FWD_DEFINED__
+#define __IWTSPluginServiceProvider_FWD_DEFINED__
+typedef interface IWTSPluginServiceProvider IWTSPluginServiceProvider;
+#ifdef __cplusplus
+interface IWTSPluginServiceProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRenderer_FWD_DEFINED__
+#define __IWTSBitmapRenderer_FWD_DEFINED__
+typedef interface IWTSBitmapRenderer IWTSBitmapRenderer;
+#ifdef __cplusplus
+interface IWTSBitmapRenderer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRendererCallback_FWD_DEFINED__
+#define __IWTSBitmapRendererCallback_FWD_DEFINED__
+typedef interface IWTSBitmapRendererCallback IWTSBitmapRendererCallback;
+#ifdef __cplusplus
+interface IWTSBitmapRendererCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRenderService_FWD_DEFINED__
+#define __IWTSBitmapRenderService_FWD_DEFINED__
+typedef interface IWTSBitmapRenderService IWTSBitmapRenderService;
+#ifdef __cplusplus
+interface IWTSBitmapRenderService;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <oaidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IWTSPlugin_FWD_DEFINED__
+#define __IWTSPlugin_FWD_DEFINED__
+typedef interface IWTSPlugin IWTSPlugin;
+#ifdef __cplusplus
+interface IWTSPlugin;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListener_FWD_DEFINED__
+#define __IWTSListener_FWD_DEFINED__
+typedef interface IWTSListener IWTSListener;
+#ifdef __cplusplus
+interface IWTSListener;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListenerCallback_FWD_DEFINED__
+#define __IWTSListenerCallback_FWD_DEFINED__
+typedef interface IWTSListenerCallback IWTSListenerCallback;
+#ifdef __cplusplus
+interface IWTSListenerCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__
+#define __IWTSVirtualChannelCallback_FWD_DEFINED__
+typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback;
+#ifdef __cplusplus
+interface IWTSVirtualChannelCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__
+#define __IWTSVirtualChannelManager_FWD_DEFINED__
+typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager;
+#ifdef __cplusplus
+interface IWTSVirtualChannelManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannel_FWD_DEFINED__
+#define __IWTSVirtualChannel_FWD_DEFINED__
+typedef interface IWTSVirtualChannel IWTSVirtualChannel;
+#ifdef __cplusplus
+interface IWTSVirtualChannel;
+#endif /* __cplusplus */
+#endif
+
+#define WTS_PROPERTY_DEFAULT_CONFIG L"DefaultConfig"
+#define E_MAPPEDRENDERER_SHUTDOWN HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+#define E_DUPLICATE_WINDOW_HINT HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
+/*****************************************************************************
+ * IWTSPlugin interface
+ */
+#ifndef __IWTSPlugin_INTERFACE_DEFINED__
+#define __IWTSPlugin_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230201-1439-4e62-a414-190d0ac3d40e")
+IWTSPlugin : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Initialize(
+ IWTSVirtualChannelManager *pChannelMgr) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Connected(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Disconnected(
+ DWORD dwDisconnectCode) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Terminated(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e)
+#endif
+#else
+typedef struct IWTSPluginVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSPlugin *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSPlugin *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSPlugin *This);
+
+ /*** IWTSPlugin methods ***/
+ HRESULT (STDMETHODCALLTYPE *Initialize)(
+ IWTSPlugin *This,
+ IWTSVirtualChannelManager *pChannelMgr);
+
+ HRESULT (STDMETHODCALLTYPE *Connected)(
+ IWTSPlugin *This);
+
+ HRESULT (STDMETHODCALLTYPE *Disconnected)(
+ IWTSPlugin *This,
+ DWORD dwDisconnectCode);
+
+ HRESULT (STDMETHODCALLTYPE *Terminated)(
+ IWTSPlugin *This);
+
+ END_INTERFACE
+} IWTSPluginVtbl;
+
+interface IWTSPlugin {
+ CONST_VTBL IWTSPluginVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSPlugin_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSPlugin_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSPlugin methods ***/
+#define IWTSPlugin_Initialize(This,pChannelMgr) (This)->lpVtbl->Initialize(This,pChannelMgr)
+#define IWTSPlugin_Connected(This) (This)->lpVtbl->Connected(This)
+#define IWTSPlugin_Disconnected(This,dwDisconnectCode) (This)->lpVtbl->Disconnected(This,dwDisconnectCode)
+#define IWTSPlugin_Terminated(This) (This)->lpVtbl->Terminated(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSPlugin_QueryInterface(IWTSPlugin* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSPlugin_AddRef(IWTSPlugin* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSPlugin_Release(IWTSPlugin* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSPlugin methods ***/
+static FORCEINLINE HRESULT IWTSPlugin_Initialize(IWTSPlugin* This,IWTSVirtualChannelManager *pChannelMgr) {
+ return This->lpVtbl->Initialize(This,pChannelMgr);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Connected(IWTSPlugin* This) {
+ return This->lpVtbl->Connected(This);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Disconnected(IWTSPlugin* This,DWORD dwDisconnectCode) {
+ return This->lpVtbl->Disconnected(This,dwDisconnectCode);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Terminated(IWTSPlugin* This) {
+ return This->lpVtbl->Terminated(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSPlugin_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSListener interface
+ */
+#ifndef __IWTSListener_INTERFACE_DEFINED__
+#define __IWTSListener_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230206-9a39-4d58-8674-cdb4dff4e73b")
+IWTSListener : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetConfiguration(
+ IPropertyBag **ppPropertyBag) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b)
+#endif
+#else
+typedef struct IWTSListenerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSListener *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSListener *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSListener *This);
+
+ /*** IWTSListener methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetConfiguration)(
+ IWTSListener *This,
+ IPropertyBag **ppPropertyBag);
+
+ END_INTERFACE
+} IWTSListenerVtbl;
+
+interface IWTSListener {
+ CONST_VTBL IWTSListenerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSListener_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSListener_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSListener methods ***/
+#define IWTSListener_GetConfiguration(This,ppPropertyBag) (This)->lpVtbl->GetConfiguration(This,ppPropertyBag)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSListener_QueryInterface(IWTSListener* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSListener_AddRef(IWTSListener* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSListener_Release(IWTSListener* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSListener methods ***/
+static FORCEINLINE HRESULT IWTSListener_GetConfiguration(IWTSListener* This,IPropertyBag **ppPropertyBag) {
+ return This->lpVtbl->GetConfiguration(This,ppPropertyBag);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSListener_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSListenerCallback interface
+ */
+#ifndef __IWTSListenerCallback_INTERFACE_DEFINED__
+#define __IWTSListenerCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230203-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSListenerCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnNewChannelConnection(
+ IWTSVirtualChannel *pChannel,
+ BSTR data,
+ WINBOOL *pbAccept,
+ IWTSVirtualChannelCallback **ppCallback) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSListenerCallbackVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSListenerCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSListenerCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSListenerCallback *This);
+
+ /*** IWTSListenerCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnNewChannelConnection)(
+ IWTSListenerCallback *This,
+ IWTSVirtualChannel *pChannel,
+ BSTR data,
+ WINBOOL *pbAccept,
+ IWTSVirtualChannelCallback **ppCallback);
+
+ END_INTERFACE
+} IWTSListenerCallbackVtbl;
+
+interface IWTSListenerCallback {
+ CONST_VTBL IWTSListenerCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSListenerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSListenerCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSListenerCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSListenerCallback methods ***/
+#define IWTSListenerCallback_OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback) (This)->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSListenerCallback_QueryInterface(IWTSListenerCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSListenerCallback_AddRef(IWTSListenerCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSListenerCallback_Release(IWTSListenerCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSListenerCallback methods ***/
+static FORCEINLINE HRESULT IWTSListenerCallback_OnNewChannelConnection(IWTSListenerCallback* This,IWTSVirtualChannel *pChannel,BSTR data,WINBOOL *pbAccept,IWTSVirtualChannelCallback **ppCallback) {
+ return This->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSListenerCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSVirtualChannelCallback interface
+ */
+#ifndef __IWTSVirtualChannelCallback_INTERFACE_DEFINED__
+#define __IWTSVirtualChannelCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230204-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannelCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnDataReceived(
+ ULONG cbSize,
+ BYTE *pBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnClose(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelCallbackVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSVirtualChannelCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSVirtualChannelCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSVirtualChannelCallback *This);
+
+ /*** IWTSVirtualChannelCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnDataReceived)(
+ IWTSVirtualChannelCallback *This,
+ ULONG cbSize,
+ BYTE *pBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *OnClose)(
+ IWTSVirtualChannelCallback *This);
+
+ END_INTERFACE
+} IWTSVirtualChannelCallbackVtbl;
+
+interface IWTSVirtualChannelCallback {
+ CONST_VTBL IWTSVirtualChannelCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannelCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannelCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannelCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannelCallback methods ***/
+#define IWTSVirtualChannelCallback_OnDataReceived(This,cbSize,pBuffer) (This)->lpVtbl->OnDataReceived(This,cbSize,pBuffer)
+#define IWTSVirtualChannelCallback_OnClose(This) (This)->lpVtbl->OnClose(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_QueryInterface(IWTSVirtualChannelCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelCallback_AddRef(IWTSVirtualChannelCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelCallback_Release(IWTSVirtualChannelCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannelCallback methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnDataReceived(IWTSVirtualChannelCallback* This,ULONG cbSize,BYTE *pBuffer) {
+ return This->lpVtbl->OnDataReceived(This,cbSize,pBuffer);
+}
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnClose(IWTSVirtualChannelCallback* This) {
+ return This->lpVtbl->OnClose(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSVirtualChannelCallback_INTERFACE_DEFINED__ */
+
+#define TS_VC_LISTENER_STATIC_CHANNEL 0x00000001
+/*****************************************************************************
+ * IWTSVirtualChannelManager interface
+ */
+#ifndef __IWTSVirtualChannelManager_INTERFACE_DEFINED__
+#define __IWTSVirtualChannelManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230205-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannelManager : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateListener(
+ const char *pszChannelName,
+ ULONG uFlags,
+ IWTSListenerCallback *pListenerCallback,
+ IWTSListener **ppListener) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelManagerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSVirtualChannelManager *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSVirtualChannelManager *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSVirtualChannelManager *This);
+
+ /*** IWTSVirtualChannelManager methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateListener)(
+ IWTSVirtualChannelManager *This,
+ const char *pszChannelName,
+ ULONG uFlags,
+ IWTSListenerCallback *pListenerCallback,
+ IWTSListener **ppListener);
+
+ END_INTERFACE
+} IWTSVirtualChannelManagerVtbl;
+
+interface IWTSVirtualChannelManager {
+ CONST_VTBL IWTSVirtualChannelManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannelManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannelManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannelManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannelManager methods ***/
+#define IWTSVirtualChannelManager_CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener) (This)->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelManager_QueryInterface(IWTSVirtualChannelManager* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelManager_AddRef(IWTSVirtualChannelManager* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelManager_Release(IWTSVirtualChannelManager* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannelManager methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelManager_CreateListener(IWTSVirtualChannelManager* This,const char *pszChannelName,ULONG uFlags,IWTSListenerCallback *pListenerCallback,IWTSListener **ppListener) {
+ return This->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSVirtualChannelManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSVirtualChannel interface
+ */
+#ifndef __IWTSVirtualChannel_INTERFACE_DEFINED__
+#define __IWTSVirtualChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230207-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannel : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Write(
+ ULONG cbSize,
+ BYTE *pBuffer,
+ IUnknown *pReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Close(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSVirtualChannel *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSVirtualChannel *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSVirtualChannel *This);
+
+ /*** IWTSVirtualChannel methods ***/
+ HRESULT (STDMETHODCALLTYPE *Write)(
+ IWTSVirtualChannel *This,
+ ULONG cbSize,
+ BYTE *pBuffer,
+ IUnknown *pReserved);
+
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ IWTSVirtualChannel *This);
+
+ END_INTERFACE
+} IWTSVirtualChannelVtbl;
+
+interface IWTSVirtualChannel {
+ CONST_VTBL IWTSVirtualChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannel methods ***/
+#define IWTSVirtualChannel_Write(This,cbSize,pBuffer,pReserved) (This)->lpVtbl->Write(This,cbSize,pBuffer,pReserved)
+#define IWTSVirtualChannel_Close(This) (This)->lpVtbl->Close(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannel_QueryInterface(IWTSVirtualChannel* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannel_AddRef(IWTSVirtualChannel* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannel_Release(IWTSVirtualChannel* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannel methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannel_Write(IWTSVirtualChannel* This,ULONG cbSize,BYTE *pBuffer,IUnknown *pReserved) {
+ return This->lpVtbl->Write(This,cbSize,pBuffer,pReserved);
+}
+static FORCEINLINE HRESULT IWTSVirtualChannel_Close(IWTSVirtualChannel* This) {
+ return This->lpVtbl->Close(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSVirtualChannel_INTERFACE_DEFINED__ */
+
+EXTERN_GUID( RDCLIENT_BITMAP_RENDER_SERVICE, 0xe4cc08cb, 0x942e, 0x4b19, 0x85, 0x4, 0xbd, 0x5a, 0x89, 0xa7, 0x47, 0xf5);
+/*****************************************************************************
+ * IWTSPluginServiceProvider interface
+ */
+#ifndef __IWTSPluginServiceProvider_INTERFACE_DEFINED__
+#define __IWTSPluginServiceProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d3e07363-087c-476c-86a7-dbb15f46ddb4")
+IWTSPluginServiceProvider : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetService(
+ GUID ServiceId,
+ IUnknown **ppunkObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4)
+#endif
+#else
+typedef struct IWTSPluginServiceProviderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSPluginServiceProvider *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSPluginServiceProvider *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSPluginServiceProvider *This);
+
+ /*** IWTSPluginServiceProvider methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ IWTSPluginServiceProvider *This,
+ GUID ServiceId,
+ IUnknown **ppunkObject);
+
+ END_INTERFACE
+} IWTSPluginServiceProviderVtbl;
+
+interface IWTSPluginServiceProvider {
+ CONST_VTBL IWTSPluginServiceProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSPluginServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSPluginServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSPluginServiceProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSPluginServiceProvider methods ***/
+#define IWTSPluginServiceProvider_GetService(This,ServiceId,ppunkObject) (This)->lpVtbl->GetService(This,ServiceId,ppunkObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSPluginServiceProvider_QueryInterface(IWTSPluginServiceProvider* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSPluginServiceProvider_AddRef(IWTSPluginServiceProvider* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSPluginServiceProvider_Release(IWTSPluginServiceProvider* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSPluginServiceProvider methods ***/
+static FORCEINLINE HRESULT IWTSPluginServiceProvider_GetService(IWTSPluginServiceProvider* This,GUID ServiceId,IUnknown **ppunkObject) {
+ return This->lpVtbl->GetService(This,ServiceId,ppunkObject);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSPluginServiceProvider_INTERFACE_DEFINED__ */
+
+typedef struct __BITMAP_RENDERER_STATISTICS {
+ DWORD dwFramesDelivered;
+ DWORD dwFramesDropped;
+} BITMAP_RENDERER_STATISTICS;
+typedef struct __BITMAP_RENDERER_STATISTICS *PBITMAP_RENDERER_STATISTICS;
+/*****************************************************************************
+ * IWTSBitmapRenderer interface
+ */
+#ifndef __IWTSBitmapRenderer_INTERFACE_DEFINED__
+#define __IWTSBitmapRenderer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5b7acc97-f3c9-46f7-8c5b-fa685d3441b1")
+IWTSBitmapRenderer : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Render(
+ GUID imageFormat,
+ DWORD dwWidth,
+ DWORD dwHeight,
+ LONG cbStride,
+ DWORD cbImageBuffer,
+ BYTE *pImageBuffer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRendererStatistics(
+ BITMAP_RENDERER_STATISTICS *pStatistics) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RemoveMapping(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1)
+#endif
+#else
+typedef struct IWTSBitmapRendererVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSBitmapRenderer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSBitmapRenderer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSBitmapRenderer *This);
+
+ /*** IWTSBitmapRenderer methods ***/
+ HRESULT (STDMETHODCALLTYPE *Render)(
+ IWTSBitmapRenderer *This,
+ GUID imageFormat,
+ DWORD dwWidth,
+ DWORD dwHeight,
+ LONG cbStride,
+ DWORD cbImageBuffer,
+ BYTE *pImageBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *GetRendererStatistics)(
+ IWTSBitmapRenderer *This,
+ BITMAP_RENDERER_STATISTICS *pStatistics);
+
+ HRESULT (STDMETHODCALLTYPE *RemoveMapping)(
+ IWTSBitmapRenderer *This);
+
+ END_INTERFACE
+} IWTSBitmapRendererVtbl;
+
+interface IWTSBitmapRenderer {
+ CONST_VTBL IWTSBitmapRendererVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRenderer_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRenderer methods ***/
+#define IWTSBitmapRenderer_Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer) (This)->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer)
+#define IWTSBitmapRenderer_GetRendererStatistics(This,pStatistics) (This)->lpVtbl->GetRendererStatistics(This,pStatistics)
+#define IWTSBitmapRenderer_RemoveMapping(This) (This)->lpVtbl->RemoveMapping(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderer_QueryInterface(IWTSBitmapRenderer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderer_AddRef(IWTSBitmapRenderer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderer_Release(IWTSBitmapRenderer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRenderer methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderer_Render(IWTSBitmapRenderer* This,GUID imageFormat,DWORD dwWidth,DWORD dwHeight,LONG cbStride,DWORD cbImageBuffer,BYTE *pImageBuffer) {
+ return This->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer);
+}
+static FORCEINLINE HRESULT IWTSBitmapRenderer_GetRendererStatistics(IWTSBitmapRenderer* This,BITMAP_RENDERER_STATISTICS *pStatistics) {
+ return This->lpVtbl->GetRendererStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWTSBitmapRenderer_RemoveMapping(IWTSBitmapRenderer* This) {
+ return This->lpVtbl->RemoveMapping(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSBitmapRenderer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSBitmapRendererCallback interface
+ */
+#ifndef __IWTSBitmapRendererCallback_INTERFACE_DEFINED__
+#define __IWTSBitmapRendererCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d782928e-fe4e-4e77-ae90-9cd0b3e3b353")
+IWTSBitmapRendererCallback : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnTargetSizeChanged(
+ RECT rcNewSize) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53)
+#endif
+#else
+typedef struct IWTSBitmapRendererCallbackVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSBitmapRendererCallback *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSBitmapRendererCallback *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSBitmapRendererCallback *This);
+
+ /*** IWTSBitmapRendererCallback methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnTargetSizeChanged)(
+ IWTSBitmapRendererCallback *This,
+ RECT rcNewSize);
+
+ END_INTERFACE
+} IWTSBitmapRendererCallbackVtbl;
+
+interface IWTSBitmapRendererCallback {
+ CONST_VTBL IWTSBitmapRendererCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRendererCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRendererCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRendererCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRendererCallback methods ***/
+#define IWTSBitmapRendererCallback_OnTargetSizeChanged(This,rcNewSize) (This)->lpVtbl->OnTargetSizeChanged(This,rcNewSize)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRendererCallback_QueryInterface(IWTSBitmapRendererCallback* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRendererCallback_AddRef(IWTSBitmapRendererCallback* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRendererCallback_Release(IWTSBitmapRendererCallback* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRendererCallback methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRendererCallback_OnTargetSizeChanged(IWTSBitmapRendererCallback* This,RECT rcNewSize) {
+ return This->lpVtbl->OnTargetSizeChanged(This,rcNewSize);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSBitmapRendererCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSBitmapRenderService interface
+ */
+#ifndef __IWTSBitmapRenderService_INTERFACE_DEFINED__
+#define __IWTSBitmapRenderService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea326091-05fe-40c1-b49c-3d2ef4626a0e")
+IWTSBitmapRenderService : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetMappedRenderer(
+ UINT64 mappingId,
+ IWTSBitmapRendererCallback *pMappedRendererCallback,
+ IWTSBitmapRenderer **ppMappedRenderer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e)
+#endif
+#else
+typedef struct IWTSBitmapRenderServiceVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWTSBitmapRenderService *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWTSBitmapRenderService *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWTSBitmapRenderService *This);
+
+ /*** IWTSBitmapRenderService methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetMappedRenderer)(
+ IWTSBitmapRenderService *This,
+ UINT64 mappingId,
+ IWTSBitmapRendererCallback *pMappedRendererCallback,
+ IWTSBitmapRenderer **ppMappedRenderer);
+
+ END_INTERFACE
+} IWTSBitmapRenderServiceVtbl;
+
+interface IWTSBitmapRenderService {
+ CONST_VTBL IWTSBitmapRenderServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRenderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRenderService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRenderService_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRenderService methods ***/
+#define IWTSBitmapRenderService_GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer) (This)->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderService_QueryInterface(IWTSBitmapRenderService* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderService_AddRef(IWTSBitmapRenderService* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderService_Release(IWTSBitmapRenderService* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRenderService methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderService_GetMappedRenderer(IWTSBitmapRenderService* This,UINT64 mappingId,IWTSBitmapRendererCallback *pMappedRendererCallback,IWTSBitmapRenderer **ppMappedRenderer) {
+ return This->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWTSBitmapRenderService_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __tsvirtualchannels_h__ */
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__
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__
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 */
lib/libc/include/any-windows-any/uiautomationcore.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/uiautomationcore.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/uiautomationcore.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -34,6 +34,22 @@ interface IAccessibleEx;
#endif /* __cplusplus */
#endif
+#ifndef __IRawElementProviderFragment_FWD_DEFINED__
+#define __IRawElementProviderFragment_FWD_DEFINED__
+typedef interface IRawElementProviderFragment IRawElementProviderFragment;
+#ifdef __cplusplus
+interface IRawElementProviderFragment;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__
+#define __IRawElementProviderFragmentRoot_FWD_DEFINED__
+typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot;
+#ifdef __cplusplus
+interface IRawElementProviderFragmentRoot;
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <oaidl.h>
@@ -43,19 +59,35 @@ interface IAccessibleEx;
extern "C" {
#endif
+enum NavigateDirection {
+ NavigateDirection_Parent = 0x0,
+ NavigateDirection_NextSibling = 0x1,
+ NavigateDirection_PreviousSibling = 0x2,
+ NavigateDirection_FirstChild = 0x3,
+ NavigateDirection_LastChild = 0x4
+};
enum ProviderOptions {
ProviderOptions_ClientSideProvider = 0x1,
ProviderOptions_ServerSideProvider = 0x2,
ProviderOptions_NonClientAreaProvider = 0x4,
ProviderOptions_OverrideProvider = 0x8,
ProviderOptions_ProviderOwnsSetFocus = 0x10,
- ProviderOptions_UseComThreading = 0x20
+ ProviderOptions_UseComThreading = 0x20,
+ ProviderOptions_RefuseNonClientSupport = 0x40,
+ ProviderOptions_HasNativeIAccessible = 0x80,
+ ProviderOptions_UseClientCoordinates = 0x100
};
typedef int PROPERTYID;
typedef int PATTERNID;
typedef int EVENTID;
typedef int TEXTATTRIBUTEID;
typedef int CONTROLTYPEID;
+struct UiaRect {
+ double left;
+ double top;
+ double width;
+ double height;
+};
#ifndef __UIA_LIBRARY_DEFINED__
#define __UIA_LIBRARY_DEFINED__
@@ -291,6 +323,239 @@ static FORCEINLINE HRESULT IAccessibleEx_ConvertReturnedElement(IAccessibleEx* T
#endif /* __IAccessibleEx_INTERFACE_DEFINED__ */
+#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__
+#define __IRawElementProviderFragmentRoot_FWD_DEFINED__
+typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot;
+#ifdef __cplusplus
+interface IRawElementProviderFragmentRoot;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IRawElementProviderFragment interface
+ */
+#ifndef __IRawElementProviderFragment_INTERFACE_DEFINED__
+#define __IRawElementProviderFragment_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f7063da8-8359-439c-9297-bbc5299a7d87")
+IRawElementProviderFragment : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Navigate(
+ enum NavigateDirection direction,
+ IRawElementProviderFragment **pRetVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetRuntimeId(
+ SAFEARRAY **pRetVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_BoundingRectangle(
+ struct UiaRect *pRetVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots(
+ SAFEARRAY **pRetVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFocus(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_FragmentRoot(
+ IRawElementProviderFragmentRoot **pRetVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87)
+#endif
+#else
+typedef struct IRawElementProviderFragmentVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IRawElementProviderFragment *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IRawElementProviderFragment *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IRawElementProviderFragment *This);
+
+ /*** IRawElementProviderFragment methods ***/
+ HRESULT (STDMETHODCALLTYPE *Navigate)(
+ IRawElementProviderFragment *This,
+ enum NavigateDirection direction,
+ IRawElementProviderFragment **pRetVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
+ IRawElementProviderFragment *This,
+ SAFEARRAY **pRetVal);
+
+ HRESULT (STDMETHODCALLTYPE *get_BoundingRectangle)(
+ IRawElementProviderFragment *This,
+ struct UiaRect *pRetVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetEmbeddedFragmentRoots)(
+ IRawElementProviderFragment *This,
+ SAFEARRAY **pRetVal);
+
+ HRESULT (STDMETHODCALLTYPE *SetFocus)(
+ IRawElementProviderFragment *This);
+
+ HRESULT (STDMETHODCALLTYPE *get_FragmentRoot)(
+ IRawElementProviderFragment *This,
+ IRawElementProviderFragmentRoot **pRetVal);
+
+ END_INTERFACE
+} IRawElementProviderFragmentVtbl;
+
+interface IRawElementProviderFragment {
+ CONST_VTBL IRawElementProviderFragmentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRawElementProviderFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRawElementProviderFragment_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRawElementProviderFragment_Release(This) (This)->lpVtbl->Release(This)
+/*** IRawElementProviderFragment methods ***/
+#define IRawElementProviderFragment_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal)
+#define IRawElementProviderFragment_GetRuntimeId(This,pRetVal) (This)->lpVtbl->GetRuntimeId(This,pRetVal)
+#define IRawElementProviderFragment_get_BoundingRectangle(This,pRetVal) (This)->lpVtbl->get_BoundingRectangle(This,pRetVal)
+#define IRawElementProviderFragment_GetEmbeddedFragmentRoots(This,pRetVal) (This)->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal)
+#define IRawElementProviderFragment_SetFocus(This) (This)->lpVtbl->SetFocus(This)
+#define IRawElementProviderFragment_get_FragmentRoot(This,pRetVal) (This)->lpVtbl->get_FragmentRoot(This,pRetVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRawElementProviderFragment_QueryInterface(IRawElementProviderFragment* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRawElementProviderFragment_AddRef(IRawElementProviderFragment* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRawElementProviderFragment_Release(IRawElementProviderFragment* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IRawElementProviderFragment methods ***/
+static FORCEINLINE HRESULT IRawElementProviderFragment_Navigate(IRawElementProviderFragment* This,enum NavigateDirection direction,IRawElementProviderFragment **pRetVal) {
+ return This->lpVtbl->Navigate(This,direction,pRetVal);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragment_GetRuntimeId(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) {
+ return This->lpVtbl->GetRuntimeId(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragment_get_BoundingRectangle(IRawElementProviderFragment* This,struct UiaRect *pRetVal) {
+ return This->lpVtbl->get_BoundingRectangle(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragment_GetEmbeddedFragmentRoots(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) {
+ return This->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragment_SetFocus(IRawElementProviderFragment* This) {
+ return This->lpVtbl->SetFocus(This);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragment_get_FragmentRoot(IRawElementProviderFragment* This,IRawElementProviderFragmentRoot **pRetVal) {
+ return This->lpVtbl->get_FragmentRoot(This,pRetVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IRawElementProviderFragment_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRawElementProviderFragmentRoot interface
+ */
+#ifndef __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
+#define __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("620ce2a5-ab8f-40a9-86cb-de3c75599b58")
+IRawElementProviderFragmentRoot : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE ElementProviderFromPoint(
+ double x,
+ double y,
+ IRawElementProviderFragment **pRetVal) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFocus(
+ IRawElementProviderFragment **pRetVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58)
+#endif
+#else
+typedef struct IRawElementProviderFragmentRootVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IRawElementProviderFragmentRoot *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IRawElementProviderFragmentRoot *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IRawElementProviderFragmentRoot *This);
+
+ /*** IRawElementProviderFragmentRoot methods ***/
+ HRESULT (STDMETHODCALLTYPE *ElementProviderFromPoint)(
+ IRawElementProviderFragmentRoot *This,
+ double x,
+ double y,
+ IRawElementProviderFragment **pRetVal);
+
+ HRESULT (STDMETHODCALLTYPE *GetFocus)(
+ IRawElementProviderFragmentRoot *This,
+ IRawElementProviderFragment **pRetVal);
+
+ END_INTERFACE
+} IRawElementProviderFragmentRootVtbl;
+
+interface IRawElementProviderFragmentRoot {
+ CONST_VTBL IRawElementProviderFragmentRootVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRawElementProviderFragmentRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRawElementProviderFragmentRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRawElementProviderFragmentRoot_Release(This) (This)->lpVtbl->Release(This)
+/*** IRawElementProviderFragmentRoot methods ***/
+#define IRawElementProviderFragmentRoot_ElementProviderFromPoint(This,x,y,pRetVal) (This)->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal)
+#define IRawElementProviderFragmentRoot_GetFocus(This,pRetVal) (This)->lpVtbl->GetFocus(This,pRetVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_QueryInterface(IRawElementProviderFragmentRoot* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRawElementProviderFragmentRoot_AddRef(IRawElementProviderFragmentRoot* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRawElementProviderFragmentRoot_Release(IRawElementProviderFragmentRoot* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IRawElementProviderFragmentRoot methods ***/
+static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_ElementProviderFromPoint(IRawElementProviderFragmentRoot* This,double x,double y,IRawElementProviderFragment **pRetVal) {
+ return This->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal);
+}
+static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_GetFocus(IRawElementProviderFragmentRoot* This,IRawElementProviderFragment **pRetVal) {
+ return This->lpVtbl->GetFocus(This,pRetVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ */
+
#endif /* __UIA_LIBRARY_DEFINED__ */
/* Begin additional prototypes for all interfaces */
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);
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/vdslun.h
@@ -1,32 +1,126 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_VDSLUN
-#define _INC_VDSLUN
+/*** Autogenerated by WIDL 7.0 from include/vdslun.idl - Do not edit ***/
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __vdslun_h__
+#define __vdslun_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET {
+ VDSStorageIdCodeSetReserved = 0,
+ VDSStorageIdCodeSetBinary = 1,
+ VDSStorageIdCodeSetAscii = 2,
+ VDSStorageIdCodeSetUtf8 = 3
+} VDS_STORAGE_IDENTIFIER_CODE_SET;
+typedef enum _VDS_STORAGE_IDENTIFIER_TYPE {
+ VDSStorageIdTypeVendorSpecific = 0,
+ VDSStorageIdTypeVendorId = 1,
+ VDSStorageIdTypeEUI64 = 2,
+ VDSStorageIdTypeFCPHName = 3,
+ VDSStorageIdTypePortRelative = 4,
+ VDSStorageIdTypeTargetPortGroup = 5,
+ VDSStorageIdTypeLogicalUnitGroup = 6,
+ VDSStorageIdTypeMD5LogicalUnitIdentifier = 7,
+ VDSStorageIdTypeScsiNameString = 8
+} VDS_STORAGE_IDENTIFIER_TYPE;
+typedef enum _VDS_STORAGE_BUS_TYPE {
+ VDSBusTypeUnknown = 0x0,
+ VDSBusTypeScsi = 0x1,
+ VDSBusTypeAtapi = 0x2,
+ VDSBusTypeAta = 0x3,
+ VDSBusType1394 = 0x4,
+ VDSBusTypeSsa = 0x5,
+ VDSBusTypeFibre = 0x6,
+ VDSBusTypeUsb = 0x7,
+ VDSBusTypeRAID = 0x8,
+ VDSBusTypeiScsi = 0x9,
+ VDSBusTypeSas = 0xa,
+ VDSBusTypeSata = 0xb,
+ VDSBusTypeSd = 0xc,
+ VDSBusTypeMmc = 0xd,
+ VDSBusTypeMax = 0xe,
+ VDSBusTypeVirtual = 0xe,
+ VDSBusTypeFileBackedVirtual = 0xf,
+ VDSBusTypeSpaces = 0x10,
+ VDSBusTypeNVMe = 0x11,
+ VDSBusTypeScm = 0x12,
+ VDSBusTypeUfs = 0x13,
+ VDSBusTypeMaxReserved = 0x7f
+} VDS_STORAGE_BUS_TYPE;
+typedef struct _VDS_STORAGE_IDENTIFIER {
+ VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet;
+ VDS_STORAGE_IDENTIFIER_TYPE m_Type;
+ ULONG m_cbIdentifier;
+ BYTE *m_rgbIdentifier;
+} VDS_STORAGE_IDENTIFIER;
+typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR {
+ ULONG m_version;
+ ULONG m_cIdentifiers;
+ VDS_STORAGE_IDENTIFIER *m_rgIdentifiers;
+} VDS_STORAGE_DEVICE_ID_DESCRIPTOR;
+typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE {
+ VDS_IA_UNKNOWN = 0,
+ VDS_IA_FCFS = 1,
+ VDS_IA_FCPH = 2,
+ VDS_IA_FCPH3 = 3,
+ VDS_IA_MAC = 4,
+ VDS_IA_SCSI = 5
+} VDS_INTERCONNECT_ADDRESS_TYPE;
typedef struct _VDS_INTERCONNECT {
- VDS_INTERCONNECT_ADDRESS_TYPE m_addressType;
- ULONG m_cbPort; BYTE* m_pbPort;
- ULONG m_cbAddress;
- BYTE *m_pbAddress;
+ VDS_INTERCONNECT_ADDRESS_TYPE m_addressType;
+ ULONG m_cbPort;
+ BYTE *m_pbPort;
+ ULONG m_cbAddress;
+ BYTE *m_pbAddress;
} VDS_INTERCONNECT;
-
typedef struct _VDS_LUN_INFORMATION {
- ULONG m_version;
- BYTE m_DeviceType;
- BYTE m_DeviceTypeModifier;
- WINBOOL m_bCommandQueueing;
- VDS_STORAGE_BUS_TYPE m_BusType;
- char* m_szVendorId;
- char* m_szProductId;
- char* m_szProductRevision;
- char* m_szSerialNumber;
- GUID m_diskSignature;
- VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor;
- ULONG m_cInterconnects;
- VDS_INTERCONNECT *m_rgInterconnects;
+ ULONG m_version;
+ BYTE m_DeviceType;
+ BYTE m_DeviceTypeModifier;
+ WINBOOL m_bCommandQueueing;
+ VDS_STORAGE_BUS_TYPE m_BusType;
+ char *m_szVendorId;
+ char *m_szProductId;
+ char *m_szProductRevision;
+ char *m_szSerialNumber;
+ GUID m_diskSignature;
+ VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor;
+ ULONG m_cInterconnects;
+ VDS_INTERCONNECT *m_rgInterconnects;
} VDS_LUN_INFORMATION;
+#define VER_VDS_LUN_INFORMATION (1)
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
-#endif /*_INC_VDSLUN*/
+#endif /* __vdslun_h__ */
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__
lib/libc/include/any-windows-any/vsadmin.h
@@ -1,45 +1,350 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_VSADMIN
-#define _INC_VSADMIN
+/*** Autogenerated by WIDL 7.0 from include/vsadmin.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+#ifndef __vsadmin_h__
+#define __vsadmin_h__
+
+/* Forward declarations */
+
+#ifndef __IVssAdmin_FWD_DEFINED__
+#define __IVssAdmin_FWD_DEFINED__
+typedef interface IVssAdmin IVssAdmin;
+#ifdef __cplusplus
+interface IVssAdmin;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssAdminEx_FWD_DEFINED__
+#define __IVssAdminEx_FWD_DEFINED__
+typedef interface IVssAdminEx IVssAdminEx;
+#ifdef __cplusplus
+interface IVssAdminEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __VSSCoordinator_FWD_DEFINED__
+#define __VSSCoordinator_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class VSSCoordinator VSSCoordinator;
+#else
+typedef struct VSSCoordinator VSSCoordinator;
+#endif /* defined __cplusplus */
+#endif /* defined __VSSCoordinator_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
#include <vss.h>
-#if (_WIN32_WINNT >= 0x600)
-#undef INTERFACE
-#define INTERFACE IVssAdmin
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssAdmin,IUnknown)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+/*****************************************************************************
+ * IVssAdmin interface
+ */
+#ifndef __IVssAdmin_INTERFACE_DEFINED__
+#define __IVssAdmin_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssAdmin, 0x77ed5996, 0x2f63, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("77ed5996-2f63-11d3-8a39-00c04f72d8e3")
+IVssAdmin : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE RegisterProvider(
+ VSS_ID pProviderId,
+ CLSID ClassId,
+ VSS_PWSZ pwszProviderName,
+ VSS_PROVIDER_TYPE eProviderType,
+ VSS_PWSZ pwszProviderVersion,
+ VSS_ID ProviderVersionId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnregisterProvider(
+ VSS_ID ProviderId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryProviders(
+ IVssEnumObject **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AbortAllSnapshotsInProgress(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssAdmin, 0x77ed5996, 0x2f63, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3)
+#endif
+#else
+typedef struct IVssAdminVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssAdmin *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssAdmin *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssAdmin *This);
- /* IVssAdmin methods */
- STDMETHOD_(HRESULT,RegisterProvider)(THIS_ VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) PURE;
- STDMETHOD_(HRESULT,UnregisterProvider)(THIS_ VSS_ID ProviderId) PURE;
- STDMETHOD_(HRESULT,QueryProviders)(THIS_ IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,AbortAllSnapshotsInProgress)(THIS) PURE;
+ /*** IVssAdmin methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterProvider)(
+ IVssAdmin *This,
+ VSS_ID pProviderId,
+ CLSID ClassId,
+ VSS_PWSZ pwszProviderName,
+ VSS_PROVIDER_TYPE eProviderType,
+ VSS_PWSZ pwszProviderVersion,
+ VSS_ID ProviderVersionId);
+
+ HRESULT (STDMETHODCALLTYPE *UnregisterProvider)(
+ IVssAdmin *This,
+ VSS_ID ProviderId);
+
+ HRESULT (STDMETHODCALLTYPE *QueryProviders)(
+ IVssAdmin *This,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *AbortAllSnapshotsInProgress)(
+ IVssAdmin *This);
END_INTERFACE
+} IVssAdminVtbl;
+
+interface IVssAdmin {
+ CONST_VTBL IVssAdminVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssAdmin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssAdmin_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssAdmin_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssAdmin methods ***/
#define IVssAdmin_RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) (This)->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId)
#define IVssAdmin_UnregisterProvider(This,ProviderId) (This)->lpVtbl->UnregisterProvider(This,ProviderId)
#define IVssAdmin_QueryProviders(This,ppEnum) (This)->lpVtbl->QueryProviders(This,ppEnum)
-#define IVssAdmin_AbortAllSnapshotsInProgress() (This)->lpVtbl->AbortAllSnapshotsInProgress(This)
-#endif /*COBJMACROS*/
-#endif /*(_WIN32_WINNT >= 0x600)*/
-#endif /*_INC_VSWRITER*/
+#define IVssAdmin_AbortAllSnapshotsInProgress(This) (This)->lpVtbl->AbortAllSnapshotsInProgress(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssAdmin_QueryInterface(IVssAdmin* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssAdmin_AddRef(IVssAdmin* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssAdmin_Release(IVssAdmin* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssAdmin methods ***/
+static FORCEINLINE HRESULT IVssAdmin_RegisterProvider(IVssAdmin* This,VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) {
+ return This->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId);
+}
+static FORCEINLINE HRESULT IVssAdmin_UnregisterProvider(IVssAdmin* This,VSS_ID ProviderId) {
+ return This->lpVtbl->UnregisterProvider(This,ProviderId);
+}
+static FORCEINLINE HRESULT IVssAdmin_QueryProviders(IVssAdmin* This,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->QueryProviders(This,ppEnum);
+}
+static FORCEINLINE HRESULT IVssAdmin_AbortAllSnapshotsInProgress(IVssAdmin* This) {
+ return This->lpVtbl->AbortAllSnapshotsInProgress(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssAdmin_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssAdminEx interface
+ */
+#ifndef __IVssAdminEx_INTERFACE_DEFINED__
+#define __IVssAdminEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssAdminEx, 0x7858a9f8, 0xb1fa, 0x41a6, 0x96,0x4f, 0xb9,0xb3,0x6b,0x8c,0xd8,0xd8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7858a9f8-b1fa-41a6-964f-b9b36b8cd8d8")
+IVssAdminEx : public IVssAdmin
+{
+ virtual HRESULT STDMETHODCALLTYPE GetProviderCapability(
+ VSS_ID pProviderId,
+ ULONGLONG *pllOriginalCapabilityMask) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProviderContext(
+ VSS_ID ProviderId,
+ LONG *plContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetProviderContext(
+ VSS_ID ProviderId,
+ LONG lContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssAdminEx, 0x7858a9f8, 0xb1fa, 0x41a6, 0x96,0x4f, 0xb9,0xb3,0x6b,0x8c,0xd8,0xd8)
+#endif
+#else
+typedef struct IVssAdminExVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssAdminEx *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssAdminEx *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssAdminEx *This);
+
+ /*** IVssAdmin methods ***/
+ HRESULT (STDMETHODCALLTYPE *RegisterProvider)(
+ IVssAdminEx *This,
+ VSS_ID pProviderId,
+ CLSID ClassId,
+ VSS_PWSZ pwszProviderName,
+ VSS_PROVIDER_TYPE eProviderType,
+ VSS_PWSZ pwszProviderVersion,
+ VSS_ID ProviderVersionId);
+
+ HRESULT (STDMETHODCALLTYPE *UnregisterProvider)(
+ IVssAdminEx *This,
+ VSS_ID ProviderId);
+
+ HRESULT (STDMETHODCALLTYPE *QueryProviders)(
+ IVssAdminEx *This,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *AbortAllSnapshotsInProgress)(
+ IVssAdminEx *This);
+
+ /*** IVssAdminEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetProviderCapability)(
+ IVssAdminEx *This,
+ VSS_ID pProviderId,
+ ULONGLONG *pllOriginalCapabilityMask);
+
+ HRESULT (STDMETHODCALLTYPE *GetProviderContext)(
+ IVssAdminEx *This,
+ VSS_ID ProviderId,
+ LONG *plContext);
+
+ HRESULT (STDMETHODCALLTYPE *SetProviderContext)(
+ IVssAdminEx *This,
+ VSS_ID ProviderId,
+ LONG lContext);
+
+ END_INTERFACE
+} IVssAdminExVtbl;
+
+interface IVssAdminEx {
+ CONST_VTBL IVssAdminExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssAdminEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssAdminEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssAdminEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssAdmin methods ***/
+#define IVssAdminEx_RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId) (This)->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId)
+#define IVssAdminEx_UnregisterProvider(This,ProviderId) (This)->lpVtbl->UnregisterProvider(This,ProviderId)
+#define IVssAdminEx_QueryProviders(This,ppEnum) (This)->lpVtbl->QueryProviders(This,ppEnum)
+#define IVssAdminEx_AbortAllSnapshotsInProgress(This) (This)->lpVtbl->AbortAllSnapshotsInProgress(This)
+/*** IVssAdminEx methods ***/
+#define IVssAdminEx_GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask)
+#define IVssAdminEx_GetProviderContext(This,ProviderId,plContext) (This)->lpVtbl->GetProviderContext(This,ProviderId,plContext)
+#define IVssAdminEx_SetProviderContext(This,ProviderId,lContext) (This)->lpVtbl->SetProviderContext(This,ProviderId,lContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssAdminEx_QueryInterface(IVssAdminEx* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssAdminEx_AddRef(IVssAdminEx* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssAdminEx_Release(IVssAdminEx* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssAdmin methods ***/
+static FORCEINLINE HRESULT IVssAdminEx_RegisterProvider(IVssAdminEx* This,VSS_ID pProviderId,CLSID ClassId,VSS_PWSZ pwszProviderName,VSS_PROVIDER_TYPE eProviderType,VSS_PWSZ pwszProviderVersion,VSS_ID ProviderVersionId) {
+ return This->lpVtbl->RegisterProvider(This,pProviderId,ClassId,pwszProviderName,eProviderType,pwszProviderVersion,ProviderVersionId);
+}
+static FORCEINLINE HRESULT IVssAdminEx_UnregisterProvider(IVssAdminEx* This,VSS_ID ProviderId) {
+ return This->lpVtbl->UnregisterProvider(This,ProviderId);
+}
+static FORCEINLINE HRESULT IVssAdminEx_QueryProviders(IVssAdminEx* This,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->QueryProviders(This,ppEnum);
+}
+static FORCEINLINE HRESULT IVssAdminEx_AbortAllSnapshotsInProgress(IVssAdminEx* This) {
+ return This->lpVtbl->AbortAllSnapshotsInProgress(This);
+}
+/*** IVssAdminEx methods ***/
+static FORCEINLINE HRESULT IVssAdminEx_GetProviderCapability(IVssAdminEx* This,VSS_ID pProviderId,ULONGLONG *pllOriginalCapabilityMask) {
+ return This->lpVtbl->GetProviderCapability(This,pProviderId,pllOriginalCapabilityMask);
+}
+static FORCEINLINE HRESULT IVssAdminEx_GetProviderContext(IVssAdminEx* This,VSS_ID ProviderId,LONG *plContext) {
+ return This->lpVtbl->GetProviderContext(This,ProviderId,plContext);
+}
+static FORCEINLINE HRESULT IVssAdminEx_SetProviderContext(IVssAdminEx* This,VSS_ID ProviderId,LONG lContext) {
+ return This->lpVtbl->SetProviderContext(This,ProviderId,lContext);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssAdminEx_INTERFACE_DEFINED__ */
+
+#ifndef __VSSAdmin_LIBRARY_DEFINED__
+#define __VSSAdmin_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_VSSAdmin, 0x9148a774, 0x0304, 0x4243, 0xb2,0x69, 0xa3,0x39,0xaa,0x96,0xd2,0x64);
+
+/*****************************************************************************
+ * VSSCoordinator coclass
+ */
+
+DEFINE_GUID(CLSID_VSSCoordinator, 0xe579ab5f, 0x1cc4, 0x44b4, 0xbe,0xd9, 0xde,0x09,0x91,0xff,0x06,0x23);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("e579ab5f-1cc4-44b4-bed9-de0991ff0623") VSSCoordinator;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(VSSCoordinator, 0xe579ab5f, 0x1cc4, 0x44b4, 0xbe,0xd9, 0xde,0x09,0x91,0xff,0x06,0x23)
+#endif
+#endif
+
+#endif /* __VSSAdmin_LIBRARY_DEFINED__ */
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __vsadmin_h__ */
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__ */
lib/libc/include/any-windows-any/vsbackup.h
@@ -1,756 +1,4442 @@
-/**
- * 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 ***/
-#include <vss.h>
-#include <vswriter.h>
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __vsbackup_h__
+#define __vsbackup_h__
+/* Forward declarations */
+
+#ifndef __IVssWMComponent_FWD_DEFINED__
+#define __IVssWMComponent_FWD_DEFINED__
+typedef interface IVssWMComponent IVssWMComponent;
#ifdef __cplusplus
-extern "C" {
+interface IVssWMComponent;
+#endif /* __cplusplus */
#endif
-typedef struct VSS_COMPONENTINFO {
- VSS_COMPONENT_TYPE type;
- BSTR bstrLogicalPath;
- BSTR bstrComponentName;
- BSTR bstrCaption;
- BYTE *pbIcon;
- UINT cbIcon;
- BOOLEAN bRestoreMetadata;
- BOOLEAN bNotifyOnBackupComplete;
- BOOLEAN bSelectable;
- BOOLEAN bSelectableForRestore;
- DWORD dwComponentFlags;
- UINT cFileCount;
- UINT cDatabases;
- UINT cLogFiles;
- UINT cDependencies;
-} VSS_COMPONENTINFO, *PVSSCOMPONENTINFO;
-
-HRESULT WINAPI CreateVssBackupComponentsInternal(
- IVssBackupComponents **ppBackup
-);
-
-FORCEINLINE
-HRESULT WINAPI CreateVssBackupComponents(
- IVssBackupComponents **ppBackup
-){return CreateVssBackupComponentsInternal(ppBackup);}
-
-HRESULT WINAPI CreateVssExamineWriterMetadataInternal(
- BSTR bstrXML,
- IVssExamineWriterMetadata **ppMetadata
-);
-
-FORCEINLINE
-HRESULT WINAPI CreateVssExamineWriterMetadata(
- BSTR bstrXML,
- IVssExamineWriterMetadata **ppMetadata
-){return CreateVssExamineWriterMetadataInternal(bstrXML,ppMetadata);}
-
-HRESULT WINAPI IsVolumeSnapshottedInternal(
- VSS_PWSZ pwszVolumeName,
- BOOLEAN *pbSnapshotsPresent,
- LONG *plSnapshotCapability
-);
-
-FORCEINLINE
-HRESULT WINAPI IsVolumeSnapshotted(
- VSS_PWSZ pwszVolumeName,
- BOOLEAN *pbSnapshotsPresent,
- LONG *plSnapshotCapability
-){return IsVolumeSnapshottedInternal(pwszVolumeName,pbSnapshotsPresent,plSnapshotCapability);}
-
-HRESULT WINAPI ShouldBlockRevertInternal(
- LPCWSTR wszVolumeName,
- BOOLEAN *pbBlock
-);
-
-FORCEINLINE
-HRESULT WINAPI ShouldBlockRevert(
- LPCWSTR wszVolumeName,
- BOOLEAN *pbBlock
-){return ShouldBlockRevertInternal(wszVolumeName,pbBlock);}
-
-void WINAPI VssFreeSnapshotPropertiesInternal(
- VSS_SNAPSHOT_PROP *pProp
-);
-
-FORCEINLINE
-void WINAPI VssFreeSnapshotProperties(
- VSS_SNAPSHOT_PROP *pProp
-){VssFreeSnapshotPropertiesInternal(pProp);}
-
-HRESULT WINAPI GetProviderMgmtInterfaceInternal(
- VSS_ID ProviderId,
- IID InterfaceId,
- IUnknown** ppItf
-);
-
-FORCEINLINE
-HRESULT WINAPI GetProviderMgmtInterface(
- VSS_ID ProviderId,
- IID InterfaceId,
- IUnknown** ppItf
-){return GetProviderMgmtInterfaceInternal(ProviderId,InterfaceId,ppItf);}
+#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
-#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)
+#ifndef __IVssExamineWriterMetadataEx2_FWD_DEFINED__
+#define __IVssExamineWriterMetadataEx2_FWD_DEFINED__
+typedef interface IVssExamineWriterMetadataEx2 IVssExamineWriterMetadataEx2;
+#ifdef __cplusplus
+interface IVssExamineWriterMetadataEx2;
+#endif /* __cplusplus */
#endif
-DECLARE_INTERFACE_(IVssBackupComponents,IUnknown)
-{
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssBackupComponents methods */
- STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE;
- STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE;
- STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE;
- STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE;
- STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE;
- STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE;
- STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE;
- STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE;
- STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE;
- STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE;
- STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE;
- STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE;
- STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE;
- STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE;
- STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE;
- STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
- STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE;
- STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE;
- STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
- STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
- STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE;
- STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE;
- STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE;
- STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE;
- STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
+#ifndef __IVssWriterComponentsExt_FWD_DEFINED__
+#define __IVssWriterComponentsExt_FWD_DEFINED__
+typedef interface IVssWriterComponentsExt IVssWriterComponentsExt;
+#ifdef __cplusplus
+interface IVssWriterComponentsExt;
+#endif /* __cplusplus */
+#endif
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#define IVssBackupComponents_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
-#define IVssBackupComponents_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents)
-#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_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_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_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_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_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)
-#define IVssBackupComponents_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
-#define IVssBackupComponents_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
-#define IVssBackupComponents_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
-#define IVssBackupComponents_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
-#define IVssBackupComponents_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
-#define IVssBackupComponents_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
-#define IVssBackupComponents_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
-#define IVssBackupComponents_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
-#define IVssBackupComponents_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
-#define IVssBackupComponents_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
-#define IVssBackupComponents_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
-#define IVssBackupComponents_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponents_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponents_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
-#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*/
+#ifndef __IVssBackupComponents_FWD_DEFINED__
+#define __IVssBackupComponents_FWD_DEFINED__
+typedef interface IVssBackupComponents IVssBackupComponents;
+#ifdef __cplusplus
+interface IVssBackupComponents;
+#endif /* __cplusplus */
+#endif
-#if (_WIN32_WINNT >= 0x0600)
-#undef INTERFACE
-#define INTERFACE IVssBackupComponentsEx
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+#ifndef __IVssBackupComponentsEx_FWD_DEFINED__
+#define __IVssBackupComponentsEx_FWD_DEFINED__
+typedef interface IVssBackupComponentsEx IVssBackupComponentsEx;
+#ifdef __cplusplus
+interface IVssBackupComponentsEx;
+#endif /* __cplusplus */
#endif
-DECLARE_INTERFACE_(IVssBackupComponentsEx,IVssBackupComponents)
-{
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssBackupComponents methods */
- STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE;
- STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE;
- STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE;
- STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE;
- STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE;
- STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE;
- STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE;
- STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE;
- STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE;
- STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE;
- STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE;
- STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE;
- STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE;
- STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE;
- STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE;
- STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
- STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE;
- STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE;
- STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
- STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
- STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE;
- STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE;
- STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE;
- STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE;
- STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
-
- /* IVssBackupComponentsEx methods */
- STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE;
+#ifndef __IVssBackupComponentsEx2_FWD_DEFINED__
+#define __IVssBackupComponentsEx2_FWD_DEFINED__
+typedef interface IVssBackupComponentsEx2 IVssBackupComponentsEx2;
+#ifdef __cplusplus
+interface IVssBackupComponentsEx2;
+#endif /* __cplusplus */
+#endif
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#define IVssBackupComponentsEx_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
-#define IVssBackupComponentsEx_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents)
-#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_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_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_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_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_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)
-#define IVssBackupComponentsEx_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
-#define IVssBackupComponentsEx_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
-#define IVssBackupComponentsEx_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
-#define IVssBackupComponentsEx_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
-#define IVssBackupComponentsEx_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
-#define IVssBackupComponentsEx_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
-#define IVssBackupComponentsEx_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
-#define IVssBackupComponentsEx_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
-#define IVssBackupComponentsEx_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
-#define IVssBackupComponentsEx_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
-#define IVssBackupComponentsEx_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
-#define IVssBackupComponentsEx_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponentsEx_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponentsEx_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
-#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)
-#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*/
+#ifndef __IVssBackupComponentsEx3_FWD_DEFINED__
+#define __IVssBackupComponentsEx3_FWD_DEFINED__
+typedef interface IVssBackupComponentsEx3 IVssBackupComponentsEx3;
+#ifdef __cplusplus
+interface IVssBackupComponentsEx3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssBackupComponentsEx4_FWD_DEFINED__
+#define __IVssBackupComponentsEx4_FWD_DEFINED__
+typedef interface IVssBackupComponentsEx4 IVssBackupComponentsEx4;
+#ifdef __cplusplus
+interface IVssBackupComponentsEx4;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <vss.h>
+#include <vswriter.h>
-#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)
+#ifdef __cplusplus
+extern "C" {
#endif
-DECLARE_INTERFACE_(IVssBackupComponentsEx2,IVssBackupComponentsEx)
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+typedef struct _VSS_COMPONENTINFO {
+ VSS_COMPONENT_TYPE type;
+ BSTR bstrLogicalPath;
+ BSTR bstrComponentName;
+ BSTR bstrCaption;
+ BYTE *pbIcon;
+ UINT cbIcon;
+ boolean bRestoreMetadata;
+ boolean bNotifyOnBackupComplete;
+ boolean bSelectable;
+ boolean bSelectableForRestore;
+ DWORD dwComponentFlags;
+ UINT cFileCount;
+ UINT cDatabases;
+ UINT cLogFiles;
+ UINT cDependencies;
+} VSS_COMPONENTINFO;
+typedef const VSS_COMPONENTINFO *PVSSCOMPONENTINFO;
+/*****************************************************************************
+ * IVssWMComponent interface
+ */
+#ifndef __IVssWMComponent_INTERFACE_DEFINED__
+#define __IVssWMComponent_INTERFACE_DEFINED__
+
+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
{
- BEGIN_INTERFACE
+ virtual HRESULT STDMETHODCALLTYPE GetComponentInfo(
+ PVSSCOMPONENTINFO *ppInfo) = 0;
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssBackupComponents methods */
- STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE;
- STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE;
- STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE;
- STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE;
- STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE;
- STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE;
- STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE;
- STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE;
- STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE;
- STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE;
- STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE;
- STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE;
- STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE;
- STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE;
- STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE;
- STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
- STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE;
- STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE;
- STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
- STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
- STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE;
- STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE;
- STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE;
- STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE;
- STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
-
- /* IVssBackupComponentsEx methods */
- STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE;
-
- /* IVssBackupComponentsEx2 methods */
- STDMETHOD_(HRESULT,UnexposeSnapshot)(THIS_ VSS_ID snapshotId) PURE;
- STDMETHOD_(HRESULT,SetAuthoritativeRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAuth) PURE;
- STDMETHOD_(HRESULT,SetRollForward)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) PURE;
- STDMETHOD_(HRESULT,SetRestoreName)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSetEx)(THIS_ VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PreFastRecovery)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,FastRecovery)(THIS) PURE; /*Unsupported*/
+ 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;
- END_INTERFACE
};
-#ifdef COBJMACROS
-#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)
-#define IVssBackupComponentsEx2_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
-#define IVssBackupComponentsEx2_GetWriterComponents(This,iWriter,pWriterComponents) (This)->lpVtbl->GetWriterComponents(This,iWriter,pWriterComponents)
-#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_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_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_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_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_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)
-#define IVssBackupComponentsEx2_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
-#define IVssBackupComponentsEx2_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
-#define IVssBackupComponentsEx2_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
-#define IVssBackupComponentsEx2_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
-#define IVssBackupComponentsEx2_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
-#define IVssBackupComponentsEx2_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
-#define IVssBackupComponentsEx2_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
-#define IVssBackupComponentsEx2_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
-#define IVssBackupComponentsEx2_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
-#define IVssBackupComponentsEx2_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
-#define IVssBackupComponentsEx2_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
-#define IVssBackupComponentsEx2_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponentsEx2_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
-#define IVssBackupComponentsEx2_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
-#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)
-#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)
-#define IVssBackupComponentsEx2_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
-#define IVssBackupComponentsEx2_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
-#define IVssBackupComponentsEx2_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
-#define IVssBackupComponentsEx2_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
-#define IVssBackupComponentsEx2_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
-#define IVssBackupComponentsEx2_PreFastRecovery() (This)->lpVtbl->PreFastRecovery(This)
-#define IVssBackupComponentsEx2_FastRecovery() (This)->lpVtbl->FastRecovery(This)
-#endif /*COBJMACROS*/
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-
-#if (_WIN32_WINNT >= 0x0601)
-#undef INTERFACE
-#define INTERFACE IVssBackupComponentsEx3
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssBackupComponentsEx3,IVssBackupComponentsEx2)
-{
+#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;
-
- /* IVssBackupComponents methods */
- STDMETHOD_(HRESULT,GetWriterComponentsCount)(THIS_ UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetWriterComponents)(THIS_ UINT iWriter,IVssWriterComponentsExt **pWriterComponents) PURE;
- STDMETHOD_(HRESULT,InitializeForBackup)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupState)(THIS_ BOOLEAN bSelectComponents,BOOLEAN bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,BOOLEAN bPartialFileSupport) PURE;
- STDMETHOD_(HRESULT,InitializeForRestore)(THIS_ BSTR bstrXML) PURE;
- STDMETHOD_(HRESULT,SetRestoreState)(THIS_ VSS_RESTORE_TYPE restoreType) PURE;
- STDMETHOD_(HRESULT,GatherWriterMetadata)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadataCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,GetWriterMetadata)(THIS_ UINT iWriter,VSS_ID *pidWriterInstance,IVssExamineWriterMetadata **ppMetadata) PURE;
- STDMETHOD_(HRESULT,FreeWriterMetadata)(THIS) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) PURE;
- STDMETHOD_(HRESULT,PrepareForBackup)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AbortBackup)(THIS) PURE;
- STDMETHOD_(HRESULT,GatherWriterStatus)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,GetWriterStatusCount)(THIS_ UINT *pcWriters) PURE;
- STDMETHOD_(HRESULT,FreeWriterStatus)(THIS) PURE;
- STDMETHOD_(HRESULT,GetWriterStatus)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pState,HRESULT *pHrResultFailure) PURE;
- STDMETHOD_(HRESULT,SetBackupSucceeded)(THIS_ VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSucceeded) PURE;
- STDMETHOD_(HRESULT,SetBackupOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,SetRestoreOptions)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) PURE;
- STDMETHOD_(HRESULT,SetAdditionalRestores)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAdditionalResources) PURE;
- STDMETHOD_(HRESULT,SetPreviousBackupStamp)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,BackupComplete)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,AddAlternativeLocationMapping)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddRestoreSubcomponent)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,BOOLEAN bRepair) PURE;
- STDMETHOD_(HRESULT,SetFileRestoreStatus)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) PURE;
- STDMETHOD_(HRESULT,AddNewTarget)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,BOOLEAN bRecursive,LPCWSTR wszAlternatePath) PURE;
- STDMETHOD_(HRESULT,SetRangesFilePath)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) PURE;
- STDMETHOD_(HRESULT,PreRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PostRestore)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
- STDMETHOD_(HRESULT,StartSnapshotSet)(THIS_ VSS_ID *pSnapshotSetId) PURE;
- STDMETHOD_(HRESULT,AddToSnapshotSet)(THIS_ VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) PURE;
- STDMETHOD_(HRESULT,DoSnapshotSet)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,BOOLEAN bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
- STDMETHOD_(HRESULT,ImportSnapshots)(THIS_ IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSet)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
- STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,BOOLEAN *pbSupportedByThisProvider) PURE;
- STDMETHOD_(HRESULT,DisableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,EnableWriterClasses)(THIS_ const VSS_ID *rgWriterClassId,UINT cClassId) PURE;
- STDMETHOD_(HRESULT,DisableWriterInstances)(THIS_ const VSS_ID *rgWriterInstanceId,UINT cInstanceId) PURE;
- STDMETHOD_(HRESULT,ExposeSnapshot)(THIS_ VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) PURE;
- STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId,BOOLEAN bForceDismount) PURE;
- STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
-
- /* IVssBackupComponentsEx methods */
- STDMETHOD_(HRESULT,GetWriterMetadataEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) PURE;
- STDMETHOD_(HRESULT,SetSelectedForRestoreEx)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bSelectedForRestore,VSS_ID instanceId) PURE;
-
- /* IVssBackupComponentsEx2 methods */
- STDMETHOD_(HRESULT,UnexposeSnapshot)(THIS_ VSS_ID snapshotId) PURE;
- STDMETHOD_(HRESULT,SetAuthoritativeRestore)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,BOOLEAN bAuth) PURE;
- STDMETHOD_(HRESULT,SetRollForward)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) PURE;
- STDMETHOD_(HRESULT,SetRestoreName)(THIS_ VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) PURE;
- STDMETHOD_(HRESULT,BreakSnapshotSetEx)(THIS_ VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) PURE;
- STDMETHOD_(HRESULT,PreFastRecovery)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,FastRecovery)(THIS) PURE; /*Unsupported*/
-
- /* IVssBackupComponentsEx3 methods */
- STDMETHOD_(HRESULT,AddSnapshotToRecoverySet)(THIS_ VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) PURE;
- STDMETHOD_(HRESULT,GetSessionId)(THIS_ VSS_ID *idSession) PURE;
- STDMETHOD_(HRESULT,GetWriterStatusEx)(THIS_ UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,BSTR *pbstrApplicationMessage) PURE;
- STDMETHOD_(HRESULT,RecoverSet)(THIS_ DWORD dwFlags,IVssAsync **ppAsync) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssWMComponent *This,
+ REFIID riid,
+ void **ppvObject);
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#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)
-#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)*/
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssWMComponent *This);
-#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
+ 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);
- /* 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;
+ 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;
};
-#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)
+#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
-DECLARE_INTERFACE_(IVssExamineWriterMetadataEx,IVssExamineWriterMetadata)
+
+
+#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
{
- BEGIN_INTERFACE
+ virtual HRESULT STDMETHODCALLTYPE GetIdentity(
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriterName,
+ VSS_USAGE_TYPE *pUsage,
+ VSS_SOURCE_TYPE *pSource) = 0;
- /* 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;
+ virtual HRESULT STDMETHODCALLTYPE GetFileCounts(
+ UINT *pcIncludeFiles,
+ UINT *pcExcludeFiles,
+ UINT *pcComponents) = 0;
- END_INTERFACE
-};
+ virtual HRESULT STDMETHODCALLTYPE GetIncludeFile(
+ UINT iFile,
+ IVssWMFiledesc **ppFiledesc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetExcludeFile(
+ UINT iFile,
+ IVssWMFiledesc **ppFiledesc) = 0;
-#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)
+ 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
-DECLARE_INTERFACE_(IVssExamineWriterMetadataEx2,IVssExamineWriterMetadataEx)
-{
+#else
+typedef struct IVssExamineWriterMetadataVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
-/* IVssExamineWriterMetadata methods */
- STDMETHOD_(HRESULT,GetIdentity)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE;
- STDMETHOD_(HRESULT,GetFileCounts)(THIS_ UINT *pcIncludeFiles,UINT *pcExcludeFiles,UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetIncludeFile)(THIS) PURE;
- STDMETHOD_(HRESULT,GetExcludeFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE;
- STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssWMComponent **ppComponent) PURE;
- STDMETHOD_(HRESULT,GetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM *pMethod,BSTR *pbstrService,BSTR *pbstrUserProcedure,VSS_WRITERRESTORE_ENUM *pwreWriterRestore,BOOLEAN *pbRebootRequired,UINT *piMappings) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,IVssWMFiledesc **ppMapping) PURE;
- STDMETHOD_(HRESULT,GetBackupSchema)(THIS_ DWORD *pdsSchemaMask) PURE;
- STDMETHOD_(HRESULT,GetDocument)(THIS) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,LoadFromXML)(THIS_ BSTR bstrXML) PURE;
-
- /* IVssExamineWriterMetadataEx methods */
- STDMETHOD_(HRESULT,GetIdentityEx)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriterName,BSTR *pbstrInstanceName,VSS_USAGE_TYPE *pUsage,VSS_SOURCE_TYPE *pSource) PURE;
-
- /* IVssExamineWriterMetadataEx2 methods */
- STDMETHOD_(HRESULT,GetVersion)(THIS_ DWORD *pdwMajorVersion,DWORD *pdwMinorVersion) PURE;
- STDMETHOD_(HRESULT,GetExcludeFromSnapshotCount)(THIS_ UINT *pcExcludedFromSnapshot) PURE;
- STDMETHOD_(HRESULT,GetExcludeFromSnapshotFile)(THIS_ UINT iFile,IVssWMFiledesc **ppFiledesc) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ 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;
};
-#endif /*(_WIN32_WINNT >= 0x0600)*/
+#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
-#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;
+#endif /* __IVssExamineWriterMetadata_INTERFACE_DEFINED__ */
- END_INTERFACE
-};
+/*****************************************************************************
+ * IVssExamineWriterMetadataEx interface
+ */
+#ifndef __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__
+#define __IVssExamineWriterMetadataEx_INTERFACE_DEFINED__
-#undef INTERFACE
-#define INTERFACE IVssWriterComponentsExt
-DECLARE_INTERFACE_(IVssWriterComponentsExt,IUnknown)
+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 */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssExamineWriterMetadataEx *This,
+ REFIID riid,
+ void **ppvObject);
- /* IVssWriterComponentsExt methods */
- /* No additional members */
+ 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,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,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
+#define IVssBackupComponents_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
+#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) (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) (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,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)
+#define IVssBackupComponents_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
+#define IVssBackupComponents_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssBackupComponents_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
+#define IVssBackupComponents_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
+#define IVssBackupComponents_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
+#define IVssBackupComponents_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssBackupComponents_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
+#define IVssBackupComponents_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
+#define IVssBackupComponents_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssBackupComponents_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssBackupComponents_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssBackupComponents_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponents_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponents_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
+#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)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssBackupComponents_QueryInterface(IVssBackupComponents* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssBackupComponents_AddRef(IVssBackupComponents* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssBackupComponents_Release(IVssBackupComponents* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssBackupComponents methods ***/
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponentsCount(IVssBackupComponents* This,UINT *pcComponents) {
+ return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterComponents(IVssBackupComponents* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
+ return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_InitializeForBackup(IVssBackupComponents* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForBackup(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetBackupState(IVssBackupComponents* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
+ return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_InitializeForRestore(IVssBackupComponents* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForRestore(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreState(IVssBackupComponents* This,VSS_RESTORE_TYPE restoreType) {
+ return This->lpVtbl->SetRestoreState(This,restoreType);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterMetadata(IVssBackupComponents* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterMetadata(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadataCount(IVssBackupComponents* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterMetadata(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterMetadata(IVssBackupComponents* This) {
+ return This->lpVtbl->FreeWriterMetadata(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AddComponent(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
+ return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_PrepareForBackup(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PrepareForBackup(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AbortBackup(IVssBackupComponents* This) {
+ return This->lpVtbl->AbortBackup(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GatherWriterStatus(IVssBackupComponents* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterStatus(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatusCount(IVssBackupComponents* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_FreeWriterStatus(IVssBackupComponents* This) {
+ return This->lpVtbl->FreeWriterStatus(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetWriterStatus(IVssBackupComponents* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
+ return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetBackupSucceeded(IVssBackupComponents* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
+ return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetBackupOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
+ return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetSelectedForRestore(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
+ return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetRestoreOptions(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
+ return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetAdditionalRestores(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
+ return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetPreviousBackupStamp(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
+ return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SaveAsXML(IVssBackupComponents* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_BackupComplete(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->BackupComplete(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AddAlternativeLocationMapping(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AddRestoreSubcomponent(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
+ return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetFileRestoreStatus(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
+ return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AddNewTarget(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
+ return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetRangesFilePath(IVssBackupComponents* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
+ return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_PreRestore(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_PostRestore(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PostRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_SetContext(IVssBackupComponents* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_StartSnapshotSet(IVssBackupComponents* This,VSS_ID *pSnapshotSetId) {
+ return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_AddToSnapshotSet(IVssBackupComponents* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
+ return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_DoSnapshotSet(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->DoSnapshotSet(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_DeleteSnapshots(IVssBackupComponents* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_ImportSnapshots(IVssBackupComponents* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->ImportSnapshots(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_BreakSnapshotSet(IVssBackupComponents* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_GetSnapshotProperties(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_Query(IVssBackupComponents* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_IsVolumeSupported(IVssBackupComponents* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_EnableWriterClasses(IVssBackupComponents* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_DisableWriterInstances(IVssBackupComponents* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
+ return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_ExposeSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
+ return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_RevertToSnapshot(IVssBackupComponents* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
+ return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
+}
+static FORCEINLINE HRESULT IVssBackupComponents_QueryRevertStatus(IVssBackupComponents* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
+}
+#endif
+#endif
+
+#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 ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssBackupComponentsEx *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssBackupComponentsEx *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssBackupComponentsEx *This);
+
+ /*** IVssBackupComponents methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
+ IVssBackupComponentsEx *This,
+ UINT *pcComponents);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
+ IVssBackupComponentsEx *This,
+ UINT iWriter,
+ IVssWriterComponentsExt **ppWriter);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
+ IVssBackupComponentsEx *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupState)(
+ IVssBackupComponentsEx *This,
+ boolean bSelectComponents,
+ boolean bBackupBootableSystemState,
+ VSS_BACKUP_TYPE backupType,
+ boolean bPartialFileSupport);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
+ IVssBackupComponentsEx *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
+ IVssBackupComponentsEx *This,
+ VSS_RESTORE_TYPE restoreType);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
+ IVssBackupComponentsEx *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
+ IVssBackupComponentsEx *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadata **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
+ IVssBackupComponentsEx *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssBackupComponentsEx *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName);
+
+ HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AbortBackup)(
+ IVssBackupComponentsEx *This);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
+ IVssBackupComponentsEx *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
+ IVssBackupComponentsEx *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
+ IVssBackupComponentsEx *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriter,
+ VSS_WRITER_STATE *pnStatus,
+ HRESULT *phResultFailure);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
+ IVssBackupComponentsEx *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSucceded);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszBackupOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszRestoreOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bAdditionalRestores);
+
+ HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPreviousBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
+ IVssBackupComponentsEx *This,
+ BSTR *pbstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *BackupComplete)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszDestination);
+
+ HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszSubComponentLogicalPath,
+ LPCWSTR wszSubComponentName,
+ boolean bRepair);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ VSS_FILE_RESTORE_STATUS status);
+
+ HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFileName,
+ boolean bRecursive,
+ LPCWSTR wszAlternatePath);
+
+ HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ UINT iPartialFile,
+ LPCWSTR wszRangesFile);
+
+ HRESULT (STDMETHODCALLTYPE *PreRestore)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *PostRestore)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *SetContext)(
+ IVssBackupComponentsEx *This,
+ LONG lContext);
+
+ HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
+ IVssBackupComponentsEx *This,
+ VSS_ID *pSnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
+ IVssBackupComponentsEx *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_ID ProviderId,
+ VSS_ID *pidSnapshot);
+
+ HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
+ IVssBackupComponentsEx *This,
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID);
+
+ HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
+ IVssBackupComponentsEx *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
+ IVssBackupComponentsEx *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
+ IVssBackupComponentsEx *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp);
+
+ HRESULT (STDMETHODCALLTYPE *Query)(
+ IVssBackupComponentsEx *This,
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
+ IVssBackupComponentsEx *This,
+ VSS_ID ProviderId,
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSupportedByThisProvider);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
+ IVssBackupComponentsEx *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
+ IVssBackupComponentsEx *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
+ IVssBackupComponentsEx *This,
+ const VSS_ID *rgWriterInstanceId,
+ UINT cInstanceId);
+
+ HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
+ IVssBackupComponentsEx *This,
+ VSS_ID SnapshotId,
+ VSS_PWSZ wszPathFromRoot,
+ LONG lAttributes,
+ VSS_PWSZ wszExpose,
+ VSS_PWSZ *pwszExposed);
+
+ HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
+ IVssBackupComponentsEx *This,
+ VSS_ID SnapshotId,
+ WINBOOL bForceDismount);
+
+ HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
+ IVssBackupComponentsEx *This,
+ VSS_PWSZ pwszVolume,
+ IVssAsync **ppAsync);
+
+ /*** IVssBackupComponentsEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
+ IVssBackupComponentsEx *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadataEx **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
+ IVssBackupComponentsEx *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore,
+ VSS_ID instanceId);
+
+ END_INTERFACE
+} IVssBackupComponentsExVtbl;
+
+interface IVssBackupComponentsEx {
+ CONST_VTBL IVssBackupComponentsExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssBackupComponentsEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssBackupComponentsEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssBackupComponentsEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssBackupComponents methods ***/
+#define IVssBackupComponentsEx_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
+#define IVssBackupComponentsEx_GetWriterComponents(This,iWriter,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,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
+#define IVssBackupComponentsEx_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
+#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) (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) (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,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)
+#define IVssBackupComponentsEx_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
+#define IVssBackupComponentsEx_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssBackupComponentsEx_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
+#define IVssBackupComponentsEx_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
+#define IVssBackupComponentsEx_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
+#define IVssBackupComponentsEx_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssBackupComponentsEx_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
+#define IVssBackupComponentsEx_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
+#define IVssBackupComponentsEx_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssBackupComponentsEx_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssBackupComponentsEx_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssBackupComponentsEx_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
+#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)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryInterface(IVssBackupComponentsEx* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx_AddRef(IVssBackupComponentsEx* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx_Release(IVssBackupComponentsEx* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssBackupComponents methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponentsCount(IVssBackupComponentsEx* This,UINT *pcComponents) {
+ return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterComponents(IVssBackupComponentsEx* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
+ return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForBackup(IVssBackupComponentsEx* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForBackup(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupState(IVssBackupComponentsEx* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
+ return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_InitializeForRestore(IVssBackupComponentsEx* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForRestore(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreState(IVssBackupComponentsEx* This,VSS_RESTORE_TYPE restoreType) {
+ return This->lpVtbl->SetRestoreState(This,restoreType);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterMetadata(IVssBackupComponentsEx* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterMetadata(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataCount(IVssBackupComponentsEx* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadata(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterMetadata(IVssBackupComponentsEx* This) {
+ return This->lpVtbl->FreeWriterMetadata(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AddComponent(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
+ return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_PrepareForBackup(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PrepareForBackup(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AbortBackup(IVssBackupComponentsEx* This) {
+ return This->lpVtbl->AbortBackup(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GatherWriterStatus(IVssBackupComponentsEx* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterStatus(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatusCount(IVssBackupComponentsEx* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_FreeWriterStatus(IVssBackupComponentsEx* This) {
+ return This->lpVtbl->FreeWriterStatus(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterStatus(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
+ return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupSucceeded(IVssBackupComponentsEx* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
+ return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetBackupOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
+ return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestore(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
+ return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRestoreOptions(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
+ return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetAdditionalRestores(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
+ return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetPreviousBackupStamp(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
+ return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SaveAsXML(IVssBackupComponentsEx* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_BackupComplete(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->BackupComplete(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AddAlternativeLocationMapping(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AddRestoreSubcomponent(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
+ return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetFileRestoreStatus(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
+ return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AddNewTarget(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
+ return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetRangesFilePath(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
+ return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_PreRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_PostRestore(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PostRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetContext(IVssBackupComponentsEx* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_StartSnapshotSet(IVssBackupComponentsEx* This,VSS_ID *pSnapshotSetId) {
+ return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_AddToSnapshotSet(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
+ return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_DoSnapshotSet(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->DoSnapshotSet(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_DeleteSnapshots(IVssBackupComponentsEx* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_ImportSnapshots(IVssBackupComponentsEx* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->ImportSnapshots(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_BreakSnapshotSet(IVssBackupComponentsEx* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetSnapshotProperties(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_Query(IVssBackupComponentsEx* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_IsVolumeSupported(IVssBackupComponentsEx* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_EnableWriterClasses(IVssBackupComponentsEx* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_DisableWriterInstances(IVssBackupComponentsEx* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
+ return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_ExposeSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
+ return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_RevertToSnapshot(IVssBackupComponentsEx* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
+ return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_QueryRevertStatus(IVssBackupComponentsEx* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
+}
+/*** IVssBackupComponentsEx methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx_GetWriterMetadataEx(IVssBackupComponentsEx* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx_SetSelectedForRestoreEx(IVssBackupComponentsEx* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
+ return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
+}
+#endif
+#endif
+
+#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 ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssBackupComponentsEx2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssBackupComponentsEx2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssBackupComponentsEx2 *This);
+
+ /*** IVssBackupComponents methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
+ IVssBackupComponentsEx2 *This,
+ UINT *pcComponents);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
+ IVssBackupComponentsEx2 *This,
+ UINT iWriter,
+ IVssWriterComponentsExt **ppWriter);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
+ IVssBackupComponentsEx2 *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupState)(
+ IVssBackupComponentsEx2 *This,
+ boolean bSelectComponents,
+ boolean bBackupBootableSystemState,
+ VSS_BACKUP_TYPE backupType,
+ boolean bPartialFileSupport);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
+ IVssBackupComponentsEx2 *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
+ IVssBackupComponentsEx2 *This,
+ VSS_RESTORE_TYPE restoreType);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
+ IVssBackupComponentsEx2 *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
+ IVssBackupComponentsEx2 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadata **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
+ IVssBackupComponentsEx2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName);
+
+ HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AbortBackup)(
+ IVssBackupComponentsEx2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
+ IVssBackupComponentsEx2 *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
+ IVssBackupComponentsEx2 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
+ IVssBackupComponentsEx2 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriter,
+ VSS_WRITER_STATE *pnStatus,
+ HRESULT *phResultFailure);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSucceded);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszBackupOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszRestoreOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bAdditionalRestores);
+
+ HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPreviousBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
+ IVssBackupComponentsEx2 *This,
+ BSTR *pbstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *BackupComplete)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszDestination);
+
+ HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszSubComponentLogicalPath,
+ LPCWSTR wszSubComponentName,
+ boolean bRepair);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ VSS_FILE_RESTORE_STATUS status);
+
+ HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFileName,
+ boolean bRecursive,
+ LPCWSTR wszAlternatePath);
+
+ HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ UINT iPartialFile,
+ LPCWSTR wszRangesFile);
+
+ HRESULT (STDMETHODCALLTYPE *PreRestore)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *PostRestore)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *SetContext)(
+ IVssBackupComponentsEx2 *This,
+ LONG lContext);
+
+ HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID *pSnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
+ IVssBackupComponentsEx2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_ID ProviderId,
+ VSS_ID *pidSnapshot);
+
+ HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID);
+
+ HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
+ IVssBackupComponentsEx2 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp);
+
+ HRESULT (STDMETHODCALLTYPE *Query)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID ProviderId,
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSupportedByThisProvider);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
+ IVssBackupComponentsEx2 *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
+ IVssBackupComponentsEx2 *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
+ IVssBackupComponentsEx2 *This,
+ const VSS_ID *rgWriterInstanceId,
+ UINT cInstanceId);
+
+ HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotId,
+ VSS_PWSZ wszPathFromRoot,
+ LONG lAttributes,
+ VSS_PWSZ wszExpose,
+ VSS_PWSZ *pwszExposed);
+
+ HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotId,
+ WINBOOL bForceDismount);
+
+ HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
+ IVssBackupComponentsEx2 *This,
+ VSS_PWSZ pwszVolume,
+ IVssAsync **ppAsync);
+
+ /*** IVssBackupComponentsEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
+ IVssBackupComponentsEx2 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadataEx **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore,
+ VSS_ID instanceId);
+
+ /*** IVssBackupComponentsEx2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID snapshotId);
+
+ HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bAuth);
+
+ HRESULT (STDMETHODCALLTYPE *SetRollForward)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ VSS_ROLLFORWARD_TYPE rollType,
+ LPCWSTR wszRollForwardPoint);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreName)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszRestoreName);
+
+ HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwBreakFlags,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *PreFastRecovery)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwPreFastRecoveryFlags,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *FastRecovery)(
+ IVssBackupComponentsEx2 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwFastRecoveryFlags,
+ IVssAsync **ppAsync);
+
+ END_INTERFACE
+} IVssBackupComponentsEx2Vtbl;
+
+interface IVssBackupComponentsEx2 {
+ CONST_VTBL IVssBackupComponentsEx2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssBackupComponentsEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssBackupComponentsEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssBackupComponentsEx2_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssBackupComponents methods ***/
+#define IVssBackupComponentsEx2_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
+#define IVssBackupComponentsEx2_GetWriterComponents(This,iWriter,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,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
+#define IVssBackupComponentsEx2_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
+#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) (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) (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,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)
+#define IVssBackupComponentsEx2_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
+#define IVssBackupComponentsEx2_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssBackupComponentsEx2_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
+#define IVssBackupComponentsEx2_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
+#define IVssBackupComponentsEx2_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
+#define IVssBackupComponentsEx2_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssBackupComponentsEx2_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
+#define IVssBackupComponentsEx2_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
+#define IVssBackupComponentsEx2_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssBackupComponentsEx2_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssBackupComponentsEx2_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssBackupComponentsEx2_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx2_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx2_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
+#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,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
+#define IVssBackupComponentsEx2_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryInterface(IVssBackupComponentsEx2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx2_AddRef(IVssBackupComponentsEx2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx2_Release(IVssBackupComponentsEx2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssBackupComponents methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponentsCount(IVssBackupComponentsEx2* This,UINT *pcComponents) {
+ return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterComponents(IVssBackupComponentsEx2* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
+ return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForBackup(IVssBackupComponentsEx2* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForBackup(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupState(IVssBackupComponentsEx2* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
+ return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_InitializeForRestore(IVssBackupComponentsEx2* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForRestore(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreState(IVssBackupComponentsEx2* This,VSS_RESTORE_TYPE restoreType) {
+ return This->lpVtbl->SetRestoreState(This,restoreType);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterMetadata(IVssBackupComponentsEx2* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterMetadata(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataCount(IVssBackupComponentsEx2* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadata(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterMetadata(IVssBackupComponentsEx2* This) {
+ return This->lpVtbl->FreeWriterMetadata(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddComponent(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
+ return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_PrepareForBackup(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PrepareForBackup(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AbortBackup(IVssBackupComponentsEx2* This) {
+ return This->lpVtbl->AbortBackup(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GatherWriterStatus(IVssBackupComponentsEx2* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterStatus(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatusCount(IVssBackupComponentsEx2* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_FreeWriterStatus(IVssBackupComponentsEx2* This) {
+ return This->lpVtbl->FreeWriterStatus(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterStatus(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
+ return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupSucceeded(IVssBackupComponentsEx2* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
+ return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetBackupOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
+ return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
+ return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreOptions(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
+ return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAdditionalRestores(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
+ return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetPreviousBackupStamp(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
+ return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SaveAsXML(IVssBackupComponentsEx2* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_BackupComplete(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->BackupComplete(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddAlternativeLocationMapping(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddRestoreSubcomponent(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
+ return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetFileRestoreStatus(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
+ return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddNewTarget(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
+ return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRangesFilePath(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
+ return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_PostRestore(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PostRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetContext(IVssBackupComponentsEx2* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_StartSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID *pSnapshotSetId) {
+ return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_AddToSnapshotSet(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
+ return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_DoSnapshotSet(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->DoSnapshotSet(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_DeleteSnapshots(IVssBackupComponentsEx2* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_ImportSnapshots(IVssBackupComponentsEx2* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->ImportSnapshots(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSet(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetSnapshotProperties(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_Query(IVssBackupComponentsEx2* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_IsVolumeSupported(IVssBackupComponentsEx2* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_EnableWriterClasses(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_DisableWriterInstances(IVssBackupComponentsEx2* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
+ return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_ExposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
+ return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_RevertToSnapshot(IVssBackupComponentsEx2* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
+ return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_QueryRevertStatus(IVssBackupComponentsEx2* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
+}
+/*** IVssBackupComponentsEx methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_GetWriterMetadataEx(IVssBackupComponentsEx2* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetSelectedForRestoreEx(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
+ return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
+}
+/*** IVssBackupComponentsEx2 methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_UnexposeSnapshot(IVssBackupComponentsEx2* This,VSS_ID snapshotId) {
+ return This->lpVtbl->UnexposeSnapshot(This,snapshotId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetAuthoritativeRestore(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) {
+ return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRollForward(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) {
+ return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_SetRestoreName(IVssBackupComponentsEx2* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) {
+ return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_BreakSnapshotSetEx(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_PreFastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx2_FastRecovery(IVssBackupComponentsEx2* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssBackupComponentsEx2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssBackupComponentsEx3 interface
+ */
+#ifndef __IVssBackupComponentsEx3_INTERFACE_DEFINED__
+#define __IVssBackupComponentsEx3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c191bfbc-b602-4675-8bd1-67d642f529d5")
+IVssBackupComponentsEx3 : public IVssBackupComponentsEx2
+{
+ virtual HRESULT STDMETHODCALLTYPE GetWriterStatusEx(
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriter,
+ VSS_WRITER_STATE *pnStatus,
+ HRESULT *phrFailureWriter,
+ HRESULT *phrApplication = 0,
+ BSTR *pbstrApplicationMessage = 0) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddSnapshotToRecoverySet(
+ VSS_ID snapshotId,
+ DWORD dwFlags,
+ VSS_PWSZ pwszDestinationVolume = 0) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RecoverSet(
+ DWORD dwFlags,
+ IVssAsync **ppAsync) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSessionId(
+ VSS_ID *idSession) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssBackupComponentsEx3, 0xc191bfbc, 0xb602, 0x4675, 0x8b,0xd1, 0x67,0xd6,0x42,0xf5,0x29,0xd5)
+#endif
+#else
+typedef struct IVssBackupComponentsEx3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssBackupComponentsEx3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssBackupComponentsEx3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssBackupComponentsEx3 *This);
+
+ /*** IVssBackupComponents methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponentsCount)(
+ IVssBackupComponentsEx3 *This,
+ UINT *pcComponents);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterComponents)(
+ IVssBackupComponentsEx3 *This,
+ UINT iWriter,
+ IVssWriterComponentsExt **ppWriter);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForBackup)(
+ IVssBackupComponentsEx3 *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupState)(
+ IVssBackupComponentsEx3 *This,
+ boolean bSelectComponents,
+ boolean bBackupBootableSystemState,
+ VSS_BACKUP_TYPE backupType,
+ boolean bPartialFileSupport);
+
+ HRESULT (STDMETHODCALLTYPE *InitializeForRestore)(
+ IVssBackupComponentsEx3 *This,
+ BSTR bstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreState)(
+ IVssBackupComponentsEx3 *This,
+ VSS_RESTORE_TYPE restoreType);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterMetadata)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataCount)(
+ IVssBackupComponentsEx3 *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadata)(
+ IVssBackupComponentsEx3 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadata **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterMetadata)(
+ IVssBackupComponentsEx3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName);
+
+ HRESULT (STDMETHODCALLTYPE *PrepareForBackup)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AbortBackup)(
+ IVssBackupComponentsEx3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GatherWriterStatus)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **pAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatusCount)(
+ IVssBackupComponentsEx3 *This,
+ UINT *pcWriters);
+
+ HRESULT (STDMETHODCALLTYPE *FreeWriterStatus)(
+ IVssBackupComponentsEx3 *This);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatus)(
+ IVssBackupComponentsEx3 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriter,
+ VSS_WRITER_STATE *pnStatus,
+ HRESULT *phResultFailure);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupSucceeded)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID instanceId,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSucceded);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupOptions)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszBackupOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestore)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreOptions)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszRestoreOptions);
+
+ HRESULT (STDMETHODCALLTYPE *SetAdditionalRestores)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bAdditionalRestores);
+
+ HRESULT (STDMETHODCALLTYPE *SetPreviousBackupStamp)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPreviousBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
+ IVssBackupComponentsEx3 *This,
+ BSTR *pbstrXML);
+
+ HRESULT (STDMETHODCALLTYPE *BackupComplete)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *AddAlternativeLocationMapping)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszDestination);
+
+ HRESULT (STDMETHODCALLTYPE *AddRestoreSubcomponent)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE componentType,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszSubComponentLogicalPath,
+ LPCWSTR wszSubComponentName,
+ boolean bRepair);
+
+ HRESULT (STDMETHODCALLTYPE *SetFileRestoreStatus)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ VSS_FILE_RESTORE_STATUS status);
+
+ HRESULT (STDMETHODCALLTYPE *AddNewTarget)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFileName,
+ boolean bRecursive,
+ LPCWSTR wszAlternatePath);
+
+ HRESULT (STDMETHODCALLTYPE *SetRangesFilePath)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ UINT iPartialFile,
+ LPCWSTR wszRangesFile);
+
+ HRESULT (STDMETHODCALLTYPE *PreRestore)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *PostRestore)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *SetContext)(
+ IVssBackupComponentsEx3 *This,
+ LONG lContext);
+
+ HRESULT (STDMETHODCALLTYPE *StartSnapshotSet)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID *pSnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *AddToSnapshotSet)(
+ IVssBackupComponentsEx3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_ID ProviderId,
+ VSS_ID *pidSnapshot);
+
+ HRESULT (STDMETHODCALLTYPE *DoSnapshotSet)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID);
+
+ HRESULT (STDMETHODCALLTYPE *ImportSnapshots)(
+ IVssBackupComponentsEx3 *This,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *BreakSnapshotSet)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp);
+
+ HRESULT (STDMETHODCALLTYPE *Query)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID ProviderId,
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSupportedByThisProvider);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterClasses)(
+ IVssBackupComponentsEx3 *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *EnableWriterClasses)(
+ IVssBackupComponentsEx3 *This,
+ const VSS_ID *rgWriterClassId,
+ UINT cClassId);
+
+ HRESULT (STDMETHODCALLTYPE *DisableWriterInstances)(
+ IVssBackupComponentsEx3 *This,
+ const VSS_ID *rgWriterInstanceId,
+ UINT cInstanceId);
+
+ HRESULT (STDMETHODCALLTYPE *ExposeSnapshot)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotId,
+ VSS_PWSZ wszPathFromRoot,
+ LONG lAttributes,
+ VSS_PWSZ wszExpose,
+ VSS_PWSZ *pwszExposed);
+
+ HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotId,
+ WINBOOL bForceDismount);
+
+ HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
+ IVssBackupComponentsEx3 *This,
+ VSS_PWSZ pwszVolume,
+ IVssAsync **ppAsync);
+
+ /*** IVssBackupComponentsEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterMetadataEx)(
+ IVssBackupComponentsEx3 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ IVssExamineWriterMetadataEx **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *SetSelectedForRestoreEx)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bSelectedForRestore,
+ VSS_ID instanceId);
+
+ /*** IVssBackupComponentsEx2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *UnexposeSnapshot)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID snapshotId);
+
+ HRESULT (STDMETHODCALLTYPE *SetAuthoritativeRestore)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ boolean bAuth);
+
+ HRESULT (STDMETHODCALLTYPE *SetRollForward)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ VSS_ROLLFORWARD_TYPE rollType,
+ LPCWSTR wszRollForwardPoint);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreName)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID writerId,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszRestoreName);
+
+ HRESULT (STDMETHODCALLTYPE *BreakSnapshotSetEx)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwBreakFlags,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *PreFastRecovery)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwPreFastRecoveryFlags,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *FastRecovery)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID SnapshotSetID,
+ DWORD dwFastRecoveryFlags,
+ IVssAsync **ppAsync);
+
+ /*** IVssBackupComponentsEx3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterStatusEx)(
+ IVssBackupComponentsEx3 *This,
+ UINT iWriter,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter,
+ BSTR *pbstrWriter,
+ VSS_WRITER_STATE *pnStatus,
+ HRESULT *phrFailureWriter,
+ HRESULT *phrApplication,
+ BSTR *pbstrApplicationMessage);
+
+ HRESULT (STDMETHODCALLTYPE *AddSnapshotToRecoverySet)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID snapshotId,
+ DWORD dwFlags,
+ VSS_PWSZ pwszDestinationVolume);
+
+ HRESULT (STDMETHODCALLTYPE *RecoverSet)(
+ IVssBackupComponentsEx3 *This,
+ DWORD dwFlags,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *GetSessionId)(
+ IVssBackupComponentsEx3 *This,
+ VSS_ID *idSession);
+
+ END_INTERFACE
+} IVssBackupComponentsEx3Vtbl;
+
+interface IVssBackupComponentsEx3 {
+ CONST_VTBL IVssBackupComponentsEx3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssBackupComponentsEx3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssBackupComponentsEx3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssBackupComponentsEx3_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssBackupComponents methods ***/
+#define IVssBackupComponentsEx3_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
+#define IVssBackupComponentsEx3_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
+#define IVssBackupComponentsEx3_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
+#define IVssBackupComponentsEx3_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
+#define IVssBackupComponentsEx3_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
+#define IVssBackupComponentsEx3_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
+#define IVssBackupComponentsEx3_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
+#define IVssBackupComponentsEx3_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
+#define IVssBackupComponentsEx3_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
+#define IVssBackupComponentsEx3_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
+#define IVssBackupComponentsEx3_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
+#define IVssBackupComponentsEx3_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
+#define IVssBackupComponentsEx3_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
+#define IVssBackupComponentsEx3_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
+#define IVssBackupComponentsEx3_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
+#define IVssBackupComponentsEx3_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
+#define IVssBackupComponentsEx3_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
+#define IVssBackupComponentsEx3_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
+#define IVssBackupComponentsEx3_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
+#define IVssBackupComponentsEx3_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
+#define IVssBackupComponentsEx3_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
+#define IVssBackupComponentsEx3_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
+#define IVssBackupComponentsEx3_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
+#define IVssBackupComponentsEx3_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
+#define IVssBackupComponentsEx3_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
+#define IVssBackupComponentsEx3_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
+#define IVssBackupComponentsEx3_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
+#define IVssBackupComponentsEx3_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
+#define IVssBackupComponentsEx3_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
+#define IVssBackupComponentsEx3_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
+#define IVssBackupComponentsEx3_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
+#define IVssBackupComponentsEx3_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
+#define IVssBackupComponentsEx3_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssBackupComponentsEx3_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
+#define IVssBackupComponentsEx3_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
+#define IVssBackupComponentsEx3_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
+#define IVssBackupComponentsEx3_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssBackupComponentsEx3_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
+#define IVssBackupComponentsEx3_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
+#define IVssBackupComponentsEx3_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssBackupComponentsEx3_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssBackupComponentsEx3_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssBackupComponentsEx3_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx3_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx3_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
+#define IVssBackupComponentsEx3_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
+#define IVssBackupComponentsEx3_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
+#define IVssBackupComponentsEx3_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
+/*** IVssBackupComponentsEx methods ***/
+#define IVssBackupComponentsEx3_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
+#define IVssBackupComponentsEx3_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
+/*** IVssBackupComponentsEx2 methods ***/
+#define IVssBackupComponentsEx3_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
+#define IVssBackupComponentsEx3_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
+#define IVssBackupComponentsEx3_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
+#define IVssBackupComponentsEx3_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
+#define IVssBackupComponentsEx3_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
+#define IVssBackupComponentsEx3_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
+#define IVssBackupComponentsEx3_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
+/*** IVssBackupComponentsEx3 methods ***/
+#define IVssBackupComponentsEx3_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage)
+#define IVssBackupComponentsEx3_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume)
+#define IVssBackupComponentsEx3_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync)
+#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;
};
-#endif /*__cplusplus*/
-#endif /*_INC_VSBACKUP*/
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssBackupComponentsEx4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssBackupComponentsEx4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssBackupComponentsEx4_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssBackupComponents methods ***/
+#define IVssBackupComponentsEx4_GetWriterComponentsCount(This,pcComponents) (This)->lpVtbl->GetWriterComponentsCount(This,pcComponents)
+#define IVssBackupComponentsEx4_GetWriterComponents(This,iWriter,ppWriter) (This)->lpVtbl->GetWriterComponents(This,iWriter,ppWriter)
+#define IVssBackupComponentsEx4_InitializeForBackup(This,bstrXML) (This)->lpVtbl->InitializeForBackup(This,bstrXML)
+#define IVssBackupComponentsEx4_SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport) (This)->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport)
+#define IVssBackupComponentsEx4_InitializeForRestore(This,bstrXML) (This)->lpVtbl->InitializeForRestore(This,bstrXML)
+#define IVssBackupComponentsEx4_SetRestoreState(This,restoreType) (This)->lpVtbl->SetRestoreState(This,restoreType)
+#define IVssBackupComponentsEx4_GatherWriterMetadata(This,pAsync) (This)->lpVtbl->GatherWriterMetadata(This,pAsync)
+#define IVssBackupComponentsEx4_GetWriterMetadataCount(This,pcWriters) (This)->lpVtbl->GetWriterMetadataCount(This,pcWriters)
+#define IVssBackupComponentsEx4_GetWriterMetadata(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata)
+#define IVssBackupComponentsEx4_FreeWriterMetadata(This) (This)->lpVtbl->FreeWriterMetadata(This)
+#define IVssBackupComponentsEx4_AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName) (This)->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName)
+#define IVssBackupComponentsEx4_PrepareForBackup(This,ppAsync) (This)->lpVtbl->PrepareForBackup(This,ppAsync)
+#define IVssBackupComponentsEx4_AbortBackup(This) (This)->lpVtbl->AbortBackup(This)
+#define IVssBackupComponentsEx4_GatherWriterStatus(This,pAsync) (This)->lpVtbl->GatherWriterStatus(This,pAsync)
+#define IVssBackupComponentsEx4_GetWriterStatusCount(This,pcWriters) (This)->lpVtbl->GetWriterStatusCount(This,pcWriters)
+#define IVssBackupComponentsEx4_FreeWriterStatus(This) (This)->lpVtbl->FreeWriterStatus(This)
+#define IVssBackupComponentsEx4_GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure) (This)->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure)
+#define IVssBackupComponentsEx4_SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded) (This)->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded)
+#define IVssBackupComponentsEx4_SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions) (This)->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions)
+#define IVssBackupComponentsEx4_SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore) (This)->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore)
+#define IVssBackupComponentsEx4_SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions) (This)->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions)
+#define IVssBackupComponentsEx4_SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores) (This)->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores)
+#define IVssBackupComponentsEx4_SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp) (This)->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp)
+#define IVssBackupComponentsEx4_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
+#define IVssBackupComponentsEx4_BackupComplete(This,ppAsync) (This)->lpVtbl->BackupComplete(This,ppAsync)
+#define IVssBackupComponentsEx4_AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination)
+#define IVssBackupComponentsEx4_AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair) (This)->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair)
+#define IVssBackupComponentsEx4_SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status) (This)->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status)
+#define IVssBackupComponentsEx4_AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath) (This)->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath)
+#define IVssBackupComponentsEx4_SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile) (This)->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile)
+#define IVssBackupComponentsEx4_PreRestore(This,ppAsync) (This)->lpVtbl->PreRestore(This,ppAsync)
+#define IVssBackupComponentsEx4_PostRestore(This,ppAsync) (This)->lpVtbl->PostRestore(This,ppAsync)
+#define IVssBackupComponentsEx4_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssBackupComponentsEx4_StartSnapshotSet(This,pSnapshotSetId) (This)->lpVtbl->StartSnapshotSet(This,pSnapshotSetId)
+#define IVssBackupComponentsEx4_AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot) (This)->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot)
+#define IVssBackupComponentsEx4_DoSnapshotSet(This,ppAsync) (This)->lpVtbl->DoSnapshotSet(This,ppAsync)
+#define IVssBackupComponentsEx4_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssBackupComponentsEx4_ImportSnapshots(This,ppAsync) (This)->lpVtbl->ImportSnapshots(This,ppAsync)
+#define IVssBackupComponentsEx4_BreakSnapshotSet(This,SnapshotSetId) (This)->lpVtbl->BreakSnapshotSet(This,SnapshotSetId)
+#define IVssBackupComponentsEx4_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssBackupComponentsEx4_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssBackupComponentsEx4_IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssBackupComponentsEx4_DisableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx4_EnableWriterClasses(This,rgWriterClassId,cClassId) (This)->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId)
+#define IVssBackupComponentsEx4_DisableWriterInstances(This,rgWriterInstanceId,cInstanceId) (This)->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId)
+#define IVssBackupComponentsEx4_ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed) (This)->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed)
+#define IVssBackupComponentsEx4_RevertToSnapshot(This,SnapshotId,bForceDismount) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount)
+#define IVssBackupComponentsEx4_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
+/*** IVssBackupComponentsEx methods ***/
+#define IVssBackupComponentsEx4_GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata) (This)->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata)
+#define IVssBackupComponentsEx4_SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId) (This)->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId)
+/*** IVssBackupComponentsEx2 methods ***/
+#define IVssBackupComponentsEx4_UnexposeSnapshot(This,snapshotId) (This)->lpVtbl->UnexposeSnapshot(This,snapshotId)
+#define IVssBackupComponentsEx4_SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth) (This)->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth)
+#define IVssBackupComponentsEx4_SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint) (This)->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint)
+#define IVssBackupComponentsEx4_SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName) (This)->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName)
+#define IVssBackupComponentsEx4_BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync) (This)->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync)
+#define IVssBackupComponentsEx4_PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync) (This)->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync)
+#define IVssBackupComponentsEx4_FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync) (This)->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync)
+/*** IVssBackupComponentsEx3 methods ***/
+#define IVssBackupComponentsEx4_GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage) (This)->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage)
+#define IVssBackupComponentsEx4_AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume) (This)->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume)
+#define IVssBackupComponentsEx4_RecoverSet(This,dwFlags,ppAsync) (This)->lpVtbl->RecoverSet(This,dwFlags,ppAsync)
+#define IVssBackupComponentsEx4_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession)
+/*** IVssBackupComponentsEx4 methods ***/
+#define IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath) (This)->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryInterface(IVssBackupComponentsEx4* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx4_AddRef(IVssBackupComponentsEx4* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssBackupComponentsEx4_Release(IVssBackupComponentsEx4* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssBackupComponents methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponentsCount(IVssBackupComponentsEx4* This,UINT *pcComponents) {
+ return This->lpVtbl->GetWriterComponentsCount(This,pcComponents);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterComponents(IVssBackupComponentsEx4* This,UINT iWriter,IVssWriterComponentsExt **ppWriter) {
+ return This->lpVtbl->GetWriterComponents(This,iWriter,ppWriter);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForBackup(IVssBackupComponentsEx4* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForBackup(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupState(IVssBackupComponentsEx4* This,boolean bSelectComponents,boolean bBackupBootableSystemState,VSS_BACKUP_TYPE backupType,boolean bPartialFileSupport) {
+ return This->lpVtbl->SetBackupState(This,bSelectComponents,bBackupBootableSystemState,backupType,bPartialFileSupport);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_InitializeForRestore(IVssBackupComponentsEx4* This,BSTR bstrXML) {
+ return This->lpVtbl->InitializeForRestore(This,bstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreState(IVssBackupComponentsEx4* This,VSS_RESTORE_TYPE restoreType) {
+ return This->lpVtbl->SetRestoreState(This,restoreType);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterMetadata(IVssBackupComponentsEx4* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterMetadata(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataCount(IVssBackupComponentsEx4* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterMetadataCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadata(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadata **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadata(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterMetadata(IVssBackupComponentsEx4* This) {
+ return This->lpVtbl->FreeWriterMetadata(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddComponent(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName) {
+ return This->lpVtbl->AddComponent(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_PrepareForBackup(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PrepareForBackup(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AbortBackup(IVssBackupComponentsEx4* This) {
+ return This->lpVtbl->AbortBackup(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GatherWriterStatus(IVssBackupComponentsEx4* This,IVssAsync **pAsync) {
+ return This->lpVtbl->GatherWriterStatus(This,pAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusCount(IVssBackupComponentsEx4* This,UINT *pcWriters) {
+ return This->lpVtbl->GetWriterStatusCount(This,pcWriters);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_FreeWriterStatus(IVssBackupComponentsEx4* This) {
+ return This->lpVtbl->FreeWriterStatus(This);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatus(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phResultFailure) {
+ return This->lpVtbl->GetWriterStatus(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phResultFailure);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupSucceeded(IVssBackupComponentsEx4* This,VSS_ID instanceId,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSucceded) {
+ return This->lpVtbl->SetBackupSucceeded(This,instanceId,writerId,ct,wszLogicalPath,wszComponentName,bSucceded);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetBackupOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszBackupOptions) {
+ return This->lpVtbl->SetBackupOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszBackupOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore) {
+ return This->lpVtbl->SetSelectedForRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreOptions(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreOptions) {
+ return This->lpVtbl->SetRestoreOptions(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAdditionalRestores(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAdditionalRestores) {
+ return This->lpVtbl->SetAdditionalRestores(This,writerId,ct,wszLogicalPath,wszComponentName,bAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetPreviousBackupStamp(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPreviousBackupStamp) {
+ return This->lpVtbl->SetPreviousBackupStamp(This,writerId,ct,wszLogicalPath,wszComponentName,wszPreviousBackupStamp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SaveAsXML(IVssBackupComponentsEx4* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_BackupComplete(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->BackupComplete(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddAlternativeLocationMapping(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternativeLocationMapping(This,writerId,componentType,wszLogicalPath,wszComponentName,wszPath,wszFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddRestoreSubcomponent(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszSubComponentLogicalPath,LPCWSTR wszSubComponentName,boolean bRepair) {
+ return This->lpVtbl->AddRestoreSubcomponent(This,writerId,componentType,wszLogicalPath,wszComponentName,wszSubComponentLogicalPath,wszSubComponentName,bRepair);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetFileRestoreStatus(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_FILE_RESTORE_STATUS status) {
+ return This->lpVtbl->SetFileRestoreStatus(This,writerId,ct,wszLogicalPath,wszComponentName,status);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddNewTarget(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszPath,LPCWSTR wszFileName,boolean bRecursive,LPCWSTR wszAlternatePath) {
+ return This->lpVtbl->AddNewTarget(This,writerId,ct,wszLogicalPath,wszComponentName,wszPath,wszFileName,bRecursive,wszAlternatePath);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRangesFilePath(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,UINT iPartialFile,LPCWSTR wszRangesFile) {
+ return This->lpVtbl->SetRangesFilePath(This,writerId,ct,wszLogicalPath,wszComponentName,iPartialFile,wszRangesFile);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_PostRestore(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->PostRestore(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetContext(IVssBackupComponentsEx4* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_StartSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID *pSnapshotSetId) {
+ return This->lpVtbl->StartSnapshotSet(This,pSnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddToSnapshotSet(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,VSS_ID *pidSnapshot) {
+ return This->lpVtbl->AddToSnapshotSet(This,pwszVolumeName,ProviderId,pidSnapshot);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_DoSnapshotSet(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->DoSnapshotSet(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_DeleteSnapshots(IVssBackupComponentsEx4* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_ImportSnapshots(IVssBackupComponentsEx4* This,IVssAsync **ppAsync) {
+ return This->lpVtbl->ImportSnapshots(This,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSet(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->BreakSnapshotSet(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSnapshotProperties(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_Query(IVssBackupComponentsEx4* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_IsVolumeSupported(IVssBackupComponentsEx4* This,VSS_ID ProviderId,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsVolumeSupported(This,ProviderId,pwszVolumeName,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->DisableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_EnableWriterClasses(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterClassId,UINT cClassId) {
+ return This->lpVtbl->EnableWriterClasses(This,rgWriterClassId,cClassId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_DisableWriterInstances(IVssBackupComponentsEx4* This,const VSS_ID *rgWriterInstanceId,UINT cInstanceId) {
+ return This->lpVtbl->DisableWriterInstances(This,rgWriterInstanceId,cInstanceId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_ExposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,VSS_PWSZ wszPathFromRoot,LONG lAttributes,VSS_PWSZ wszExpose,VSS_PWSZ *pwszExposed) {
+ return This->lpVtbl->ExposeSnapshot(This,SnapshotId,wszPathFromRoot,lAttributes,wszExpose,pwszExposed);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_RevertToSnapshot(IVssBackupComponentsEx4* This,VSS_ID SnapshotId,WINBOOL bForceDismount) {
+ return This->lpVtbl->RevertToSnapshot(This,SnapshotId,bForceDismount);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_QueryRevertStatus(IVssBackupComponentsEx4* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
+}
+/*** IVssBackupComponentsEx methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterMetadataEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,IVssExamineWriterMetadataEx **ppMetadata) {
+ return This->lpVtbl->GetWriterMetadataEx(This,iWriter,pidInstance,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetSelectedForRestoreEx(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bSelectedForRestore,VSS_ID instanceId) {
+ return This->lpVtbl->SetSelectedForRestoreEx(This,writerId,ct,wszLogicalPath,wszComponentName,bSelectedForRestore,instanceId);
+}
+/*** IVssBackupComponentsEx2 methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_UnexposeSnapshot(IVssBackupComponentsEx4* This,VSS_ID snapshotId) {
+ return This->lpVtbl->UnexposeSnapshot(This,snapshotId);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetAuthoritativeRestore(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,boolean bAuth) {
+ return This->lpVtbl->SetAuthoritativeRestore(This,writerId,ct,wszLogicalPath,wszComponentName,bAuth);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRollForward(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,VSS_ROLLFORWARD_TYPE rollType,LPCWSTR wszRollForwardPoint) {
+ return This->lpVtbl->SetRollForward(This,writerId,ct,wszLogicalPath,wszComponentName,rollType,wszRollForwardPoint);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_SetRestoreName(IVssBackupComponentsEx4* This,VSS_ID writerId,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszRestoreName) {
+ return This->lpVtbl->SetRestoreName(This,writerId,ct,wszLogicalPath,wszComponentName,wszRestoreName);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_BreakSnapshotSetEx(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwBreakFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->BreakSnapshotSetEx(This,SnapshotSetID,dwBreakFlags,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_PreFastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwPreFastRecoveryFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->PreFastRecovery(This,SnapshotSetID,dwPreFastRecoveryFlags,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_FastRecovery(IVssBackupComponentsEx4* This,VSS_ID SnapshotSetID,DWORD dwFastRecoveryFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->FastRecovery(This,SnapshotSetID,dwFastRecoveryFlags,ppAsync);
+}
+/*** IVssBackupComponentsEx3 methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetWriterStatusEx(IVssBackupComponentsEx4* This,UINT iWriter,VSS_ID *pidInstance,VSS_ID *pidWriter,BSTR *pbstrWriter,VSS_WRITER_STATE *pnStatus,HRESULT *phrFailureWriter,HRESULT *phrApplication,BSTR *pbstrApplicationMessage) {
+ return This->lpVtbl->GetWriterStatusEx(This,iWriter,pidInstance,pidWriter,pbstrWriter,pnStatus,phrFailureWriter,phrApplication,pbstrApplicationMessage);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_AddSnapshotToRecoverySet(IVssBackupComponentsEx4* This,VSS_ID snapshotId,DWORD dwFlags,VSS_PWSZ pwszDestinationVolume) {
+ return This->lpVtbl->AddSnapshotToRecoverySet(This,snapshotId,dwFlags,pwszDestinationVolume);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_RecoverSet(IVssBackupComponentsEx4* This,DWORD dwFlags,IVssAsync **ppAsync) {
+ return This->lpVtbl->RecoverSet(This,dwFlags,ppAsync);
+}
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetSessionId(IVssBackupComponentsEx4* This,VSS_ID *idSession) {
+ return This->lpVtbl->GetSessionId(This,idSession);
+}
+/*** IVssBackupComponentsEx4 methods ***/
+static FORCEINLINE HRESULT IVssBackupComponentsEx4_GetRootAndLogicalPrefixPaths(IVssBackupComponentsEx4* This,VSS_PWSZ pwszFilePath,VSS_PWSZ *ppwszRootPath,VSS_PWSZ *ppwszLogicalPrefix,WINBOOL bNormalizeFQDNforRootPath) {
+ return This->lpVtbl->GetRootAndLogicalPrefixPaths(This,pwszFilePath,ppwszRootPath,ppwszLogicalPrefix,bNormalizeFQDNforRootPath);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssBackupComponentsEx4_INTERFACE_DEFINED__ */
+
+#define VSS_SW_BOOTABLE_STATE (1 << 0)
+HRESULT STDAPICALLTYPE CreateVssBackupComponentsInternal(IVssBackupComponents **ppBackup);
+HRESULT STDAPICALLTYPE CreateVssExamineWriterMetadataInternal(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata);
+HRESULT APIENTRY IsVolumeSnapshottedInternal(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability);
+void APIENTRY VssFreeSnapshotPropertiesInternal(VSS_SNAPSHOT_PROP *pProp);
+HRESULT APIENTRY GetProviderMgmtInterfaceInternal(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf);
+HRESULT APIENTRY ShouldBlockRevertInternal(LPCWSTR wszVolumeName, boolean *pbBlock);
+static __inline HRESULT CreateVssBackupComponents(IVssBackupComponents **ppBackup) { return CreateVssBackupComponentsInternal(ppBackup); }
+static __inline HRESULT CreateVssExamineWriterMetadata(BSTR bstrXML, IVssExamineWriterMetadata **ppMetadata) { return CreateVssExamineWriterMetadataInternal(bstrXML, ppMetadata); }
+static __inline HRESULT IsVolumeSnapshotted(VSS_PWSZ pwszVolumeName, WINBOOL *pbSnapshotsPresent, LONG *plSnapshotCapability) { return IsVolumeSnapshottedInternal(pwszVolumeName, pbSnapshotsPresent, plSnapshotCapability); }
+static __inline void VssFreeSnapshotProperties(VSS_SNAPSHOT_PROP *pProp) { return VssFreeSnapshotPropertiesInternal(pProp); }
+static __inline HRESULT GetProviderMgmtInterface(VSS_ID ProviderId, IID InterfaceId, IUnknown **ppItf) { return GetProviderMgmtInterfaceInternal(ProviderId, InterfaceId, ppItf); }
+static __inline HRESULT ShouldBlockRevert(LPCWSTR wszVolumeName, boolean *pbBlock) { return ShouldBlockRevertInternal(wszVolumeName, pbBlock); }
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __vsbackup_h__ */
lib/libc/include/any-windows-any/vsmgmt.h
@@ -1,337 +1,1088 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_VSMGT
-#define _INC_VSMGT
+/*** Autogenerated by WIDL 7.0 from include/vsmgmt.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __vsmgmt_h__
+#define __vsmgmt_h__
+
+/* Forward declarations */
+
+#ifndef __IVssSnapshotMgmt_FWD_DEFINED__
+#define __IVssSnapshotMgmt_FWD_DEFINED__
+typedef interface IVssSnapshotMgmt IVssSnapshotMgmt;
+#ifdef __cplusplus
+interface IVssSnapshotMgmt;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssSnapshotMgmt2_FWD_DEFINED__
+#define __IVssSnapshotMgmt2_FWD_DEFINED__
+typedef interface IVssSnapshotMgmt2 IVssSnapshotMgmt2;
+#ifdef __cplusplus
+interface IVssSnapshotMgmt2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
+typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt;
+#ifdef __cplusplus
+interface IVssDifferentialSoftwareSnapshotMgmt;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt2_FWD_DEFINED__
+typedef interface IVssDifferentialSoftwareSnapshotMgmt2 IVssDifferentialSoftwareSnapshotMgmt2;
+#ifdef __cplusplus
+interface IVssDifferentialSoftwareSnapshotMgmt2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt3_FWD_DEFINED__
+typedef interface IVssDifferentialSoftwareSnapshotMgmt3 IVssDifferentialSoftwareSnapshotMgmt3;
+#ifdef __cplusplus
+interface IVssDifferentialSoftwareSnapshotMgmt3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssEnumMgmtObject_FWD_DEFINED__
+#define __IVssEnumMgmtObject_FWD_DEFINED__
+typedef interface IVssEnumMgmtObject IVssEnumMgmtObject;
+#ifdef __cplusplus
+interface IVssEnumMgmtObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __VssSnapshotMgmt_FWD_DEFINED__
+#define __VssSnapshotMgmt_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class VssSnapshotMgmt VssSnapshotMgmt;
+#else
+typedef struct VssSnapshotMgmt VssSnapshotMgmt;
+#endif /* defined __cplusplus */
+#endif /* defined __VssSnapshotMgmt_FWD_DEFINED__ */
+
+/* Headers for imported files */
+#include <oaidl.h>
+#include <ocidl.h>
#include <vss.h>
#ifdef __cplusplus
extern "C" {
#endif
-typedef enum _VSS_PROTECTION_FAULT {
- VSS_PROTECTION_FAULT_NONE = 0,
- VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = ( VSS_PROTECTION_FAULT_NONE + 1 ),
- VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = ( VSS_PROTECTION_FAULT_DIFF_AREA_MISSING + 1 ),
- VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = ( VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE + 1 ),
- VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = ( VSS_PROTECTION_FAULT_META_DATA_CORRUPTION + 1 ),
- VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = ( VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_COW_READ_FAILURE = ( VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = ( VSS_PROTECTION_FAULT_COW_READ_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_DIFF_AREA_FULL = ( VSS_PROTECTION_FAULT_COW_WRITE_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_GROW_TOO_SLOW = ( VSS_PROTECTION_FAULT_DIFF_AREA_FULL + 1 ),
- VSS_PROTECTION_FAULT_GROW_FAILED = ( VSS_PROTECTION_FAULT_GROW_TOO_SLOW + 1 ),
- VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = ( VSS_PROTECTION_FAULT_GROW_FAILED + 1 ),
- VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = ( VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS + 1 ),
- VSS_PROTECTION_FAULT_IO_FAILURE = ( VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = ( VSS_PROTECTION_FAULT_IO_FAILURE + 1 ),
- VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = ( VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED + 1 )
-} VSS_PROTECTION_FAULT;
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+typedef enum _VSS_MGMT_OBJECT_TYPE {
+ VSS_MGMT_OBJECT_UNKNOWN = 0,
+ VSS_MGMT_OBJECT_VOLUME = 1,
+ VSS_MGMT_OBJECT_DIFF_VOLUME = 2,
+ VSS_MGMT_OBJECT_DIFF_AREA = 3
+} VSS_MGMT_OBJECT_TYPE;
+typedef enum _VSS_MGMT_OBJECT_TYPE *PVSS_MGMT_OBJECT_TYPE;
+#define VSS_ASSOC_NO_MAX_SPACE (-1)
+#define VSS_ASSOC_REMOVE (0)
+
+typedef struct _VSS_VOLUME_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszVolumeDisplayName;
+} VSS_VOLUME_PROP;
+typedef struct _VSS_VOLUME_PROP *PVSS_VOLUME_PROP;
+typedef struct _VSS_DIFF_VOLUME_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszVolumeDisplayName;
+ LONGLONG m_llVolumeFreeSpace;
+ LONGLONG m_llVolumeTotalSpace;
+} VSS_DIFF_VOLUME_PROP;
+typedef struct _VSS_DIFF_VOLUME_PROP *PVSS_DIFF_VOLUME_PROP;
+typedef struct _VSS_DIFF_AREA_PROP {
+ VSS_PWSZ m_pwszVolumeName;
+ VSS_PWSZ m_pwszDiffAreaVolumeName;
+ LONGLONG m_llMaximumDiffSpace;
+ LONGLONG m_llAllocatedDiffSpace;
+ LONGLONG m_llUsedDiffSpace;
+} VSS_DIFF_AREA_PROP;
+typedef struct _VSS_DIFF_AREA_PROP *PVSS_DIFF_AREA_PROP;
+typedef union __WIDL_vsmgmt_generated_name_00000021 {
+ VSS_VOLUME_PROP Vol;
+ VSS_DIFF_VOLUME_PROP DiffVol;
+ VSS_DIFF_AREA_PROP DiffArea;
+} VSS_MGMT_OBJECT_UNION;
+typedef union __WIDL_vsmgmt_generated_name_00000021 *PVSS_MGMT_OBJECT_UNION;
+typedef struct _VSS_MGMT_OBJECT_PROP {
+ VSS_MGMT_OBJECT_TYPE Type;
+ VSS_MGMT_OBJECT_UNION Obj;
+} VSS_MGMT_OBJECT_PROP;
+typedef struct _VSS_MGMT_OBJECT_PROP *PVSS_MGMT_OBJECT_PROP;
typedef enum _VSS_PROTECTION_LEVEL {
- VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0,
- VSS_PROTECTION_LEVEL_SNAPSHOT = ( VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME + 1 )
+ VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME = 0,
+ VSS_PROTECTION_LEVEL_SNAPSHOT = 1
} VSS_PROTECTION_LEVEL;
+typedef enum _VSS_PROTECTION_LEVEL *PVSS_PROTECTION_LEVEL;
+typedef enum _VSS_PROTECTION_FAULT {
+ VSS_PROTECTION_FAULT_NONE = 0,
+ VSS_PROTECTION_FAULT_DIFF_AREA_MISSING = 1,
+ VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE = 2,
+ VSS_PROTECTION_FAULT_META_DATA_CORRUPTION = 3,
+ VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE = 4,
+ VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE = 5,
+ VSS_PROTECTION_FAULT_COW_READ_FAILURE = 6,
+ VSS_PROTECTION_FAULT_COW_WRITE_FAILURE = 7,
+ VSS_PROTECTION_FAULT_DIFF_AREA_FULL = 8,
+ VSS_PROTECTION_FAULT_GROW_TOO_SLOW = 9,
+ VSS_PROTECTION_FAULT_GROW_FAILED = 10,
+ VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS = 11,
+ VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE = 12,
+ VSS_PROTECTION_FAULT_IO_FAILURE = 13,
+ VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED = 14,
+ VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA = 15,
+ VSS_PROTECTION_FAULT_MOUNT_DURING_CLUSTER_OFFLINE = 16
+} VSS_PROTECTION_FAULT;
+typedef enum _VSS_PROTECTION_FAULT *PVSS_PROTECTION_FAULT;
+typedef struct _VSS_VOLUME_PROTECTION_INFO {
+ VSS_PROTECTION_LEVEL m_protectionLevel;
+ WINBOOL m_volumeIsOfflineForProtection;
+ VSS_PROTECTION_FAULT m_protectionFault;
+ LONG m_failureStatus;
+ WINBOOL m_volumeHasUnusedDiffArea;
+ DWORD m_reserved;
+} VSS_VOLUME_PROTECTION_INFO;
+typedef struct _VSS_VOLUME_PROTECTION_INFO *PVSS_VOLUME_PROTECTION_INFO;
+#ifndef __IVssSnapshotMgmt_FWD_DEFINED__
+#define __IVssSnapshotMgmt_FWD_DEFINED__
+typedef interface IVssSnapshotMgmt IVssSnapshotMgmt;
+#ifdef __cplusplus
+interface IVssSnapshotMgmt;
+#endif /* __cplusplus */
+#endif
-typedef enum _VSS_MGMT_OBJECT_TYPE {
- VSS_MGMT_OBJECT_UNKNOWN = 0,
- VSS_MGMT_OBJECT_VOLUME = 1,
- VSS_MGMT_OBJECT_DIFF_VOLUME = 2,
- VSS_MGMT_OBJECT_DIFF_AREA = 3
-} VSS_MGMT_OBJECT_TYPE, *PVSS_MGMT_OBJECT_TYPE;
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt_FWD_DEFINED__
+typedef interface IVssDifferentialSoftwareSnapshotMgmt IVssDifferentialSoftwareSnapshotMgmt;
+#ifdef __cplusplus
+interface IVssDifferentialSoftwareSnapshotMgmt;
+#endif /* __cplusplus */
+#endif
-typedef struct _VSS_VOLUME_PROP {
- VSS_PWSZ m_pwszVolumeName;
- VSS_PWSZ m_pwszVolumeDisplayName;
-} VSS_VOLUME_PROP, *PVSS_VOLUME_PROP;
+#ifndef __IVssEnumMgmtObject_FWD_DEFINED__
+#define __IVssEnumMgmtObject_FWD_DEFINED__
+typedef interface IVssEnumMgmtObject IVssEnumMgmtObject;
+#ifdef __cplusplus
+interface IVssEnumMgmtObject;
+#endif /* __cplusplus */
+#endif
-typedef struct _VSS_VOLUME_PROTECTION_INFO {
- VSS_PROTECTION_LEVEL m_protectionLevel;
- WINBOOL m_volumeIsOfflineForProtection;
- VSS_PROTECTION_FAULT m_protectionFault;
- LONG m_failureStatus;
- WINBOOL m_volumeHasUnusedDiffArea;
- DWORD m_reserved;
-} VSS_VOLUME_PROTECTION_INFO;
+/*****************************************************************************
+ * IVssSnapshotMgmt interface
+ */
+#ifndef __IVssSnapshotMgmt_INTERFACE_DEFINED__
+#define __IVssSnapshotMgmt_INTERFACE_DEFINED__
-#if (_WIN32_WINNT >= 0x0600)
+DEFINE_GUID(IID_IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fa7df749-66e7-4986-a27f-e2f04ae53772")
+IVssSnapshotMgmt : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetProviderMgmtInterface(
+ VSS_ID ProviderId,
+ REFIID InterfaceId,
+ IUnknown **ppItf) = 0;
-typedef struct _VSS_DIFF_AREA_PROP {
- VSS_PWSZ m_pwszVolumeName;
- VSS_PWSZ m_pwszDiffAreaVolumeName;
- LONGLONG m_llMaximumDiffSpace;
- LONGLONG m_llAllocatedDiffSpace;
- LONGLONG m_llUsedDiffSpace;
-} VSS_DIFF_AREA_PROP, *PVSS_DIFF_AREA_PROP;
+ virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForSnapshots(
+ VSS_ID ProviderId,
+ LONG lContext,
+ IVssEnumMgmtObject **ppEnum) = 0;
-typedef struct _VSS_DIFF_VOLUME_PROP {
- VSS_PWSZ m_pwszVolumeName;
- VSS_PWSZ m_pwszVolumeDisplayName;
- LONGLONG m_llVolumeFreeSpace;
- LONGLONG m_llVolumeTotalSpace;
-} VSS_DIFF_VOLUME_PROP, *PVSS_DIFF_VOLUME_PROP;
-
-typedef union _VSS_MGMT_OBJECT_UNION {
- VSS_VOLUME_PROP Vol;
- VSS_DIFF_VOLUME_PROP DiffVol;
- VSS_DIFF_AREA_PROP DiffArea;
-} VSS_MGMT_OBJECT_UNION, *PVSS_MGMT_OBJECT_UNION;
+ virtual HRESULT STDMETHODCALLTYPE QuerySnapshotsByVolume(
+ VSS_PWSZ pwszVolumeName,
+ VSS_ID ProviderId,
+ IVssEnumObject **ppEnum) = 0;
-typedef struct _VSS_MGMT_OBJECT_PROP {
- VSS_MGMT_OBJECT_TYPE Type;
- VSS_MGMT_OBJECT_UNION Obj;
-} VSS_MGMT_OBJECT_PROP, *PVSS_MGMT_OBJECT_PROP;
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssSnapshotMgmt, 0xfa7df749, 0x66e7, 0x4986, 0xa2,0x7f, 0xe2,0xf0,0x4a,0xe5,0x37,0x72)
+#endif
+#else
+typedef struct IVssSnapshotMgmtVtbl {
+ BEGIN_INTERFACE
-#endif /* (_WIN32_WINNT >= 0x0600) */
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssSnapshotMgmt *This,
+ REFIID riid,
+ void **ppvObject);
-#ifdef __cplusplus
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssSnapshotMgmt *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssSnapshotMgmt *This);
+
+ /*** IVssSnapshotMgmt methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetProviderMgmtInterface)(
+ IVssSnapshotMgmt *This,
+ VSS_ID ProviderId,
+ REFIID InterfaceId,
+ IUnknown **ppItf);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForSnapshots)(
+ IVssSnapshotMgmt *This,
+ VSS_ID ProviderId,
+ LONG lContext,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QuerySnapshotsByVolume)(
+ IVssSnapshotMgmt *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_ID ProviderId,
+ IVssEnumObject **ppEnum);
+
+ END_INTERFACE
+} IVssSnapshotMgmtVtbl;
+
+interface IVssSnapshotMgmt {
+ CONST_VTBL IVssSnapshotMgmtVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssSnapshotMgmt methods ***/
+#define IVssSnapshotMgmt_GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) (This)->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf)
+#define IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum)
+#define IVssSnapshotMgmt_QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum) (This)->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryInterface(IVssSnapshotMgmt* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssSnapshotMgmt_AddRef(IVssSnapshotMgmt* This) {
+ return This->lpVtbl->AddRef(This);
}
+static FORCEINLINE ULONG IVssSnapshotMgmt_Release(IVssSnapshotMgmt* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssSnapshotMgmt methods ***/
+static FORCEINLINE HRESULT IVssSnapshotMgmt_GetProviderMgmtInterface(IVssSnapshotMgmt* This,VSS_ID ProviderId,REFIID InterfaceId,IUnknown **ppItf) {
+ return This->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf);
+}
+static FORCEINLINE HRESULT IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots(IVssSnapshotMgmt* This,VSS_ID ProviderId,LONG lContext,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryVolumesSupportedForSnapshots(This,ProviderId,lContext,ppEnum);
+}
+static FORCEINLINE HRESULT IVssSnapshotMgmt_QuerySnapshotsByVolume(IVssSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_ID ProviderId,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->QuerySnapshotsByVolume(This,pwszVolumeName,ProviderId,ppEnum);
+}
+#endif
#endif
-#undef INTERFACE
-#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt
-/*IID_IVssDifferentialSoftwareSnapshotMgmt is defined as 214A0F28-B737-4026-B847-4F9E37D79529*/
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
-DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt,IUnknown)
+
+
+#endif /* __IVssSnapshotMgmt_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssSnapshotMgmt2 interface
+ */
+#ifndef __IVssSnapshotMgmt2_INTERFACE_DEFINED__
+#define __IVssSnapshotMgmt2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0f61ec39-fe82-45f2-a3f0-768b5d427102")
+IVssSnapshotMgmt2 : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE GetMinDiffAreaSize(
+ LONGLONG *pllMinDiffAreaSize) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssSnapshotMgmt2, 0x0f61ec39, 0xfe82, 0x45f2, 0xa3,0xf0, 0x76,0x8b,0x5d,0x42,0x71,0x02)
+#endif
+#else
+typedef struct IVssSnapshotMgmt2Vtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssSnapshotMgmt2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssSnapshotMgmt2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssSnapshotMgmt2 *This);
- /* IVssDifferentialSoftwareSnapshotMgmt methods */
- STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,Opmun08NotUsedOnWire)(THIS) PURE; /* Reserved */
+ /*** IVssSnapshotMgmt2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetMinDiffAreaSize)(
+ IVssSnapshotMgmt2 *This,
+ LONGLONG *pllMinDiffAreaSize);
END_INTERFACE
+} IVssSnapshotMgmt2Vtbl;
+
+interface IVssSnapshotMgmt2 {
+ CONST_VTBL IVssSnapshotMgmt2Vtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssSnapshotMgmt2 methods ***/
+#define IVssSnapshotMgmt2_GetMinDiffAreaSize(This,pllMinDiffAreaSize) (This)->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssSnapshotMgmt2_QueryInterface(IVssSnapshotMgmt2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssSnapshotMgmt2_AddRef(IVssSnapshotMgmt2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssSnapshotMgmt2_Release(IVssSnapshotMgmt2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssSnapshotMgmt2 methods ***/
+static FORCEINLINE HRESULT IVssSnapshotMgmt2_GetMinDiffAreaSize(IVssSnapshotMgmt2* This,LONGLONG *pllMinDiffAreaSize) {
+ return This->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssSnapshotMgmt2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssDifferentialSoftwareSnapshotMgmt interface
+ */
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("214a0f28-b737-4026-b847-4f9e37d79529")
+IVssDifferentialSoftwareSnapshotMgmt : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE AddDiffArea(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSize(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryVolumesSupportedForDiffAreas(
+ VSS_PWSZ pwszOriginalVolumeName,
+ IVssEnumMgmtObject **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForVolume(
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasOnVolume(
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryDiffAreasForSnapshot(
+ VSS_ID SnapshotId,
+ IVssEnumMgmtObject **ppEnum) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt, 0x214a0f28, 0xb737, 0x4026, 0xb8,0x47, 0x4f,0x9e,0x37,0xd7,0x95,0x29)
+#endif
+#else
+typedef struct IVssDifferentialSoftwareSnapshotMgmtVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssDifferentialSoftwareSnapshotMgmt *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssDifferentialSoftwareSnapshotMgmt *This);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_PWSZ pwszOriginalVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
+ IVssDifferentialSoftwareSnapshotMgmt *This,
+ VSS_ID SnapshotId,
+ IVssEnumMgmtObject **ppEnum);
+
+ END_INTERFACE
+} IVssDifferentialSoftwareSnapshotMgmtVtbl;
+
+interface IVssDifferentialSoftwareSnapshotMgmt {
+ CONST_VTBL IVssDifferentialSoftwareSnapshotMgmtVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssDifferentialSoftwareSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssDifferentialSoftwareSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
-#define IVssDifferentialSoftwareSnapshotMgmt_Opmun08NotUsedOnWire(This)
-#endif /*COBJMACROS*/
-
-#if (_WIN32_WINNT >= 0x0600)
-#undef INTERFACE
-#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt2
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt2,IVssDifferentialSoftwareSnapshotMgmt)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_AddRef(IVssDifferentialSoftwareSnapshotMgmt* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt_Release(IVssDifferentialSoftwareSnapshotMgmt* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssDifferentialSoftwareSnapshotMgmt_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssDifferentialSoftwareSnapshotMgmt2 interface
+ */
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("949d7353-675f-4275-8969-f044c6277815")
+IVssDifferentialSoftwareSnapshotMgmt2 : public IVssDifferentialSoftwareSnapshotMgmt
{
+ virtual HRESULT STDMETHODCALLTYPE ChangeDiffAreaMaximumSizeEx(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace,
+ WINBOOL bVolatile) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MigrateDiffAreas(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ VSS_PWSZ pwszNewDiffAreaVolumeName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryMigrationStatus(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ IVssAsync **ppAsync) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSnapshotPriority(
+ VSS_ID idSnapshot,
+ BYTE priority) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt2, 0x949d7353, 0x675f, 0x4275, 0x89,0x69, 0xf0,0x44,0xc6,0x27,0x78,0x15)
+#endif
+#else
+typedef struct IVssDifferentialSoftwareSnapshotMgmt2Vtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssDifferentialSoftwareSnapshotMgmt methods */
- STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE;
-
- /* IVssDifferentialSoftwareSnapshotMgmt2 methods */
- STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSizeEx)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) PURE;
- STDMETHOD_(HRESULT,MigrateDiffAreas)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,QueryMigrationStatus)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,SetSnapshotPriority)(THIS) PURE; /*Unsupported*/
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszOriginalVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_ID SnapshotId,
+ IVssEnumMgmtObject **ppEnum);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace,
+ WINBOOL bVolatile);
+
+ HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ VSS_PWSZ pwszNewDiffAreaVolumeName);
+
+ HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)(
+ IVssDifferentialSoftwareSnapshotMgmt2 *This,
+ VSS_ID idSnapshot,
+ BYTE priority);
END_INTERFACE
+} IVssDifferentialSoftwareSnapshotMgmt2Vtbl;
+
+interface IVssDifferentialSoftwareSnapshotMgmt2 {
+ CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt2Vtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssDifferentialSoftwareSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssDifferentialSoftwareSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
+/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile)
-#define IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas() (This)->lpVtbl->MigrateDiffAreas(This)
-#define IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus() (This)->lpVtbl->QueryMigrationStatus(This)
-#define IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority() (This)->lpVtbl->SetSnapshotPriority(This)
-#endif /*COBJMACROS*/
-
-#undef INTERFACE
-#define INTERFACE IVssDifferentialSoftwareSnapshotMgmt3
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssDifferentialSoftwareSnapshotMgmt3,IVssDifferentialSoftwareSnapshotMgmt2)
+#define IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName)
+#define IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync)
+#define IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_AddRef(IVssDifferentialSoftwareSnapshotMgmt2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt2_Release(IVssDifferentialSoftwareSnapshotMgmt2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) {
+ return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) {
+ return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt2_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt2* This,VSS_ID idSnapshot,BYTE priority) {
+ return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssDifferentialSoftwareSnapshotMgmt2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssDifferentialSoftwareSnapshotMgmt3 interface
+ */
+#ifndef __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__
+#define __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("383f7e71-a4c5-401f-b27f-f826289f8458")
+IVssDifferentialSoftwareSnapshotMgmt3 : public IVssDifferentialSoftwareSnapshotMgmt2
{
+ virtual HRESULT STDMETHODCALLTYPE SetVolumeProtectLevel(
+ VSS_PWSZ pwszVolumeName,
+ VSS_PROTECTION_LEVEL protectionLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetVolumeProtectLevel(
+ VSS_PWSZ pwszVolumeName,
+ VSS_VOLUME_PROTECTION_INFO *protectionLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ClearVolumeProtectFault(
+ VSS_PWSZ pwszVolumeName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeleteUnusedDiffAreas(
+ VSS_PWSZ pwszDiffAreaVolumeName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QuerySnapshotDeltaBitmap(
+ VSS_ID idSnapshotOlder,
+ VSS_ID idSnapshotYounger,
+ ULONG *pcBlockSizePerBit,
+ ULONG *pcBitmapLength,
+ BYTE **ppbBitmap) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssDifferentialSoftwareSnapshotMgmt3, 0x383f7e71, 0xa4c5, 0x401f, 0xb2,0x7f, 0xf8,0x26,0x28,0x9f,0x84,0x58)
+#endif
+#else
+typedef struct IVssDifferentialSoftwareSnapshotMgmt3Vtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssDifferentialSoftwareSnapshotMgmt methods */
- STDMETHOD_(HRESULT,AddDiffArea)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSize)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) PURE;
- STDMETHOD_(HRESULT,QueryVolumesSupportedForDiffAreas)(THIS_ VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasOnVolume)(THIS_ VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,QueryDiffAreasForSnapshot)(THIS_ VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) PURE;
-
- /* IVssDifferentialSoftwareSnapshotMgmt2 methods */
- STDMETHOD_(HRESULT,ChangeDiffAreaMaximumSizeEx)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) PURE;
- STDMETHOD_(HRESULT,MigrateDiffAreas)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,QueryMigrationStatus)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,SetSnapshotPriority)(THIS) PURE; /*Unsupported*/
-
- /* IVssDifferentialSoftwareSnapshotMgmt3 methods */
- STDMETHOD_(HRESULT,SetVolumeProtectLevel)(THIS_ VSS_PWSZ pwszVolumeName,VSS_PROTECTION_LEVEL protectionLevel) PURE;
- STDMETHOD_(HRESULT,GetVolumeProtectLevel)(THIS_ VSS_PWSZ pwszVolumeName,VSS_VOLUME_PROTECTION_INFO *protectionLevel) PURE;
- STDMETHOD_(HRESULT,ClearVolumeProtectFault)(THIS_ VSS_PWSZ pwszVolumeName) PURE;
- STDMETHOD_(HRESULT,DeleteUnusedDiffAreas)(THIS_ VSS_PWSZ pwszDiffAreaVolumeName) PURE;
- STDMETHOD_(HRESULT,QuerySnapshotDeltaBitmap)(THIS) PURE; /*Unsupported*/
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddDiffArea)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSize)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace);
+
+ HRESULT (STDMETHODCALLTYPE *QueryVolumesSupportedForDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszOriginalVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasOnVolume)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ IVssEnumMgmtObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *QueryDiffAreasForSnapshot)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_ID SnapshotId,
+ IVssEnumMgmtObject **ppEnum);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *ChangeDiffAreaMaximumSizeEx)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ LONGLONG llMaximumDiffSpace,
+ WINBOOL bVolatile);
+
+ HRESULT (STDMETHODCALLTYPE *MigrateDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ VSS_PWSZ pwszNewDiffAreaVolumeName);
+
+ HRESULT (STDMETHODCALLTYPE *QueryMigrationStatus)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PWSZ pwszDiffAreaVolumeName,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *SetSnapshotPriority)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_ID idSnapshot,
+ BYTE priority);
+
+ /*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetVolumeProtectLevel)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_PROTECTION_LEVEL protectionLevel);
+
+ HRESULT (STDMETHODCALLTYPE *GetVolumeProtectLevel)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName,
+ VSS_VOLUME_PROTECTION_INFO *protectionLevel);
+
+ HRESULT (STDMETHODCALLTYPE *ClearVolumeProtectFault)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszVolumeName);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteUnusedDiffAreas)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_PWSZ pwszDiffAreaVolumeName);
+
+ HRESULT (STDMETHODCALLTYPE *QuerySnapshotDeltaBitmap)(
+ IVssDifferentialSoftwareSnapshotMgmt3 *This,
+ VSS_ID idSnapshotOlder,
+ VSS_ID idSnapshotYounger,
+ ULONG *pcBlockSizePerBit,
+ ULONG *pcBitmapLength,
+ BYTE **ppbBitmap);
END_INTERFACE
+} IVssDifferentialSoftwareSnapshotMgmt3Vtbl;
+
+interface IVssDifferentialSoftwareSnapshotMgmt3 {
+ CONST_VTBL IVssDifferentialSoftwareSnapshotMgmt3Vtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssDifferentialSoftwareSnapshotMgmt3_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssDifferentialSoftwareSnapshotMgmt3_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace) (This)->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace)
#define IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum) (This)->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum) (This)->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum)
#define IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum) (This)->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum)
+/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile) (This)->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile)
-#define IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas() (This)->lpVtbl->MigrateDiffAreas(This)
-#define IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus() (This)->lpVtbl->QueryMigrationStatus(This)
-#define IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority() (This)->lpVtbl->SetSnapshotPriority(This)
+#define IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName) (This)->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName)
+#define IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync) (This)->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync)
+#define IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(This,idSnapshot,priority) (This)->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority)
+/*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
#define IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel)
#define IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel) (This)->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel)
#define IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(This,pwszVolumeName) (This)->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName)
#define IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName) (This)->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName)
-#define IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap() (This)->lpVtbl->QuerySnapshotDeltaBitmap(This)
-#endif /*COBJMACROS*/
-
-#undef INTERFACE
-#define INTERFACE IVssEnumMgmtObject
-/*IID_IVssEnumMgmtObject is defined as 01954E6B-9254-4e6e-808C-C9E05D007696*/
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssEnumMgmtObject,IUnknown)
+#define IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap) (This)->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryInterface(IVssDifferentialSoftwareSnapshotMgmt3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_AddRef(IVssDifferentialSoftwareSnapshotMgmt3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssDifferentialSoftwareSnapshotMgmt3_Release(IVssDifferentialSoftwareSnapshotMgmt3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_AddDiffArea(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->AddDiffArea(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSize(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace) {
+ return This->lpVtbl->ChangeDiffAreaMaximumSize(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryVolumesSupportedForDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszOriginalVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryVolumesSupportedForDiffAreas(This,pwszOriginalVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasOnVolume(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasOnVolume(This,pwszVolumeName,ppEnum);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryDiffAreasForSnapshot(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID SnapshotId,IVssEnumMgmtObject **ppEnum) {
+ return This->lpVtbl->QueryDiffAreasForSnapshot(This,SnapshotId,ppEnum);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt2 methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ChangeDiffAreaMaximumSizeEx(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,LONGLONG llMaximumDiffSpace,WINBOOL bVolatile) {
+ return This->lpVtbl->ChangeDiffAreaMaximumSizeEx(This,pwszVolumeName,pwszDiffAreaVolumeName,llMaximumDiffSpace,bVolatile);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_MigrateDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,VSS_PWSZ pwszNewDiffAreaVolumeName) {
+ return This->lpVtbl->MigrateDiffAreas(This,pwszVolumeName,pwszDiffAreaVolumeName,pwszNewDiffAreaVolumeName);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QueryMigrationStatus(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PWSZ pwszDiffAreaVolumeName,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryMigrationStatus(This,pwszVolumeName,pwszDiffAreaVolumeName,ppAsync);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetSnapshotPriority(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshot,BYTE priority) {
+ return This->lpVtbl->SetSnapshotPriority(This,idSnapshot,priority);
+}
+/*** IVssDifferentialSoftwareSnapshotMgmt3 methods ***/
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_SetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_PROTECTION_LEVEL protectionLevel) {
+ return This->lpVtbl->SetVolumeProtectLevel(This,pwszVolumeName,protectionLevel);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_GetVolumeProtectLevel(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName,VSS_VOLUME_PROTECTION_INFO *protectionLevel) {
+ return This->lpVtbl->GetVolumeProtectLevel(This,pwszVolumeName,protectionLevel);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_ClearVolumeProtectFault(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszVolumeName) {
+ return This->lpVtbl->ClearVolumeProtectFault(This,pwszVolumeName);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_DeleteUnusedDiffAreas(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_PWSZ pwszDiffAreaVolumeName) {
+ return This->lpVtbl->DeleteUnusedDiffAreas(This,pwszDiffAreaVolumeName);
+}
+static FORCEINLINE HRESULT IVssDifferentialSoftwareSnapshotMgmt3_QuerySnapshotDeltaBitmap(IVssDifferentialSoftwareSnapshotMgmt3* This,VSS_ID idSnapshotOlder,VSS_ID idSnapshotYounger,ULONG *pcBlockSizePerBit,ULONG *pcBitmapLength,BYTE **ppbBitmap) {
+ return This->lpVtbl->QuerySnapshotDeltaBitmap(This,idSnapshotOlder,idSnapshotYounger,pcBlockSizePerBit,pcBitmapLength,ppbBitmap);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssDifferentialSoftwareSnapshotMgmt3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssEnumMgmtObject interface
+ */
+#ifndef __IVssEnumMgmtObject_INTERFACE_DEFINED__
+#define __IVssEnumMgmtObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("01954e6b-9254-4e6e-808c-c9e05d007696")
+IVssEnumMgmtObject : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ VSS_MGMT_OBJECT_PROP *rgelt,
+ ULONG *pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IVssEnumMgmtObject **ppenum) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssEnumMgmtObject, 0x01954e6b, 0x9254, 0x4e6e, 0x80,0x8c, 0xc9,0xe0,0x5d,0x00,0x76,0x96)
+#endif
+#else
+typedef struct IVssEnumMgmtObjectVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssEnumMgmtObject *This,
+ REFIID riid,
+ void **ppvObject);
- /* IVssEnumMgmtObject methods */
- STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt,VSS_MGMT_OBJECT_PROP *rgelt,ULONG *pceltFetched) PURE;
- STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE;
- STDMETHOD_(HRESULT,Reset)(THIS) PURE;
- STDMETHOD_(HRESULT,Clone)(THIS_ IVssEnumMgmtObject **ppenum) PURE;
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssEnumMgmtObject *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssEnumMgmtObject *This);
+
+ /*** IVssEnumMgmtObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IVssEnumMgmtObject *This,
+ ULONG celt,
+ VSS_MGMT_OBJECT_PROP *rgelt,
+ ULONG *pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IVssEnumMgmtObject *This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IVssEnumMgmtObject *This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IVssEnumMgmtObject *This,
+ IVssEnumMgmtObject **ppenum);
END_INTERFACE
+} IVssEnumMgmtObjectVtbl;
+
+interface IVssEnumMgmtObject {
+ CONST_VTBL IVssEnumMgmtObjectVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssEnumMgmtObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssEnumMgmtObject_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssEnumMgmtObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssEnumMgmtObject methods ***/
#define IVssEnumMgmtObject_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
#define IVssEnumMgmtObject_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
-#define IVssEnumMgmtObject_Reset() (This)->lpVtbl->Reset(This)
+#define IVssEnumMgmtObject_Reset(This) (This)->lpVtbl->Reset(This)
#define IVssEnumMgmtObject_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
-#endif /*COBJMACROS*/
-
-#endif /* (_WIN32_WINNT >= 0x0600) */
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssEnumMgmtObject_QueryInterface(IVssEnumMgmtObject* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssEnumMgmtObject_AddRef(IVssEnumMgmtObject* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssEnumMgmtObject_Release(IVssEnumMgmtObject* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssEnumMgmtObject methods ***/
+static FORCEINLINE HRESULT IVssEnumMgmtObject_Next(IVssEnumMgmtObject* This,ULONG celt,VSS_MGMT_OBJECT_PROP *rgelt,ULONG *pceltFetched) {
+ return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static FORCEINLINE HRESULT IVssEnumMgmtObject_Skip(IVssEnumMgmtObject* This,ULONG celt) {
+ return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IVssEnumMgmtObject_Reset(IVssEnumMgmtObject* This) {
+ return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IVssEnumMgmtObject_Clone(IVssEnumMgmtObject* This,IVssEnumMgmtObject **ppenum) {
+ return This->lpVtbl->Clone(This,ppenum);
+}
+#endif
+#endif
-#undef INTERFACE
-#define INTERFACE IVssSnapshotMgmt
-/*IID_IVssSnapshotMgmt is defined as FA7DF749-66E7-4986-A27F-E2F04AE53772*/
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
-DECLARE_INTERFACE_(IVssSnapshotMgmt,IUnknown)
-{
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- /* IVssSnapshotMgmt methods */
- STDMETHOD_(HRESULT,GetProviderMgmtInterface)(THIS_ VSS_ID ProviderId,REFIID InterfaceId,IUnknown **ppItf) PURE;
- STDMETHOD_(HRESULT,QueryVolumesSupportedForSnapshots)(THIS) PURE; /*Unsupported*/
- STDMETHOD_(HRESULT,QuerySnapshotsByVolume)(THIS) PURE; /*Unsupported*/
+#endif /* __IVssEnumMgmtObject_INTERFACE_DEFINED__ */
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IVssSnapshotMgmt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssSnapshotMgmt_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssSnapshotMgmt_Release(This) (This)->lpVtbl->Release(This)
-#define IVssSnapshotMgmt_GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf) (This)->lpVtbl->GetProviderMgmtInterface(This,ProviderId,InterfaceId,ppItf)
-#define IVssSnapshotMgmt_QueryVolumesSupportedForSnapshots() (This)->lpVtbl->QueryVolumesSupportedForSnapshots(This)
-#define IVssSnapshotMgmt_QuerySnapshotsByVolume() (This)->lpVtbl->QuerySnapshotsByVolume(This)
-#endif /*COBJMACROS*/
+#ifndef __VSMGMT_LIBRARY_DEFINED__
+#define __VSMGMT_LIBRARY_DEFINED__
-#undef INTERFACE
-#define INTERFACE IVssSnapshotMgmt2
-DECLARE_INTERFACE_(IVssSnapshotMgmt2,IUnknown)
-{
- BEGIN_INTERFACE
+DEFINE_GUID(LIBID_VSMGMT, 0x84015c41, 0x291d, 0x49e6, 0xbf,0x7f, 0xdd,0x40,0xae,0x93,0x63,0x2b);
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+/*****************************************************************************
+ * VssSnapshotMgmt coclass
+ */
- /* IVssSnapshotMgmt2 methods */
- STDMETHOD_(HRESULT,GetMinDiffAreaSize)(THIS_ LONGLONG *pllMinDiffAreaSize) PURE;
+DEFINE_GUID(CLSID_VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f);
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IVssSnapshotMgmt2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssSnapshotMgmt2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssSnapshotMgmt2_Release(This) (This)->lpVtbl->Release(This)
-#define IVssSnapshotMgmt2_GetMinDiffAreaSize(This,pllMinDiffAreaSize) (This)->lpVtbl->GetMinDiffAreaSize(This,pllMinDiffAreaSize)
-#endif /*COBJMACROS*/
+#ifdef __cplusplus
+class DECLSPEC_UUID("0b5a2c52-3eb9-470a-96e2-6c6d4570e40f") VssSnapshotMgmt;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(VssSnapshotMgmt, 0x0b5a2c52, 0x3eb9, 0x470a, 0x96,0xe2, 0x6c,0x6d,0x45,0x70,0xe4,0x0f)
+#endif
+#endif
+
+#endif /* __VSMGMT_LIBRARY_DEFINED__ */
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
-#endif /*_INC_VSMGT*/
+#endif /* __vsmgmt_h__ */
lib/libc/include/any-windows-any/vsprov.h
@@ -1,130 +1,408 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_VSPROV
-#define _INC_VSPROV
+/*** Autogenerated by WIDL 7.0 from include/vsprov.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __vsprov_h__
+#define __vsprov_h__
+
+/* Forward declarations */
+
+#ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__
+#define __IVssSoftwareSnapshotProvider_FWD_DEFINED__
+typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider;
+#ifdef __cplusplus
+interface IVssSoftwareSnapshotProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__
+#define __IVssProviderCreateSnapshotSet_FWD_DEFINED__
+typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet;
+#ifdef __cplusplus
+interface IVssProviderCreateSnapshotSet;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssProviderNotifications_FWD_DEFINED__
+#define __IVssProviderNotifications_FWD_DEFINED__
+typedef interface IVssProviderNotifications IVssProviderNotifications;
+#ifdef __cplusplus
+interface IVssProviderNotifications;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__
+#define __IVssHardwareSnapshotProvider_FWD_DEFINED__
+typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider;
+#ifdef __cplusplus
+interface IVssHardwareSnapshotProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
+#define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
+typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx;
+#ifdef __cplusplus
+interface IVssHardwareSnapshotProviderEx;
+#endif /* __cplusplus */
+#endif
+#ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__
+#define __IVssFileShareSnapshotProvider_FWD_DEFINED__
+typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider;
+#ifdef __cplusplus
+interface IVssFileShareSnapshotProvider;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
#include <vss.h>
-#include <vds.h>
-#undef INTERFACE
-#define INTERFACE IVssHardwareSnapshotProvider
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssHardwareSnapshotProvider,IUnknown)
+#include <vdslun.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IVssSnapshotProvider_FWD_DEFINED__
+#define __IVssSnapshotProvider_FWD_DEFINED__
+typedef interface IVssSnapshotProvider IVssSnapshotProvider;
+#ifdef __cplusplus
+interface IVssSnapshotProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssProviderNotifications_FWD_DEFINED__
+#define __IVssProviderNotifications_FWD_DEFINED__
+typedef interface IVssProviderNotifications IVssProviderNotifications;
+#ifdef __cplusplus
+interface IVssProviderNotifications;
+#endif /* __cplusplus */
+#endif
+
+typedef VSS_PWSZ *PVSS_PWSZ;
+/*****************************************************************************
+ * IVssSoftwareSnapshotProvider interface
+ */
+#ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
+#define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff")
+IVssSoftwareSnapshotProvider : public IUnknown
{
- BEGIN_INTERFACE
+ virtual HRESULT STDMETHODCALLTYPE SetContext(
+ LONG lContext) = 0;
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties(
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp) = 0;
- /* IVssHardwareSnapshotProvider methods */
- STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE;
- STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE;
- STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE;
- STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE;
- STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE;
- STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE;
+ virtual HRESULT STDMETHODCALLTYPE Query(
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum) = 0;
- END_INTERFACE
-};
-#ifdef COBJMACROS
-#define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
-#define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
-#define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
-#define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
-#define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
-#define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
-#endif /*COBJMACROS*/
+ virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots(
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ VSS_PWSZ pwszVolumeName,
+ LONG lNewContext) = 0;
-#undef INTERFACE
-#define INTERFACE IVssHardwareSnapshotProviderEx
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+ virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported(
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSupportedByThisProvider) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsVolumeSnapshotted(
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSnapshotsPresent,
+ LONG *plSnapshotCompatibility) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty(
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
+ VARIANT vProperty) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot(
+ VSS_ID SnapshotId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus(
+ VSS_PWSZ pwszVolume,
+ IVssAsync **ppAsync) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff)
#endif
-DECLARE_INTERFACE_(IVssHardwareSnapshotProviderEx,IVssHardwareSnapshotProvider)
-{
+#else
+typedef struct IVssSoftwareSnapshotProviderVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssHardwareSnapshotProvider methods */
- STDMETHOD_(HRESULT,AreLunsSupported)(THIS_ LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) PURE;
- STDMETHOD_(HRESULT,FillInLunInfo)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) PURE;
- STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) PURE;
- STDMETHOD_(HRESULT,GetTargetLuns)(THIS_ LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) PURE;
- STDMETHOD_(HRESULT,LocateLuns)(THIS_ LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) PURE;
- STDMETHOD_(HRESULT,OnLunEmpty)(THIS_ VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) PURE;
-
- /* IVssHardwareSnapshotProviderEx methods */
- STDMETHOD_(HRESULT,GetProviderCapabilities)(THIS) PURE;
- STDMETHOD_(HRESULT,OnLunStateChange)(THIS_ VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) PURE;
- STDMETHOD_(HRESULT,OnReuseLuns)(THIS) PURE;
- STDMETHOD_(HRESULT,ResyncLuns)(THIS_ VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssSoftwareSnapshotProvider *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssSoftwareSnapshotProvider *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssSoftwareSnapshotProvider *This);
+
+ /*** IVssSoftwareSnapshotProvider methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetContext)(
+ IVssSoftwareSnapshotProvider *This,
+ LONG lContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp);
+
+ HRESULT (STDMETHODCALLTYPE *Query)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID);
+
+ HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ VSS_PWSZ pwszVolumeName,
+ LONG lNewContext);
+
+ HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSupportedByThisProvider);
+
+ HRESULT (STDMETHODCALLTYPE *IsVolumeSnapshotted)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_PWSZ pwszVolumeName,
+ WINBOOL *pbSnapshotsPresent,
+ LONG *plSnapshotCompatibility);
+
+ HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
+ VARIANT vProperty);
+
+ HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_ID SnapshotId);
+
+ HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
+ IVssSoftwareSnapshotProvider *This,
+ VSS_PWSZ pwszVolume,
+ IVssAsync **ppAsync);
END_INTERFACE
+} IVssSoftwareSnapshotProviderVtbl;
+
+interface IVssSoftwareSnapshotProvider {
+ CONST_VTBL IVssSoftwareSnapshotProviderVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
-#define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This)
-#define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
-#define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
-#define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
-#define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
-#define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
-#define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
-#define IVssHardwareSnapshotProviderEx_GetProviderCapabilities() (This)->lpVtbl->GetProviderCapabilities(This)
-#define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags)
-#define IVssHardwareSnapshotProviderEx_OnReuseLuns() (This)->lpVtbl->OnReuseLuns(This)
-#define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync)
-#endif /*COBJMACROS*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssSoftwareSnapshotProvider methods ***/
+#define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext)
+#define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider)
+#define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility)
+#define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
+#define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId)
+#define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssSoftwareSnapshotProvider methods ***/
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_Query(IVssSoftwareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_DeleteSnapshots(IVssSoftwareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) {
+ return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
+ return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_SetSnapshotProperty(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) {
+ return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) {
+ return This->lpVtbl->RevertToSnapshot(This,SnapshotId);
+}
+static FORCEINLINE HRESULT IVssSoftwareSnapshotProvider_QueryRevertStatus(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
+ return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
+}
+#endif
+#endif
-#undef INTERFACE
-#define INTERFACE IVssProviderCreateSnapshotSet
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
-DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown)
+
+
+#endif /* __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssProviderCreateSnapshotSet interface
+ */
+#ifndef __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__
+#define __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c")
+IVssProviderCreateSnapshotSet : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE EndPrepareSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PreCommitSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CommitSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PostCommitSnapshots(
+ VSS_ID SnapshotSetId,
+ LONG lSnapshotsCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PreFinalCommitSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE PostFinalCommitSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AbortSnapshots(
+ VSS_ID SnapshotSetId) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c)
+#endif
+#else
+typedef struct IVssProviderCreateSnapshotSetVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssProviderCreateSnapshotSet *This,
+ REFIID riid,
+ void **ppvObject);
- /* IVssProviderCreateSnapshotSet methods */
- STDMETHOD_(HRESULT,EndPrepareSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,PreCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,CommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,PostCommitSnapshots)(THIS_ VSS_ID SnapshotSetId,LONG lSnapshotsCount) PURE;
- STDMETHOD_(HRESULT,PreFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,PostFinalCommitSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
- STDMETHOD_(HRESULT,AbortSnapshots)(THIS_ VSS_ID SnapshotSetId) PURE;
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssProviderCreateSnapshotSet *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssProviderCreateSnapshotSet *This);
+
+ /*** IVssProviderCreateSnapshotSet methods ***/
+ HRESULT (STDMETHODCALLTYPE *EndPrepareSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *PreCommitSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *CommitSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *PostCommitSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId,
+ LONG lSnapshotsCount);
+
+ HRESULT (STDMETHODCALLTYPE *PreFinalCommitSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *PostFinalCommitSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
+
+ HRESULT (STDMETHODCALLTYPE *AbortSnapshots)(
+ IVssProviderCreateSnapshotSet *This,
+ VSS_ID SnapshotSetId);
END_INTERFACE
+} IVssProviderCreateSnapshotSetVtbl;
+
+interface IVssProviderCreateSnapshotSet {
+ CONST_VTBL IVssProviderCreateSnapshotSetVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssProviderCreateSnapshotSet methods ***/
#define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId)
#define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId)
#define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId)
@@ -132,77 +410,698 @@ DECLARE_INTERFACE_(IVssProviderCreateSnapshotSet,IUnknown)
#define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId)
#define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId)
#define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId)
-#endif /*COBJMACROS*/
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssProviderCreateSnapshotSet methods ***/
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->CommitSnapshots(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) {
+ return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId);
+}
+static FORCEINLINE HRESULT IVssProviderCreateSnapshotSet_AbortSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
+ return This->lpVtbl->AbortSnapshots(This,SnapshotSetId);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssProviderNotifications interface
+ */
+#ifndef __IVssProviderNotifications_INTERFACE_DEFINED__
+#define __IVssProviderNotifications_INTERFACE_DEFINED__
-#undef INTERFACE
-#define INTERFACE IVssProviderNotifications
-DECLARE_INTERFACE_(IVssProviderNotifications,IUnknown)
+DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004")
+IVssProviderNotifications : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE OnLoad(
+ IUnknown *pCallback) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnUnload(
+ WINBOOL bForceUnload) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04)
+#endif
+#else
+typedef struct IVssProviderNotificationsVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssProviderNotifications *This,
+ REFIID riid,
+ void **ppvObject);
- /* IVssProviderNotifications methods */
- STDMETHOD_(HRESULT,OnLoad)(THIS_ IUnknown *pCallback) PURE;
- STDMETHOD_(HRESULT,OnUnload)(THIS_ WINBOOL bForceUnload) PURE;
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssProviderNotifications *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssProviderNotifications *This);
+
+ /*** IVssProviderNotifications methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnLoad)(
+ IVssProviderNotifications *This,
+ IUnknown *pCallback);
+
+ HRESULT (STDMETHODCALLTYPE *OnUnload)(
+ IVssProviderNotifications *This,
+ WINBOOL bForceUnload);
END_INTERFACE
+} IVssProviderNotificationsVtbl;
+
+interface IVssProviderNotifications {
+ CONST_VTBL IVssProviderNotificationsVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssProviderNotifications methods ***/
#define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback)
#define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload)
-#endif /*COBJMACROS*/
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssProviderNotifications methods ***/
+static FORCEINLINE HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) {
+ return This->lpVtbl->OnLoad(This,pCallback);
+}
+static FORCEINLINE HRESULT IVssProviderNotifications_OnUnload(IVssProviderNotifications* This,WINBOOL bForceUnload) {
+ return This->lpVtbl->OnUnload(This,bForceUnload);
+}
+#endif
+#endif
-#undef INTERFACE
-#define INTERFACE IVssSoftwareSnapshotProvider
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
-DECLARE_INTERFACE_(IVssSoftwareSnapshotProvider,IUnknown)
+
+
+#endif /* __IVssProviderNotifications_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssHardwareSnapshotProvider interface
+ */
+#ifndef __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__
+#define __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10")
+IVssHardwareSnapshotProvider : public IUnknown
{
+ virtual HRESULT STDMETHODCALLTYPE AreLunsSupported(
+ LONG lLunCount,
+ LONG lContext,
+ VSS_PWSZ *rgwszDevices,
+ VDS_LUN_INFORMATION *pLunInformation,
+ WINBOOL *pbIsSupported) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FillInLunInfo(
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pLunInfo,
+ WINBOOL *pbIsSupported) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ LONG lContext,
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgLunInformation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTargetLuns(
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgSourceLuns,
+ VDS_LUN_INFORMATION *rgDestinationLuns) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LocateLuns(
+ LONG lLunCount,
+ VDS_LUN_INFORMATION *rgSourceLuns) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnLunEmpty(
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pInformation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10)
+#endif
+#else
+typedef struct IVssHardwareSnapshotProviderVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssSoftwareSnapshotProvider methods */
- STDMETHOD_(HRESULT,SetContext)(THIS_ LONG lContext) PURE;
- STDMETHOD_(HRESULT,GetSnapshotProperties)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) PURE;
- STDMETHOD_(HRESULT,Query)(THIS_ VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) PURE;
- STDMETHOD_(HRESULT,DeleteSnapshots)(THIS_ VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) PURE;
- STDMETHOD_(HRESULT,BeginPrepareSnapshot)(THIS_ VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) PURE;
- STDMETHOD_(HRESULT,IsVolumeSupported)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) PURE;
- STDMETHOD_(HRESULT,IsVolumeSnapshotted)(THIS_ VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) PURE;
- STDMETHOD_(HRESULT,SetSnapshotProperty)(THIS_ VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) PURE;
- STDMETHOD_(HRESULT,RevertToSnapshot)(THIS_ VSS_ID SnapshotId) PURE;
- STDMETHOD_(HRESULT,QueryRevertStatus)(THIS_ VSS_PWSZ pwszVolume,IVssAsync **ppAsync) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssHardwareSnapshotProvider *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssHardwareSnapshotProvider *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssHardwareSnapshotProvider *This);
+
+ /*** IVssHardwareSnapshotProvider methods ***/
+ HRESULT (STDMETHODCALLTYPE *AreLunsSupported)(
+ IVssHardwareSnapshotProvider *This,
+ LONG lLunCount,
+ LONG lContext,
+ VSS_PWSZ *rgwszDevices,
+ VDS_LUN_INFORMATION *pLunInformation,
+ WINBOOL *pbIsSupported);
+
+ HRESULT (STDMETHODCALLTYPE *FillInLunInfo)(
+ IVssHardwareSnapshotProvider *This,
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pLunInfo,
+ WINBOOL *pbIsSupported);
+
+ HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
+ IVssHardwareSnapshotProvider *This,
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ LONG lContext,
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgLunInformation);
+
+ HRESULT (STDMETHODCALLTYPE *GetTargetLuns)(
+ IVssHardwareSnapshotProvider *This,
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgSourceLuns,
+ VDS_LUN_INFORMATION *rgDestinationLuns);
+
+ HRESULT (STDMETHODCALLTYPE *LocateLuns)(
+ IVssHardwareSnapshotProvider *This,
+ LONG lLunCount,
+ VDS_LUN_INFORMATION *rgSourceLuns);
+
+ HRESULT (STDMETHODCALLTYPE *OnLunEmpty)(
+ IVssHardwareSnapshotProvider *This,
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pInformation);
END_INTERFACE
+} IVssHardwareSnapshotProviderVtbl;
+
+interface IVssHardwareSnapshotProvider {
+ CONST_VTBL IVssHardwareSnapshotProviderVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
-#define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
-#define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
-#define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
-#define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
-#define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
-#define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext)
-#define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider)
-#define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility)
-#define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
-#define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId)
-#define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
-#endif /*COBJMACROS*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssHardwareSnapshotProvider methods ***/
+#define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
+#define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
+#define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
+#define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
+#define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
+#define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssHardwareSnapshotProvider methods ***/
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_AreLunsSupported(IVssHardwareSnapshotProvider* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) {
+ return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_FillInLunInfo(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) {
+ return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_BeginPrepareSnapshot(IVssHardwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) {
+ return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_GetTargetLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) {
+ return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
+ return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProvider_OnLunEmpty(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) {
+ return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssHardwareSnapshotProviderEx interface
+ */
+#ifndef __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__
+#define __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd")
+IVssHardwareSnapshotProviderEx : public IVssHardwareSnapshotProvider
+{
+ virtual HRESULT STDMETHODCALLTYPE GetProviderCapabilities(
+ ULONGLONG *pllOriginalCapabilityMask) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnLunStateChange(
+ VDS_LUN_INFORMATION *pSnapshotLuns,
+ VDS_LUN_INFORMATION *pOriginalLuns,
+ DWORD dwCount,
+ DWORD dwFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ResyncLuns(
+ VDS_LUN_INFORMATION *pSourceLuns,
+ VDS_LUN_INFORMATION *pTargetLuns,
+ DWORD dwCount,
+ IVssAsync **ppAsync) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnReuseLuns(
+ VDS_LUN_INFORMATION *pSnapshotLuns,
+ VDS_LUN_INFORMATION *pOriginalLuns,
+ DWORD dwCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd)
+#endif
+#else
+typedef struct IVssHardwareSnapshotProviderExVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssHardwareSnapshotProviderEx *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssHardwareSnapshotProviderEx *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssHardwareSnapshotProviderEx *This);
+
+ /*** IVssHardwareSnapshotProvider methods ***/
+ HRESULT (STDMETHODCALLTYPE *AreLunsSupported)(
+ IVssHardwareSnapshotProviderEx *This,
+ LONG lLunCount,
+ LONG lContext,
+ VSS_PWSZ *rgwszDevices,
+ VDS_LUN_INFORMATION *pLunInformation,
+ WINBOOL *pbIsSupported);
+
+ HRESULT (STDMETHODCALLTYPE *FillInLunInfo)(
+ IVssHardwareSnapshotProviderEx *This,
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pLunInfo,
+ WINBOOL *pbIsSupported);
+
+ HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
+ IVssHardwareSnapshotProviderEx *This,
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ LONG lContext,
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgLunInformation);
+
+ HRESULT (STDMETHODCALLTYPE *GetTargetLuns)(
+ IVssHardwareSnapshotProviderEx *This,
+ LONG lLunCount,
+ VSS_PWSZ *rgDeviceNames,
+ VDS_LUN_INFORMATION *rgSourceLuns,
+ VDS_LUN_INFORMATION *rgDestinationLuns);
+
+ HRESULT (STDMETHODCALLTYPE *LocateLuns)(
+ IVssHardwareSnapshotProviderEx *This,
+ LONG lLunCount,
+ VDS_LUN_INFORMATION *rgSourceLuns);
+
+ HRESULT (STDMETHODCALLTYPE *OnLunEmpty)(
+ IVssHardwareSnapshotProviderEx *This,
+ VSS_PWSZ wszDeviceName,
+ VDS_LUN_INFORMATION *pInformation);
+
+ /*** IVssHardwareSnapshotProviderEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetProviderCapabilities)(
+ IVssHardwareSnapshotProviderEx *This,
+ ULONGLONG *pllOriginalCapabilityMask);
+
+ HRESULT (STDMETHODCALLTYPE *OnLunStateChange)(
+ IVssHardwareSnapshotProviderEx *This,
+ VDS_LUN_INFORMATION *pSnapshotLuns,
+ VDS_LUN_INFORMATION *pOriginalLuns,
+ DWORD dwCount,
+ DWORD dwFlags);
+
+ HRESULT (STDMETHODCALLTYPE *ResyncLuns)(
+ IVssHardwareSnapshotProviderEx *This,
+ VDS_LUN_INFORMATION *pSourceLuns,
+ VDS_LUN_INFORMATION *pTargetLuns,
+ DWORD dwCount,
+ IVssAsync **ppAsync);
+
+ HRESULT (STDMETHODCALLTYPE *OnReuseLuns)(
+ IVssHardwareSnapshotProviderEx *This,
+ VDS_LUN_INFORMATION *pSnapshotLuns,
+ VDS_LUN_INFORMATION *pOriginalLuns,
+ DWORD dwCount);
+
+ END_INTERFACE
+} IVssHardwareSnapshotProviderExVtbl;
+
+interface IVssHardwareSnapshotProviderEx {
+ CONST_VTBL IVssHardwareSnapshotProviderExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssHardwareSnapshotProvider methods ***/
+#define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
+#define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
+#define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
+#define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
+#define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
+#define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
+/*** IVssHardwareSnapshotProviderEx methods ***/
+#define IVssHardwareSnapshotProviderEx_GetProviderCapabilities(This,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask)
+#define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags)
+#define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync)
+#define IVssHardwareSnapshotProviderEx_OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) (This)->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssHardwareSnapshotProvider methods ***/
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_AreLunsSupported(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) {
+ return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_FillInLunInfo(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) {
+ return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(IVssHardwareSnapshotProviderEx* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) {
+ return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_GetTargetLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) {
+ return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
+ return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnLunEmpty(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) {
+ return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation);
+}
+/*** IVssHardwareSnapshotProviderEx methods ***/
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) {
+ return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnLunStateChange(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) {
+ return This->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_ResyncLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) {
+ return This->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync);
+}
+static FORCEINLINE HRESULT IVssHardwareSnapshotProviderEx_OnReuseLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount) {
+ return This->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssFileShareSnapshotProvider interface
+ */
+#ifndef __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__
+#define __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66")
+IVssFileShareSnapshotProvider : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetContext(
+ LONG lContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties(
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Query(
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots(
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ VSS_PWSZ pwszSharePath,
+ LONG lNewContext,
+ VSS_ID ProviderId) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsPathSupported(
+ VSS_PWSZ pwszSharePath,
+ WINBOOL *pbSupportedByThisProvider) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsPathSnapshotted(
+ VSS_PWSZ pwszSharePath,
+ WINBOOL *pbSnapshotsPresent,
+ LONG *plSnapshotCompatibility) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty(
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
+ VARIANT vProperty) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66)
+#endif
+#else
+typedef struct IVssFileShareSnapshotProviderVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssFileShareSnapshotProvider *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssFileShareSnapshotProvider *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssFileShareSnapshotProvider *This);
+
+ /*** IVssFileShareSnapshotProvider methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetContext)(
+ IVssFileShareSnapshotProvider *This,
+ LONG lContext);
+
+ HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROP *pProp);
+
+ HRESULT (STDMETHODCALLTYPE *Query)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_ID QueriedObjectId,
+ VSS_OBJECT_TYPE eQueriedObjectType,
+ VSS_OBJECT_TYPE eReturnedObjectsType,
+ IVssEnumObject **ppEnum);
+
+ HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_ID SourceObjectId,
+ VSS_OBJECT_TYPE eSourceObjectType,
+ WINBOOL bForceDelete,
+ LONG *plDeletedSnapshots,
+ VSS_ID *pNondeletedSnapshotID);
+
+ HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_ID SnapshotSetId,
+ VSS_ID SnapshotId,
+ VSS_PWSZ pwszSharePath,
+ LONG lNewContext,
+ VSS_ID ProviderId);
+
+ HRESULT (STDMETHODCALLTYPE *IsPathSupported)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_PWSZ pwszSharePath,
+ WINBOOL *pbSupportedByThisProvider);
+
+ HRESULT (STDMETHODCALLTYPE *IsPathSnapshotted)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_PWSZ pwszSharePath,
+ WINBOOL *pbSnapshotsPresent,
+ LONG *plSnapshotCompatibility);
+
+ HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)(
+ IVssFileShareSnapshotProvider *This,
+ VSS_ID SnapshotId,
+ VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
+ VARIANT vProperty);
+
+ END_INTERFACE
+} IVssFileShareSnapshotProviderVtbl;
+
+interface IVssFileShareSnapshotProvider {
+ CONST_VTBL IVssFileShareSnapshotProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssFileShareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssFileShareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssFileShareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssFileShareSnapshotProvider methods ***/
+#define IVssFileShareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
+#define IVssFileShareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
+#define IVssFileShareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
+#define IVssFileShareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
+#define IVssFileShareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId)
+#define IVssFileShareSnapshotProvider_IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) (This)->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider)
+#define IVssFileShareSnapshotProvider_IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility)
+#define IVssFileShareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssFileShareSnapshotProvider methods ***/
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) {
+ return This->lpVtbl->SetContext(This,lContext);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
+ return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_Query(IVssFileShareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
+ return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_DeleteSnapshots(IVssFileShareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
+ return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_BeginPrepareSnapshot(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszSharePath,LONG lNewContext,VSS_ID ProviderId) {
+ return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) {
+ return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
+ return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility);
+}
+static FORCEINLINE HRESULT IVssFileShareSnapshotProvider_SetSnapshotProperty(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) {
+ return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ */
+
+#ifndef __VSSProvider_LIBRARY_DEFINED__
+#define __VSSProvider_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_VSSProvider, 0x73c8b4c1, 0x6e9d, 0x4fc2, 0xb3,0x04, 0x03,0x0e,0xc7,0x63,0xfe,0x81);
+
+#endif /* __VSSProvider_LIBRARY_DEFINED__ */
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER VARIANT_UserSize (ULONG *, ULONG, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserMarshal (ULONG *, unsigned char *, VARIANT *);
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
+void __RPC_USER VARIANT_UserFree (ULONG *, VARIANT *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
-#endif /*_INC_VSPROV*/
+#endif /* __vsprov_h__ */
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__
lib/libc/include/any-windows-any/vswriter.h
@@ -1,348 +1,813 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
-#ifndef _INC_VSWRITER
-#define _INC_VSWRITER
-
- typedef enum VSS_COMPONENT_FLAGS {
- VSS_CF_BACKUP_RECOVERY = 0x00000001,
- VSS_CF_APP_ROLLBACK_RECOVERY = 0x00000002,
- VSS_CF_NOT_SYSTEM_STATE = 0x00000004
- } VSS_COMPONENT_FLAGS;
-
- /* http://msdn.microsoft.com/en-us/library/aa384976%28v=VS.85%29.aspx */
- typedef enum VSS_USAGE_TYPE {
- VSS_UT_UNDEFINED = 0,
- VSS_UT_BOOTABLESYSTEMSTATE = 1,
- VSS_UT_SYSTEMSERVICE = 2,
- VSS_UT_USERDATA = 3,
- VSS_UT_OTHER = 4
- } VSS_USAGE_TYPE;
+/*** Autogenerated by WIDL 7.0 from include/vswriter.idl - Do not edit ***/
-typedef enum VSS_ALTERNATE_WRITER_STATE {
- VSS_AWS_UNDEFINED = 0,
- VSS_AWS_NO_ALTERNATE_WRITER = 1,
- VSS_AWS_ALTERNATE_WRITER_EXISTS = 2,
- VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3
-} VSS_ALTERNATE_WRITER_STATE;
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
-typedef enum VSS_COMPONENT_TYPE {
- VSS_CT_UNDEFINED = 0,
- VSS_CT_DATABASE = 1,
- VSS_CT_FILEGROUP = 2
-} VSS_COMPONENT_TYPE;
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
-typedef enum VSS_FILE_RESTORE_STATUS {
- VSS_RS_UNDEFINED = 0,
- VSS_RS_NONE = 1,
- VSS_RS_ALL = 2,
- VSS_RS_FAILED = 3
-} VSS_FILE_RESTORE_STATUS;
+#ifndef __vswriter_h__
+#define __vswriter_h__
-typedef enum VSS_RESTORE_TARGET {
- VSS_RT_UNDEFINED = 0,
- VSS_RT_ORIGINAL = 1,
- VSS_RT_ALTERNATE = 2,
- VSS_RT_DIRECTED = 3,
- VSS_RT_ORIGINAL_LOCATION = 4
-} VSS_RESTORE_TARGET;
+/* Forward declarations */
-typedef enum VSS_RESTOREMETHOD_ENUM {
- VSS_RME_UNDEFINED = 0,
- VSS_RME_RESTORE_IF_NOT_THERE = 1,
- VSS_RME_RESTORE_IF_CAN_REPLACE = 2,
- VSS_RME_STOP_RESTORE_START = 3,
- VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4,
- VSS_RME_RESTORE_AT_REBOOT = 5,
- VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6,
- VSS_RME_CUSTOM = 7,
- VSS_RME_RESTORE_STOP_START = 8
-} VSS_RESTOREMETHOD_ENUM;
+#ifndef __IVssWMFiledesc_FWD_DEFINED__
+#define __IVssWMFiledesc_FWD_DEFINED__
+typedef interface IVssWMFiledesc IVssWMFiledesc;
+#ifdef __cplusplus
+interface IVssWMFiledesc;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssWMDependency_FWD_DEFINED__
+#define __IVssWMDependency_FWD_DEFINED__
+typedef interface IVssWMDependency IVssWMDependency;
+#ifdef __cplusplus
+interface IVssWMDependency;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssComponent_FWD_DEFINED__
+#define __IVssComponent_FWD_DEFINED__
+typedef interface IVssComponent IVssComponent;
+#ifdef __cplusplus
+interface IVssComponent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssWriterComponents_FWD_DEFINED__
+#define __IVssWriterComponents_FWD_DEFINED__
+typedef interface IVssWriterComponents IVssWriterComponents;
+#ifdef __cplusplus
+interface IVssWriterComponents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssComponentEx_FWD_DEFINED__
+#define __IVssComponentEx_FWD_DEFINED__
+typedef interface IVssComponentEx IVssComponentEx;
+#ifdef __cplusplus
+interface IVssComponentEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssComponentEx2_FWD_DEFINED__
+#define __IVssComponentEx2_FWD_DEFINED__
+typedef interface IVssComponentEx2 IVssComponentEx2;
+#ifdef __cplusplus
+interface IVssComponentEx2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssCreateWriterMetadata_FWD_DEFINED__
+#define __IVssCreateWriterMetadata_FWD_DEFINED__
+typedef interface IVssCreateWriterMetadata IVssCreateWriterMetadata;
+#ifdef __cplusplus
+interface IVssCreateWriterMetadata;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssCreateWriterMetadataEx_FWD_DEFINED__
+#define __IVssCreateWriterMetadataEx_FWD_DEFINED__
+typedef interface IVssCreateWriterMetadataEx IVssCreateWriterMetadataEx;
+#ifdef __cplusplus
+interface IVssCreateWriterMetadataEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssWriterImpl_FWD_DEFINED__
+#define __IVssWriterImpl_FWD_DEFINED__
+typedef interface IVssWriterImpl IVssWriterImpl;
+#ifdef __cplusplus
+interface IVssWriterImpl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssCreateExpressWriterMetadata_FWD_DEFINED__
+#define __IVssCreateExpressWriterMetadata_FWD_DEFINED__
+typedef interface IVssCreateExpressWriterMetadata IVssCreateExpressWriterMetadata;
+#ifdef __cplusplus
+interface IVssCreateExpressWriterMetadata;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVssExpressWriter_FWD_DEFINED__
+#define __IVssExpressWriter_FWD_DEFINED__
+typedef interface IVssExpressWriter IVssExpressWriter;
+#ifdef __cplusplus
+interface IVssExpressWriter;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <vss.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#include "vsserror.h"
+typedef enum VSS_USAGE_TYPE {
+ VSS_UT_UNDEFINED = 0,
+ VSS_UT_BOOTABLESYSTEMSTATE = 1,
+ VSS_UT_SYSTEMSERVICE = 2,
+ VSS_UT_USERDATA = 3,
+ VSS_UT_OTHER = 4
+} VSS_USAGE_TYPE;
typedef enum VSS_SOURCE_TYPE {
- VSS_ST_UNDEFINED = 0,
- VSS_ST_TRANSACTEDDB = 1,
- VSS_ST_NONTRANSACTEDDB = 2,
- VSS_ST_OTHER = 3
+ VSS_ST_UNDEFINED = 0,
+ VSS_ST_TRANSACTEDDB = 1,
+ VSS_ST_NONTRANSACTEDDB = 2,
+ VSS_ST_OTHER = 3
} VSS_SOURCE_TYPE;
-
+typedef enum VSS_RESTOREMETHOD_ENUM {
+ VSS_RME_UNDEFINED = 0,
+ VSS_RME_RESTORE_IF_NOT_THERE = 1,
+ VSS_RME_RESTORE_IF_CAN_REPLACE = 2,
+ VSS_RME_STOP_RESTORE_START = 3,
+ VSS_RME_RESTORE_TO_ALTERNATE_LOCATION = 4,
+ VSS_RME_RESTORE_AT_REBOOT = 5,
+ VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE = 6,
+ VSS_RME_CUSTOM = 7,
+ VSS_RME_RESTORE_STOP_START = 8
+} VSS_RESTOREMETHOD_ENUM;
+typedef enum VSS_WRITERRESTORE_ENUM {
+ VSS_WRE_UNDEFINED = 0,
+ VSS_WRE_NEVER = 1,
+ VSS_WRE_IF_REPLACE_FAILS = 2,
+ VSS_WRE_ALWAYS = 3
+} VSS_WRITERRESTORE_ENUM;
+typedef enum VSS_COMPONENT_TYPE {
+ VSS_CT_UNDEFINED = 0,
+ VSS_CT_DATABASE = 1,
+ VSS_CT_FILEGROUP = 2
+} VSS_COMPONENT_TYPE;
+typedef enum VSS_ALTERNATE_WRITER_STATE {
+ VSS_AWS_UNDEFINED = 0,
+ VSS_AWS_NO_ALTERNATE_WRITER = 1,
+ VSS_AWS_ALTERNATE_WRITER_EXISTS = 2,
+ VSS_AWS_THIS_IS_ALTERNATE_WRITER = 3
+} VSS_ALTERNATE_WRITER_STATE;
typedef enum VSS_SUBSCRIBE_MASK {
- VSS_SM_POST_SNAPSHOT_FLAG = 0x00000001,
- VSS_SM_BACKUP_EVENTS_FLAG = 0x00000002,
- VSS_SM_RESTORE_EVENTS_FLAG = 0x00000004,
- VSS_SM_IO_THROTTLING_FLAG = 0x00000008,
- VSS_SM_ALL_FLAGS = 0xffffffff
+ VSS_SM_POST_SNAPSHOT_FLAG = 0x1,
+ VSS_SM_BACKUP_EVENTS_FLAG = 0x2,
+ VSS_SM_RESTORE_EVENTS_FLAG = 0x4,
+ VSS_SM_IO_THROTTLING_FLAG = 0x8,
+ VSS_SM_ALL_FLAGS = 0xffffffff
} VSS_SUBSCRIBE_MASK;
+typedef enum VSS_RESTORE_TARGET {
+ VSS_RT_UNDEFINED = 0,
+ VSS_RT_ORIGINAL = 1,
+ VSS_RT_ALTERNATE = 2,
+ VSS_RT_DIRECTED = 3,
+ VSS_RT_ORIGINAL_LOCATION = 4
+} VSS_RESTORE_TARGET;
+typedef enum VSS_FILE_RESTORE_STATUS {
+ VSS_RS_UNDEFINED = 0,
+ VSS_RS_NONE = 1,
+ VSS_RS_ALL = 2,
+ VSS_RS_FAILED = 3
+} VSS_FILE_RESTORE_STATUS;
+typedef enum VSS_COMPONENT_FLAGS {
+ VSS_CF_BACKUP_RECOVERY = 0x1,
+ VSS_CF_APP_ROLLBACK_RECOVERY = 0x2,
+ VSS_CF_NOT_SYSTEM_STATE = 0x4
+} VSS_COMPONENT_FLAGS;
+#ifndef __IVssExamineWriterMetadata_FWD_DEFINED__
+#define __IVssExamineWriterMetadata_FWD_DEFINED__
+typedef interface IVssExamineWriterMetadata IVssExamineWriterMetadata;
+#ifdef __cplusplus
+interface IVssExamineWriterMetadata;
+#endif /* __cplusplus */
+#endif
-typedef enum VSS_WRITERRESTORE_ENUM {
- VSS_WRE_UNDEFINED = 0,
- VSS_WRE_NEVER = 1,
- VSS_WRE_IF_REPLACE_FAILS = 2,
- VSS_WRE_ALWAYS = 3
-} VSS_WRITERRESTORE_ENUM;
+/*****************************************************************************
+ * IVssWMFiledesc interface
+ */
+#ifndef __IVssWMFiledesc_INTERFACE_DEFINED__
+#define __IVssWMFiledesc_INTERFACE_DEFINED__
-#include <vss.h>
+DEFINE_GUID(IID_IVssWMFiledesc, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
+IVssWMFiledesc : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetPath(
+ BSTR *pbstrPath) = 0;
-#if (_WIN32_WINNT >= 0x601)
-HRESULT WINAPI CreateVssExpressWriterInternal(
- IVssExpressWriter **ppWriter
-);
+ virtual HRESULT STDMETHODCALLTYPE GetFilespec(
+ BSTR *pbstrFilespec) = 0;
-FORCEINLINE
-HRESULT WINAPI CreateVssExpressWriter(
- IVssExpressWriter **ppWriter
-){return CreateVssExpressWriterInternal(ppWriter);}
+ virtual HRESULT STDMETHODCALLTYPE GetRecursive(
+ boolean *pbRecursive) = 0;
-#undef INTERFACE
-#define INTERFACE IVssCreateExpressWriterMetadata
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+ virtual HRESULT STDMETHODCALLTYPE 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
-DECLARE_INTERFACE_(IVssCreateExpressWriterMetadata,IUnknown)
-{
+#else
+typedef struct IVssWMFiledescVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssWMFiledesc *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssWMFiledesc *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssWMFiledesc *This);
+
+ /*** IVssWMFiledesc methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPath)(
+ IVssWMFiledesc *This,
+ BSTR *pbstrPath);
+
+ HRESULT (STDMETHODCALLTYPE *GetFilespec)(
+ IVssWMFiledesc *This,
+ BSTR *pbstrFilespec);
- /* IVssCreateExpressWriterMetadata methods */
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE;
- STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE;
- STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE;
- STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE;
+ HRESULT (STDMETHODCALLTYPE *GetRecursive)(
+ IVssWMFiledesc *This,
+ boolean *pbRecursive);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlternateLocation)(
+ IVssWMFiledesc *This,
+ BSTR *pbstrAlternateLocation);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupTypeMask)(
+ IVssWMFiledesc *This,
+ DWORD *pdwTypeMask);
END_INTERFACE
+} IVssWMFiledescVtbl;
+
+interface IVssWMFiledesc {
+ CONST_VTBL IVssWMFiledescVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
-#define IVssCreateExpressWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssCreateExpressWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssCreateExpressWriterMetadata_Release(This) (This)->lpVtbl->Release(This)
-#define IVssCreateExpressWriterMetadata_AddComponent(This,componentType,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,componentType,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
-#define IVssCreateExpressWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
-#define IVssCreateExpressWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
-#define IVssCreateExpressWriterMetadata_SetBackupSchema(This,dsSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dsSchemaMask)
-#define IVssCreateExpressWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,wreWriterRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,wreWriterRestore,bRebootRequired)
-#endif /*COBJMACROS*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssWMFiledesc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssWMFiledesc_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssWMFiledesc_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssWMFiledesc methods ***/
+#define IVssWMFiledesc_GetPath(This,pbstrPath) (This)->lpVtbl->GetPath(This,pbstrPath)
+#define IVssWMFiledesc_GetFilespec(This,pbstrFilespec) (This)->lpVtbl->GetFilespec(This,pbstrFilespec)
+#define IVssWMFiledesc_GetRecursive(This,pbRecursive) (This)->lpVtbl->GetRecursive(This,pbRecursive)
+#define IVssWMFiledesc_GetAlternateLocation(This,pbstrAlternateLocation) (This)->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation)
+#define IVssWMFiledesc_GetBackupTypeMask(This,pdwTypeMask) (This)->lpVtbl->GetBackupTypeMask(This,pdwTypeMask)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssWMFiledesc_QueryInterface(IVssWMFiledesc* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssWMFiledesc_AddRef(IVssWMFiledesc* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssWMFiledesc_Release(IVssWMFiledesc* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssWMFiledesc methods ***/
+static FORCEINLINE HRESULT IVssWMFiledesc_GetPath(IVssWMFiledesc* This,BSTR *pbstrPath) {
+ return This->lpVtbl->GetPath(This,pbstrPath);
+}
+static FORCEINLINE HRESULT IVssWMFiledesc_GetFilespec(IVssWMFiledesc* This,BSTR *pbstrFilespec) {
+ return This->lpVtbl->GetFilespec(This,pbstrFilespec);
+}
+static FORCEINLINE HRESULT IVssWMFiledesc_GetRecursive(IVssWMFiledesc* This,boolean *pbRecursive) {
+ return This->lpVtbl->GetRecursive(This,pbRecursive);
+}
+static FORCEINLINE HRESULT IVssWMFiledesc_GetAlternateLocation(IVssWMFiledesc* This,BSTR *pbstrAlternateLocation) {
+ return This->lpVtbl->GetAlternateLocation(This,pbstrAlternateLocation);
+}
+static FORCEINLINE HRESULT IVssWMFiledesc_GetBackupTypeMask(IVssWMFiledesc* This,DWORD *pdwTypeMask) {
+ return This->lpVtbl->GetBackupTypeMask(This,pdwTypeMask);
+}
+#endif
+#endif
-#endif /*(_WIN32_WINNT >= 0x601)*/
+#endif
-#ifdef __cplusplus
-/* Is a C++ interface instead of a COM */
-#undef INTERFACE
-#define INTERFACE IVssCreateWriterMetadata
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssCreateWriterMetadata,IUnknown)
-{
- BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssCreateWriterMetadata methods */
- STDMETHOD_(HRESULT,AddAlternateLocationMapping)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE;
- STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE;
- STDMETHOD_(HRESULT,AddDatabaseFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddDatabaseLogFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE;
- STDMETHOD_(HRESULT,AddFilesToFileGroup)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszAlternatePath,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddIncludeFiles)(THIS) PURE;
- STDMETHOD_(HRESULT,GetDocument)(THIS) PURE;
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE;
- STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE;
+#endif /* __IVssWMFiledesc_INTERFACE_DEFINED__ */
- END_INTERFACE
-};
+/*****************************************************************************
+ * IVssWMDependency interface
+ */
+#ifndef __IVssWMDependency_INTERFACE_DEFINED__
+#define __IVssWMDependency_INTERFACE_DEFINED__
-#if (_WIN32_WINNT >= 0x600)
-#undef INTERFACE
-#define INTERFACE IVssCreateWriterMetadataEx
-DECLARE_INTERFACE_(IVssCreateWriterMetadataEx,IVssCreateWriterMetadata)
+DEFINE_GUID(IID_IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
+IVssWMDependency : public IUnknown
{
- BEGIN_INTERFACE
+ virtual HRESULT STDMETHODCALLTYPE GetWriterId(
+ VSS_ID *pWriterId) = 0;
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssCreateWriterMetadata methods */
- STDMETHOD_(HRESULT,AddAlternateLocationMapping)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszDestination) PURE;
- STDMETHOD_(HRESULT,AddComponent)(THIS_ VSS_COMPONENT_TYPE componentType,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,BOOLEAN bRestoreMetadata,BOOLEAN bNotifyOnBackupComplete,BOOLEAN bSelectable,BOOLEAN bSelectableForRestore,DWORD dwComponentFlags) PURE;
- STDMETHOD_(HRESULT,AddComponentDependency)(THIS_ LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) PURE;
- STDMETHOD_(HRESULT,AddDatabaseFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddDatabaseLogFiles)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddExcludeFiles)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE;
- STDMETHOD_(HRESULT,AddFilesToFileGroup)(THIS_ LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive,LPCWSTR wszAlternatePath,DWORD dwBackupTypeMask) PURE;
- STDMETHOD_(HRESULT,AddIncludeFiles)(THIS) PURE; /*Not supported*/
- STDMETHOD_(HRESULT,GetDocument)(THIS) PURE; /*Not supported*/
- STDMETHOD_(HRESULT,SaveAsXML)(THIS_ BSTR *pbstrXML) PURE;
- STDMETHOD_(HRESULT,SetBackupSchema)(THIS_ DWORD dsSchemaMask) PURE;
- STDMETHOD_(HRESULT,SetRestoreMethod)(THIS_ VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM wreWriterRestore,BOOLEAN bRebootRequired) PURE;
-
- /* IVssCreateWriterMetadataEx methods */
- STDMETHOD_(HRESULT,AddExcludeFilesFromSnapshot)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,BOOLEAN bRecursive) PURE;
+ virtual HRESULT STDMETHODCALLTYPE GetLogicalPath(
+ BSTR *pbstrLogicalPath) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetComponentName(
+ BSTR *pbstrComponentName) = 0;
- END_INTERFACE
};
-#endif /*(_WIN32_WINNT >= 0x600)*/
-#endif /*__cplusplus*/
-
-#if (_WIN32_WINNT >= 0x601)
-#undef INTERFACE
-#define INTERFACE IVssExpressWriter
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssExpressWriter,IUnknown)
-{
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssWMDependency, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
+#endif
+#else
+typedef struct IVssWMDependencyVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssWMDependency *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssWMDependency *This);
- /* IVssExpressWriter methods */
- STDMETHOD_(HRESULT,CreateMetadata)(THIS_ VSS_ID writerId,LPCWSTR writerName,VSS_USAGE_TYPE usageType,DWORD versionMajor,DWORD versionMinor,DWORD reserved,IVssCreateWriterMetadataEx **ppMetadata) PURE;
- STDMETHOD_(HRESULT,Load)(THIS_ LPCWSTR metadata,DWORD reserved) PURE;
- STDMETHOD_(HRESULT,Register)(THIS) PURE;
- STDMETHOD_(HRESULT,Unregister)(THIS_ VSS_ID writerId) PURE;
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssWMDependency *This);
+
+ /*** IVssWMDependency methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetWriterId)(
+ IVssWMDependency *This,
+ VSS_ID *pWriterId);
+
+ HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
+ IVssWMDependency *This,
+ BSTR *pbstrLogicalPath);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponentName)(
+ IVssWMDependency *This,
+ BSTR *pbstrComponentName);
END_INTERFACE
+} IVssWMDependencyVtbl;
+
+interface IVssWMDependency {
+ CONST_VTBL IVssWMDependencyVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
-#define IVssExpressWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVssExpressWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVssExpressWriter_Release(This) (This)->lpVtbl->Release(This)
-#define IVssExpressWriter_CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) (This)->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata)
-#define IVssExpressWriter_Load(This,metadata,reserved) (This)->lpVtbl->Load(This,metadata,reserved)
-#define IVssExpressWriter_Register() (This)->lpVtbl->Register(This)
-#define IVssExpressWriter_Unregister(This,writerId) (This)->lpVtbl->Unregister(This,writerId)
-#endif /*COBJMACROS*/
-#endif /*(_WIN32_WINNT >= 0x601)*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssWMDependency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssWMDependency_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssWMDependency_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssWMDependency methods ***/
+#define IVssWMDependency_GetWriterId(This,pWriterId) (This)->lpVtbl->GetWriterId(This,pWriterId)
+#define IVssWMDependency_GetLogicalPath(This,pbstrLogicalPath) (This)->lpVtbl->GetLogicalPath(This,pbstrLogicalPath)
+#define IVssWMDependency_GetComponentName(This,pbstrComponentName) (This)->lpVtbl->GetComponentName(This,pbstrComponentName)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssWMDependency_QueryInterface(IVssWMDependency* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssWMDependency_AddRef(IVssWMDependency* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssWMDependency_Release(IVssWMDependency* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssWMDependency methods ***/
+static FORCEINLINE HRESULT IVssWMDependency_GetWriterId(IVssWMDependency* This,VSS_ID *pWriterId) {
+ return This->lpVtbl->GetWriterId(This,pWriterId);
+}
+static FORCEINLINE HRESULT IVssWMDependency_GetLogicalPath(IVssWMDependency* This,BSTR *pbstrLogicalPath) {
+ return This->lpVtbl->GetLogicalPath(This,pbstrLogicalPath);
+}
+static FORCEINLINE HRESULT IVssWMDependency_GetComponentName(IVssWMDependency* This,BSTR *pbstrComponentName) {
+ return This->lpVtbl->GetComponentName(This,pbstrComponentName);
+}
+#endif
+#endif
-#ifdef __cplusplus
-/* Is a C++ interface instead of a COM */
-#undef INTERFACE
-#define INTERFACE IVssWriterComponents
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssWriterComponents,IUnknown)
+#endif
+
+
+#endif /* __IVssWMDependency_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssComponent interface
+ */
+#ifndef __IVssComponent_INTERFACE_DEFINED__
+#define __IVssComponent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssComponent, 0xd2c72c96, 0xc121, 0x4518, 0xb6,0x27, 0xe5,0xa9,0x3d,0x01,0x0e,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d2c72c96-c121-4518-b627-e5a93d010ead")
+IVssComponent : public IUnknown
{
- BEGIN_INTERFACE
+ virtual HRESULT STDMETHODCALLTYPE GetLogicalPath(
+ BSTR *pbstrPath) = 0;
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ virtual HRESULT STDMETHODCALLTYPE GetComponentType(
+ VSS_COMPONENT_TYPE *pct) = 0;
- /* IVssWriterComponents methods */
- STDMETHOD_(HRESULT,GetComponent)(THIS_ UINT iComponent,IVssComponent **ppComponent) PURE;
- STDMETHOD_(HRESULT,GetComponentCount)(THIS_ UINT *pcComponents) PURE;
- STDMETHOD_(HRESULT,GetWriterInfo)(THIS_ VSS_ID *pidInstance,VSS_ID *pidWriter) PURE;
+ virtual HRESULT STDMETHODCALLTYPE GetComponentName(
+ BSTR *pbstrName) = 0;
- END_INTERFACE
-};
-#endif /*__cplusplus*/
+ virtual HRESULT STDMETHODCALLTYPE GetBackupSucceeded(
+ boolean *pbSucceeded) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMappingCount(
+ UINT *pcMappings) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAlternateLocationMapping(
+ UINT iMapping,
+ IVssWMFiledesc **ppFiledesc) = 0;
-#undef INTERFACE
-#define INTERFACE IVssComponent
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
+ virtual HRESULT STDMETHODCALLTYPE 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
-DECLARE_INTERFACE_(IVssComponent,IUnknown)
-{
+#else
+typedef struct IVssComponentVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssComponent methods */
- STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE;
- STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE;
- STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE;
- STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE;
- STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE;
- STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE;
- STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE;
- STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE;
- STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE;
- STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE;
- STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE;
- STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE;
- STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE;
- STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE;
- STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssComponent *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssComponent *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssComponent *This);
+
+ /*** IVssComponent methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
+ IVssComponent *This,
+ BSTR *pbstrPath);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponentType)(
+ IVssComponent *This,
+ VSS_COMPONENT_TYPE *pct);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponentName)(
+ IVssComponent *This,
+ BSTR *pbstrName);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)(
+ IVssComponent *This,
+ boolean *pbSucceeded);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)(
+ IVssComponent *This,
+ UINT *pcMappings);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
+ IVssComponent *This,
+ UINT iMapping,
+ IVssWMFiledesc **ppFiledesc);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)(
+ IVssComponent *This,
+ LPCWSTR wszData);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)(
+ IVssComponent *This,
+ BSTR *pbstrData);
+
+ HRESULT (STDMETHODCALLTYPE *AddPartialFile)(
+ IVssComponent *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilename,
+ LPCWSTR wszRanges,
+ LPCWSTR wszMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)(
+ IVssComponent *This,
+ UINT *pcPartialFiles);
+
+ HRESULT (STDMETHODCALLTYPE *GetPartialFile)(
+ IVssComponent *This,
+ UINT iPartialFile,
+ BSTR *pbstrPath,
+ BSTR *pbstrFilename,
+ BSTR *pbstrRange,
+ BSTR *pbstrMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)(
+ IVssComponent *This,
+ boolean *pbSelectedForRestore);
+
+ HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)(
+ IVssComponent *This,
+ boolean *pbAdditionalRestores);
+
+ HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)(
+ IVssComponent *This,
+ UINT *pcNewTarget);
+
+ HRESULT (STDMETHODCALLTYPE *GetNewTarget)(
+ IVssComponent *This,
+ UINT iNewTarget,
+ IVssWMFiledesc **ppFiledesc);
+
+ HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)(
+ IVssComponent *This,
+ LPCWSTR wszSourcePath,
+ LPCWSTR wszSourceFilename,
+ LPCWSTR wszSourceRangeList,
+ LPCWSTR wszDestinationPath,
+ LPCWSTR wszDestinationFilename,
+ LPCWSTR wszDestinationRangeList);
+
+ HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)(
+ IVssComponent *This,
+ UINT *pcDirectedTarget);
+
+ HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)(
+ IVssComponent *This,
+ UINT iDirectedTarget,
+ BSTR *pbstrSourcePath,
+ BSTR *pbstrSourceFileName,
+ BSTR *pbstrSourceRangeList,
+ BSTR *pbstrDestinationPath,
+ BSTR *pbstrDestinationFilename,
+ BSTR *pbstrDestinationRangeList);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)(
+ IVssComponent *This,
+ LPCWSTR wszRestoreMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)(
+ IVssComponent *This,
+ BSTR *pbstrRestoreMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)(
+ IVssComponent *This,
+ VSS_RESTORE_TARGET target);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)(
+ IVssComponent *This,
+ VSS_RESTORE_TARGET *pTarget);
+
+ HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)(
+ IVssComponent *This,
+ LPCWSTR wszPreRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)(
+ IVssComponent *This,
+ BSTR *pbstrPreRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)(
+ IVssComponent *This,
+ LPCWSTR wszPostRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)(
+ IVssComponent *This,
+ BSTR *pbstrPostRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupStamp)(
+ IVssComponent *This,
+ LPCWSTR wszBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupStamp)(
+ IVssComponent *This,
+ BSTR *pbstrBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)(
+ IVssComponent *This,
+ BSTR *pbstrBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupOptions)(
+ IVssComponent *This,
+ BSTR *pbstrBackupOptions);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)(
+ IVssComponent *This,
+ BSTR *pbstrRestoreOptions);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)(
+ IVssComponent *This,
+ UINT *pcRestoreSubcomponent);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)(
+ IVssComponent *This,
+ UINT iComponent,
+ BSTR *pbstrLogicalPath,
+ BSTR *pbstrComponentName,
+ boolean *pbRepair);
+
+ HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)(
+ IVssComponent *This,
+ VSS_FILE_RESTORE_STATUS *pStatus);
+
+ HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)(
+ IVssComponent *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ WINBOOL bRecursive,
+ FILETIME ftLastModifyTime);
+
+ HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)(
+ IVssComponent *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ WINBOOL bRecursive,
+ BSTR bstrLsnString);
+
+ HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)(
+ IVssComponent *This,
+ UINT *pcDifferencedFiles);
+
+ HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)(
+ IVssComponent *This,
+ UINT iDifferencedFile,
+ BSTR *pbstrPath,
+ BSTR *pbstrFilespec,
+ WINBOOL *pbRecursive,
+ BSTR *pbstrLsnString,
+ FILETIME *pftLastModifyTime);
END_INTERFACE
+} IVssComponentVtbl;
+
+interface IVssComponent {
+ CONST_VTBL IVssComponentVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssComponent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssComponent_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssComponent_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssComponent methods ***/
#define IVssComponent_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath)
-#define IVssComponent_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
-#define IVssComponent_GetComponentName(This,pwszName) (This)->lpVtbl->GetComponentName(This,pwszName)
+#define IVssComponent_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct)
+#define IVssComponent_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName)
#define IVssComponent_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded)
#define IVssComponent_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings)
-#define IVssComponent_GetAlternateLocationMapping(This,iMapping,ppMapping) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppMapping)
-#define IVssComponent_SetBackupMetadata(This,bstrMetadata) (This)->lpVtbl->SetBackupMetadata(This,bstrMetadata)
-#define IVssComponent_GetBackupMetadata(This,pbstrMetadata) (This)->lpVtbl->GetBackupMetadata(This,pbstrMetadata)
+#define IVssComponent_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
+#define IVssComponent_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData)
+#define IVssComponent_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData)
#define IVssComponent_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata)
#define IVssComponent_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles)
#define IVssComponent_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata)
#define IVssComponent_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore)
#define IVssComponent_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores)
#define IVssComponent_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget)
-#define IVssComponent_GetNewTarget(This,iMapping,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iMapping,ppFiledesc)
+#define IVssComponent_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc)
#define IVssComponent_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList)
#define IVssComponent_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget)
#define IVssComponent_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList)
@@ -363,121 +828,548 @@ DECLARE_INTERFACE_(IVssComponent,IUnknown)
#define IVssComponent_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
#define IVssComponent_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
#define IVssComponent_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
-#define IVssComponent_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This)
+#define IVssComponent_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
#define IVssComponent_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
#define IVssComponent_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
-#endif /*COBJMACROS*/
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssComponent_QueryInterface(IVssComponent* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssComponent_AddRef(IVssComponent* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssComponent_Release(IVssComponent* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssComponent methods ***/
+static FORCEINLINE HRESULT IVssComponent_GetLogicalPath(IVssComponent* This,BSTR *pbstrPath) {
+ return This->lpVtbl->GetLogicalPath(This,pbstrPath);
+}
+static FORCEINLINE HRESULT IVssComponent_GetComponentType(IVssComponent* This,VSS_COMPONENT_TYPE *pct) {
+ return This->lpVtbl->GetComponentType(This,pct);
+}
+static FORCEINLINE HRESULT IVssComponent_GetComponentName(IVssComponent* This,BSTR *pbstrName) {
+ return This->lpVtbl->GetComponentName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IVssComponent_GetBackupSucceeded(IVssComponent* This,boolean *pbSucceeded) {
+ return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
+}
+static FORCEINLINE HRESULT IVssComponent_GetAlternateLocationMappingCount(IVssComponent* This,UINT *pcMappings) {
+ return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
+}
+static FORCEINLINE HRESULT IVssComponent_GetAlternateLocationMapping(IVssComponent* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponent_SetBackupMetadata(IVssComponent* This,LPCWSTR wszData) {
+ return This->lpVtbl->SetBackupMetadata(This,wszData);
+}
+static FORCEINLINE HRESULT IVssComponent_GetBackupMetadata(IVssComponent* This,BSTR *pbstrData) {
+ return This->lpVtbl->GetBackupMetadata(This,pbstrData);
+}
+static FORCEINLINE HRESULT IVssComponent_AddPartialFile(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
+ return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
+}
+static FORCEINLINE HRESULT IVssComponent_GetPartialFileCount(IVssComponent* This,UINT *pcPartialFiles) {
+ return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
+}
+static FORCEINLINE HRESULT IVssComponent_GetPartialFile(IVssComponent* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
+ return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
+}
+static FORCEINLINE HRESULT IVssComponent_IsSelectedForRestore(IVssComponent* This,boolean *pbSelectedForRestore) {
+ return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssComponent_GetAdditionalRestores(IVssComponent* This,boolean *pbAdditionalRestores) {
+ return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssComponent_GetNewTargetCount(IVssComponent* This,UINT *pcNewTarget) {
+ return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
+}
+static FORCEINLINE HRESULT IVssComponent_GetNewTarget(IVssComponent* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponent_AddDirectedTarget(IVssComponent* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
+ return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponent_GetDirectedTargetCount(IVssComponent* This,UINT *pcDirectedTarget) {
+ return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
+}
+static FORCEINLINE HRESULT IVssComponent_GetDirectedTarget(IVssComponent* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
+ return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponent_SetRestoreMetadata(IVssComponent* This,LPCWSTR wszRestoreMetadata) {
+ return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponent_GetRestoreMetadata(IVssComponent* This,BSTR *pbstrRestoreMetadata) {
+ return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponent_SetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET target) {
+ return This->lpVtbl->SetRestoreTarget(This,target);
+}
+static FORCEINLINE HRESULT IVssComponent_GetRestoreTarget(IVssComponent* This,VSS_RESTORE_TARGET *pTarget) {
+ return This->lpVtbl->GetRestoreTarget(This,pTarget);
+}
+static FORCEINLINE HRESULT IVssComponent_SetPreRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPreRestoreFailureMsg) {
+ return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponent_GetPreRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPreRestoreFailureMsg) {
+ return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponent_SetPostRestoreFailureMsg(IVssComponent* This,LPCWSTR wszPostRestoreFailureMsg) {
+ return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponent_GetPostRestoreFailureMsg(IVssComponent* This,BSTR *pbstrPostRestoreFailureMsg) {
+ return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponent_SetBackupStamp(IVssComponent* This,LPCWSTR wszBackupStamp) {
+ return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponent_GetBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponent_GetPreviousBackupStamp(IVssComponent* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponent_GetBackupOptions(IVssComponent* This,BSTR *pbstrBackupOptions) {
+ return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
+}
+static FORCEINLINE HRESULT IVssComponent_GetRestoreOptions(IVssComponent* This,BSTR *pbstrRestoreOptions) {
+ return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssComponent_GetRestoreSubcomponentCount(IVssComponent* This,UINT *pcRestoreSubcomponent) {
+ return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
+}
+static FORCEINLINE HRESULT IVssComponent_GetRestoreSubcomponent(IVssComponent* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
+ return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
+}
+static FORCEINLINE HRESULT IVssComponent_GetFileRestoreStatus(IVssComponent* This,VSS_FILE_RESTORE_STATUS *pStatus) {
+ return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
+}
+static FORCEINLINE HRESULT IVssComponent_AddDifferencedFilesByLastModifyTime(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
+}
+static FORCEINLINE HRESULT IVssComponent_AddDifferencedFilesByLastModifyLSN(IVssComponent* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
+}
+static FORCEINLINE HRESULT IVssComponent_GetDifferencedFilesCount(IVssComponent* This,UINT *pcDifferencedFiles) {
+ return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
+}
+static FORCEINLINE HRESULT IVssComponent_GetDifferencedFile(IVssComponent* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
+ return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
+}
+#endif
+#endif
-#if (_WIN32_WINNT >= 0x600)
-#undef INTERFACE
-#define INTERFACE IVssComponentEx
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
-DECLARE_INTERFACE_(IVssComponentEx,IVssComponent)
+
+
+#endif /* __IVssComponent_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssWriterComponents interface
+ */
+#ifndef __IVssWriterComponents_INTERFACE_DEFINED__
+#define __IVssWriterComponents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
+IVssWriterComponents
{
+
+ BEGIN_INTERFACE
+
+ virtual HRESULT STDMETHODCALLTYPE GetComponentCount(
+ UINT *pcComponents) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetWriterInfo(
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetComponent(
+ UINT iComponent,
+ IVssComponent **ppComponent) = 0;
+
+ END_INTERFACE
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssWriterComponents, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
+#endif
+#else
+typedef struct IVssWriterComponentsVtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssComponent methods */
- STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE;
- STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE;
- STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE;
- STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE;
- STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE;
- STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE;
- STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE;
- STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE;
- STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE;
- STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE;
- STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE;
- STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE;
- STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE;
- STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE;
- STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE;
-
- /* IVssComponentEx methods */
- STDMETHOD_(HRESULT,SetPrepareForBackupFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetPostSnapshotFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPrepareForBackupFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPostSnapshotFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetAuthoritativeRestore)(THIS_ BOOLEAN *pbAuth) PURE;
- STDMETHOD_(HRESULT,GetRollForward)(THIS_ VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) PURE;
- STDMETHOD_(HRESULT,GetRestoreName)(THIS_ BSTR *pbstrName) PURE;
+ /*** IVssWriterComponents methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetComponentCount)(
+ IVssWriterComponents *This,
+ UINT *pcComponents);
+
+ HRESULT (STDMETHODCALLTYPE *GetWriterInfo)(
+ IVssWriterComponents *This,
+ VSS_ID *pidInstance,
+ VSS_ID *pidWriter);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponent)(
+ IVssWriterComponents *This,
+ UINT iComponent,
+ IVssComponent **ppComponent);
END_INTERFACE
+} IVssWriterComponentsVtbl;
+
+interface IVssWriterComponents {
+ CONST_VTBL IVssWriterComponentsVtbl* lpVtbl;
};
+
#ifdef COBJMACROS
-#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)
-#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_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_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_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)
-#define IVssComponentEx_SetRestoreMetadata(This,wszRestoreMetadata) (This)->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata)
-#define IVssComponentEx_GetRestoreMetadata(This,pbstrRestoreMetadata) (This)->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata)
-#define IVssComponentEx_SetRestoreTarget(This,target) (This)->lpVtbl->SetRestoreTarget(This,target)
-#define IVssComponentEx_GetRestoreTarget(This,pTarget) (This)->lpVtbl->GetRestoreTarget(This,pTarget)
-#define IVssComponentEx_SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg) (This)->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg)
-#define IVssComponentEx_GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg) (This)->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg)
-#define IVssComponentEx_SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg) (This)->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg)
-#define IVssComponentEx_GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg) (This)->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg)
-#define IVssComponentEx_SetBackupStamp(This,wszBackupStamp) (This)->lpVtbl->SetBackupStamp(This,wszBackupStamp)
-#define IVssComponentEx_GetBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetBackupStamp(This,pbstrBackupStamp)
-#define IVssComponentEx_GetPreviousBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp)
-#define IVssComponentEx_GetBackupOptions(This,pbstrBackupOptions) (This)->lpVtbl->GetBackupOptions(This,pbstrBackupOptions)
-#define IVssComponentEx_GetRestoreOptions(This,pbstrRestoreOptions) (This)->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions)
-#define IVssComponentEx_GetRestoreSubcomponentCount(This,pcRestoreSubcomponent) (This)->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent)
-#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)
+#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,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,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,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)
+#define IVssComponentEx_SetRestoreMetadata(This,wszRestoreMetadata) (This)->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata)
+#define IVssComponentEx_GetRestoreMetadata(This,pbstrRestoreMetadata) (This)->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata)
+#define IVssComponentEx_SetRestoreTarget(This,target) (This)->lpVtbl->SetRestoreTarget(This,target)
+#define IVssComponentEx_GetRestoreTarget(This,pTarget) (This)->lpVtbl->GetRestoreTarget(This,pTarget)
+#define IVssComponentEx_SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg) (This)->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg)
+#define IVssComponentEx_GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg) (This)->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg)
+#define IVssComponentEx_SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg) (This)->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg)
+#define IVssComponentEx_GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg) (This)->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg)
+#define IVssComponentEx_SetBackupStamp(This,wszBackupStamp) (This)->lpVtbl->SetBackupStamp(This,wszBackupStamp)
+#define IVssComponentEx_GetBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetBackupStamp(This,pbstrBackupStamp)
+#define IVssComponentEx_GetPreviousBackupStamp(This,pbstrBackupStamp) (This)->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp)
+#define IVssComponentEx_GetBackupOptions(This,pbstrBackupOptions) (This)->lpVtbl->GetBackupOptions(This,pbstrBackupOptions)
+#define IVssComponentEx_GetRestoreOptions(This,pbstrRestoreOptions) (This)->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions)
+#define IVssComponentEx_GetRestoreSubcomponentCount(This,pcRestoreSubcomponent) (This)->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent)
+#define IVssComponentEx_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
+#define IVssComponentEx_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
#define IVssComponentEx_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
-#define IVssComponentEx_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This)
+#define IVssComponentEx_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
#define IVssComponentEx_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
#define IVssComponentEx_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
+/*** IVssComponentEx methods ***/
#define IVssComponentEx_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg)
#define IVssComponentEx_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg)
#define IVssComponentEx_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg)
@@ -485,100 +1377,466 @@ DECLARE_INTERFACE_(IVssComponentEx,IVssComponent)
#define IVssComponentEx_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth)
#define IVssComponentEx_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint)
#define IVssComponentEx_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName)
-#endif /*COBJMACROS*/
-#endif /*(_WIN32_WINNT >= 0x600)*/
-
-#if (_WIN32_WINNT >= 0x601)
-#undef INTERFACE
-#define INTERFACE IVssComponentEx2
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssComponentEx_QueryInterface(IVssComponentEx* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssComponentEx_AddRef(IVssComponentEx* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssComponentEx_Release(IVssComponentEx* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssComponent methods ***/
+static FORCEINLINE HRESULT IVssComponentEx_GetLogicalPath(IVssComponentEx* This,BSTR *pbstrPath) {
+ return This->lpVtbl->GetLogicalPath(This,pbstrPath);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetComponentType(IVssComponentEx* This,VSS_COMPONENT_TYPE *pct) {
+ return This->lpVtbl->GetComponentType(This,pct);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetComponentName(IVssComponentEx* This,BSTR *pbstrName) {
+ return This->lpVtbl->GetComponentName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetBackupSucceeded(IVssComponentEx* This,boolean *pbSucceeded) {
+ return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetAlternateLocationMappingCount(IVssComponentEx* This,UINT *pcMappings) {
+ return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetAlternateLocationMapping(IVssComponentEx* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetBackupMetadata(IVssComponentEx* This,LPCWSTR wszData) {
+ return This->lpVtbl->SetBackupMetadata(This,wszData);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetBackupMetadata(IVssComponentEx* This,BSTR *pbstrData) {
+ return This->lpVtbl->GetBackupMetadata(This,pbstrData);
+}
+static FORCEINLINE HRESULT IVssComponentEx_AddPartialFile(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
+ return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPartialFileCount(IVssComponentEx* This,UINT *pcPartialFiles) {
+ return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPartialFile(IVssComponentEx* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
+ return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx_IsSelectedForRestore(IVssComponentEx* This,boolean *pbSelectedForRestore) {
+ return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetAdditionalRestores(IVssComponentEx* This,boolean *pbAdditionalRestores) {
+ return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetNewTargetCount(IVssComponentEx* This,UINT *pcNewTarget) {
+ return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetNewTarget(IVssComponentEx* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponentEx_AddDirectedTarget(IVssComponentEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
+ return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetDirectedTargetCount(IVssComponentEx* This,UINT *pcDirectedTarget) {
+ return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetDirectedTarget(IVssComponentEx* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
+ return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetRestoreMetadata(IVssComponentEx* This,LPCWSTR wszRestoreMetadata) {
+ return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreMetadata(IVssComponentEx* This,BSTR *pbstrRestoreMetadata) {
+ return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET target) {
+ return This->lpVtbl->SetRestoreTarget(This,target);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreTarget(IVssComponentEx* This,VSS_RESTORE_TARGET *pTarget) {
+ return This->lpVtbl->GetRestoreTarget(This,pTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetPreRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPreRestoreFailureMsg) {
+ return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPreRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPreRestoreFailureMsg) {
+ return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetPostRestoreFailureMsg(IVssComponentEx* This,LPCWSTR wszPostRestoreFailureMsg) {
+ return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPostRestoreFailureMsg(IVssComponentEx* This,BSTR *pbstrPostRestoreFailureMsg) {
+ return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetBackupStamp(IVssComponentEx* This,LPCWSTR wszBackupStamp) {
+ return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPreviousBackupStamp(IVssComponentEx* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetBackupOptions(IVssComponentEx* This,BSTR *pbstrBackupOptions) {
+ return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreOptions(IVssComponentEx* This,BSTR *pbstrRestoreOptions) {
+ return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreSubcomponentCount(IVssComponentEx* This,UINT *pcRestoreSubcomponent) {
+ return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreSubcomponent(IVssComponentEx* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
+ return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetFileRestoreStatus(IVssComponentEx* This,VSS_FILE_RESTORE_STATUS *pStatus) {
+ return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
+}
+static FORCEINLINE HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyTime(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
+}
+static FORCEINLINE HRESULT IVssComponentEx_AddDifferencedFilesByLastModifyLSN(IVssComponentEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetDifferencedFilesCount(IVssComponentEx* This,UINT *pcDifferencedFiles) {
+ return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetDifferencedFile(IVssComponentEx* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
+ return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
+}
+/*** IVssComponentEx methods ***/
+static FORCEINLINE HRESULT IVssComponentEx_SetPrepareForBackupFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) {
+ return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_SetPostSnapshotFailureMsg(IVssComponentEx* This,LPCWSTR wszFailureMsg) {
+ return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPrepareForBackupFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) {
+ return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetPostSnapshotFailureMsg(IVssComponentEx* This,BSTR *pbstrFailureMsg) {
+ return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetAuthoritativeRestore(IVssComponentEx* This,boolean *pbAuth) {
+ return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRollForward(IVssComponentEx* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) {
+ return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint);
+}
+static FORCEINLINE HRESULT IVssComponentEx_GetRestoreName(IVssComponentEx* This,BSTR *pbstrName) {
+ return This->lpVtbl->GetRestoreName(This,pbstrName);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssComponentEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssComponentEx2 interface
+ */
+#ifndef __IVssComponentEx2_INTERFACE_DEFINED__
+#define __IVssComponentEx2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3b5be0f2-07a9-4e4b-bdd3-cfdc8e2c0d2d")
+IVssComponentEx2 : public IVssComponentEx
{
+ virtual HRESULT STDMETHODCALLTYPE SetFailure(
+ HRESULT hr,
+ HRESULT hrApplication,
+ LPCWSTR wszApplicationMessage,
+ DWORD dwReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFailure(
+ HRESULT *phr,
+ HRESULT *phrApplication,
+ BSTR *pbstrApplicationMessage,
+ DWORD *pdwReserved) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssComponentEx2, 0x3b5be0f2, 0x07a9, 0x4e4b, 0xbd,0xd3, 0xcf,0xdc,0x8e,0x2c,0x0d,0x2d)
+#endif
+#else
+typedef struct IVssComponentEx2Vtbl {
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
-
- /* IVssComponent methods */
- STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrPath) PURE;
- STDMETHOD_(HRESULT,GetComponentType)(THIS_ VSS_COMPONENT_TYPE *pType) PURE;
- STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pwszName) PURE;
- STDMETHOD_(HRESULT,GetBackupSucceeded)(THIS_ BOOLEAN *pbSucceeded) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMappingCount)(THIS_ UINT *pcMappings) PURE;
- STDMETHOD_(HRESULT,GetAlternateLocationMapping)(THIS_ UINT iMapping,const IVssWMFiledesc **ppMapping) PURE;
- STDMETHOD_(HRESULT,SetBackupMetadata)(THIS_ BSTR bstrMetadata) PURE;
- STDMETHOD_(HRESULT,GetBackupMetadata)(THIS_ BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,AddPartialFile)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) PURE;
- STDMETHOD_(HRESULT,GetPartialFileCount)(THIS_ UINT *pcPartialFiles) PURE;
- STDMETHOD_(HRESULT,GetPartialFile)(THIS_ UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) PURE;
- STDMETHOD_(HRESULT,IsSelectedForRestore)(THIS_ BOOLEAN *pbSelectedForRestore) PURE;
- STDMETHOD_(HRESULT,GetAdditionalRestores)(THIS_ BOOLEAN *pbAdditionalRestores) PURE;
- STDMETHOD_(HRESULT,GetNewTargetCount)(THIS_ UINT *pcNewTarget) PURE;
- STDMETHOD_(HRESULT,GetNewTarget)(THIS_ UINT iMapping,IVssWMFiledesc **ppFiledesc) PURE;
- STDMETHOD_(HRESULT,AddDirectedTarget)(THIS_ LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,GetDirectedTargetCount)(THIS_ UINT *pcDirectedTarget) PURE;
- STDMETHOD_(HRESULT,GetDirectedTarget)(THIS_ UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) PURE;
- STDMETHOD_(HRESULT,SetRestoreMetadata)(THIS_ LPCWSTR wszRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,GetRestoreMetadata)(THIS_ BSTR *pbstrRestoreMetadata) PURE;
- STDMETHOD_(HRESULT,SetRestoreTarget)(THIS_ VSS_RESTORE_TARGET target) PURE;
- STDMETHOD_(HRESULT,GetRestoreTarget)(THIS_ VSS_RESTORE_TARGET *pTarget) PURE;
- STDMETHOD_(HRESULT,SetPreRestoreFailureMsg)(THIS_ LPCWSTR wszPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPreRestoreFailureMsg)(THIS_ BSTR *pbstrPreRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetPostRestoreFailureMsg)(THIS_ LPCWSTR wszPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPostRestoreFailureMsg)(THIS_ BSTR *pbstrPostRestoreFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetBackupStamp)(THIS_ LPCWSTR wszBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetPreviousBackupStamp)(THIS_ BSTR *pbstrBackupStamp) PURE;
- STDMETHOD_(HRESULT,GetBackupOptions)(THIS_ BSTR *pbstrBackupOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreOptions)(THIS_ BSTR *pbstrRestoreOptions) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponentCount)(THIS_ UINT *pcRestoreSubcomponent) PURE;
- STDMETHOD_(HRESULT,GetRestoreSubcomponent)(THIS_ UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,BOOLEAN *pbRepair) PURE;
- STDMETHOD_(HRESULT,GetFileRestoreStatus)(THIS_ VSS_FILE_RESTORE_STATUS *pStatus) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyTime)(THIS_ LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) PURE;
- STDMETHOD_(HRESULT,AddDifferencedFilesByLastModifyLSN)(THIS) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFilesCount)(THIS_ UINT *pcDifferencedFiles) PURE;
- STDMETHOD_(HRESULT,GetDifferencedFile)(THIS_ UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) PURE;
-
- /* IVssComponentEx methods */
- STDMETHOD_(HRESULT,SetPrepareForBackupFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE;
- STDMETHOD_(HRESULT,SetPostSnapshotFailureMsg)(THIS_ LPCWSTR wszFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPrepareForBackupFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetPostSnapshotFailureMsg)(THIS_ BSTR *pbstrFailureMsg) PURE;
- STDMETHOD_(HRESULT,GetAuthoritativeRestore)(THIS_ BOOLEAN *pbAuth) PURE;
- STDMETHOD_(HRESULT,GetRollForward)(THIS_ VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) PURE;
- STDMETHOD_(HRESULT,GetRestoreName)(THIS_ BSTR *pbstrName) PURE;
-
- /* IVssComponentEx2 methods */
- STDMETHOD_(HRESULT,GetFailure)(THIS_ HRESULT *phr,HRESULT *phrApplication,BSTR *pbstrApplicationMessage,DWORD *pdwReserved) PURE;
- STDMETHOD_(HRESULT,SetFailure)(THIS_ HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage,DWORD dwReserved) PURE;
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssComponentEx2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssComponentEx2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssComponentEx2 *This);
+
+ /*** IVssComponent methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLogicalPath)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrPath);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponentType)(
+ IVssComponentEx2 *This,
+ VSS_COMPONENT_TYPE *pct);
+
+ HRESULT (STDMETHODCALLTYPE *GetComponentName)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrName);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupSucceeded)(
+ IVssComponentEx2 *This,
+ boolean *pbSucceeded);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMappingCount)(
+ IVssComponentEx2 *This,
+ UINT *pcMappings);
+
+ HRESULT (STDMETHODCALLTYPE *GetAlternateLocationMapping)(
+ IVssComponentEx2 *This,
+ UINT iMapping,
+ IVssWMFiledesc **ppFiledesc);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupMetadata)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszData);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupMetadata)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrData);
+
+ HRESULT (STDMETHODCALLTYPE *AddPartialFile)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilename,
+ LPCWSTR wszRanges,
+ LPCWSTR wszMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *GetPartialFileCount)(
+ IVssComponentEx2 *This,
+ UINT *pcPartialFiles);
+
+ HRESULT (STDMETHODCALLTYPE *GetPartialFile)(
+ IVssComponentEx2 *This,
+ UINT iPartialFile,
+ BSTR *pbstrPath,
+ BSTR *pbstrFilename,
+ BSTR *pbstrRange,
+ BSTR *pbstrMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *IsSelectedForRestore)(
+ IVssComponentEx2 *This,
+ boolean *pbSelectedForRestore);
+
+ HRESULT (STDMETHODCALLTYPE *GetAdditionalRestores)(
+ IVssComponentEx2 *This,
+ boolean *pbAdditionalRestores);
+
+ HRESULT (STDMETHODCALLTYPE *GetNewTargetCount)(
+ IVssComponentEx2 *This,
+ UINT *pcNewTarget);
+
+ HRESULT (STDMETHODCALLTYPE *GetNewTarget)(
+ IVssComponentEx2 *This,
+ UINT iNewTarget,
+ IVssWMFiledesc **ppFiledesc);
+
+ HRESULT (STDMETHODCALLTYPE *AddDirectedTarget)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszSourcePath,
+ LPCWSTR wszSourceFilename,
+ LPCWSTR wszSourceRangeList,
+ LPCWSTR wszDestinationPath,
+ LPCWSTR wszDestinationFilename,
+ LPCWSTR wszDestinationRangeList);
+
+ HRESULT (STDMETHODCALLTYPE *GetDirectedTargetCount)(
+ IVssComponentEx2 *This,
+ UINT *pcDirectedTarget);
+
+ HRESULT (STDMETHODCALLTYPE *GetDirectedTarget)(
+ IVssComponentEx2 *This,
+ UINT iDirectedTarget,
+ BSTR *pbstrSourcePath,
+ BSTR *pbstrSourceFileName,
+ BSTR *pbstrSourceRangeList,
+ BSTR *pbstrDestinationPath,
+ BSTR *pbstrDestinationFilename,
+ BSTR *pbstrDestinationRangeList);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreMetadata)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszRestoreMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreMetadata)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrRestoreMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreTarget)(
+ IVssComponentEx2 *This,
+ VSS_RESTORE_TARGET target);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreTarget)(
+ IVssComponentEx2 *This,
+ VSS_RESTORE_TARGET *pTarget);
+
+ HRESULT (STDMETHODCALLTYPE *SetPreRestoreFailureMsg)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszPreRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPreRestoreFailureMsg)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrPreRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *SetPostRestoreFailureMsg)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszPostRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPostRestoreFailureMsg)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrPostRestoreFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupStamp)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupStamp)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetPreviousBackupStamp)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrBackupStamp);
+
+ HRESULT (STDMETHODCALLTYPE *GetBackupOptions)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrBackupOptions);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreOptions)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrRestoreOptions);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponentCount)(
+ IVssComponentEx2 *This,
+ UINT *pcRestoreSubcomponent);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreSubcomponent)(
+ IVssComponentEx2 *This,
+ UINT iComponent,
+ BSTR *pbstrLogicalPath,
+ BSTR *pbstrComponentName,
+ boolean *pbRepair);
+
+ HRESULT (STDMETHODCALLTYPE *GetFileRestoreStatus)(
+ IVssComponentEx2 *This,
+ VSS_FILE_RESTORE_STATUS *pStatus);
+
+ HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyTime)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ WINBOOL bRecursive,
+ FILETIME ftLastModifyTime);
+
+ HRESULT (STDMETHODCALLTYPE *AddDifferencedFilesByLastModifyLSN)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ WINBOOL bRecursive,
+ BSTR bstrLsnString);
+
+ HRESULT (STDMETHODCALLTYPE *GetDifferencedFilesCount)(
+ IVssComponentEx2 *This,
+ UINT *pcDifferencedFiles);
+
+ HRESULT (STDMETHODCALLTYPE *GetDifferencedFile)(
+ IVssComponentEx2 *This,
+ UINT iDifferencedFile,
+ BSTR *pbstrPath,
+ BSTR *pbstrFilespec,
+ WINBOOL *pbRecursive,
+ BSTR *pbstrLsnString,
+ FILETIME *pftLastModifyTime);
+
+ /*** IVssComponentEx methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrepareForBackupFailureMsg)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *SetPostSnapshotFailureMsg)(
+ IVssComponentEx2 *This,
+ LPCWSTR wszFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrepareForBackupFailureMsg)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetPostSnapshotFailureMsg)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrFailureMsg);
+
+ HRESULT (STDMETHODCALLTYPE *GetAuthoritativeRestore)(
+ IVssComponentEx2 *This,
+ boolean *pbAuth);
+
+ HRESULT (STDMETHODCALLTYPE *GetRollForward)(
+ IVssComponentEx2 *This,
+ VSS_ROLLFORWARD_TYPE *pRollType,
+ BSTR *pbstrPoint);
+
+ HRESULT (STDMETHODCALLTYPE *GetRestoreName)(
+ IVssComponentEx2 *This,
+ BSTR *pbstrName);
+
+ /*** IVssComponentEx2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetFailure)(
+ IVssComponentEx2 *This,
+ HRESULT hr,
+ HRESULT hrApplication,
+ LPCWSTR wszApplicationMessage,
+ DWORD dwReserved);
+
+ HRESULT (STDMETHODCALLTYPE *GetFailure)(
+ IVssComponentEx2 *This,
+ HRESULT *phr,
+ HRESULT *phrApplication,
+ BSTR *pbstrApplicationMessage,
+ DWORD *pdwReserved);
END_INTERFACE
+} IVssComponentEx2Vtbl;
+
+interface IVssComponentEx2 {
+ CONST_VTBL IVssComponentEx2Vtbl* lpVtbl;
};
+
#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
#define IVssComponentEx2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVssComponentEx2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVssComponentEx2_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssComponent methods ***/
#define IVssComponentEx2_GetLogicalPath(This,pbstrPath) (This)->lpVtbl->GetLogicalPath(This,pbstrPath)
-#define IVssComponentEx2_GetComponentType(This,pType) (This)->lpVtbl->GetComponentType(This,pType)
-#define IVssComponentEx2_GetComponentName(This,pwszName) (This)->lpVtbl->GetComponentName(This,pwszName)
+#define IVssComponentEx2_GetComponentType(This,pct) (This)->lpVtbl->GetComponentType(This,pct)
+#define IVssComponentEx2_GetComponentName(This,pbstrName) (This)->lpVtbl->GetComponentName(This,pbstrName)
#define IVssComponentEx2_GetBackupSucceeded(This,pbSucceeded) (This)->lpVtbl->GetBackupSucceeded(This,pbSucceeded)
#define IVssComponentEx2_GetAlternateLocationMappingCount(This,pcMappings) (This)->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings)
-#define IVssComponentEx2_GetAlternateLocationMapping(This,iMapping,ppMapping) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppMapping)
-#define IVssComponentEx2_SetBackupMetadata(This,bstrMetadata) (This)->lpVtbl->SetBackupMetadata(This,bstrMetadata)
-#define IVssComponentEx2_GetBackupMetadata(This,pbstrMetadata) (This)->lpVtbl->GetBackupMetadata(This,pbstrMetadata)
+#define IVssComponentEx2_GetAlternateLocationMapping(This,iMapping,ppFiledesc) (This)->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc)
+#define IVssComponentEx2_SetBackupMetadata(This,wszData) (This)->lpVtbl->SetBackupMetadata(This,wszData)
+#define IVssComponentEx2_GetBackupMetadata(This,pbstrData) (This)->lpVtbl->GetBackupMetadata(This,pbstrData)
#define IVssComponentEx2_AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata) (This)->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata)
#define IVssComponentEx2_GetPartialFileCount(This,pcPartialFiles) (This)->lpVtbl->GetPartialFileCount(This,pcPartialFiles)
#define IVssComponentEx2_GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata) (This)->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata)
#define IVssComponentEx2_IsSelectedForRestore(This,pbSelectedForRestore) (This)->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore)
#define IVssComponentEx2_GetAdditionalRestores(This,pbAdditionalRestores) (This)->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores)
#define IVssComponentEx2_GetNewTargetCount(This,pcNewTarget) (This)->lpVtbl->GetNewTargetCount(This,pcNewTarget)
-#define IVssComponentEx2_GetNewTarget(This,iMapping,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iMapping,ppFiledesc)
+#define IVssComponentEx2_GetNewTarget(This,iNewTarget,ppFiledesc) (This)->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc)
#define IVssComponentEx2_AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList) (This)->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList)
#define IVssComponentEx2_GetDirectedTargetCount(This,pcDirectedTarget) (This)->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget)
#define IVssComponentEx2_GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList) (This)->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList)
@@ -599,9 +1857,10 @@ DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx)
#define IVssComponentEx2_GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair) (This)->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair)
#define IVssComponentEx2_GetFileRestoreStatus(This,pStatus) (This)->lpVtbl->GetFileRestoreStatus(This,pStatus)
#define IVssComponentEx2_AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime) (This)->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime)
-#define IVssComponentEx2_AddDifferencedFilesByLastModifyLSN() (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This)
+#define IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString) (This)->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString)
#define IVssComponentEx2_GetDifferencedFilesCount(This,pcDifferencedFiles) (This)->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles)
#define IVssComponentEx2_GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime) (This)->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime)
+/*** IVssComponentEx methods ***/
#define IVssComponentEx2_SetPrepareForBackupFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg)
#define IVssComponentEx2_SetPostSnapshotFailureMsg(This,wszFailureMsg) (This)->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg)
#define IVssComponentEx2_GetPrepareForBackupFailureMsg(This,pbstrFailureMsg) (This)->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg)
@@ -609,182 +1868,1298 @@ DECLARE_INTERFACE_(IVssComponentEx2,IVssComponentEx)
#define IVssComponentEx2_GetAuthoritativeRestore(This,pbAuth) (This)->lpVtbl->GetAuthoritativeRestore(This,pbAuth)
#define IVssComponentEx2_GetRollForward(This,pRollType,pbstrPoint) (This)->lpVtbl->GetRollForward(This,pRollType,pbstrPoint)
#define IVssComponentEx2_GetRestoreName(This,pbstrName) (This)->lpVtbl->GetRestoreName(This,pbstrName)
-#define IVssComponentEx2_GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) (This)->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved)
+/*** IVssComponentEx2 methods ***/
#define IVssComponentEx2_SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved) (This)->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved)
-#endif /*COBJMACROS*/
-#endif /*(_WIN32_WINNT >= 0x601)*/
+#define IVssComponentEx2_GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved) (This)->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssComponentEx2_QueryInterface(IVssComponentEx2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssComponentEx2_AddRef(IVssComponentEx2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssComponentEx2_Release(IVssComponentEx2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssComponent methods ***/
+static FORCEINLINE HRESULT IVssComponentEx2_GetLogicalPath(IVssComponentEx2* This,BSTR *pbstrPath) {
+ return This->lpVtbl->GetLogicalPath(This,pbstrPath);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetComponentType(IVssComponentEx2* This,VSS_COMPONENT_TYPE *pct) {
+ return This->lpVtbl->GetComponentType(This,pct);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetComponentName(IVssComponentEx2* This,BSTR *pbstrName) {
+ return This->lpVtbl->GetComponentName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetBackupSucceeded(IVssComponentEx2* This,boolean *pbSucceeded) {
+ return This->lpVtbl->GetBackupSucceeded(This,pbSucceeded);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetAlternateLocationMappingCount(IVssComponentEx2* This,UINT *pcMappings) {
+ return This->lpVtbl->GetAlternateLocationMappingCount(This,pcMappings);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetAlternateLocationMapping(IVssComponentEx2* This,UINT iMapping,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetAlternateLocationMapping(This,iMapping,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetBackupMetadata(IVssComponentEx2* This,LPCWSTR wszData) {
+ return This->lpVtbl->SetBackupMetadata(This,wszData);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetBackupMetadata(IVssComponentEx2* This,BSTR *pbstrData) {
+ return This->lpVtbl->GetBackupMetadata(This,pbstrData);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_AddPartialFile(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilename,LPCWSTR wszRanges,LPCWSTR wszMetadata) {
+ return This->lpVtbl->AddPartialFile(This,wszPath,wszFilename,wszRanges,wszMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPartialFileCount(IVssComponentEx2* This,UINT *pcPartialFiles) {
+ return This->lpVtbl->GetPartialFileCount(This,pcPartialFiles);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPartialFile(IVssComponentEx2* This,UINT iPartialFile,BSTR *pbstrPath,BSTR *pbstrFilename,BSTR *pbstrRange,BSTR *pbstrMetadata) {
+ return This->lpVtbl->GetPartialFile(This,iPartialFile,pbstrPath,pbstrFilename,pbstrRange,pbstrMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_IsSelectedForRestore(IVssComponentEx2* This,boolean *pbSelectedForRestore) {
+ return This->lpVtbl->IsSelectedForRestore(This,pbSelectedForRestore);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetAdditionalRestores(IVssComponentEx2* This,boolean *pbAdditionalRestores) {
+ return This->lpVtbl->GetAdditionalRestores(This,pbAdditionalRestores);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetNewTargetCount(IVssComponentEx2* This,UINT *pcNewTarget) {
+ return This->lpVtbl->GetNewTargetCount(This,pcNewTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetNewTarget(IVssComponentEx2* This,UINT iNewTarget,IVssWMFiledesc **ppFiledesc) {
+ return This->lpVtbl->GetNewTarget(This,iNewTarget,ppFiledesc);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_AddDirectedTarget(IVssComponentEx2* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilename,LPCWSTR wszSourceRangeList,LPCWSTR wszDestinationPath,LPCWSTR wszDestinationFilename,LPCWSTR wszDestinationRangeList) {
+ return This->lpVtbl->AddDirectedTarget(This,wszSourcePath,wszSourceFilename,wszSourceRangeList,wszDestinationPath,wszDestinationFilename,wszDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetDirectedTargetCount(IVssComponentEx2* This,UINT *pcDirectedTarget) {
+ return This->lpVtbl->GetDirectedTargetCount(This,pcDirectedTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetDirectedTarget(IVssComponentEx2* This,UINT iDirectedTarget,BSTR *pbstrSourcePath,BSTR *pbstrSourceFileName,BSTR *pbstrSourceRangeList,BSTR *pbstrDestinationPath,BSTR *pbstrDestinationFilename,BSTR *pbstrDestinationRangeList) {
+ return This->lpVtbl->GetDirectedTarget(This,iDirectedTarget,pbstrSourcePath,pbstrSourceFileName,pbstrSourceRangeList,pbstrDestinationPath,pbstrDestinationFilename,pbstrDestinationRangeList);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetRestoreMetadata(IVssComponentEx2* This,LPCWSTR wszRestoreMetadata) {
+ return This->lpVtbl->SetRestoreMetadata(This,wszRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreMetadata(IVssComponentEx2* This,BSTR *pbstrRestoreMetadata) {
+ return This->lpVtbl->GetRestoreMetadata(This,pbstrRestoreMetadata);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET target) {
+ return This->lpVtbl->SetRestoreTarget(This,target);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreTarget(IVssComponentEx2* This,VSS_RESTORE_TARGET *pTarget) {
+ return This->lpVtbl->GetRestoreTarget(This,pTarget);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetPreRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPreRestoreFailureMsg) {
+ return This->lpVtbl->SetPreRestoreFailureMsg(This,wszPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPreRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPreRestoreFailureMsg) {
+ return This->lpVtbl->GetPreRestoreFailureMsg(This,pbstrPreRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetPostRestoreFailureMsg(IVssComponentEx2* This,LPCWSTR wszPostRestoreFailureMsg) {
+ return This->lpVtbl->SetPostRestoreFailureMsg(This,wszPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPostRestoreFailureMsg(IVssComponentEx2* This,BSTR *pbstrPostRestoreFailureMsg) {
+ return This->lpVtbl->GetPostRestoreFailureMsg(This,pbstrPostRestoreFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetBackupStamp(IVssComponentEx2* This,LPCWSTR wszBackupStamp) {
+ return This->lpVtbl->SetBackupStamp(This,wszBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPreviousBackupStamp(IVssComponentEx2* This,BSTR *pbstrBackupStamp) {
+ return This->lpVtbl->GetPreviousBackupStamp(This,pbstrBackupStamp);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetBackupOptions(IVssComponentEx2* This,BSTR *pbstrBackupOptions) {
+ return This->lpVtbl->GetBackupOptions(This,pbstrBackupOptions);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreOptions(IVssComponentEx2* This,BSTR *pbstrRestoreOptions) {
+ return This->lpVtbl->GetRestoreOptions(This,pbstrRestoreOptions);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreSubcomponentCount(IVssComponentEx2* This,UINT *pcRestoreSubcomponent) {
+ return This->lpVtbl->GetRestoreSubcomponentCount(This,pcRestoreSubcomponent);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreSubcomponent(IVssComponentEx2* This,UINT iComponent,BSTR *pbstrLogicalPath,BSTR *pbstrComponentName,boolean *pbRepair) {
+ return This->lpVtbl->GetRestoreSubcomponent(This,iComponent,pbstrLogicalPath,pbstrComponentName,pbRepair);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetFileRestoreStatus(IVssComponentEx2* This,VSS_FILE_RESTORE_STATUS *pStatus) {
+ return This->lpVtbl->GetFileRestoreStatus(This,pStatus);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyTime(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,FILETIME ftLastModifyTime) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyTime(This,wszPath,wszFilespec,bRecursive,ftLastModifyTime);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_AddDifferencedFilesByLastModifyLSN(IVssComponentEx2* This,LPCWSTR wszPath,LPCWSTR wszFilespec,WINBOOL bRecursive,BSTR bstrLsnString) {
+ return This->lpVtbl->AddDifferencedFilesByLastModifyLSN(This,wszPath,wszFilespec,bRecursive,bstrLsnString);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetDifferencedFilesCount(IVssComponentEx2* This,UINT *pcDifferencedFiles) {
+ return This->lpVtbl->GetDifferencedFilesCount(This,pcDifferencedFiles);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetDifferencedFile(IVssComponentEx2* This,UINT iDifferencedFile,BSTR *pbstrPath,BSTR *pbstrFilespec,WINBOOL *pbRecursive,BSTR *pbstrLsnString,FILETIME *pftLastModifyTime) {
+ return This->lpVtbl->GetDifferencedFile(This,iDifferencedFile,pbstrPath,pbstrFilespec,pbRecursive,pbstrLsnString,pftLastModifyTime);
+}
+/*** IVssComponentEx methods ***/
+static FORCEINLINE HRESULT IVssComponentEx2_SetPrepareForBackupFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) {
+ return This->lpVtbl->SetPrepareForBackupFailureMsg(This,wszFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_SetPostSnapshotFailureMsg(IVssComponentEx2* This,LPCWSTR wszFailureMsg) {
+ return This->lpVtbl->SetPostSnapshotFailureMsg(This,wszFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPrepareForBackupFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) {
+ return This->lpVtbl->GetPrepareForBackupFailureMsg(This,pbstrFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetPostSnapshotFailureMsg(IVssComponentEx2* This,BSTR *pbstrFailureMsg) {
+ return This->lpVtbl->GetPostSnapshotFailureMsg(This,pbstrFailureMsg);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetAuthoritativeRestore(IVssComponentEx2* This,boolean *pbAuth) {
+ return This->lpVtbl->GetAuthoritativeRestore(This,pbAuth);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRollForward(IVssComponentEx2* This,VSS_ROLLFORWARD_TYPE *pRollType,BSTR *pbstrPoint) {
+ return This->lpVtbl->GetRollForward(This,pRollType,pbstrPoint);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetRestoreName(IVssComponentEx2* This,BSTR *pbstrName) {
+ return This->lpVtbl->GetRestoreName(This,pbstrName);
+}
+/*** IVssComponentEx2 methods ***/
+static FORCEINLINE HRESULT IVssComponentEx2_SetFailure(IVssComponentEx2* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage,DWORD dwReserved) {
+ return This->lpVtbl->SetFailure(This,hr,hrApplication,wszApplicationMessage,dwReserved);
+}
+static FORCEINLINE HRESULT IVssComponentEx2_GetFailure(IVssComponentEx2* This,HRESULT *phr,HRESULT *phrApplication,BSTR *pbstrApplicationMessage,DWORD *pdwReserved) {
+ return This->lpVtbl->GetFailure(This,phr,phrApplication,pbstrApplicationMessage,pdwReserved);
+}
+#endif
+#endif
+
+#endif
+
+#endif /* __IVssComponentEx2_INTERFACE_DEFINED__ */
+
+#ifndef __IXMLDOMDocument_FWD_DEFINED__
+#define __IXMLDOMDocument_FWD_DEFINED__
+typedef interface IXMLDOMDocument IXMLDOMDocument;
#ifdef __cplusplus
-/* Is a C++ interface instead of a COM */
-#undef INTERFACE
-#define INTERFACE IVssWMDependency
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IVssWMDependency,IUnknown)
+interface IXMLDOMDocument;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IVssCreateWriterMetadata interface
+ */
+#ifndef __IVssCreateWriterMetadata_INTERFACE_DEFINED__
+#define __IVssCreateWriterMetadata_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
+IVssCreateWriterMetadata
{
+
BEGIN_INTERFACE
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ virtual HRESULT STDMETHODCALLTYPE AddIncludeFiles(
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles(
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddComponent(
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszCaption,
+ const BYTE *pbIcon,
+ UINT cbIcon,
+ boolean bRestoreMetadata,
+ boolean bNotifyOnBackupComplete,
+ boolean bSelectable,
+ boolean bSelectableForRestore = 0,
+ DWORD dwComponentFlags = 0) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddDatabaseFiles(
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszDatabaseName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddDatabaseLogFiles(
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszDatabaseName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup(
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszGroupName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation,
+ DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod(
+ VSS_RESTOREMETHOD_ENUM method,
+ LPCWSTR wszService,
+ LPCWSTR wszUserProcedure,
+ VSS_WRITERRESTORE_ENUM writerRestore,
+ boolean bRebootRequired) = 0;
- /* IVssWMDependency methods */
- STDMETHOD_(HRESULT,GetWriterId)(THIS_ VSS_ID *pWriterId) PURE;
- STDMETHOD_(HRESULT,GetLogicalPath)(THIS_ BSTR *pbstrLogicalPath) PURE;
- STDMETHOD_(HRESULT,GetComponentName)(THIS_ BSTR *pbstrComponentName) PURE;
+ virtual HRESULT STDMETHODCALLTYPE AddAlternateLocationMapping(
+ LPCWSTR wszSourcePath,
+ LPCWSTR wszSourceFilespec,
+ boolean bRecursive,
+ LPCWSTR wszDestination) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddComponentDependency(
+ LPCWSTR wszForLogicalPath,
+ LPCWSTR wszForComponentName,
+ VSS_ID onWriterId,
+ LPCWSTR wszOnLogicalPath,
+ LPCWSTR wszOnComponentName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBackupSchema(
+ DWORD dwSchemaMask) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDocument(
+ IXMLDOMDocument **pDoc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
+ BSTR *pbstrXML) = 0;
END_INTERFACE
+
};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssCreateWriterMetadata, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
+#endif
+#else
+typedef struct IVssCreateWriterMetadataVtbl {
+ BEGIN_INTERFACE
+
+ /*** IVssCreateWriterMetadata methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation);
+
+ HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssCreateWriterMetadata *This,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszCaption,
+ const BYTE *pbIcon,
+ UINT cbIcon,
+ boolean bRestoreMetadata,
+ boolean bNotifyOnBackupComplete,
+ boolean bSelectable,
+ boolean bSelectableForRestore,
+ DWORD dwComponentFlags);
+
+ HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszDatabaseName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ DWORD dwBackupTypeMask);
+
+ HRESULT (STDMETHODCALLTYPE *AddDatabaseLogFiles)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszDatabaseName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ DWORD dwBackupTypeMask);
-#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)
+ HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszGroupName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation,
+ DWORD dwBackupTypeMask);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)(
+ IVssCreateWriterMetadata *This,
+ VSS_RESTOREMETHOD_ENUM method,
+ LPCWSTR wszService,
+ LPCWSTR wszUserProcedure,
+ VSS_WRITERRESTORE_ENUM writerRestore,
+ boolean bRebootRequired);
+
+ HRESULT (STDMETHODCALLTYPE *AddAlternateLocationMapping)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszSourcePath,
+ LPCWSTR wszSourceFilespec,
+ boolean bRecursive,
+ LPCWSTR wszDestination);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponentDependency)(
+ IVssCreateWriterMetadata *This,
+ LPCWSTR wszForLogicalPath,
+ LPCWSTR wszForComponentName,
+ VSS_ID onWriterId,
+ LPCWSTR wszOnLogicalPath,
+ LPCWSTR wszOnComponentName);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupSchema)(
+ IVssCreateWriterMetadata *This,
+ DWORD dwSchemaMask);
+
+ HRESULT (STDMETHODCALLTYPE *GetDocument)(
+ IVssCreateWriterMetadata *This,
+ IXMLDOMDocument **pDoc);
+
+ HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
+ IVssCreateWriterMetadata *This,
+ BSTR *pbstrXML);
+
+ END_INTERFACE
+} IVssCreateWriterMetadataVtbl;
+
+interface IVssCreateWriterMetadata {
+ CONST_VTBL IVssCreateWriterMetadataVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IVssCreateWriterMetadata methods ***/
+#define IVssCreateWriterMetadata_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation)
+#define IVssCreateWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
+#define IVssCreateWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
+#define IVssCreateWriterMetadata_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
+#define IVssCreateWriterMetadata_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
+#define IVssCreateWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
+#define IVssCreateWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
+#define IVssCreateWriterMetadata_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination)
+#define IVssCreateWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
+#define IVssCreateWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
+#define IVssCreateWriterMetadata_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
+#define IVssCreateWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
+#else
+/*** IVssCreateWriterMetadata methods ***/
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddIncludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) {
+ return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddExcludeFiles(IVssCreateWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
+ return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddComponent(IVssCreateWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
+ return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddDatabaseFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddDatabaseLogFiles(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddFilesToFileGroup(IVssCreateWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_SetRestoreMethod(IVssCreateWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
+ return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddAlternateLocationMapping(IVssCreateWriterMetadata* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_AddComponentDependency(IVssCreateWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
+ return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_SetBackupSchema(IVssCreateWriterMetadata* This,DWORD dwSchemaMask) {
+ return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_GetDocument(IVssCreateWriterMetadata* This,IXMLDOMDocument **pDoc) {
+ return This->lpVtbl->GetDocument(This,pDoc);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadata_SaveAsXML(IVssCreateWriterMetadata* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+#endif
#endif
-DECLARE_INTERFACE_(IVssWMFiledesc,IUnknown)
+
+#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
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
+ /*** IVssCreateWriterMetadata methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddIncludeFiles)(
+ IVssCreateWriterMetadataEx *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation);
+
+ HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
+ IVssCreateWriterMetadataEx *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssCreateWriterMetadataEx *This,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszCaption,
+ const BYTE *pbIcon,
+ UINT cbIcon,
+ boolean bRestoreMetadata,
+ boolean bNotifyOnBackupComplete,
+ boolean bSelectable,
+ boolean bSelectableForRestore,
+ DWORD dwComponentFlags);
+
+ HRESULT (STDMETHODCALLTYPE *AddDatabaseFiles)(
+ IVssCreateWriterMetadataEx *This,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszDatabaseName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ DWORD dwBackupTypeMask);
- /* 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 *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;
};
-#endif /*__cplusplus*/
-#ifdef __cplusplus
-#if __MINGW_GNUC_PREREQ(4,6)
-/* We need __thiscall support */
-class CVssWriter {
-protected:
- bool WINAPI AreComponentsSelected() const;
- VSS_BACKUP_TYPE WINAPI GetBackupType() const;
- LONG WINAPI GetContext() const;
- VSS_APPLICATION_LEVEL WINAPI GetCurrentLevel() const;
- VSS_ID WINAPI GetCurrentSnapshotSetId() const;
- LPCWSTR* WINAPI GetCurrentVolumeArray() const;
- UINT WINAPI GetCurrentVolumeCount() const;
- VSS_RESTORE_TYPE WINAPI GetRestoreType() const;
- HRESULT WINAPI GetSnapshotDeviceName(
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IVssCreateWriterMetadata methods ***/
+#define IVssCreateWriterMetadataEx_AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation) (This)->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation)
+#define IVssCreateWriterMetadataEx_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
+#define IVssCreateWriterMetadataEx_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
+#define IVssCreateWriterMetadataEx_AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
+#define IVssCreateWriterMetadataEx_AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask) (This)->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask)
+#define IVssCreateWriterMetadataEx_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
+#define IVssCreateWriterMetadataEx_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
+#define IVssCreateWriterMetadataEx_AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination) (This)->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination)
+#define IVssCreateWriterMetadataEx_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
+#define IVssCreateWriterMetadataEx_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
+#define IVssCreateWriterMetadataEx_GetDocument(This,pDoc) (This)->lpVtbl->GetDocument(This,pDoc)
+#define IVssCreateWriterMetadataEx_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
+/*** IVssCreateWriterMetadataEx methods ***/
+#define IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive)
+#else
+/*** IVssCreateWriterMetadata methods ***/
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddIncludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation) {
+ return This->lpVtbl->AddIncludeFiles(This,wszPath,wszFilespec,bRecursive,wszAlternateLocation);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddExcludeFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
+ return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddComponent(IVssCreateWriterMetadataEx* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
+ return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddDatabaseFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddDatabaseFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddDatabaseLogFiles(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszDatabaseName,LPCWSTR wszPath,LPCWSTR wszFilespec,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddDatabaseLogFiles(This,wszLogicalPath,wszDatabaseName,wszPath,wszFilespec,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddFilesToFileGroup(IVssCreateWriterMetadataEx* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SetRestoreMethod(IVssCreateWriterMetadataEx* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
+ return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddAlternateLocationMapping(IVssCreateWriterMetadataEx* This,LPCWSTR wszSourcePath,LPCWSTR wszSourceFilespec,boolean bRecursive,LPCWSTR wszDestination) {
+ return This->lpVtbl->AddAlternateLocationMapping(This,wszSourcePath,wszSourceFilespec,bRecursive,wszDestination);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddComponentDependency(IVssCreateWriterMetadataEx* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
+ return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SetBackupSchema(IVssCreateWriterMetadataEx* This,DWORD dwSchemaMask) {
+ return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_GetDocument(IVssCreateWriterMetadataEx* This,IXMLDOMDocument **pDoc) {
+ return This->lpVtbl->GetDocument(This,pDoc);
+}
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_SaveAsXML(IVssCreateWriterMetadataEx* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+/*** IVssCreateWriterMetadataEx methods ***/
+static FORCEINLINE HRESULT IVssCreateWriterMetadataEx_AddExcludeFilesFromSnapshot(IVssCreateWriterMetadataEx* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
+ return This->lpVtbl->AddExcludeFilesFromSnapshot(This,wszPath,wszFilespec,bRecursive);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssCreateWriterMetadataEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssWriterImpl interface
+ */
+#ifndef __IVssWriterImpl_INTERFACE_DEFINED__
+#define __IVssWriterImpl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000000-0000-0000-0000-000000000000")
+IVssWriterImpl : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Initialize(
+ VSS_ID writerId,
+ LPCWSTR wszWriterName,
+ LPCWSTR wszWriterInstanceName,
+ DWORD dwMajorVersion,
+ DWORD dwMinorVersion,
+ VSS_USAGE_TYPE ut,
+ VSS_SOURCE_TYPE st,
+ VSS_APPLICATION_LEVEL nLevel,
+ DWORD dwTimeout,
+ VSS_ALTERNATE_WRITER_STATE aws,
+ boolean bIOThrottlingOnly) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Subscribe(
+ DWORD dwSubscribeTimeout,
+ DWORD dwEventFlags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Unsubscribe(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE Uninitialize(
+ ) = 0;
+
+ virtual LPCWSTR * STDMETHODCALLTYPE GetCurrentVolumeArray(
+ ) = 0;
+
+ virtual UINT STDMETHODCALLTYPE GetCurrentVolumeCount(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSnapshotDeviceName(
LPCWSTR wszOriginalVolume,
- LPCWSTR *ppwszSnapshotDevice) const;
- bool WINAPI IsBootableSystemStateBackedUp() const;
- bool WINAPI IsPartialFileSupportEnabled() const;
- bool WINAPI IsPathAffected(
- LPCWSTR wszPath) const;
- HRESULT WINAPI SetWriterFailure(
- HRESULT hr);
-public:
- //Pure virtuals
- virtual bool WINAPI OnAbort() = 0;
- virtual bool WINAPI OnFreeze() = 0;
- virtual bool WINAPI OnPrepareSnapshot() = 0;
- virtual bool WINAPI OnThaw() = 0;
- //Virtuals
- virtual __thiscall ~CVssWriter();
- virtual bool WINAPI OnBackupComplete(
- IVssWriterComponents *pComponent);
- virtual bool WINAPI OnBackupShutdown(
- VSS_ID SnapshotSetId);
- virtual bool WINAPI OnIdentify(
- IVssCreateWriterMetadata *pMetadata);
- virtual bool WINAPI OnPostRestore(
- IVssWriterComponents *pComponent);
- virtual bool WINAPI OnPostSnapshot(
- IVssWriterComponents *pComponent);
- virtual bool WINAPI OnPrepareBackup(
- IVssWriterComponents *pComponent);
- virtual bool WINAPI OnPreRestore(
- IVssWriterComponents *pComponent);
- //gendef says public: virtual bool __stdcall CVssWriter::OnBackOffIOOnVolume(unsigned short *,struct _GUID,struct _GUID)
- //Method unsupported
- virtual bool WINAPI OnBackOffIOOnVolume(
- VSS_PWSZ _vss_pwsz,
- VSS_ID _id1,
- VSS_ID _id2);
- //gendef says public: virtual bool __stdcall CVssWriter::OnContinueIOOnVolume(unsigned short *,struct _GUID,struct _GUID)
- //Method unsupported
- virtual bool WINAPI OnContinueIOOnVolume(
- VSS_PWSZ _vss_pwsz,
- VSS_ID _id1,
- VSS_ID _id2);
- //gendef says public: virtual bool __stdcall CVssWriter::OnVSSShutdown(void)
- //Method unsupported
- virtual bool WINAPI OnVssShutdown();
- //Non-virtuals
- __thiscall CVssWriter();
- HRESULT WINAPI Initialize(
- VSS_ID WriterId,
- LPCWSTR WriterName,
- VSS_USAGE_TYPE UsageType,
- VSS_SOURCE_TYPE SourceType,
- VSS_APPLICATION_LEVEL AppLevel,
- DWORD dwTimeoutFreeze = 60000,
- VSS_ALTERNATE_WRITER_STATE aws = VSS_AWS_NO_ALTERNATE_WRITER,
- bool bIOThrottlingOnly = false,
- LPCWSTR wszWriterInstanceName = NULL);
- HRESULT WINAPI Subscribe(
- DWORD dwEventFlags);
- HRESULT WINAPI Unsubscribe();
- //gendef says public: long __stdcall CVssWriter::InstallAlternateWriter(struct _GUID,struct _GUID)
- //Method unsupported
- HRESULT WINAPI InstallAlternateWriter(
- VSS_ID _id1,
- VSS_ID _id2);
+ LPCWSTR *ppwszSnapshotDevice) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+ virtual VSS_ID* STDMETHODCALLTYPE GetCurrentSnapshotSetId(
+ VSS_ID *__ret) = 0;
+ VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId(
+ )
+ {
+ VSS_ID __ret;
+ return *GetCurrentSnapshotSetId(&__ret);
+ }
+#else
+ virtual VSS_ID STDMETHODCALLTYPE GetCurrentSnapshotSetId(
+ ) = 0;
+#endif
+
+ virtual LONG STDMETHODCALLTYPE GetContext(
+ ) = 0;
+
+ virtual VSS_APPLICATION_LEVEL STDMETHODCALLTYPE GetCurrentLevel(
+ ) = 0;
+
+ virtual boolean STDMETHODCALLTYPE IsPathAffected(
+ LPCWSTR wszPath) = 0;
+
+ virtual boolean STDMETHODCALLTYPE IsBootableSystemStateBackedUp(
+ ) = 0;
+
+ virtual boolean STDMETHODCALLTYPE AreComponentsSelected(
+ ) = 0;
+
+ virtual VSS_BACKUP_TYPE STDMETHODCALLTYPE GetBackupType(
+ ) = 0;
+
+ virtual VSS_RESTORE_TYPE STDMETHODCALLTYPE GetRestoreType(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetWriterFailure(
+ HRESULT hr) = 0;
+
+ virtual boolean STDMETHODCALLTYPE IsPartialFileSupportEnabled(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE InstallAlternateWriter(
+ VSS_ID idWriter,
+ CLSID clsid) = 0;
+
+ virtual IVssExamineWriterMetadata * STDMETHODCALLTYPE GetIdentityInformation(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetWriterFailureEx(
+ HRESULT hr,
+ HRESULT hrApplication,
+ LPCWSTR wszApplicationMessage) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSessionId(
+ VSS_ID *idSession) = 0;
+
+ virtual boolean STDMETHODCALLTYPE IsWriterShuttingDown(
+ ) = 0;
+
};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssWriterImpl, 0x00000000, 0x0000, 0x0000, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00)
+#endif
+#else
+typedef struct IVssWriterImplVtbl {
+ BEGIN_INTERFACE
-class CVssWriterEx : public CVssWriter {
- protected:
- HRESULT WINAPI GetIdentifyInformation(
- IVssExamineWriterMetadata **ppMetadata) const;
- HRESULT WINAPI SubscribeEx(
- DWORD dwUnsubscribeTimeout,
- DWORD dwEventFlags);
- public:
- virtual bool WINAPI OnIdentifyEx(
- IVssCreateWriterMetadataEx *pMetadata) const;
- HRESULT WINAPI InitializeEx(
- VSS_ID WriterId,
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssWriterImpl *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssWriterImpl *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssWriterImpl *This);
+
+ /*** IVssWriterImpl methods ***/
+ HRESULT (STDMETHODCALLTYPE *Initialize)(
+ IVssWriterImpl *This,
+ VSS_ID writerId,
LPCWSTR wszWriterName,
+ LPCWSTR wszWriterInstanceName,
DWORD dwMajorVersion,
DWORD dwMinorVersion,
VSS_USAGE_TYPE ut,
VSS_SOURCE_TYPE st,
VSS_APPLICATION_LEVEL nLevel,
- DWORD dwTimeoutFreeze = 60000,
- VSS_ALTERNATE_WRITER_STATE aws = VSS_AWS_NO_ALTERNATE_WRITER,
- bool bIOThrottlingOnly = false,
- LPCWSTR wszWriterInstanceName = NULL);
-};
+ DWORD dwTimeout,
+ VSS_ALTERNATE_WRITER_STATE aws,
+ boolean bIOThrottlingOnly);
+
+ HRESULT (STDMETHODCALLTYPE *Subscribe)(
+ IVssWriterImpl *This,
+ DWORD dwSubscribeTimeout,
+ DWORD dwEventFlags);
+
+ HRESULT (STDMETHODCALLTYPE *Unsubscribe)(
+ IVssWriterImpl *This);
+
+ void (STDMETHODCALLTYPE *Uninitialize)(
+ IVssWriterImpl *This);
+
+ 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);
-class CVssWriterEx2: public CVssWriterEx {
- public:
- HRESULT WINAPI GetSessionId(
- VSS_ID *idSession) const;
- bool WINAPI IsWriterShuttingDown() const;
- HRESULT WINAPI SetWriterFailureEx(
- HRESULT hrWriter,
+ 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;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssWriterImpl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssWriterImpl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssWriterImpl_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssWriterImpl methods ***/
+#define IVssWriterImpl_Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly) (This)->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly)
+#define IVssWriterImpl_Subscribe(This,dwSubscribeTimeout,dwEventFlags) (This)->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags)
+#define IVssWriterImpl_Unsubscribe(This) (This)->lpVtbl->Unsubscribe(This)
+#define IVssWriterImpl_Uninitialize(This) (This)->lpVtbl->Uninitialize(This)
+#define IVssWriterImpl_GetCurrentVolumeArray(This) (This)->lpVtbl->GetCurrentVolumeArray(This)
+#define IVssWriterImpl_GetCurrentVolumeCount(This) (This)->lpVtbl->GetCurrentVolumeCount(This)
+#define IVssWriterImpl_GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice) (This)->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice)
+#define IVssWriterImpl_GetCurrentSnapshotSetId(This) IVssWriterImpl_GetCurrentSnapshotSetId_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define IVssWriterImpl_GetContext(This) (This)->lpVtbl->GetContext(This)
+#define IVssWriterImpl_GetCurrentLevel(This) (This)->lpVtbl->GetCurrentLevel(This)
+#define IVssWriterImpl_IsPathAffected(This,wszPath) (This)->lpVtbl->IsPathAffected(This,wszPath)
+#define IVssWriterImpl_IsBootableSystemStateBackedUp(This) (This)->lpVtbl->IsBootableSystemStateBackedUp(This)
+#define IVssWriterImpl_AreComponentsSelected(This) (This)->lpVtbl->AreComponentsSelected(This)
+#define IVssWriterImpl_GetBackupType(This) (This)->lpVtbl->GetBackupType(This)
+#define IVssWriterImpl_GetRestoreType(This) (This)->lpVtbl->GetRestoreType(This)
+#define IVssWriterImpl_SetWriterFailure(This,hr) (This)->lpVtbl->SetWriterFailure(This,hr)
+#define IVssWriterImpl_IsPartialFileSupportEnabled(This) (This)->lpVtbl->IsPartialFileSupportEnabled(This)
+#define IVssWriterImpl_InstallAlternateWriter(This,idWriter,clsid) (This)->lpVtbl->InstallAlternateWriter(This,idWriter,clsid)
+#define IVssWriterImpl_GetIdentityInformation(This) (This)->lpVtbl->GetIdentityInformation(This)
+#define IVssWriterImpl_SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage) (This)->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage)
+#define IVssWriterImpl_GetSessionId(This,idSession) (This)->lpVtbl->GetSessionId(This,idSession)
+#define IVssWriterImpl_IsWriterShuttingDown(This) (This)->lpVtbl->IsWriterShuttingDown(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssWriterImpl_QueryInterface(IVssWriterImpl* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssWriterImpl_AddRef(IVssWriterImpl* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssWriterImpl_Release(IVssWriterImpl* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssWriterImpl methods ***/
+static FORCEINLINE HRESULT IVssWriterImpl_Initialize(IVssWriterImpl* This,VSS_ID writerId,LPCWSTR wszWriterName,LPCWSTR wszWriterInstanceName,DWORD dwMajorVersion,DWORD dwMinorVersion,VSS_USAGE_TYPE ut,VSS_SOURCE_TYPE st,VSS_APPLICATION_LEVEL nLevel,DWORD dwTimeout,VSS_ALTERNATE_WRITER_STATE aws,boolean bIOThrottlingOnly) {
+ return This->lpVtbl->Initialize(This,writerId,wszWriterName,wszWriterInstanceName,dwMajorVersion,dwMinorVersion,ut,st,nLevel,dwTimeout,aws,bIOThrottlingOnly);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_Subscribe(IVssWriterImpl* This,DWORD dwSubscribeTimeout,DWORD dwEventFlags) {
+ return This->lpVtbl->Subscribe(This,dwSubscribeTimeout,dwEventFlags);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_Unsubscribe(IVssWriterImpl* This) {
+ return This->lpVtbl->Unsubscribe(This);
+}
+static FORCEINLINE void IVssWriterImpl_Uninitialize(IVssWriterImpl* This) {
+ This->lpVtbl->Uninitialize(This);
+}
+static FORCEINLINE LPCWSTR * IVssWriterImpl_GetCurrentVolumeArray(IVssWriterImpl* This) {
+ return This->lpVtbl->GetCurrentVolumeArray(This);
+}
+static FORCEINLINE UINT IVssWriterImpl_GetCurrentVolumeCount(IVssWriterImpl* This) {
+ return This->lpVtbl->GetCurrentVolumeCount(This);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_GetSnapshotDeviceName(IVssWriterImpl* This,LPCWSTR wszOriginalVolume,LPCWSTR *ppwszSnapshotDevice) {
+ return This->lpVtbl->GetSnapshotDeviceName(This,wszOriginalVolume,ppwszSnapshotDevice);
+}
+static FORCEINLINE VSS_ID IVssWriterImpl_GetCurrentSnapshotSetId(IVssWriterImpl* This) {
+ VSS_ID __ret;
+ return *This->lpVtbl->GetCurrentSnapshotSetId(This,&__ret);
+}
+static FORCEINLINE LONG IVssWriterImpl_GetContext(IVssWriterImpl* This) {
+ return This->lpVtbl->GetContext(This);
+}
+static FORCEINLINE VSS_APPLICATION_LEVEL IVssWriterImpl_GetCurrentLevel(IVssWriterImpl* This) {
+ return This->lpVtbl->GetCurrentLevel(This);
+}
+static FORCEINLINE boolean IVssWriterImpl_IsPathAffected(IVssWriterImpl* This,LPCWSTR wszPath) {
+ return This->lpVtbl->IsPathAffected(This,wszPath);
+}
+static FORCEINLINE boolean IVssWriterImpl_IsBootableSystemStateBackedUp(IVssWriterImpl* This) {
+ return This->lpVtbl->IsBootableSystemStateBackedUp(This);
+}
+static FORCEINLINE boolean IVssWriterImpl_AreComponentsSelected(IVssWriterImpl* This) {
+ return This->lpVtbl->AreComponentsSelected(This);
+}
+static FORCEINLINE VSS_BACKUP_TYPE IVssWriterImpl_GetBackupType(IVssWriterImpl* This) {
+ return This->lpVtbl->GetBackupType(This);
+}
+static FORCEINLINE VSS_RESTORE_TYPE IVssWriterImpl_GetRestoreType(IVssWriterImpl* This) {
+ return This->lpVtbl->GetRestoreType(This);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_SetWriterFailure(IVssWriterImpl* This,HRESULT hr) {
+ return This->lpVtbl->SetWriterFailure(This,hr);
+}
+static FORCEINLINE boolean IVssWriterImpl_IsPartialFileSupportEnabled(IVssWriterImpl* This) {
+ return This->lpVtbl->IsPartialFileSupportEnabled(This);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_InstallAlternateWriter(IVssWriterImpl* This,VSS_ID idWriter,CLSID clsid) {
+ return This->lpVtbl->InstallAlternateWriter(This,idWriter,clsid);
+}
+static FORCEINLINE IVssExamineWriterMetadata * IVssWriterImpl_GetIdentityInformation(IVssWriterImpl* This) {
+ return This->lpVtbl->GetIdentityInformation(This);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_SetWriterFailureEx(IVssWriterImpl* This,HRESULT hr,HRESULT hrApplication,LPCWSTR wszApplicationMessage) {
+ return This->lpVtbl->SetWriterFailureEx(This,hr,hrApplication,wszApplicationMessage);
+}
+static FORCEINLINE HRESULT IVssWriterImpl_GetSessionId(IVssWriterImpl* This,VSS_ID *idSession) {
+ return This->lpVtbl->GetSessionId(This,idSession);
+}
+static FORCEINLINE boolean IVssWriterImpl_IsWriterShuttingDown(IVssWriterImpl* This) {
+ return This->lpVtbl->IsWriterShuttingDown(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssWriterImpl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssCreateExpressWriterMetadata interface
+ */
+#ifndef __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__
+#define __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9c772e77-b26e-427f-92dd-c996f41ea5e3")
+IVssCreateExpressWriterMetadata : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE AddExcludeFiles(
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddComponent(
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszCaption,
+ const BYTE *pbIcon,
+ UINT cbIcon,
+ boolean bRestoreMetadata,
+ boolean bNotifyOnBackupComplete,
+ boolean bSelectable,
+ boolean bSelectableForRestore = 0,
+ DWORD dwComponentFlags = 0) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddFilesToFileGroup(
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszGroupName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation,
+ DWORD dwBackupTypeMask = VSS_FSBT_ALL_BACKUP_REQUIRED | VSS_FSBT_ALL_SNAPSHOT_REQUIRED) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetRestoreMethod(
+ VSS_RESTOREMETHOD_ENUM method,
+ LPCWSTR wszService,
+ LPCWSTR wszUserProcedure,
+ VSS_WRITERRESTORE_ENUM writerRestore,
+ boolean bRebootRequired) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AddComponentDependency(
+ LPCWSTR wszForLogicalPath,
+ LPCWSTR wszForComponentName,
+ VSS_ID onWriterId,
+ LPCWSTR wszOnLogicalPath,
+ LPCWSTR wszOnComponentName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBackupSchema(
+ DWORD dwSchemaMask) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SaveAsXML(
+ BSTR *pbstrXML) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssCreateExpressWriterMetadata, 0x9c772e77, 0xb26e, 0x427f, 0x92,0xdd, 0xc9,0x96,0xf4,0x1e,0xa5,0xe3)
+#endif
+#else
+typedef struct IVssCreateExpressWriterMetadataVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssCreateExpressWriterMetadata *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssCreateExpressWriterMetadata *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssCreateExpressWriterMetadata *This);
+
+ /*** IVssCreateExpressWriterMetadata methods ***/
+ HRESULT (STDMETHODCALLTYPE *AddExcludeFiles)(
+ IVssCreateExpressWriterMetadata *This,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponent)(
+ IVssCreateExpressWriterMetadata *This,
+ VSS_COMPONENT_TYPE ct,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszComponentName,
+ LPCWSTR wszCaption,
+ const BYTE *pbIcon,
+ UINT cbIcon,
+ boolean bRestoreMetadata,
+ boolean bNotifyOnBackupComplete,
+ boolean bSelectable,
+ boolean bSelectableForRestore,
+ DWORD dwComponentFlags);
+
+ HRESULT (STDMETHODCALLTYPE *AddFilesToFileGroup)(
+ IVssCreateExpressWriterMetadata *This,
+ LPCWSTR wszLogicalPath,
+ LPCWSTR wszGroupName,
+ LPCWSTR wszPath,
+ LPCWSTR wszFilespec,
+ boolean bRecursive,
+ LPCWSTR wszAlternateLocation,
+ DWORD dwBackupTypeMask);
+
+ HRESULT (STDMETHODCALLTYPE *SetRestoreMethod)(
+ IVssCreateExpressWriterMetadata *This,
+ VSS_RESTOREMETHOD_ENUM method,
+ LPCWSTR wszService,
+ LPCWSTR wszUserProcedure,
+ VSS_WRITERRESTORE_ENUM writerRestore,
+ boolean bRebootRequired);
+
+ HRESULT (STDMETHODCALLTYPE *AddComponentDependency)(
+ IVssCreateExpressWriterMetadata *This,
+ LPCWSTR wszForLogicalPath,
+ LPCWSTR wszForComponentName,
+ VSS_ID onWriterId,
+ LPCWSTR wszOnLogicalPath,
+ LPCWSTR wszOnComponentName);
+
+ HRESULT (STDMETHODCALLTYPE *SetBackupSchema)(
+ IVssCreateExpressWriterMetadata *This,
+ DWORD dwSchemaMask);
+
+ HRESULT (STDMETHODCALLTYPE *SaveAsXML)(
+ IVssCreateExpressWriterMetadata *This,
+ BSTR *pbstrXML);
+
+ END_INTERFACE
+} IVssCreateExpressWriterMetadataVtbl;
+
+interface IVssCreateExpressWriterMetadata {
+ CONST_VTBL IVssCreateExpressWriterMetadataVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssCreateExpressWriterMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssCreateExpressWriterMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssCreateExpressWriterMetadata_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssCreateExpressWriterMetadata methods ***/
+#define IVssCreateExpressWriterMetadata_AddExcludeFiles(This,wszPath,wszFilespec,bRecursive) (This)->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive)
+#define IVssCreateExpressWriterMetadata_AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags) (This)->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags)
+#define IVssCreateExpressWriterMetadata_AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask) (This)->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask)
+#define IVssCreateExpressWriterMetadata_SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired) (This)->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired)
+#define IVssCreateExpressWriterMetadata_AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName) (This)->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName)
+#define IVssCreateExpressWriterMetadata_SetBackupSchema(This,dwSchemaMask) (This)->lpVtbl->SetBackupSchema(This,dwSchemaMask)
+#define IVssCreateExpressWriterMetadata_SaveAsXML(This,pbstrXML) (This)->lpVtbl->SaveAsXML(This,pbstrXML)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_QueryInterface(IVssCreateExpressWriterMetadata* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssCreateExpressWriterMetadata_AddRef(IVssCreateExpressWriterMetadata* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssCreateExpressWriterMetadata_Release(IVssCreateExpressWriterMetadata* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssCreateExpressWriterMetadata methods ***/
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddExcludeFiles(IVssCreateExpressWriterMetadata* This,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive) {
+ return This->lpVtbl->AddExcludeFiles(This,wszPath,wszFilespec,bRecursive);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddComponent(IVssCreateExpressWriterMetadata* This,VSS_COMPONENT_TYPE ct,LPCWSTR wszLogicalPath,LPCWSTR wszComponentName,LPCWSTR wszCaption,const BYTE *pbIcon,UINT cbIcon,boolean bRestoreMetadata,boolean bNotifyOnBackupComplete,boolean bSelectable,boolean bSelectableForRestore,DWORD dwComponentFlags) {
+ return This->lpVtbl->AddComponent(This,ct,wszLogicalPath,wszComponentName,wszCaption,pbIcon,cbIcon,bRestoreMetadata,bNotifyOnBackupComplete,bSelectable,bSelectableForRestore,dwComponentFlags);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddFilesToFileGroup(IVssCreateExpressWriterMetadata* This,LPCWSTR wszLogicalPath,LPCWSTR wszGroupName,LPCWSTR wszPath,LPCWSTR wszFilespec,boolean bRecursive,LPCWSTR wszAlternateLocation,DWORD dwBackupTypeMask) {
+ return This->lpVtbl->AddFilesToFileGroup(This,wszLogicalPath,wszGroupName,wszPath,wszFilespec,bRecursive,wszAlternateLocation,dwBackupTypeMask);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SetRestoreMethod(IVssCreateExpressWriterMetadata* This,VSS_RESTOREMETHOD_ENUM method,LPCWSTR wszService,LPCWSTR wszUserProcedure,VSS_WRITERRESTORE_ENUM writerRestore,boolean bRebootRequired) {
+ return This->lpVtbl->SetRestoreMethod(This,method,wszService,wszUserProcedure,writerRestore,bRebootRequired);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_AddComponentDependency(IVssCreateExpressWriterMetadata* This,LPCWSTR wszForLogicalPath,LPCWSTR wszForComponentName,VSS_ID onWriterId,LPCWSTR wszOnLogicalPath,LPCWSTR wszOnComponentName) {
+ return This->lpVtbl->AddComponentDependency(This,wszForLogicalPath,wszForComponentName,onWriterId,wszOnLogicalPath,wszOnComponentName);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SetBackupSchema(IVssCreateExpressWriterMetadata* This,DWORD dwSchemaMask) {
+ return This->lpVtbl->SetBackupSchema(This,dwSchemaMask);
+}
+static FORCEINLINE HRESULT IVssCreateExpressWriterMetadata_SaveAsXML(IVssCreateExpressWriterMetadata* This,BSTR *pbstrXML) {
+ return This->lpVtbl->SaveAsXML(This,pbstrXML);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssCreateExpressWriterMetadata_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVssExpressWriter interface
+ */
+#ifndef __IVssExpressWriter_INTERFACE_DEFINED__
+#define __IVssExpressWriter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e33affdc-59c7-47b1-97d5-4266598f6235")
+IVssExpressWriter : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE CreateMetadata(
+ VSS_ID writerId,
+ LPCWSTR writerName,
+ VSS_USAGE_TYPE usageType,
+ DWORD versionMajor,
+ DWORD versionMinor,
+ DWORD reserved,
+ IVssCreateExpressWriterMetadata **ppMetadata) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadMetadata(
+ LPCWSTR metadata,
+ DWORD reserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Register(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Unregister(
+ VSS_ID writerId) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVssExpressWriter, 0xe33affdc, 0x59c7, 0x47b1, 0x97,0xd5, 0x42,0x66,0x59,0x8f,0x62,0x35)
+#endif
+#else
+typedef struct IVssExpressWriterVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IVssExpressWriter *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IVssExpressWriter *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IVssExpressWriter *This);
+
+ /*** IVssExpressWriter methods ***/
+ HRESULT (STDMETHODCALLTYPE *CreateMetadata)(
+ IVssExpressWriter *This,
+ VSS_ID writerId,
+ LPCWSTR writerName,
+ VSS_USAGE_TYPE usageType,
+ DWORD versionMajor,
+ DWORD versionMinor,
+ DWORD reserved,
+ IVssCreateExpressWriterMetadata **ppMetadata);
+
+ HRESULT (STDMETHODCALLTYPE *LoadMetadata)(
+ IVssExpressWriter *This,
+ LPCWSTR metadata,
+ DWORD reserved);
+
+ HRESULT (STDMETHODCALLTYPE *Register)(
+ IVssExpressWriter *This);
+
+ HRESULT (STDMETHODCALLTYPE *Unregister)(
+ IVssExpressWriter *This,
+ VSS_ID writerId);
+
+ END_INTERFACE
+} IVssExpressWriterVtbl;
+
+interface IVssExpressWriter {
+ CONST_VTBL IVssExpressWriterVtbl* lpVtbl;
};
-#endif /*__MINGW_GNUC_PREREQ(4,6)*/
-#endif /*__cplusplus*/
-#include <vsbackup.h>
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVssExpressWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVssExpressWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVssExpressWriter_Release(This) (This)->lpVtbl->Release(This)
+/*** IVssExpressWriter methods ***/
+#define IVssExpressWriter_CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata) (This)->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata)
+#define IVssExpressWriter_LoadMetadata(This,metadata,reserved) (This)->lpVtbl->LoadMetadata(This,metadata,reserved)
+#define IVssExpressWriter_Register(This) (This)->lpVtbl->Register(This)
+#define IVssExpressWriter_Unregister(This,writerId) (This)->lpVtbl->Unregister(This,writerId)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVssExpressWriter_QueryInterface(IVssExpressWriter* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVssExpressWriter_AddRef(IVssExpressWriter* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVssExpressWriter_Release(IVssExpressWriter* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IVssExpressWriter methods ***/
+static FORCEINLINE HRESULT IVssExpressWriter_CreateMetadata(IVssExpressWriter* This,VSS_ID writerId,LPCWSTR writerName,VSS_USAGE_TYPE usageType,DWORD versionMajor,DWORD versionMinor,DWORD reserved,IVssCreateExpressWriterMetadata **ppMetadata) {
+ return This->lpVtbl->CreateMetadata(This,writerId,writerName,usageType,versionMajor,versionMinor,reserved,ppMetadata);
+}
+static FORCEINLINE HRESULT IVssExpressWriter_LoadMetadata(IVssExpressWriter* This,LPCWSTR metadata,DWORD reserved) {
+ return This->lpVtbl->LoadMetadata(This,metadata,reserved);
+}
+static FORCEINLINE HRESULT IVssExpressWriter_Register(IVssExpressWriter* This) {
+ return This->lpVtbl->Register(This);
+}
+static FORCEINLINE HRESULT IVssExpressWriter_Unregister(IVssExpressWriter* This,VSS_ID writerId) {
+ return This->lpVtbl->Unregister(This,writerId);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IVssExpressWriter_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void __RPC_USER BSTR_UserFree (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
-#endif /*_INC_VSWRITER*/
+#endif /* __vswriter_h__ */
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__
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__
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__
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__
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__
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
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__
lib/libc/include/any-windows-any/webauthn.h
@@ -0,0 +1,369 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#ifndef _WEBAUTHN_H_
+#define _WEBAUTHN_H_
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef WINAPI
+#if defined(_ARM_)
+#define WINAPI
+#else
+#define WINAPI __stdcall
+#endif
+#endif
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define WEBAUTHN_API_VERSION_1 1
+#define WEBAUTHN_API_VERSION_2 2
+#define WEBAUTHN_API_VERSION_3 3
+#define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_3
+
+#define WEBAUTHN_RP_ENTITY_INFORMATION_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_RP_ENTITY_INFORMATION {
+ DWORD dwVersion;
+ PCWSTR pwszId;
+ PCWSTR pwszName;
+ PCWSTR pwszIcon;
+} WEBAUTHN_RP_ENTITY_INFORMATION, *PWEBAUTHN_RP_ENTITY_INFORMATION;
+typedef const WEBAUTHN_RP_ENTITY_INFORMATION *PCWEBAUTHN_RP_ENTITY_INFORMATION;
+
+#define WEBAUTHN_MAX_USER_ID_LENGTH 64
+
+#define WEBAUTHN_USER_ENTITY_INFORMATION_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_USER_ENTITY_INFORMATION {
+ DWORD dwVersion;
+ DWORD cbId;
+ PBYTE pbId;
+ PCWSTR pwszName;
+ PCWSTR pwszIcon;
+ PCWSTR pwszDisplayName;
+} WEBAUTHN_USER_ENTITY_INFORMATION, *PWEBAUTHN_USER_ENTITY_INFORMATION;
+typedef const WEBAUTHN_USER_ENTITY_INFORMATION *PCWEBAUTHN_USER_ENTITY_INFORMATION;
+
+#define WEBAUTHN_HASH_ALGORITHM_SHA_256 L"SHA-256"
+#define WEBAUTHN_HASH_ALGORITHM_SHA_384 L"SHA-384"
+#define WEBAUTHN_HASH_ALGORITHM_SHA_512 L"SHA-512"
+
+#define WEBAUTHN_CLIENT_DATA_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_CLIENT_DATA {
+ DWORD dwVersion;
+ DWORD cbClientDataJSON;
+ PBYTE pbClientDataJSON;
+ LPCWSTR pwszHashAlgId;
+} WEBAUTHN_CLIENT_DATA, *PWEBAUTHN_CLIENT_DATA;
+typedef const WEBAUTHN_CLIENT_DATA *PCWEBAUTHN_CLIENT_DATA;
+
+#define WEBAUTHN_CREDENTIAL_TYPE_PUBLIC_KEY L"public-key"
+
+#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P256_WITH_SHA256 -7
+#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P384_WITH_SHA384 -35
+#define WEBAUTHN_COSE_ALGORITHM_ECDSA_P521_WITH_SHA512 -36
+
+#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA256 -257
+#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA384 -258
+#define WEBAUTHN_COSE_ALGORITHM_RSASSA_PKCS1_V1_5_WITH_SHA512 -259
+
+#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA256 -37
+#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA384 -38
+#define WEBAUTHN_COSE_ALGORITHM_RSA_PSS_WITH_SHA512 -39
+
+#define WEBAUTHN_COSE_CREDENTIAL_PARAMETER_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETER {
+ DWORD dwVersion;
+ LPCWSTR pwszCredentialType;
+ LONG lAlg;
+} WEBAUTHN_COSE_CREDENTIAL_PARAMETER, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETER;
+typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETER *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETER;
+
+typedef struct _WEBAUTHN_COSE_CREDENTIAL_PARAMETERS {
+ DWORD cCredentialParameters;
+ PWEBAUTHN_COSE_CREDENTIAL_PARAMETER pCredentialParameters;
+} WEBAUTHN_COSE_CREDENTIAL_PARAMETERS, *PWEBAUTHN_COSE_CREDENTIAL_PARAMETERS;
+typedef const WEBAUTHN_COSE_CREDENTIAL_PARAMETERS *PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS;
+
+#define WEBAUTHN_CREDENTIAL_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_CREDENTIAL {
+ DWORD dwVersion;
+ DWORD cbId;
+ PBYTE pbId;
+ LPCWSTR pwszCredentialType;
+} WEBAUTHN_CREDENTIAL, *PWEBAUTHN_CREDENTIAL;
+typedef const WEBAUTHN_CREDENTIAL *PCWEBAUTHN_CREDENTIAL;
+
+typedef struct _WEBAUTHN_CREDENTIALS {
+ DWORD cCredentials;
+ PWEBAUTHN_CREDENTIAL pCredentials;
+} WEBAUTHN_CREDENTIALS, *PWEBAUTHN_CREDENTIALS;
+typedef const WEBAUTHN_CREDENTIALS *PCWEBAUTHN_CREDENTIALS;
+
+#define WEBAUTHN_CTAP_TRANSPORT_USB 0x00000001
+#define WEBAUTHN_CTAP_TRANSPORT_NFC 0x00000002
+#define WEBAUTHN_CTAP_TRANSPORT_BLE 0x00000004
+#define WEBAUTHN_CTAP_TRANSPORT_TEST 0x00000008
+#define WEBAUTHN_CTAP_TRANSPORT_INTERNAL 0x00000010
+#define WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK 0x0000001F
+
+#define WEBAUTHN_CREDENTIAL_EX_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_CREDENTIAL_EX {
+ DWORD dwVersion;
+ DWORD cbId;
+ PBYTE pbId;
+ LPCWSTR pwszCredentialType;
+ DWORD dwTransports;
+} WEBAUTHN_CREDENTIAL_EX, *PWEBAUTHN_CREDENTIAL_EX;
+typedef const WEBAUTHN_CREDENTIAL_EX *PCWEBAUTHN_CREDENTIAL_EX;
+
+typedef struct _WEBAUTHN_CREDENTIAL_LIST {
+ DWORD cCredentials;
+ PWEBAUTHN_CREDENTIAL_EX *ppCredentials;
+} WEBAUTHN_CREDENTIAL_LIST, *PWEBAUTHN_CREDENTIAL_LIST;
+typedef const WEBAUTHN_CREDENTIAL_LIST *PCWEBAUTHN_CREDENTIAL_LIST;
+
+#define WEBAUTHN_EXTENSIONS_IDENTIFIER_HMAC_SECRET L"hmac-secret"
+
+#define WEBAUTHN_USER_VERIFICATION_ANY 0
+#define WEBAUTHN_USER_VERIFICATION_OPTIONAL 1
+#define WEBAUTHN_USER_VERIFICATION_OPTIONAL_WITH_CREDENTIAL_ID_LIST 2
+#define WEBAUTHN_USER_VERIFICATION_REQUIRED 3
+
+typedef struct _WEBAUTHN_CRED_PROTECT_EXTENSION_IN {
+ DWORD dwCredProtect;
+ WINBOOL bRequireCredProtect;
+} WEBAUTHN_CRED_PROTECT_EXTENSION_IN, *PWEBAUTHN_CRED_PROTECT_EXTENSION_IN;
+typedef const WEBAUTHN_CRED_PROTECT_EXTENSION_IN *PCWEBAUTHN_CRED_PROTECT_EXTENSION_IN;
+
+#define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_PROTECT L"credProtect"
+
+typedef struct _WEBAUTHN_CRED_BLOB_EXTENSION {
+ DWORD cbCredBlob;
+ PBYTE pbCredBlob;
+} WEBAUTHN_CRED_BLOB_EXTENSION, *PWEBAUTHN_CRED_BLOB_EXTENSION;
+typedef const WEBAUTHN_CRED_BLOB_EXTENSION *PCWEBAUTHN_CRED_BLOB_EXTENSION;
+
+#define WEBAUTHN_EXTENSIONS_IDENTIFIER_CRED_BLOB L"credBlob"
+
+#define WEBAUTHN_EXTENSIONS_IDENTIFIER_MIN_PIN_LENGTH L"minPinLength"
+
+typedef struct _WEBAUTHN_EXTENSION {
+ LPCWSTR pwszExtensionIdentifier;
+ DWORD cbExtension;
+ PVOID pvExtension;
+} WEBAUTHN_EXTENSION, *PWEBAUTHN_EXTENSION;
+typedef const WEBAUTHN_EXTENSION *PCWEBAUTHN_EXTENSION;
+
+typedef struct _WEBAUTHN_EXTENSIONS {
+ DWORD cExtensions;
+ PWEBAUTHN_EXTENSION pExtensions;
+} WEBAUTHN_EXTENSIONS, *PWEBAUTHN_EXTENSIONS;
+typedef const WEBAUTHN_EXTENSIONS *PCWEBAUTHN_EXTENSIONS;
+
+#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_ANY 0
+#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_PLATFORM 1
+#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM 2
+#define WEBAUTHN_AUTHENTICATOR_ATTACHMENT_CROSS_PLATFORM_U2F_V2 3
+
+#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_ANY 0
+#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_REQUIRED 1
+#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_PREFERRED 2
+#define WEBAUTHN_USER_VERIFICATION_REQUIREMENT_DISCOURAGED 3
+
+#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_ANY 0
+#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_NONE 1
+#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_INDIRECT 2
+#define WEBAUTHN_ATTESTATION_CONVEYANCE_PREFERENCE_DIRECT 3
+
+#define WEBAUTHN_ENTERPRISE_ATTESTATION_NONE 0
+#define WEBAUTHN_ENTERPRISE_ATTESTATION_VENDOR_FACILITATED 1
+#define WEBAUTHN_ENTERPRISE_ATTESTATION_PLATFORM_MANAGED 2
+
+#define WEBAUTHN_LARGE_BLOB_SUPPORT_NONE 0
+#define WEBAUTHN_LARGE_BLOB_SUPPORT_REQUIRED 1
+#define WEBAUTHN_LARGE_BLOB_SUPPORT_PREFERRED 2
+
+#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_1 1
+#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_2 2
+#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_3 3
+#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4 4
+#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_4
+
+typedef struct _WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS {
+ DWORD dwVersion;
+ DWORD dwTimeoutMilliseconds;
+ WEBAUTHN_CREDENTIALS CredentialList;
+ WEBAUTHN_EXTENSIONS Extensions;
+ DWORD dwAuthenticatorAttachment;
+ WINBOOL bRequireResidentKey;
+ DWORD dwUserVerificationRequirement;
+ DWORD dwAttestationConveyancePreference;
+ DWORD dwFlags;
+ GUID *pCancellationId;
+ PWEBAUTHN_CREDENTIAL_LIST pExcludeCredentialList;
+ DWORD dwEnterpriseAttestation;
+ DWORD dwLargeBlobSupport;
+ WINBOOL bPreferResidentKey;
+} WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS;
+typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS;
+
+#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_NONE 0
+#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_GET 1
+#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_SET 2
+#define WEBAUTHN_CRED_LARGE_BLOB_OPERATION_DELETE 3
+
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_1 1
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_2 2
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_3 3
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_4 4
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 5
+#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5
+
+typedef struct _WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS {
+ DWORD dwVersion;
+ DWORD dwTimeoutMilliseconds;
+ WEBAUTHN_CREDENTIALS CredentialList;
+ WEBAUTHN_EXTENSIONS Extensions;
+ DWORD dwAuthenticatorAttachment;
+ DWORD dwUserVerificationRequirement;
+ DWORD dwFlags;
+ PCWSTR pwszU2fAppId;
+ WINBOOL *pbU2fAppId;
+ GUID *pCancellationId;
+ PWEBAUTHN_CREDENTIAL_LIST pAllowCredentialList;
+ DWORD dwCredLargeBlobOperation;
+ DWORD cbCredLargeBlob;
+ PBYTE pbCredLargeBlob;
+} WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS;
+typedef const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS;
+
+#define WEBAUTHN_ATTESTATION_DECODE_NONE 0
+#define WEBAUTHN_ATTESTATION_DECODE_COMMON 1
+
+#define WEBAUTHN_ATTESTATION_VER_TPM_2_0 L"2.0"
+
+typedef struct _WEBAUTHN_X5C {
+ DWORD cbData;
+ PBYTE pbData;
+} WEBAUTHN_X5C, *PWEBAUTHN_X5C;
+
+#define WEBAUTHN_COMMON_ATTESTATION_CURRENT_VERSION 1
+
+typedef struct _WEBAUTHN_COMMON_ATTESTATION {
+ DWORD dwVersion;
+ PCWSTR pwszAlg;
+ LONG lAlg;
+ DWORD cbSignature;
+ PBYTE pbSignature;
+ DWORD cX5c;
+ PWEBAUTHN_X5C pX5c;
+ PCWSTR pwszVer;
+ DWORD cbCertInfo;
+ PBYTE pbCertInfo;
+ DWORD cbPubArea;
+ PBYTE pbPubArea;
+} WEBAUTHN_COMMON_ATTESTATION, *PWEBAUTHN_COMMON_ATTESTATION;
+typedef const WEBAUTHN_COMMON_ATTESTATION *PCWEBAUTHN_COMMON_ATTESTATION;
+
+#define WEBAUTHN_ATTESTATION_TYPE_PACKED L"packed"
+#define WEBAUTHN_ATTESTATION_TYPE_U2F L"fido-u2f"
+#define WEBAUTHN_ATTESTATION_TYPE_TPM L"tpm"
+#define WEBAUTHN_ATTESTATION_TYPE_NONE L"none"
+
+#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_1 1
+#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_2 2
+#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_3 3
+#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 4
+#define WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4
+
+typedef struct _WEBAUTHN_CREDENTIAL_ATTESTATION {
+ DWORD dwVersion;
+ PCWSTR pwszFormatType;
+ DWORD cbAuthenticatorData;
+ PBYTE pbAuthenticatorData;
+ DWORD cbAttestation;
+ PBYTE pbAttestation;
+ DWORD dwAttestationDecodeType;
+ PVOID pvAttestationDecode;
+ DWORD cbAttestationObject;
+ PBYTE pbAttestationObject;
+ DWORD cbCredentialId;
+ PBYTE pbCredentialId;
+ WEBAUTHN_EXTENSIONS Extensions;
+ DWORD dwUsedTransport;
+ WINBOOL bEpAtt;
+ WINBOOL bLargeBlobSupported;
+ WINBOOL bResidentKey;
+} WEBAUTHN_CREDENTIAL_ATTESTATION, *PWEBAUTHN_CREDENTIAL_ATTESTATION;
+typedef const WEBAUTHN_CREDENTIAL_ATTESTATION *PCWEBAUTHN_CREDENTIAL_ATTESTATION;
+
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NONE 0
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_SUCCESS 1
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_SUPPORTED 2
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_DATA 3
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_INVALID_PARAMETER 4
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_NOT_FOUND 5
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_MULTIPLE_CREDENTIALS 6
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_LACK_OF_SPACE 7
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_PLATFORM_ERROR 8
+#define WEBAUTHN_CRED_LARGE_BLOB_STATUS_AUTHENTICATOR_ERROR 9
+
+#define WEBAUTHN_ASSERTION_VERSION_1 1
+#define WEBAUTHN_ASSERTION_VERSION_2 2
+#define WEBAUTHN_ASSERTION_CURRENT_VERSION WEBAUTHN_ASSERTION_VERSION_2
+
+typedef struct _WEBAUTHN_ASSERTION {
+ DWORD dwVersion;
+ DWORD cbAuthenticatorData;
+ PBYTE pbAuthenticatorData;
+ DWORD cbSignature;
+ PBYTE pbSignature;
+ WEBAUTHN_CREDENTIAL Credential;
+ DWORD cbUserId;
+ PBYTE pbUserId;
+ WEBAUTHN_EXTENSIONS Extensions;
+ DWORD cbCredLargeBlob;
+ PBYTE pbCredLargeBlob;
+ DWORD dwCredLargeBlobStatus;
+} WEBAUTHN_ASSERTION, *PWEBAUTHN_ASSERTION;
+typedef const WEBAUTHN_ASSERTION *PCWEBAUTHN_ASSERTION;
+
+DWORD WINAPI WebAuthNGetApiVersionNumber(void);
+HRESULT WINAPI WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable(WINBOOL *pbIsUserVerifyingPlatformAuthenticatorAvailable);
+HRESULT WINAPI WebAuthNAuthenticatorMakeCredential(HWND hWnd, PCWEBAUTHN_RP_ENTITY_INFORMATION pRpInformation, PCWEBAUTHN_USER_ENTITY_INFORMATION pUserInformation, PCWEBAUTHN_COSE_CREDENTIAL_PARAMETERS pPubKeyCredParams, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS pWebAuthNMakeCredentialOptions, PWEBAUTHN_CREDENTIAL_ATTESTATION *ppWebAuthNCredentialAttestation);
+HRESULT WINAPI WebAuthNAuthenticatorGetAssertion(HWND hWnd, LPCWSTR pwszRpId, PCWEBAUTHN_CLIENT_DATA pWebAuthNClientData, PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS pWebAuthNGetAssertionOptions, PWEBAUTHN_ASSERTION *ppWebAuthNAssertion);
+void WINAPI WebAuthNFreeCredentialAttestation(PWEBAUTHN_CREDENTIAL_ATTESTATION pWebAuthNCredentialAttestation);
+void WINAPI WebAuthNFreeAssertion(PWEBAUTHN_ASSERTION pWebAuthNAssertion);
+HRESULT WINAPI WebAuthNGetCancellationId(GUID* pCancellationId);
+HRESULT WINAPI WebAuthNCancelCurrentOperation(const GUID* pCancellationId);
+PCWSTR WINAPI WebAuthNGetErrorName(HRESULT hr);
+HRESULT WINAPI WebAuthNGetW3CExceptionDOMError(HRESULT hr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINAPI_FAMILY_PARTITION */
+
+#endif /* _WEBAUTHN_H_ */
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
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__
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__
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)
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
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 <class K, class V>
+ struct IMapView_impl;
+
+ template <class K, class V>
+ struct IMapView : IMapView_impl<K, V> {};
+ }
+ }
+ }
+}
+#endif
+
#if defined(__cplusplus) && !defined(CINTERFACE)
namespace ABI {
namespace Windows {
@@ -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 <class K, class V>
+ struct IMapView_impl : IInspectable
+ {
+ private:
+ typedef typename Windows::Foundation::Internal::GetAbiType<K>::type K_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<K>::type K_logical;
+ typedef typename Windows::Foundation::Internal::GetAbiType<V>::type V_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<V>::type V_logical;
+ public:
+ typedef K K_complex;
+ typedef V V_complex;
+ virtual HRESULT STDMETHODCALLTYPE Lookup(K_abi key,V_abi *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_Size(unsigned int *size) = 0;
+ virtual HRESULT STDMETHODCALLTYPE HasKey(K_abi key,boolean *found) = 0;
+ virtual HRESULT STDMETHODCALLTYPE Split(IMapView<K_logical, V_logical> **first,IMapView<K_logical, V_logical> **second) = 0;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#endif
+
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
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;
lib/libc/include/any-windows-any/windows.media.h
@@ -0,0 +1,223 @@
+/*** Autogenerated by WIDL 7.0 from include/windows.media.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_media_h__
+#define __windows_media_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CIMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CIMediaMarker ABI::Windows::Media::IMediaMarker
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ interface IMediaMarker;
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CIMediaControl_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CIMediaControl_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CIMediaControl __x_ABI_CWindows_CMedia_CIMediaControl;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CIMediaControl ABI::Windows::Media::IMediaControl
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ interface IMediaControl;
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IMediaMarker interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CIMediaMarker, 0x1803def8, 0xdca5, 0x4b6f, 0x9c,0x20, 0xe3,0xd3,0xc0,0x64,0x36,0x25);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ MIDL_INTERFACE("1803def8-dca5-4b6f-9c20-e3d3c0643625")
+ IMediaMarker : public IInspectable
+ {
+ virtual HRESULT STDMETHODCALLTYPE get_Time(
+ struct TimeSpan *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_MediaMarkerType(
+ HSTRING *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_Text(
+ HSTRING *value) = 0;
+
+ };
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CIMediaMarker, 0x1803def8, 0xdca5, 0x4b6f, 0x9c,0x20, 0xe3,0xd3,0xc0,0x64,0x36,0x25)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ TrustLevel *trustLevel);
+
+ /*** IMediaMarker methods ***/
+ HRESULT (STDMETHODCALLTYPE *get_Time)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ struct __x_ABI_CWindows_CFoundation_CTimeSpan *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_MediaMarkerType)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ HSTRING *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_Text)(
+ __x_ABI_CWindows_CMedia_CIMediaMarker *This,
+ HSTRING *value);
+
+ END_INTERFACE
+} __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl;
+
+interface __x_ABI_CWindows_CMedia_CIMediaMarker {
+ CONST_VTBL __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IMediaMarker methods ***/
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time(This,value) (This)->lpVtbl->get_Time(This,value)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType(This,value) (This)->lpVtbl->get_MediaMarkerType(This,value)
+#define __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text(This,value) (This)->lpVtbl->get_Text(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface(__x_ABI_CWindows_CMedia_CIMediaMarker* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef(__x_ABI_CWindows_CMedia_CIMediaMarker* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CIMediaMarker_Release(__x_ABI_CWindows_CMedia_CIMediaMarker* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids(__x_ABI_CWindows_CMedia_CIMediaMarker* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel(__x_ABI_CWindows_CMedia_CIMediaMarker* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IMediaMarker methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time(__x_ABI_CWindows_CMedia_CIMediaMarker* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) {
+ return This->lpVtbl->get_Time(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *value) {
+ return This->lpVtbl->get_MediaMarkerType(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text(__x_ABI_CWindows_CMedia_CIMediaMarker* This,HSTRING *value) {
+ return This->lpVtbl->get_Text(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Media
+#define IID_IMediaMarker IID___x_ABI_CWindows_CMedia_CIMediaMarker
+#define IMediaMarkerVtbl __x_ABI_CWindows_CMedia_CIMediaMarkerVtbl
+#define IMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker
+#define IMediaMarker_QueryInterface __x_ABI_CWindows_CMedia_CIMediaMarker_QueryInterface
+#define IMediaMarker_AddRef __x_ABI_CWindows_CMedia_CIMediaMarker_AddRef
+#define IMediaMarker_Release __x_ABI_CWindows_CMedia_CIMediaMarker_Release
+#define IMediaMarker_GetIids __x_ABI_CWindows_CMedia_CIMediaMarker_GetIids
+#define IMediaMarker_GetRuntimeClassName __x_ABI_CWindows_CMedia_CIMediaMarker_GetRuntimeClassName
+#define IMediaMarker_GetTrustLevel __x_ABI_CWindows_CMedia_CIMediaMarker_GetTrustLevel
+#define IMediaMarker_get_Time __x_ABI_CWindows_CMedia_CIMediaMarker_get_Time
+#define IMediaMarker_get_MediaMarkerType __x_ABI_CWindows_CMedia_CIMediaMarker_get_MediaMarkerType
+#define IMediaMarker_get_Text __x_ABI_CWindows_CMedia_CIMediaMarker_get_Text
+#endif /* WIDL_using_Windows_Media */
+#endif
+
+#endif
+
+#endif /* ____x_ABI_CWindows_CMedia_CIMediaMarker_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_media_h__ */
lib/libc/include/any-windows-any/windows.media.speechsynthesis.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/windows.media.speechsynthesis.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/windows.media.speechsynthesis.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -18,6 +18,40 @@
/* Forward declarations */
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ interface ISpeechSynthesisStream;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesizer
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ interface ISpeechSynthesizer;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation;
@@ -69,6 +103,23 @@ typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation __x_AB
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation_FWD_DEFINED__ */
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ class SpeechSynthesisStream;
+ }
+ }
+ }
+}
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesisStream_FWD_DEFINED__ */
+
#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__
#ifdef __cplusplus
@@ -110,10 +161,35 @@ typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInfo
#endif /* __cplusplus */
#endif
+#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CMedia__CIMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::IMediaMarker* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* >
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <inspectable.h>
#include <windows.foundation.h>
+#include <windows.media.h>
#ifdef __cplusplus
extern "C" {
@@ -134,6 +210,20 @@ namespace ABI {
#endif /* __cplusplus */
#endif
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ typedef enum VoiceGender VoiceGender;
+ }
+ }
+ }
+}
+#else /* __cplusplus */
+typedef enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender;
+#endif /* __cplusplus */
+
#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic;
@@ -219,6 +309,123 @@ namespace ABI {
#endif /* __cplusplus */
#endif
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ interface ISpeechSynthesisStream;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType ABI::Windows::Storage::Streams::IRandomAccessStreamWithContentType
+namespace ABI {
+ namespace Windows {
+ namespace Storage {
+ namespace Streams {
+ interface IRandomAccessStreamWithContentType;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream ABI::Windows::Storage::Streams::IRandomAccessStream
+namespace ABI {
+ namespace Windows {
+ namespace Storage {
+ namespace Streams {
+ interface IRandomAccessStream;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIInputStream __x_ABI_CWindows_CStorage_CStreams_CIInputStream;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIInputStream ABI::Windows::Storage::Streams::IInputStream
+namespace ABI {
+ namespace Windows {
+ namespace Storage {
+ namespace Streams {
+ interface IInputStream;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIOutputStream __x_ABI_CWindows_CStorage_CStreams_CIOutputStream;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIOutputStream ABI::Windows::Storage::Streams::IOutputStream
+namespace ABI {
+ namespace Windows {
+ namespace Storage {
+ namespace Streams {
+ interface IOutputStream;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider ABI::Windows::Storage::Streams::IContentTypeProvider
+namespace ABI {
+ namespace Windows {
+ namespace Storage {
+ namespace Streams {
+ interface IContentTypeProvider;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CIMediaMarker_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CIMediaMarker __x_ABI_CWindows_CMedia_CIMediaMarker;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CIMediaMarker ABI::Windows::Media::IMediaMarker
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ interface IMediaMarker;
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
#ifndef ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
#define ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
@@ -243,6 +450,22 @@ typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInfo
#endif /* __cplusplus */
#endif
+#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CMedia__CIMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::IMediaMarker* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* >
+#endif /* __cplusplus */
+#endif
+
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
@@ -265,11 +488,307 @@ enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender {
VoiceGender_Female = 1
};
#ifdef WIDL_using_Windows_Media_SpeechSynthesis
-#define VoiceGender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender
+#define VoiceGender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender
+#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
+#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<ABI::Windows::Media::IMediaMarker* > **value) = 0;
+
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream, 0x83e46e93, 0x244c, 0x4622, 0xba,0x0b, 0x62,0x29,0xc4,0xd0,0xd6,0x5d)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This,
+ TrustLevel *trustLevel);
+
+ /*** ISpeechSynthesisStream methods ***/
+ HRESULT (STDMETHODCALLTYPE *get_Markers)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream *This,
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker **value);
+
+ END_INTERFACE
+} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl;
+
+interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream {
+ CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ISpeechSynthesisStream methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers(This,value) (This)->lpVtbl->get_Markers(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ISpeechSynthesisStream methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream* This,__FIVectorView_1_Windows__CMedia__CIMediaMarker **value) {
+ return This->lpVtbl->get_Markers(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Media_SpeechSynthesis
+#define IID_ISpeechSynthesisStream IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream
+#define ISpeechSynthesisStreamVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStreamVtbl
+#define ISpeechSynthesisStream __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream
+#define ISpeechSynthesisStream_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_QueryInterface
+#define ISpeechSynthesisStream_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_AddRef
+#define ISpeechSynthesisStream_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_Release
+#define ISpeechSynthesisStream_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetIids
+#define ISpeechSynthesisStream_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetRuntimeClassName
+#define ISpeechSynthesisStream_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_GetTrustLevel
+#define ISpeechSynthesisStream_get_Markers __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_get_Markers
+#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
+#endif
+
+#endif
+
+#endif /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * ISpeechSynthesizer interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer, 0xce9f7c76, 0x97f4, 0x4ced, 0xad,0x68, 0xd5,0x1c,0x45,0x8e,0x45,0xc6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Media {
+ namespace SpeechSynthesis {
+ MIDL_INTERFACE("ce9f7c76-97f4-4ced-ad68-d51c458e45c6")
+ ISpeechSynthesizer : public IInspectable
+ {
+ virtual HRESULT STDMETHODCALLTYPE SynthesizeTextToStreamAsync(
+ HSTRING text,
+ ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > **operation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SynthesizeSsmlToStreamAsync(
+ HSTRING Ssml,
+ ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > **operation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE put_Voice(
+ IVoiceInformation *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_Voice(
+ IVoiceInformation **value) = 0;
+
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer, 0xce9f7c76, 0x97f4, 0x4ced, 0xad,0x68, 0xd5,0x1c,0x45,0x8e,0x45,0xc6)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ TrustLevel *trustLevel);
+
+ /*** ISpeechSynthesizer methods ***/
+ HRESULT (STDMETHODCALLTYPE *SynthesizeTextToStreamAsync)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ HSTRING text,
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation);
+
+ HRESULT (STDMETHODCALLTYPE *SynthesizeSsmlToStreamAsync)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ HSTRING Ssml,
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation);
+
+ HRESULT (STDMETHODCALLTYPE *put_Voice)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_Voice)(
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer *This,
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value);
+
+ END_INTERFACE
+} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl;
+
+interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer {
+ CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ISpeechSynthesizer methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync(This,text,operation) (This)->lpVtbl->SynthesizeTextToStreamAsync(This,text,operation)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync(This,Ssml,operation) (This)->lpVtbl->SynthesizeSsmlToStreamAsync(This,Ssml,operation)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice(This,value) (This)->lpVtbl->put_Voice(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice(This,value) (This)->lpVtbl->get_Voice(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ISpeechSynthesizer methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING text,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation) {
+ return This->lpVtbl->SynthesizeTextToStreamAsync(This,text,operation);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,HSTRING Ssml,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **operation) {
+ return This->lpVtbl->SynthesizeSsmlToStreamAsync(This,Ssml,operation);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *value) {
+ return This->lpVtbl->put_Voice(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value) {
+ return This->lpVtbl->get_Voice(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Media_SpeechSynthesis
+#define IID_ISpeechSynthesizer IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer
+#define ISpeechSynthesizerVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizerVtbl
+#define ISpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer
+#define ISpeechSynthesizer_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_QueryInterface
+#define ISpeechSynthesizer_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_AddRef
+#define ISpeechSynthesizer_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_Release
+#define ISpeechSynthesizer_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetIids
+#define ISpeechSynthesizer_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetRuntimeClassName
+#define ISpeechSynthesizer_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_GetTrustLevel
+#define ISpeechSynthesizer_SynthesizeTextToStreamAsync __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeTextToStreamAsync
+#define ISpeechSynthesizer_SynthesizeSsmlToStreamAsync __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_SynthesizeSsmlToStreamAsync
+#define ISpeechSynthesizer_put_Voice __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_put_Voice
+#define ISpeechSynthesizer_get_Voice __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_get_Voice
#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
#endif
+#endif
+
+#endif /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
/*****************************************************************************
* IVoiceInformation interface
*/
@@ -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<ABI::Windows::Media::IMediaMarker* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CMedia__CIMediaMarker, 0xb543562c, 0x02b1, 0x5824, 0x80,0xa8, 0x98,0x54,0x13,0x0c,0xda,0xdd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template<>
+ MIDL_INTERFACE("b543562c-02b1-5824-80a8-9854130cdadd")
+ IVectorView<ABI::Windows::Media::IMediaMarker* > : IVectorView_impl<ABI::Windows::Media::IMediaMarker* >
+ {
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CMedia__CIMediaMarker, 0xb543562c, 0x02b1, 0x5824, 0x80,0xa8, 0x98,0x54,0x13,0x0c,0xda,0xdd)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ TrustLevel *trustLevel);
+
+ /*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAt)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ UINT32 index,
+ __x_ABI_CWindows_CMedia_CIMediaMarker **value);
+
+ HRESULT (STDMETHODCALLTYPE *get_Size)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ UINT32 *value);
+
+ HRESULT (STDMETHODCALLTYPE *IndexOf)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ __x_ABI_CWindows_CMedia_CIMediaMarker *element,
+ UINT32 *index,
+ BOOLEAN *value);
+
+ HRESULT (STDMETHODCALLTYPE *GetMany)(
+ __FIVectorView_1_Windows__CMedia__CIMediaMarker *This,
+ UINT32 start_index,
+ UINT32 items_size,
+ __x_ABI_CWindows_CMedia_CIMediaMarker **items,
+ UINT32 *value);
+
+ END_INTERFACE
+} __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl;
+
+interface __FIVectorView_1_Windows__CMedia__CIMediaMarker {
+ CONST_VTBL __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Media::IMediaMarker* > methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 index,__x_ABI_CWindows_CMedia_CIMediaMarker **value) {
+ return This->lpVtbl->GetAt(This,index,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 *value) {
+ return This->lpVtbl->get_Size(This,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,__x_ABI_CWindows_CMedia_CIMediaMarker *element,UINT32 *index,BOOLEAN *value) {
+ return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany(__FIVectorView_1_Windows__CMedia__CIMediaMarker* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CMedia_CIMediaMarker **items,UINT32 *value) {
+ return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_IMediaMarker IID___FIVectorView_1_Windows__CMedia__CIMediaMarker
+#define IVectorView_IMediaMarkerVtbl __FIVectorView_1_Windows__CMedia__CIMediaMarkerVtbl
+#define IVectorView_IMediaMarker __FIVectorView_1_Windows__CMedia__CIMediaMarker
+#define IVectorView_IMediaMarker_QueryInterface __FIVectorView_1_Windows__CMedia__CIMediaMarker_QueryInterface
+#define IVectorView_IMediaMarker_AddRef __FIVectorView_1_Windows__CMedia__CIMediaMarker_AddRef
+#define IVectorView_IMediaMarker_Release __FIVectorView_1_Windows__CMedia__CIMediaMarker_Release
+#define IVectorView_IMediaMarker_GetIids __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetIids
+#define IVectorView_IMediaMarker_GetRuntimeClassName __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetRuntimeClassName
+#define IVectorView_IMediaMarker_GetTrustLevel __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetTrustLevel
+#define IVectorView_IMediaMarker_GetAt __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetAt
+#define IVectorView_IMediaMarker_get_Size __FIVectorView_1_Windows__CMedia__CIMediaMarker_get_Size
+#define IVectorView_IMediaMarker_IndexOf __FIVectorView_1_Windows__CMedia__CIMediaMarker_IndexOf
+#define IVectorView_IMediaMarker_GetMany __FIVectorView_1_Windows__CMedia__CIMediaMarker_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif /* ____FIVectorView_1_Windows__CMedia__CIMediaMarker_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xdf9d48ad, 0x9cea, 0x560c, 0x9e,0xdc, 0xcb,0x88,0x52,0xcb,0x55,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ template<>
+ MIDL_INTERFACE("df9d48ad-9cea-560c-9edc-cb8852cb55e3")
+ IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream*, ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream* > >
+ {
+ };
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xdf9d48ad, 0x9cea, 0x560c, 0x9e,0xdc, 0xcb,0x88,0x52,0xcb,0x55,0xe3)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ TrustLevel *trustLevel);
+
+ /*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+ HRESULT (STDMETHODCALLTYPE *put_Completed)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *handler);
+
+ HRESULT (STDMETHODCALLTYPE *get_Completed)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **handler);
+
+ HRESULT (STDMETHODCALLTYPE *GetResults)(
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ***results);
+
+ END_INTERFACE
+} __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl;
+
+interface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream {
+ CONST_VTBL __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *handler) {
+ return This->lpVtbl->put_Completed(This,handler);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream **handler) {
+ return This->lpVtbl->get_Completed(This,handler);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults(__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesisStream ***results) {
+ return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_SpeechSynthesisStream IID___FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream
+#define IAsyncOperation_SpeechSynthesisStreamVtbl __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl
+#define IAsyncOperation_SpeechSynthesisStream __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream
+#define IAsyncOperation_SpeechSynthesisStream_QueryInterface __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface
+#define IAsyncOperation_SpeechSynthesisStream_AddRef __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef
+#define IAsyncOperation_SpeechSynthesisStream_Release __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release
+#define IAsyncOperation_SpeechSynthesisStream_GetIids __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetIids
+#define IAsyncOperation_SpeechSynthesisStream_GetRuntimeClassName __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetRuntimeClassName
+#define IAsyncOperation_SpeechSynthesisStream_GetTrustLevel __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetTrustLevel
+#define IAsyncOperation_SpeechSynthesisStream_put_Completed __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_put_Completed
+#define IAsyncOperation_SpeechSynthesisStream_get_Completed __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_get_Completed
+#define IAsyncOperation_SpeechSynthesisStream_GetResults __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif /* ____FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xc972b996, 0x6165, 0x50d4, 0xaf,0x60, 0xa8,0xc3,0xdf,0x51,0xd0,0x92);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ template<>
+ MIDL_INTERFACE("c972b996-6165-50d4-af60-a8c3df51d092")
+ IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream*, ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesisStream* > >
+ {
+ };
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream, 0xc972b996, 0x6165, 0x50d4, 0xaf,0x60, 0xa8,0xc3,0xdf,0x51,0xd0,0x92)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This);
+
+ /*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+ HRESULT (STDMETHODCALLTYPE *Invoke)(
+ __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *This,
+ __FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *info,
+ AsyncStatus status);
+
+ END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream {
+ CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Media::SpeechSynthesis::SpeechSynthesisStream* > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream* This,__FIAsyncOperation_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream *info,AsyncStatus status) {
+ return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_SpeechSynthesisStream IID___FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStreamVtbl __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStreamVtbl
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStream __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_QueryInterface
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_AddRef
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_Release __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Release
+#define IAsyncOperationCompletedHandler_SpeechSynthesisStream_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif /* ____FIAsyncOperationCompletedHandler_1_Windows__CMedia__CSpeechSynthesis__CSpeechSynthesisStream_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
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 {
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 {
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__
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__
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
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__
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)
lib/libc/include/any-windows-any/winevt.h
@@ -3,14 +3,24 @@
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
-#ifndef _INC_WINEVT
-#define _INC_WINEVT
+#ifndef __WINEVT_H__
+#define __WINEVT_H__
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
#if (_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus
extern "C" {
#endif
+#define EVT_READ_ACCESS 0x1
+#define EVT_WRITE_ACCESS 0x2
+#define EVT_CLEAR_ACCESS 0x4
+#define EVT_ALL_ACCESS 0x7
+
typedef enum _EVT_CHANNEL_CLOCK_TYPE {
EvtChannelClockTypeSystemTime = 0,
EvtChannelClockTypeQPC = 1
@@ -266,6 +276,9 @@ typedef enum _EVT_VARIANT_TYPE {
EvtVarTypeEvtXml = 35
} EVT_VARIANT_TYPE;
+#define EVT_VARIANT_TYPE_MASK 0x7f
+#define EVT_VARIANT_TYPE_ARRAY 128
+
typedef HANDLE EVT_HANDLE;
typedef HANDLE EVT_OBJECT_ARRAY_PROPERTY_HANDLE;
@@ -572,5 +585,7 @@ WINBOOL WINAPI EvtUpdateBookmark(
#ifdef __cplusplus
}
#endif
+
#endif /*(_WIN32_WINNT >= 0x0600)*/
-#endif /*_INC_TDH*/
+#endif /* WINAPI_PARTITION_DESKTOP */
+#endif /*__WINEVT_H__ */
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
}
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_ */
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)
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)
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;
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;
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);
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
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);
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/wmsbuffer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/wmsbuffer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/wmsbuffer.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -26,6 +26,22 @@ interface INSSBuffer;
#endif /* __cplusplus */
#endif
+#ifndef __INSSBuffer2_FWD_DEFINED__
+#define __INSSBuffer2_FWD_DEFINED__
+typedef interface INSSBuffer2 INSSBuffer2;
+#ifdef __cplusplus
+interface INSSBuffer2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __INSSBuffer3_FWD_DEFINED__
+#define __INSSBuffer3_FWD_DEFINED__
+typedef interface INSSBuffer3 INSSBuffer3;
+#ifdef __cplusplus
+interface INSSBuffer3;
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <objidl.h>
@@ -157,6 +173,303 @@ static FORCEINLINE HRESULT INSSBuffer_GetBufferAndLength(INSSBuffer* This,BYTE *
#endif /* __INSSBuffer_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * INSSBuffer2 interface
+ */
+#ifndef __INSSBuffer2_INTERFACE_DEFINED__
+#define __INSSBuffer2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INSSBuffer2, 0x4f528693, 0x1035, 0x43fe, 0xb4,0x28, 0x75,0x75,0x61,0xad,0x3a,0x68);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4f528693-1035-43fe-b428-757561ad3a68")
+INSSBuffer2 : public INSSBuffer
+{
+ virtual HRESULT STDMETHODCALLTYPE GetSampleProperties(
+ DWORD size,
+ BYTE *props) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetSampleProperties(
+ DWORD size,
+ BYTE *props) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INSSBuffer2, 0x4f528693, 0x1035, 0x43fe, 0xb4,0x28, 0x75,0x75,0x61,0xad,0x3a,0x68)
+#endif
+#else
+typedef struct INSSBuffer2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ INSSBuffer2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ INSSBuffer2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ INSSBuffer2 *This);
+
+ /*** INSSBuffer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLength)(
+ INSSBuffer2 *This,
+ DWORD *pdwLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetLength)(
+ INSSBuffer2 *This,
+ DWORD dwLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
+ INSSBuffer2 *This,
+ DWORD *pdwLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ INSSBuffer2 *This,
+ BYTE **ppdwBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)(
+ INSSBuffer2 *This,
+ BYTE **ppdwBuffer,
+ DWORD *pdwLength);
+
+ /*** INSSBuffer2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSampleProperties)(
+ INSSBuffer2 *This,
+ DWORD size,
+ BYTE *props);
+
+ HRESULT (STDMETHODCALLTYPE *SetSampleProperties)(
+ INSSBuffer2 *This,
+ DWORD size,
+ BYTE *props);
+
+ END_INTERFACE
+} INSSBuffer2Vtbl;
+
+interface INSSBuffer2 {
+ CONST_VTBL INSSBuffer2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INSSBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INSSBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INSSBuffer2_Release(This) (This)->lpVtbl->Release(This)
+/*** INSSBuffer methods ***/
+#define INSSBuffer2_GetLength(This,pdwLength) (This)->lpVtbl->GetLength(This,pdwLength)
+#define INSSBuffer2_SetLength(This,dwLength) (This)->lpVtbl->SetLength(This,dwLength)
+#define INSSBuffer2_GetMaxLength(This,pdwLength) (This)->lpVtbl->GetMaxLength(This,pdwLength)
+#define INSSBuffer2_GetBuffer(This,ppdwBuffer) (This)->lpVtbl->GetBuffer(This,ppdwBuffer)
+#define INSSBuffer2_GetBufferAndLength(This,ppdwBuffer,pdwLength) (This)->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength)
+/*** INSSBuffer2 methods ***/
+#define INSSBuffer2_GetSampleProperties(This,size,props) (This)->lpVtbl->GetSampleProperties(This,size,props)
+#define INSSBuffer2_SetSampleProperties(This,size,props) (This)->lpVtbl->SetSampleProperties(This,size,props)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INSSBuffer2_QueryInterface(INSSBuffer2* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INSSBuffer2_AddRef(INSSBuffer2* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INSSBuffer2_Release(INSSBuffer2* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** INSSBuffer methods ***/
+static FORCEINLINE HRESULT INSSBuffer2_GetLength(INSSBuffer2* This,DWORD *pdwLength) {
+ return This->lpVtbl->GetLength(This,pdwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer2_SetLength(INSSBuffer2* This,DWORD dwLength) {
+ return This->lpVtbl->SetLength(This,dwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer2_GetMaxLength(INSSBuffer2* This,DWORD *pdwLength) {
+ return This->lpVtbl->GetMaxLength(This,pdwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer2_GetBuffer(INSSBuffer2* This,BYTE **ppdwBuffer) {
+ return This->lpVtbl->GetBuffer(This,ppdwBuffer);
+}
+static FORCEINLINE HRESULT INSSBuffer2_GetBufferAndLength(INSSBuffer2* This,BYTE **ppdwBuffer,DWORD *pdwLength) {
+ return This->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength);
+}
+/*** INSSBuffer2 methods ***/
+static FORCEINLINE HRESULT INSSBuffer2_GetSampleProperties(INSSBuffer2* This,DWORD size,BYTE *props) {
+ return This->lpVtbl->GetSampleProperties(This,size,props);
+}
+static FORCEINLINE HRESULT INSSBuffer2_SetSampleProperties(INSSBuffer2* This,DWORD size,BYTE *props) {
+ return This->lpVtbl->SetSampleProperties(This,size,props);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __INSSBuffer2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * INSSBuffer3 interface
+ */
+#ifndef __INSSBuffer3_INTERFACE_DEFINED__
+#define __INSSBuffer3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_INSSBuffer3, 0xc87ceaaf, 0x75be, 0x4bc4, 0x84,0xeb, 0xac,0x27,0x98,0x50,0x76,0x72);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c87ceaaf-75be-4bc4-84eb-ac2798507672")
+INSSBuffer3 : public INSSBuffer2
+{
+ virtual HRESULT STDMETHODCALLTYPE SetProperty(
+ GUID id,
+ void *value,
+ DWORD size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetProperty(
+ GUID id,
+ void *value,
+ DWORD *size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INSSBuffer3, 0xc87ceaaf, 0x75be, 0x4bc4, 0x84,0xeb, 0xac,0x27,0x98,0x50,0x76,0x72)
+#endif
+#else
+typedef struct INSSBuffer3Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ INSSBuffer3 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ INSSBuffer3 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ INSSBuffer3 *This);
+
+ /*** INSSBuffer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetLength)(
+ INSSBuffer3 *This,
+ DWORD *pdwLength);
+
+ HRESULT (STDMETHODCALLTYPE *SetLength)(
+ INSSBuffer3 *This,
+ DWORD dwLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
+ INSSBuffer3 *This,
+ DWORD *pdwLength);
+
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ INSSBuffer3 *This,
+ BYTE **ppdwBuffer);
+
+ HRESULT (STDMETHODCALLTYPE *GetBufferAndLength)(
+ INSSBuffer3 *This,
+ BYTE **ppdwBuffer,
+ DWORD *pdwLength);
+
+ /*** INSSBuffer2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetSampleProperties)(
+ INSSBuffer3 *This,
+ DWORD size,
+ BYTE *props);
+
+ HRESULT (STDMETHODCALLTYPE *SetSampleProperties)(
+ INSSBuffer3 *This,
+ DWORD size,
+ BYTE *props);
+
+ /*** INSSBuffer3 methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetProperty)(
+ INSSBuffer3 *This,
+ GUID id,
+ void *value,
+ DWORD size);
+
+ HRESULT (STDMETHODCALLTYPE *GetProperty)(
+ INSSBuffer3 *This,
+ GUID id,
+ void *value,
+ DWORD *size);
+
+ END_INTERFACE
+} INSSBuffer3Vtbl;
+
+interface INSSBuffer3 {
+ CONST_VTBL INSSBuffer3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INSSBuffer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INSSBuffer3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INSSBuffer3_Release(This) (This)->lpVtbl->Release(This)
+/*** INSSBuffer methods ***/
+#define INSSBuffer3_GetLength(This,pdwLength) (This)->lpVtbl->GetLength(This,pdwLength)
+#define INSSBuffer3_SetLength(This,dwLength) (This)->lpVtbl->SetLength(This,dwLength)
+#define INSSBuffer3_GetMaxLength(This,pdwLength) (This)->lpVtbl->GetMaxLength(This,pdwLength)
+#define INSSBuffer3_GetBuffer(This,ppdwBuffer) (This)->lpVtbl->GetBuffer(This,ppdwBuffer)
+#define INSSBuffer3_GetBufferAndLength(This,ppdwBuffer,pdwLength) (This)->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength)
+/*** INSSBuffer2 methods ***/
+#define INSSBuffer3_GetSampleProperties(This,size,props) (This)->lpVtbl->GetSampleProperties(This,size,props)
+#define INSSBuffer3_SetSampleProperties(This,size,props) (This)->lpVtbl->SetSampleProperties(This,size,props)
+/*** INSSBuffer3 methods ***/
+#define INSSBuffer3_SetProperty(This,id,value,size) (This)->lpVtbl->SetProperty(This,id,value,size)
+#define INSSBuffer3_GetProperty(This,id,value,size) (This)->lpVtbl->GetProperty(This,id,value,size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INSSBuffer3_QueryInterface(INSSBuffer3* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INSSBuffer3_AddRef(INSSBuffer3* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INSSBuffer3_Release(INSSBuffer3* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** INSSBuffer methods ***/
+static FORCEINLINE HRESULT INSSBuffer3_GetLength(INSSBuffer3* This,DWORD *pdwLength) {
+ return This->lpVtbl->GetLength(This,pdwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer3_SetLength(INSSBuffer3* This,DWORD dwLength) {
+ return This->lpVtbl->SetLength(This,dwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer3_GetMaxLength(INSSBuffer3* This,DWORD *pdwLength) {
+ return This->lpVtbl->GetMaxLength(This,pdwLength);
+}
+static FORCEINLINE HRESULT INSSBuffer3_GetBuffer(INSSBuffer3* This,BYTE **ppdwBuffer) {
+ return This->lpVtbl->GetBuffer(This,ppdwBuffer);
+}
+static FORCEINLINE HRESULT INSSBuffer3_GetBufferAndLength(INSSBuffer3* This,BYTE **ppdwBuffer,DWORD *pdwLength) {
+ return This->lpVtbl->GetBufferAndLength(This,ppdwBuffer,pdwLength);
+}
+/*** INSSBuffer2 methods ***/
+static FORCEINLINE HRESULT INSSBuffer3_GetSampleProperties(INSSBuffer3* This,DWORD size,BYTE *props) {
+ return This->lpVtbl->GetSampleProperties(This,size,props);
+}
+static FORCEINLINE HRESULT INSSBuffer3_SetSampleProperties(INSSBuffer3* This,DWORD size,BYTE *props) {
+ return This->lpVtbl->SetSampleProperties(This,size,props);
+}
+/*** INSSBuffer3 methods ***/
+static FORCEINLINE HRESULT INSSBuffer3_SetProperty(INSSBuffer3* This,GUID id,void *value,DWORD size) {
+ return This->lpVtbl->SetProperty(This,id,value,size);
+}
+static FORCEINLINE HRESULT INSSBuffer3_GetProperty(INSSBuffer3* This,GUID id,void *value,DWORD *size) {
+ return This->lpVtbl->GetProperty(This,id,value,size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __INSSBuffer3_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
lib/libc/include/any-windows-any/wmsdkidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/wmsdkidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/wmsdkidl.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -34,6 +34,14 @@ interface IWMReaderCallback;
#endif /* __cplusplus */
#endif
+#ifndef __IWMReaderCallbackAdvanced_FWD_DEFINED__
+#define __IWMReaderCallbackAdvanced_FWD_DEFINED__
+typedef interface IWMReaderCallbackAdvanced IWMReaderCallbackAdvanced;
+#ifdef __cplusplus
+interface IWMReaderCallbackAdvanced;
+#endif /* __cplusplus */
+#endif
+
#ifndef __IWMStreamList_FWD_DEFINED__
#define __IWMStreamList_FWD_DEFINED__
typedef interface IWMStreamList IWMStreamList;
@@ -458,6 +466,22 @@ interface IWMLicenseRestore;
#endif /* __cplusplus */
#endif
+#ifndef __IWMIStreamProps_FWD_DEFINED__
+#define __IWMIStreamProps_FWD_DEFINED__
+typedef interface IWMIStreamProps IWMIStreamProps;
+#ifdef __cplusplus
+interface IWMIStreamProps;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMCredentialCallback_FWD_DEFINED__
+#define __IWMCredentialCallback_FWD_DEFINED__
+typedef interface IWMCredentialCallback IWMCredentialCallback;
+#ifdef __cplusplus
+interface IWMCredentialCallback;
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <oaidl.h>
@@ -519,6 +543,11 @@ typedef struct _WMReaderClientInfo {
QWORD qwHostVersion;
WCHAR *wszPlayerUserAgent;
} WM_READER_CLIENTINFO;
+enum {
+ WM_SF_CLEANPOINT = 0x1,
+ WM_SF_DISCONTINUITY = 0x2,
+ WM_SF_DATALOSS = 0x4
+};
typedef enum WMT_ATTR_DATATYPE {
WMT_TYPE_DWORD = 0,
WMT_TYPE_STRING = 1,
@@ -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**);
lib/libc/include/any-windows-any/wmsecure.h
@@ -0,0 +1,472 @@
+/*** Autogenerated by WIDL 7.0 from include/wmsecure.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __wmsecure_h__
+#define __wmsecure_h__
+
+/* Forward declarations */
+
+#ifndef __IWMAuthorizer_FWD_DEFINED__
+#define __IWMAuthorizer_FWD_DEFINED__
+typedef interface IWMAuthorizer IWMAuthorizer;
+#ifdef __cplusplus
+interface IWMAuthorizer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMSecureChannel_FWD_DEFINED__
+#define __IWMSecureChannel_FWD_DEFINED__
+typedef interface IWMSecureChannel IWMSecureChannel;
+#ifdef __cplusplus
+interface IWMSecureChannel;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMGetSecureChannel_FWD_DEFINED__
+#define __IWMGetSecureChannel_FWD_DEFINED__
+typedef interface IWMGetSecureChannel IWMGetSecureChannel;
+#ifdef __cplusplus
+interface IWMGetSecureChannel;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IWMAuthorizer interface
+ */
+#ifndef __IWMAuthorizer_INTERFACE_DEFINED__
+#define __IWMAuthorizer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMAuthorizer, 0xd9b67d36, 0xa9ad, 0x4eb4, 0xba,0xef, 0xdb,0x28,0x4e,0xf5,0x50,0x4c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d9b67d36-a9ad-4eb4-baef-db284ef5504c")
+IWMAuthorizer : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetCertCount(
+ DWORD *count) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCert(
+ DWORD index,
+ BYTE **data) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetSharedData(
+ DWORD index,
+ const BYTE *data,
+ BYTE *cert,
+ BYTE **ret_data) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMAuthorizer, 0xd9b67d36, 0xa9ad, 0x4eb4, 0xba,0xef, 0xdb,0x28,0x4e,0xf5,0x50,0x4c)
+#endif
+#else
+typedef struct IWMAuthorizerVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMAuthorizer *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMAuthorizer *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMAuthorizer *This);
+
+ /*** IWMAuthorizer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCertCount)(
+ IWMAuthorizer *This,
+ DWORD *count);
+
+ HRESULT (STDMETHODCALLTYPE *GetCert)(
+ IWMAuthorizer *This,
+ DWORD index,
+ BYTE **data);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedData)(
+ IWMAuthorizer *This,
+ DWORD index,
+ const BYTE *data,
+ BYTE *cert,
+ BYTE **ret_data);
+
+ END_INTERFACE
+} IWMAuthorizerVtbl;
+
+interface IWMAuthorizer {
+ CONST_VTBL IWMAuthorizerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMAuthorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMAuthorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMAuthorizer_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMAuthorizer methods ***/
+#define IWMAuthorizer_GetCertCount(This,count) (This)->lpVtbl->GetCertCount(This,count)
+#define IWMAuthorizer_GetCert(This,index,data) (This)->lpVtbl->GetCert(This,index,data)
+#define IWMAuthorizer_GetSharedData(This,index,data,cert,ret_data) (This)->lpVtbl->GetSharedData(This,index,data,cert,ret_data)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMAuthorizer_QueryInterface(IWMAuthorizer* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMAuthorizer_AddRef(IWMAuthorizer* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMAuthorizer_Release(IWMAuthorizer* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMAuthorizer methods ***/
+static FORCEINLINE HRESULT IWMAuthorizer_GetCertCount(IWMAuthorizer* This,DWORD *count) {
+ return This->lpVtbl->GetCertCount(This,count);
+}
+static FORCEINLINE HRESULT IWMAuthorizer_GetCert(IWMAuthorizer* This,DWORD index,BYTE **data) {
+ return This->lpVtbl->GetCert(This,index,data);
+}
+static FORCEINLINE HRESULT IWMAuthorizer_GetSharedData(IWMAuthorizer* This,DWORD index,const BYTE *data,BYTE *cert,BYTE **ret_data) {
+ return This->lpVtbl->GetSharedData(This,index,data,cert,ret_data);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWMAuthorizer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMSecureChannel interface
+ */
+#ifndef __IWMSecureChannel_INTERFACE_DEFINED__
+#define __IWMSecureChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMSecureChannel, 0x2720598a, 0xd0f2, 0x4189, 0xbd,0x10, 0x91,0xc4,0x6e,0xf0,0x93,0x6f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2720598a-d0f2-4189-bd10-91c46ef0936f")
+IWMSecureChannel : public IWMAuthorizer
+{
+ virtual HRESULT STDMETHODCALLTYPE WMSC_AddCertificate(
+ IWMAuthorizer *cert) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_AddSignature(
+ BYTE *signature,
+ DWORD size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Connect(
+ IWMSecureChannel *peer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_IsConnected(
+ WINBOOL *connected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Disconnect(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_GetValidCertificate(
+ BYTE **cert,
+ DWORD *signature) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Encrypt(
+ BYTE *data,
+ DWORD size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Decrypt(
+ BYTE *data,
+ DWORD size) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Lock(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_Unlock(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE WMSC_SetSharedData(
+ DWORD index,
+ BYTE *data) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMSecureChannel, 0x2720598a, 0xd0f2, 0x4189, 0xbd,0x10, 0x91,0xc4,0x6e,0xf0,0x93,0x6f)
+#endif
+#else
+typedef struct IWMSecureChannelVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMSecureChannel *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMSecureChannel *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMSecureChannel *This);
+
+ /*** IWMAuthorizer methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetCertCount)(
+ IWMSecureChannel *This,
+ DWORD *count);
+
+ HRESULT (STDMETHODCALLTYPE *GetCert)(
+ IWMSecureChannel *This,
+ DWORD index,
+ BYTE **data);
+
+ HRESULT (STDMETHODCALLTYPE *GetSharedData)(
+ IWMSecureChannel *This,
+ DWORD index,
+ const BYTE *data,
+ BYTE *cert,
+ BYTE **ret_data);
+
+ /*** IWMSecureChannel methods ***/
+ HRESULT (STDMETHODCALLTYPE *WMSC_AddCertificate)(
+ IWMSecureChannel *This,
+ IWMAuthorizer *cert);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_AddSignature)(
+ IWMSecureChannel *This,
+ BYTE *signature,
+ DWORD size);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Connect)(
+ IWMSecureChannel *This,
+ IWMSecureChannel *peer);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_IsConnected)(
+ IWMSecureChannel *This,
+ WINBOOL *connected);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Disconnect)(
+ IWMSecureChannel *This);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_GetValidCertificate)(
+ IWMSecureChannel *This,
+ BYTE **cert,
+ DWORD *signature);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Encrypt)(
+ IWMSecureChannel *This,
+ BYTE *data,
+ DWORD size);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Decrypt)(
+ IWMSecureChannel *This,
+ BYTE *data,
+ DWORD size);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Lock)(
+ IWMSecureChannel *This);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_Unlock)(
+ IWMSecureChannel *This);
+
+ HRESULT (STDMETHODCALLTYPE *WMSC_SetSharedData)(
+ IWMSecureChannel *This,
+ DWORD index,
+ BYTE *data);
+
+ END_INTERFACE
+} IWMSecureChannelVtbl;
+
+interface IWMSecureChannel {
+ CONST_VTBL IWMSecureChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMSecureChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMSecureChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMSecureChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMAuthorizer methods ***/
+#define IWMSecureChannel_GetCertCount(This,count) (This)->lpVtbl->GetCertCount(This,count)
+#define IWMSecureChannel_GetCert(This,index,data) (This)->lpVtbl->GetCert(This,index,data)
+#define IWMSecureChannel_GetSharedData(This,index,data,cert,ret_data) (This)->lpVtbl->GetSharedData(This,index,data,cert,ret_data)
+/*** IWMSecureChannel methods ***/
+#define IWMSecureChannel_WMSC_AddCertificate(This,cert) (This)->lpVtbl->WMSC_AddCertificate(This,cert)
+#define IWMSecureChannel_WMSC_AddSignature(This,signature,size) (This)->lpVtbl->WMSC_AddSignature(This,signature,size)
+#define IWMSecureChannel_WMSC_Connect(This,peer) (This)->lpVtbl->WMSC_Connect(This,peer)
+#define IWMSecureChannel_WMSC_IsConnected(This,connected) (This)->lpVtbl->WMSC_IsConnected(This,connected)
+#define IWMSecureChannel_WMSC_Disconnect(This) (This)->lpVtbl->WMSC_Disconnect(This)
+#define IWMSecureChannel_WMSC_GetValidCertificate(This,cert,signature) (This)->lpVtbl->WMSC_GetValidCertificate(This,cert,signature)
+#define IWMSecureChannel_WMSC_Encrypt(This,data,size) (This)->lpVtbl->WMSC_Encrypt(This,data,size)
+#define IWMSecureChannel_WMSC_Decrypt(This,data,size) (This)->lpVtbl->WMSC_Decrypt(This,data,size)
+#define IWMSecureChannel_WMSC_Lock(This) (This)->lpVtbl->WMSC_Lock(This)
+#define IWMSecureChannel_WMSC_Unlock(This) (This)->lpVtbl->WMSC_Unlock(This)
+#define IWMSecureChannel_WMSC_SetSharedData(This,index,data) (This)->lpVtbl->WMSC_SetSharedData(This,index,data)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMSecureChannel_QueryInterface(IWMSecureChannel* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMSecureChannel_AddRef(IWMSecureChannel* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMSecureChannel_Release(IWMSecureChannel* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMAuthorizer methods ***/
+static FORCEINLINE HRESULT IWMSecureChannel_GetCertCount(IWMSecureChannel* This,DWORD *count) {
+ return This->lpVtbl->GetCertCount(This,count);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_GetCert(IWMSecureChannel* This,DWORD index,BYTE **data) {
+ return This->lpVtbl->GetCert(This,index,data);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_GetSharedData(IWMSecureChannel* This,DWORD index,const BYTE *data,BYTE *cert,BYTE **ret_data) {
+ return This->lpVtbl->GetSharedData(This,index,data,cert,ret_data);
+}
+/*** IWMSecureChannel methods ***/
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_AddCertificate(IWMSecureChannel* This,IWMAuthorizer *cert) {
+ return This->lpVtbl->WMSC_AddCertificate(This,cert);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_AddSignature(IWMSecureChannel* This,BYTE *signature,DWORD size) {
+ return This->lpVtbl->WMSC_AddSignature(This,signature,size);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Connect(IWMSecureChannel* This,IWMSecureChannel *peer) {
+ return This->lpVtbl->WMSC_Connect(This,peer);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_IsConnected(IWMSecureChannel* This,WINBOOL *connected) {
+ return This->lpVtbl->WMSC_IsConnected(This,connected);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Disconnect(IWMSecureChannel* This) {
+ return This->lpVtbl->WMSC_Disconnect(This);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_GetValidCertificate(IWMSecureChannel* This,BYTE **cert,DWORD *signature) {
+ return This->lpVtbl->WMSC_GetValidCertificate(This,cert,signature);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Encrypt(IWMSecureChannel* This,BYTE *data,DWORD size) {
+ return This->lpVtbl->WMSC_Encrypt(This,data,size);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Decrypt(IWMSecureChannel* This,BYTE *data,DWORD size) {
+ return This->lpVtbl->WMSC_Decrypt(This,data,size);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Lock(IWMSecureChannel* This) {
+ return This->lpVtbl->WMSC_Lock(This);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_Unlock(IWMSecureChannel* This) {
+ return This->lpVtbl->WMSC_Unlock(This);
+}
+static FORCEINLINE HRESULT IWMSecureChannel_WMSC_SetSharedData(IWMSecureChannel* This,DWORD index,BYTE *data) {
+ return This->lpVtbl->WMSC_SetSharedData(This,index,data);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWMSecureChannel_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMGetSecureChannel interface
+ */
+#ifndef __IWMGetSecureChannel_INTERFACE_DEFINED__
+#define __IWMGetSecureChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMGetSecureChannel, 0x94bc0598, 0xc3d2, 0x11d3, 0xbe,0xdf, 0x00,0xc0,0x4f,0x61,0x29,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("94bc0598-c3d2-11d3-bedf-00c04f612986")
+IWMGetSecureChannel : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetPeerSecureChannelInterface(
+ IWMSecureChannel **channel) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMGetSecureChannel, 0x94bc0598, 0xc3d2, 0x11d3, 0xbe,0xdf, 0x00,0xc0,0x4f,0x61,0x29,0x86)
+#endif
+#else
+typedef struct IWMGetSecureChannelVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IWMGetSecureChannel *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IWMGetSecureChannel *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IWMGetSecureChannel *This);
+
+ /*** IWMGetSecureChannel methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetPeerSecureChannelInterface)(
+ IWMGetSecureChannel *This,
+ IWMSecureChannel **channel);
+
+ END_INTERFACE
+} IWMGetSecureChannelVtbl;
+
+interface IWMGetSecureChannel {
+ CONST_VTBL IWMGetSecureChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMGetSecureChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMGetSecureChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMGetSecureChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMGetSecureChannel methods ***/
+#define IWMGetSecureChannel_GetPeerSecureChannelInterface(This,channel) (This)->lpVtbl->GetPeerSecureChannelInterface(This,channel)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMGetSecureChannel_QueryInterface(IWMGetSecureChannel* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMGetSecureChannel_AddRef(IWMGetSecureChannel* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMGetSecureChannel_Release(IWMGetSecureChannel* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IWMGetSecureChannel methods ***/
+static FORCEINLINE HRESULT IWMGetSecureChannel_GetPeerSecureChannelInterface(IWMGetSecureChannel* This,IWMSecureChannel **channel) {
+ return This->lpVtbl->GetPeerSecureChannelInterface(This,channel);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __IWMGetSecureChannel_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wmsecure_h__ */
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__
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;
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__
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__
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__
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__
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__
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__
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__
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__
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__
lib/libc/include/any-windows-any/wuapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.4 from include/wuapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 7.0 from include/wuapi.idl - Do not edit ***/
#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -274,6 +274,14 @@ interface ISystemInformation;
#endif /* __cplusplus */
#endif
+#ifndef __IWindowsUpdateAgentInfo_FWD_DEFINED__
+#define __IWindowsUpdateAgentInfo_FWD_DEFINED__
+typedef interface IWindowsUpdateAgentInfo IWindowsUpdateAgentInfo;
+#ifdef __cplusplus
+interface IWindowsUpdateAgentInfo;
+#endif /* __cplusplus */
+#endif
+
#ifndef __AutomaticUpdates_FWD_DEFINED__
#define __AutomaticUpdates_FWD_DEFINED__
#ifdef __cplusplus
@@ -310,6 +318,15 @@ typedef struct SystemInformation SystemInformation;
#endif /* defined __cplusplus */
#endif /* defined __SystemInformation_FWD_DEFINED__ */
+#ifndef __WindowsUpdateAgentInfo_FWD_DEFINED__
+#define __WindowsUpdateAgentInfo_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WindowsUpdateAgentInfo WindowsUpdateAgentInfo;
+#else
+typedef struct WindowsUpdateAgentInfo WindowsUpdateAgentInfo;
+#endif /* defined __cplusplus */
+#endif /* defined __WindowsUpdateAgentInfo_FWD_DEFINED__ */
+
/* Headers for imported files */
#include <oaidl.h>
@@ -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 */
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_ */
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__
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__
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__
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__
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__
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__
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__
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__
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__