From 63852f535fb9d656778249bc6d80e1dfb0dd8480 Mon Sep 17 00:00:00 2001 From: reflectronic Date: Fri, 29 Jan 2021 19:59:34 -0500 Subject: [PATCH 1/3] Add imapi.h --- TerraFX.Interop.Windows.sln | 8 + generation/remap.rsp | 3 + generation/um/imapi/generate.rsp | 12 ++ generation/um/imapi/header.txt | 4 + generation/um/imapi/um-imapi.h | 2 + .../Interop/Windows/um/imapi/IDiscMaster.cs | 123 +++++++++++++++ .../um/imapi/IDiscMasterProgressEvents.cs | 102 +++++++++++++ .../Interop/Windows/um/imapi/IDiscRecorder.cs | 144 ++++++++++++++++++ .../um/imapi/IEnumDiscMasterFormats.cs | 67 ++++++++ .../Windows/um/imapi/IEnumDiscRecorders.cs | 67 ++++++++ .../Windows/um/imapi/IJolietDiscMaster.cs | 81 ++++++++++ .../Windows/um/imapi/IRedbookDiscMaster.cs | 95 ++++++++++++ .../Interop/Windows/um/imapi/MEDIA_FLAGS.cs | 15 ++ .../Interop/Windows/um/imapi/MEDIA_TYPES.cs | 17 +++ .../Windows/um/imapi/MSDiscMasterObj.cs | 14 ++ .../Windows/um/imapi/MSDiscRecorderObj.cs | 14 ++ .../um/imapi/MSEnumDiscRecordersObj.cs | 14 ++ .../Windows/um/imapi/RECORDER_TYPES.cs | 13 ++ sources/Interop/Windows/um/imapi/Windows.cs | 41 +++++ .../imapi/IDiscMasterProgressEventsTests.cs | 51 +++++++ .../Windows/um/imapi/IDiscMasterTests.cs | 51 +++++++ .../Windows/um/imapi/IDiscRecorderTests.cs | 51 +++++++ .../um/imapi/IEnumDiscMasterFormatsTests.cs | 51 +++++++ .../um/imapi/IEnumDiscRecordersTests.cs | 51 +++++++ .../um/imapi/IJolietDiscMasterTests.cs | 51 +++++++ .../um/imapi/IRedbookDiscMasterTests.cs | 51 +++++++ .../Windows/um/imapi/MSDiscMasterObjTests.cs | 44 ++++++ .../um/imapi/MSDiscRecorderObjTests.cs | 44 ++++++ .../um/imapi/MSEnumDiscRecordersObjTests.cs | 44 ++++++ 29 files changed, 1325 insertions(+) create mode 100644 generation/um/imapi/generate.rsp create mode 100644 generation/um/imapi/header.txt create mode 100644 generation/um/imapi/um-imapi.h create mode 100644 sources/Interop/Windows/um/imapi/IDiscMaster.cs create mode 100644 sources/Interop/Windows/um/imapi/IDiscMasterProgressEvents.cs create mode 100644 sources/Interop/Windows/um/imapi/IDiscRecorder.cs create mode 100644 sources/Interop/Windows/um/imapi/IEnumDiscMasterFormats.cs create mode 100644 sources/Interop/Windows/um/imapi/IEnumDiscRecorders.cs create mode 100644 sources/Interop/Windows/um/imapi/IJolietDiscMaster.cs create mode 100644 sources/Interop/Windows/um/imapi/IRedbookDiscMaster.cs create mode 100644 sources/Interop/Windows/um/imapi/MEDIA_FLAGS.cs create mode 100644 sources/Interop/Windows/um/imapi/MEDIA_TYPES.cs create mode 100644 sources/Interop/Windows/um/imapi/MSDiscMasterObj.cs create mode 100644 sources/Interop/Windows/um/imapi/MSDiscRecorderObj.cs create mode 100644 sources/Interop/Windows/um/imapi/MSEnumDiscRecordersObj.cs create mode 100644 sources/Interop/Windows/um/imapi/RECORDER_TYPES.cs create mode 100644 sources/Interop/Windows/um/imapi/Windows.cs create mode 100644 tests/Interop/Windows/um/imapi/IDiscMasterProgressEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IDiscMasterTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IDiscRecorderTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IEnumDiscMasterFormatsTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IEnumDiscRecordersTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IJolietDiscMasterTests.cs create mode 100644 tests/Interop/Windows/um/imapi/IRedbookDiscMasterTests.cs create mode 100644 tests/Interop/Windows/um/imapi/MSDiscMasterObjTests.cs create mode 100644 tests/Interop/Windows/um/imapi/MSDiscRecorderObjTests.cs create mode 100644 tests/Interop/Windows/um/imapi/MSEnumDiscRecordersObjTests.cs diff --git a/TerraFX.Interop.Windows.sln b/TerraFX.Interop.Windows.sln index 4b637a247b..cd01e25088 100644 --- a/TerraFX.Interop.Windows.sln +++ b/TerraFX.Interop.Windows.sln @@ -1790,6 +1790,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TlHelp32", "TlHelp32", "{BB generation\um\TlHelp32\um-TlHelp32.h = generation\um\TlHelp32\um-TlHelp32.h EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapi", "imapi", "{BC069863-A717-4C9E-8D98-ACF9239E903A}" + ProjectSection(SolutionItems) = preProject + generation\um\imapi\generate.rsp = generation\um\imapi\generate.rsp + generation\um\imapi\header.txt = generation\um\imapi\header.txt + generation\um\imapi\um-imapi.h = generation\um\imapi\um-imapi.h + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2073,6 +2080,7 @@ Global {ED73B6ED-F05F-49B9-9E01-0A27AEAA69F5} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {A40DA57D-3CE9-4CAA-B94F-62BEA1704A4F} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {BB1D1950-8068-4353-A482-0A2C60ED4644} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} + {BC069863-A717-4C9E-8D98-ACF9239E903A} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2FE36DF8-2D9C-4F20-8787-45DC74B57461} diff --git a/generation/remap.rsp b/generation/remap.rsp index 1199bf0520..c20b6a6358 100644 --- a/generation/remap.rsp +++ b/generation/remap.rsp @@ -442,6 +442,9 @@ IID_InMemoryPropertyStoreMarshalByValue=CLSID_InMemoryPropertyStoreMarshalByValu IID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT=STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT IID_KSDATAFORMAT_SUBTYPE_PCM=STATIC_KSDATAFORMAT_SUBTYPE_PCM IID_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX=STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX +IID_MSDiscMasterObj=CLSID_MSDiscMasterObj +IID_MSDiscRecorderObj=CLSID_MSDiscRecorderObj +IID_MSEnumDiscRecordersObj=CLSID_MSEnumDiscRecordersObj IID_PrintDocumentPackageTarget=CLSID_PrintDocumentPackageTarget IID_PrintDocumentPackageTargetFactory=CLSID_PrintDocumentPackageTargetFactory IID_PropertySystem=CLSID_PropertySystem diff --git a/generation/um/imapi/generate.rsp b/generation/um/imapi/generate.rsp new file mode 100644 index 0000000000..f413803d29 --- /dev/null +++ b/generation/um/imapi/generate.rsp @@ -0,0 +1,12 @@ +@../../settings.rsp +@../../remap.rsp +--file +um-imapi.h +--output +../../../sources/Interop/Windows/um/imapi +--test-output +../../../tests/Interop/Windows/um/imapi +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/imapi.h +--with-attribue +MEDIA_FLAGS=Flags diff --git a/generation/um/imapi/header.txt b/generation/um/imapi/header.txt new file mode 100644 index 0000000000..c909157096 --- /dev/null +++ b/generation/um/imapi/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/um/imapi/um-imapi.h b/generation/um/imapi/um-imapi.h new file mode 100644 index 0000000000..34839cfbdf --- /dev/null +++ b/generation/um/imapi/um-imapi.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/sources/Interop/Windows/um/imapi/IDiscMaster.cs b/sources/Interop/Windows/um/imapi/IDiscMaster.cs new file mode 100644 index 0000000000..65d5718289 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IDiscMaster.cs @@ -0,0 +1,123 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("520CCA62-51A5-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IDiscMaster : IUnknown")] + public unsafe partial struct IDiscMaster + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscMaster*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Open() + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int EnumDiscMasterFormats([NativeTypeName("IEnumDiscMasterFormats **")] IEnumDiscMasterFormats** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscMaster*)Unsafe.AsPointer(ref this), ppEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetActiveDiscMasterFormat([NativeTypeName("LPIID")] Guid* lpiid) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscMaster*)Unsafe.AsPointer(ref this), lpiid); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetActiveDiscMasterFormat([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppUnk) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscMaster*)Unsafe.AsPointer(ref this), riid, ppUnk); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int EnumDiscRecorders([NativeTypeName("IEnumDiscRecorders **")] IEnumDiscRecorders** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscMaster*)Unsafe.AsPointer(ref this), ppEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetActiveDiscRecorder([NativeTypeName("IDiscRecorder **")] IDiscRecorder** ppRecorder) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscMaster*)Unsafe.AsPointer(ref this), ppRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetActiveDiscRecorder([NativeTypeName("IDiscRecorder *")] IDiscRecorder* pRecorder) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscMaster*)Unsafe.AsPointer(ref this), pRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ClearFormatContent() + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ProgressAdvise([NativeTypeName("IDiscMasterProgressEvents *")] IDiscMasterProgressEvents* pEvents, [NativeTypeName("UINT_PTR *")] nuint* pvCookie) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscMaster*)Unsafe.AsPointer(ref this), pEvents, pvCookie); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ProgressUnadvise([NativeTypeName("UINT_PTR")] nuint vCookie) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscMaster*)Unsafe.AsPointer(ref this), vCookie); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RecordDisc([NativeTypeName("boolean")] byte bSimulate, [NativeTypeName("boolean")] byte bEjectAfterBurn) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscMaster*)Unsafe.AsPointer(ref this), bSimulate, bEjectAfterBurn); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Close() + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscMaster*)Unsafe.AsPointer(ref this)); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IDiscMasterProgressEvents.cs b/sources/Interop/Windows/um/imapi/IDiscMasterProgressEvents.cs new file mode 100644 index 0000000000..21385c256a --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IDiscMasterProgressEvents.cs @@ -0,0 +1,102 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("EC9E51C1-4E5D-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IDiscMasterProgressEvents : IUnknown")] + public unsafe partial struct IDiscMasterProgressEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryCancel([NativeTypeName("boolean *")] byte* pbCancel) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), pbCancel); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyPnPActivity() + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyAddProgress([NativeTypeName("long")] int nCompletedSteps, [NativeTypeName("long")] int nTotalSteps) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), nCompletedSteps, nTotalSteps); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyBlockProgress([NativeTypeName("long")] int nCompleted, [NativeTypeName("long")] int nTotal) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), nCompleted, nTotal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyTrackProgress([NativeTypeName("long")] int nCurrentTrack, [NativeTypeName("long")] int nTotalTracks) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), nCurrentTrack, nTotalTracks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyPreparingBurn([NativeTypeName("long")] int nEstimatedSeconds) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), nEstimatedSeconds); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyClosingDisc([NativeTypeName("long")] int nEstimatedSeconds) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), nEstimatedSeconds); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyBurnComplete([NativeTypeName("HRESULT")] int status) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), status); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyEraseComplete([NativeTypeName("HRESULT")] int status) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscMasterProgressEvents*)Unsafe.AsPointer(ref this), status); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IDiscRecorder.cs b/sources/Interop/Windows/um/imapi/IDiscRecorder.cs new file mode 100644 index 0000000000..f559ecb1c3 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IDiscRecorder.cs @@ -0,0 +1,144 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("85AC9776-CA88-4CF2-894E-09598C078A41")] + [NativeTypeName("struct IDiscRecorder : IUnknown")] + public unsafe partial struct IDiscRecorder + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscRecorder*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscRecorder*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscRecorder*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Init([NativeTypeName("byte *")] byte* pbyUniqueID, [NativeTypeName("ULONG")] uint nulIDSize, [NativeTypeName("ULONG")] uint nulDriveNumber) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbyUniqueID, nulIDSize, nulDriveNumber); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetRecorderGUID([NativeTypeName("byte *")] byte* pbyUniqueID, [NativeTypeName("ULONG")] uint ulBufferSize, [NativeTypeName("ULONG *")] uint* pulReturnSizeRequired) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbyUniqueID, ulBufferSize, pulReturnSizeRequired); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetRecorderType([NativeTypeName("long *")] int* fTypeCode) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscRecorder*)Unsafe.AsPointer(ref this), fTypeCode); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDisplayNames([NativeTypeName("BSTR *")] ushort** pbstrVendorID, [NativeTypeName("BSTR *")] ushort** pbstrProductID, [NativeTypeName("BSTR *")] ushort** pbstrRevision) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbstrVendorID, pbstrProductID, pbstrRevision); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetBasePnPID([NativeTypeName("BSTR *")] ushort** pbstrBasePnPID) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbstrBasePnPID); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetPath([NativeTypeName("BSTR *")] ushort** pbstrPath) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbstrPath); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetRecorderProperties([NativeTypeName("IPropertyStorage **")] IPropertyStorage** ppPropStg) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscRecorder*)Unsafe.AsPointer(ref this), ppPropStg); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetRecorderProperties([NativeTypeName("IPropertyStorage *")] IPropertyStorage* pPropStg) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pPropStg); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetRecorderState([NativeTypeName("ULONG *")] uint* pulDevStateFlags) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pulDevStateFlags); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int OpenExclusive() + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscRecorder*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryMediaType([NativeTypeName("long *")] int* fMediaType, [NativeTypeName("long *")] int* fMediaFlags) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscRecorder*)Unsafe.AsPointer(ref this), fMediaType, fMediaFlags); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryMediaInfo([NativeTypeName("byte *")] byte* pbSessions, [NativeTypeName("byte *")] byte* pbLastTrack, [NativeTypeName("ULONG *")] uint* ulStartAddress, [NativeTypeName("ULONG *")] uint* ulNextWritable, [NativeTypeName("ULONG *")] uint* ulFreeBlocks) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscRecorder*)Unsafe.AsPointer(ref this), pbSessions, pbLastTrack, ulStartAddress, ulNextWritable, ulFreeBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Eject() + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscRecorder*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Erase([NativeTypeName("boolean")] byte bFullErase) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscRecorder*)Unsafe.AsPointer(ref this), bFullErase); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Close() + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscRecorder*)Unsafe.AsPointer(ref this)); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IEnumDiscMasterFormats.cs b/sources/Interop/Windows/um/imapi/IEnumDiscMasterFormats.cs new file mode 100644 index 0000000000..6cfd25b552 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IEnumDiscMasterFormats.cs @@ -0,0 +1,67 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("DDF445E1-54BA-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IEnumDiscMasterFormats : IUnknown")] + public unsafe partial struct IEnumDiscMasterFormats + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Next([NativeTypeName("ULONG")] uint cFormats, [NativeTypeName("LPIID")] Guid* lpiidFormatID, [NativeTypeName("ULONG *")] uint* pcFetched) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this), cFormats, lpiidFormatID, pcFetched); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Skip([NativeTypeName("ULONG")] uint cFormats) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this), cFormats); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Reset() + { + return ((delegate* unmanaged)(lpVtbl[5]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IEnumDiscMasterFormats **")] IEnumDiscMasterFormats** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IEnumDiscMasterFormats*)Unsafe.AsPointer(ref this), ppEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IEnumDiscRecorders.cs b/sources/Interop/Windows/um/imapi/IEnumDiscRecorders.cs new file mode 100644 index 0000000000..82dbf3b990 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IEnumDiscRecorders.cs @@ -0,0 +1,67 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("9B1921E1-54AC-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IEnumDiscRecorders : IUnknown")] + public unsafe partial struct IEnumDiscRecorders + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Next([NativeTypeName("ULONG")] uint cRecorders, [NativeTypeName("IDiscRecorder **")] IDiscRecorder** ppRecorder, [NativeTypeName("ULONG *")] uint* pcFetched) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this), cRecorders, ppRecorder, pcFetched); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Skip([NativeTypeName("ULONG")] uint cRecorders) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this), cRecorders); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Reset() + { + return ((delegate* unmanaged)(lpVtbl[5]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IEnumDiscRecorders **")] IEnumDiscRecorders** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IEnumDiscRecorders*)Unsafe.AsPointer(ref this), ppEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IJolietDiscMaster.cs b/sources/Interop/Windows/um/imapi/IJolietDiscMaster.cs new file mode 100644 index 0000000000..eb848e4169 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IJolietDiscMaster.cs @@ -0,0 +1,81 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("E3BC42CE-4E5C-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IJolietDiscMaster : IUnknown")] + public unsafe partial struct IJolietDiscMaster + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTotalDataBlocks([NativeTypeName("long *")] int* pnBlocks) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), pnBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetUsedDataBlocks([NativeTypeName("long *")] int* pnBlocks) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), pnBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDataBlockSize([NativeTypeName("long *")] int* pnBlockBytes) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), pnBlockBytes); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddData([NativeTypeName("IStorage *")] IStorage* pStorage, [NativeTypeName("long")] int lFileOverwrite) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), pStorage, lFileOverwrite); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetJolietProperties([NativeTypeName("IPropertyStorage **")] IPropertyStorage** ppPropStg) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), ppPropStg); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetJolietProperties([NativeTypeName("IPropertyStorage *")] IPropertyStorage* pPropStg) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IJolietDiscMaster*)Unsafe.AsPointer(ref this), pPropStg); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/IRedbookDiscMaster.cs b/sources/Interop/Windows/um/imapi/IRedbookDiscMaster.cs new file mode 100644 index 0000000000..bd26d2c4e8 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/IRedbookDiscMaster.cs @@ -0,0 +1,95 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("E3BC42CD-4E5C-11D3-9144-00104BA11C5E")] + [NativeTypeName("struct IRedbookDiscMaster : IUnknown")] + public unsafe partial struct IRedbookDiscMaster + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTotalAudioTracks([NativeTypeName("long *")] int* pnTracks) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pnTracks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTotalAudioBlocks([NativeTypeName("long *")] int* pnBlocks) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pnBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetUsedAudioBlocks([NativeTypeName("long *")] int* pnBlocks) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pnBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetAvailableAudioTrackBlocks([NativeTypeName("long *")] int* pnBlocks) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pnBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetAudioBlockSize([NativeTypeName("long *")] int* pnBlockBytes) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pnBlockBytes); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateAudioTrack([NativeTypeName("long")] int nBlocks) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), nBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddAudioTrackBlocks([NativeTypeName("byte *")] byte* pby, [NativeTypeName("long")] int cb) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this), pby, cb); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CloseAudioTrack() + { + return ((delegate* unmanaged)(lpVtbl[10]))((IRedbookDiscMaster*)Unsafe.AsPointer(ref this)); + } + } +} diff --git a/sources/Interop/Windows/um/imapi/MEDIA_FLAGS.cs b/sources/Interop/Windows/um/imapi/MEDIA_FLAGS.cs new file mode 100644 index 0000000000..2090c2d6ee --- /dev/null +++ b/sources/Interop/Windows/um/imapi/MEDIA_FLAGS.cs @@ -0,0 +1,15 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum MEDIA_FLAGS + { + MEDIA_BLANK = 0x1, + MEDIA_RW = 0x2, + MEDIA_WRITABLE = 0x4, + MEDIA_FORMAT_UNUSABLE_BY_IMAPI = 0x8, + } +} diff --git a/sources/Interop/Windows/um/imapi/MEDIA_TYPES.cs b/sources/Interop/Windows/um/imapi/MEDIA_TYPES.cs new file mode 100644 index 0000000000..71b1fc537e --- /dev/null +++ b/sources/Interop/Windows/um/imapi/MEDIA_TYPES.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum MEDIA_TYPES + { + MEDIA_CDDA_CDROM = 1, + MEDIA_CD_ROM_XA = (MEDIA_CDDA_CDROM + 1), + MEDIA_CD_I = (MEDIA_CD_ROM_XA + 1), + MEDIA_CD_EXTRA = (MEDIA_CD_I + 1), + MEDIA_CD_OTHER = (MEDIA_CD_EXTRA + 1), + MEDIA_SPECIAL = (MEDIA_CD_OTHER + 1), + } +} diff --git a/sources/Interop/Windows/um/imapi/MSDiscMasterObj.cs b/sources/Interop/Windows/um/imapi/MSDiscMasterObj.cs new file mode 100644 index 0000000000..3c2816edc8 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/MSDiscMasterObj.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("520CCA63-51A5-11D3-9144-00104BA11C5E")] + public partial struct MSDiscMasterObj + { + } +} diff --git a/sources/Interop/Windows/um/imapi/MSDiscRecorderObj.cs b/sources/Interop/Windows/um/imapi/MSDiscRecorderObj.cs new file mode 100644 index 0000000000..65683efb61 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/MSDiscRecorderObj.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("520CCA61-51A5-11D3-9144-00104BA11C5E")] + public partial struct MSDiscRecorderObj + { + } +} diff --git a/sources/Interop/Windows/um/imapi/MSEnumDiscRecordersObj.cs b/sources/Interop/Windows/um/imapi/MSEnumDiscRecordersObj.cs new file mode 100644 index 0000000000..0a490fb6b8 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/MSEnumDiscRecordersObj.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("8A03567A-63CB-4BA8-BAF6-52119816D1EF")] + public partial struct MSEnumDiscRecordersObj + { + } +} diff --git a/sources/Interop/Windows/um/imapi/RECORDER_TYPES.cs b/sources/Interop/Windows/um/imapi/RECORDER_TYPES.cs new file mode 100644 index 0000000000..61d6fb5563 --- /dev/null +++ b/sources/Interop/Windows/um/imapi/RECORDER_TYPES.cs @@ -0,0 +1,13 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum RECORDER_TYPES + { + RECORDER_CDR = 0x1, + RECORDER_CDRW = 0x2, + } +} diff --git a/sources/Interop/Windows/um/imapi/Windows.cs b/sources/Interop/Windows/um/imapi/Windows.cs new file mode 100644 index 0000000000..9eb8665f4d --- /dev/null +++ b/sources/Interop/Windows/um/imapi/Windows.cs @@ -0,0 +1,41 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop +{ + public static partial class Windows + { + [NativeTypeName("#define RECORDER_DOING_NOTHING ( 0 )")] + public const int RECORDER_DOING_NOTHING = (0); + + [NativeTypeName("#define RECORDER_OPENED ( 0x1 )")] + public const int RECORDER_OPENED = (0x1); + + [NativeTypeName("#define RECORDER_BURNING ( 0x2 )")] + public const int RECORDER_BURNING = (0x2); + + public static readonly Guid IID_IDiscRecorder = new Guid(0x85AC9776, 0xCA88, 0x4CF2, 0x89, 0x4E, 0x09, 0x59, 0x8C, 0x07, 0x8A, 0x41); + + public static readonly Guid IID_IEnumDiscRecorders = new Guid(0x9B1921E1, 0x54AC, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid IID_IEnumDiscMasterFormats = new Guid(0xDDF445E1, 0x54BA, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid IID_IRedbookDiscMaster = new Guid(0xE3BC42CD, 0x4E5C, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid IID_IJolietDiscMaster = new Guid(0xE3BC42CE, 0x4E5C, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid IID_IDiscMasterProgressEvents = new Guid(0xEC9E51C1, 0x4E5D, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid IID_IDiscMaster = new Guid(0x520CCA62, 0x51A5, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid CLSID_MSDiscRecorderObj = new Guid(0x520CCA61, 0x51A5, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid CLSID_MSDiscMasterObj = new Guid(0x520CCA63, 0x51A5, 0x11D3, 0x91, 0x44, 0x00, 0x10, 0x4B, 0xA1, 0x1C, 0x5E); + + public static readonly Guid CLSID_MSEnumDiscRecordersObj = new Guid(0x8A03567A, 0x63CB, 0x4BA8, 0xBA, 0xF6, 0x52, 0x11, 0x98, 0x16, 0xD1, 0xEF); + } +} diff --git a/tests/Interop/Windows/um/imapi/IDiscMasterProgressEventsTests.cs b/tests/Interop/Windows/um/imapi/IDiscMasterProgressEventsTests.cs new file mode 100644 index 0000000000..3d2fcf135b --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IDiscMasterProgressEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscMasterProgressEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscMasterProgressEvents).GUID, Is.EqualTo(IID_IDiscMasterProgressEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscMasterProgressEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscMasterProgressEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscMasterProgressEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscMasterProgressEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IDiscMasterTests.cs b/tests/Interop/Windows/um/imapi/IDiscMasterTests.cs new file mode 100644 index 0000000000..082f060078 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IDiscMasterTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscMasterTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscMaster).GUID, Is.EqualTo(IID_IDiscMaster)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscMaster))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscMaster).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscMaster), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscMaster), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IDiscRecorderTests.cs b/tests/Interop/Windows/um/imapi/IDiscRecorderTests.cs new file mode 100644 index 0000000000..1822736038 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IDiscRecorderTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscRecorderTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscRecorder).GUID, Is.EqualTo(IID_IDiscRecorder)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscRecorder))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscRecorder).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscRecorder), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscRecorder), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IEnumDiscMasterFormatsTests.cs b/tests/Interop/Windows/um/imapi/IEnumDiscMasterFormatsTests.cs new file mode 100644 index 0000000000..5238ef5ea0 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IEnumDiscMasterFormatsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IEnumDiscMasterFormatsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IEnumDiscMasterFormats).GUID, Is.EqualTo(IID_IEnumDiscMasterFormats)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IEnumDiscMasterFormats))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IEnumDiscMasterFormats).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IEnumDiscMasterFormats), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IEnumDiscMasterFormats), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IEnumDiscRecordersTests.cs b/tests/Interop/Windows/um/imapi/IEnumDiscRecordersTests.cs new file mode 100644 index 0000000000..5fd5d5830e --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IEnumDiscRecordersTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IEnumDiscRecordersTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IEnumDiscRecorders).GUID, Is.EqualTo(IID_IEnumDiscRecorders)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IEnumDiscRecorders))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IEnumDiscRecorders).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IEnumDiscRecorders), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IEnumDiscRecorders), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IJolietDiscMasterTests.cs b/tests/Interop/Windows/um/imapi/IJolietDiscMasterTests.cs new file mode 100644 index 0000000000..f2af26ca16 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IJolietDiscMasterTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IJolietDiscMasterTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IJolietDiscMaster).GUID, Is.EqualTo(IID_IJolietDiscMaster)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IJolietDiscMaster))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IJolietDiscMaster).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IJolietDiscMaster), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IJolietDiscMaster), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/IRedbookDiscMasterTests.cs b/tests/Interop/Windows/um/imapi/IRedbookDiscMasterTests.cs new file mode 100644 index 0000000000..e8cacf4e2e --- /dev/null +++ b/tests/Interop/Windows/um/imapi/IRedbookDiscMasterTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IRedbookDiscMasterTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IRedbookDiscMaster).GUID, Is.EqualTo(IID_IRedbookDiscMaster)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IRedbookDiscMaster))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IRedbookDiscMaster).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IRedbookDiscMaster), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IRedbookDiscMaster), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi/MSDiscMasterObjTests.cs b/tests/Interop/Windows/um/imapi/MSDiscMasterObjTests.cs new file mode 100644 index 0000000000..837d3f5a29 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/MSDiscMasterObjTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MSDiscMasterObjTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MSDiscMasterObj).GUID, Is.EqualTo(CLSID_MSDiscMasterObj)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MSDiscMasterObj))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MSDiscMasterObj).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MSDiscMasterObj), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi/MSDiscRecorderObjTests.cs b/tests/Interop/Windows/um/imapi/MSDiscRecorderObjTests.cs new file mode 100644 index 0000000000..72b3bf4b9a --- /dev/null +++ b/tests/Interop/Windows/um/imapi/MSDiscRecorderObjTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MSDiscRecorderObjTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MSDiscRecorderObj).GUID, Is.EqualTo(CLSID_MSDiscRecorderObj)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MSDiscRecorderObj))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MSDiscRecorderObj).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MSDiscRecorderObj), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi/MSEnumDiscRecordersObjTests.cs b/tests/Interop/Windows/um/imapi/MSEnumDiscRecordersObjTests.cs new file mode 100644 index 0000000000..76daa3c9a8 --- /dev/null +++ b/tests/Interop/Windows/um/imapi/MSEnumDiscRecordersObjTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MSEnumDiscRecordersObjTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MSEnumDiscRecordersObj).GUID, Is.EqualTo(CLSID_MSEnumDiscRecordersObj)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MSEnumDiscRecordersObj))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MSEnumDiscRecordersObj).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MSEnumDiscRecordersObj), Is.EqualTo(1)); + } + } +} From b3a6ba655cca365bde0b1c4125ca1c032ecae59e Mon Sep 17 00:00:00 2001 From: reflectronic Date: Fri, 29 Jan 2021 20:23:15 -0500 Subject: [PATCH 2/3] Add imapi2.h --- TerraFX.Interop.Windows.sln | 8 + generation/remap.rsp | 29 + generation/um/imapi2/generate.rsp | 14 + generation/um/imapi2/header.txt | 4 + generation/um/imapi2/um-imapi2.h | 2 + .../um/imapi2/DDiscFormat2DataEvents.cs | 74 ++ .../um/imapi2/DDiscFormat2EraseEvents.cs | 74 ++ .../um/imapi2/DDiscFormat2RawCDEvents.cs | 74 ++ .../imapi2/DDiscFormat2TrackAtOnceEvents.cs | 74 ++ .../Windows/um/imapi2/DDiscMaster2Events.cs | 81 +++ .../Windows/um/imapi2/DWriteEngine2Events.cs | 74 ++ .../Interop/Windows/um/imapi2/IBlockRange.cs | 81 +++ .../Windows/um/imapi2/IBlockRangeList.cs | 74 ++ .../Windows/um/imapi2/IBurnVerification.cs | 53 ++ .../Interop/Windows/um/imapi2/IDiscFormat2.cs | 102 +++ .../Windows/um/imapi2/IDiscFormat2Data.cs | 326 +++++++++ .../um/imapi2/IDiscFormat2DataEventArgs.cs | 144 ++++ .../Windows/um/imapi2/IDiscFormat2Erase.cs | 158 +++++ .../Windows/um/imapi2/IDiscFormat2RawCD.cs | 270 ++++++++ .../um/imapi2/IDiscFormat2RawCDEventArgs.cs | 137 ++++ .../um/imapi2/IDiscFormat2TrackAtOnce.cs | 277 ++++++++ .../IDiscFormat2TrackAtOnceEventArgs.cs | 144 ++++ .../Interop/Windows/um/imapi2/IDiscMaster2.cs | 95 +++ .../Windows/um/imapi2/IDiscRecorder2.cs | 214 ++++++ .../Windows/um/imapi2/IDiscRecorder2Ex.cs | 165 +++++ .../imapi2/IMAPI_BURN_VERIFICATION_LEVEL.cs | 14 + .../Windows/um/imapi2/IMAPI_CD_SECTOR_TYPE.cs | 21 + .../IMAPI_CD_TRACK_DIGITAL_COPY_SETTING.cs | 14 + .../um/imapi2/IMAPI_FEATURE_PAGE_TYPE.cs | 62 ++ .../imapi2/IMAPI_FORMAT2_DATA_MEDIA_STATE.cs | 28 + .../imapi2/IMAPI_FORMAT2_DATA_WRITE_ACTION.cs | 19 + .../IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE.cs | 14 + .../IMAPI_FORMAT2_RAW_CD_WRITE_ACTION.cs | 15 + .../imapi2/IMAPI_FORMAT2_TAO_WRITE_ACTION.cs | 16 + .../um/imapi2/IMAPI_MEDIA_PHYSICAL_TYPE.cs | 32 + .../imapi2/IMAPI_MEDIA_WRITE_PROTECT_STATE.cs | 17 + .../um/imapi2/IMAPI_MODE_PAGE_REQUEST_TYPE.cs | 15 + .../Windows/um/imapi2/IMAPI_MODE_PAGE_TYPE.cs | 19 + .../Windows/um/imapi2/IMAPI_PROFILE_TYPE.cs | 42 ++ .../imapi2/IMAPI_READ_TRACK_ADDRESS_TYPE.cs | 14 + .../Windows/um/imapi2/IMultisession.cs | 95 +++ .../um/imapi2/IMultisessionRandomWrite.cs | 116 ++++ .../um/imapi2/IMultisessionSequential.cs | 130 ++++ .../um/imapi2/IMultisessionSequential2.cs | 137 ++++ .../Windows/um/imapi2/IRawCDImageCreator.cs | 200 ++++++ .../Windows/um/imapi2/IRawCDImageTrackInfo.cs | 158 +++++ .../Windows/um/imapi2/IStreamConcatenate.cs | 144 ++++ .../Windows/um/imapi2/IStreamInterleave.cs | 123 ++++ .../um/imapi2/IStreamPseudoRandomBased.cs | 144 ++++ .../Windows/um/imapi2/IWriteEngine2.cs | 158 +++++ .../um/imapi2/IWriteEngine2EventArgs.cs | 116 ++++ .../um/imapi2/IWriteSpeedDescriptor.cs | 88 +++ .../Windows/um/imapi2/MsftDiscFormat2Data.cs | 14 + .../Windows/um/imapi2/MsftDiscFormat2Erase.cs | 14 + .../Windows/um/imapi2/MsftDiscFormat2RawCD.cs | 14 + .../um/imapi2/MsftDiscFormat2TrackAtOnce.cs | 14 + .../Windows/um/imapi2/MsftDiscMaster2.cs | 14 + .../Windows/um/imapi2/MsftDiscRecorder2.cs | 14 + .../um/imapi2/MsftMultisessionRandomWrite.cs | 14 + .../um/imapi2/MsftMultisessionSequential.cs | 14 + .../um/imapi2/MsftRawCDImageCreator.cs | 14 + .../um/imapi2/MsftStreamConcatenate.cs | 14 + .../Windows/um/imapi2/MsftStreamInterleave.cs | 14 + .../Windows/um/imapi2/MsftStreamPrng001.cs | 14 + .../Windows/um/imapi2/MsftStreamZero.cs | 14 + .../Windows/um/imapi2/MsftWriteEngine2.cs | 14 + .../um/imapi2/MsftWriteSpeedDescriptor.cs | 14 + sources/Interop/Windows/um/imapi2/Windows.cs | 640 ++++++++++++++++++ .../um/imapi2/DDiscFormat2DataEventsTests.cs | 51 ++ .../um/imapi2/DDiscFormat2EraseEventsTests.cs | 51 ++ .../um/imapi2/DDiscFormat2RawCDEventsTests.cs | 51 ++ .../DDiscFormat2TrackAtOnceEventsTests.cs | 51 ++ .../um/imapi2/DDiscMaster2EventsTests.cs | 51 ++ .../um/imapi2/DWriteEngine2EventsTests.cs | 51 ++ .../Windows/um/imapi2/IBlockRangeListTests.cs | 51 ++ .../Windows/um/imapi2/IBlockRangeTests.cs | 51 ++ .../um/imapi2/IBurnVerificationTests.cs | 51 ++ .../imapi2/IDiscFormat2DataEventArgsTests.cs | 51 ++ .../um/imapi2/IDiscFormat2DataTests.cs | 51 ++ .../um/imapi2/IDiscFormat2EraseTests.cs | 51 ++ .../imapi2/IDiscFormat2RawCDEventArgsTests.cs | 51 ++ .../um/imapi2/IDiscFormat2RawCDTests.cs | 51 ++ .../Windows/um/imapi2/IDiscFormat2Tests.cs | 51 ++ .../IDiscFormat2TrackAtOnceEventArgsTests.cs | 51 ++ .../um/imapi2/IDiscFormat2TrackAtOnceTests.cs | 51 ++ .../Windows/um/imapi2/IDiscMaster2Tests.cs | 51 ++ .../um/imapi2/IDiscRecorder2ExTests.cs | 51 ++ .../Windows/um/imapi2/IDiscRecorder2Tests.cs | 51 ++ .../imapi2/IMultisessionRandomWriteTests.cs | 51 ++ .../imapi2/IMultisessionSequential2Tests.cs | 51 ++ .../um/imapi2/IMultisessionSequentialTests.cs | 51 ++ .../Windows/um/imapi2/IMultisessionTests.cs | 51 ++ .../um/imapi2/IRawCDImageCreatorTests.cs | 51 ++ .../um/imapi2/IRawCDImageTrackInfoTests.cs | 51 ++ .../um/imapi2/IStreamConcatenateTests.cs | 51 ++ .../um/imapi2/IStreamInterleaveTests.cs | 51 ++ .../imapi2/IStreamPseudoRandomBasedTests.cs | 51 ++ .../um/imapi2/IWriteEngine2EventArgsTests.cs | 51 ++ .../Windows/um/imapi2/IWriteEngine2Tests.cs | 51 ++ .../um/imapi2/IWriteSpeedDescriptorTests.cs | 51 ++ .../um/imapi2/MsftDiscFormat2DataTests.cs | 44 ++ .../um/imapi2/MsftDiscFormat2EraseTests.cs | 44 ++ .../um/imapi2/MsftDiscFormat2RawCDTests.cs | 44 ++ .../imapi2/MsftDiscFormat2TrackAtOnceTests.cs | 44 ++ .../Windows/um/imapi2/MsftDiscMaster2Tests.cs | 44 ++ .../um/imapi2/MsftDiscRecorder2Tests.cs | 44 ++ .../MsftMultisessionRandomWriteTests.cs | 44 ++ .../imapi2/MsftMultisessionSequentialTests.cs | 44 ++ .../um/imapi2/MsftRawCDImageCreatorTests.cs | 44 ++ .../um/imapi2/MsftStreamConcatenateTests.cs | 44 ++ .../um/imapi2/MsftStreamInterleaveTests.cs | 44 ++ .../um/imapi2/MsftStreamPrng001Tests.cs | 44 ++ .../Windows/um/imapi2/MsftStreamZeroTests.cs | 44 ++ .../um/imapi2/MsftWriteEngine2Tests.cs | 44 ++ .../imapi2/MsftWriteSpeedDescriptorTests.cs | 44 ++ 115 files changed, 7841 insertions(+) create mode 100644 generation/um/imapi2/generate.rsp create mode 100644 generation/um/imapi2/header.txt create mode 100644 generation/um/imapi2/um-imapi2.h create mode 100644 sources/Interop/Windows/um/imapi2/DDiscFormat2DataEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2/DDiscFormat2EraseEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2/DDiscFormat2RawCDEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2/DDiscMaster2Events.cs create mode 100644 sources/Interop/Windows/um/imapi2/DWriteEngine2Events.cs create mode 100644 sources/Interop/Windows/um/imapi2/IBlockRange.cs create mode 100644 sources/Interop/Windows/um/imapi2/IBlockRangeList.cs create mode 100644 sources/Interop/Windows/um/imapi2/IBurnVerification.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2Data.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgs.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2Erase.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2RawCD.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgs.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnce.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgs.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscMaster2.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscRecorder2.cs create mode 100644 sources/Interop/Windows/um/imapi2/IDiscRecorder2Ex.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_BURN_VERIFICATION_LEVEL.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_CD_SECTOR_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_CD_TRACK_DIGITAL_COPY_SETTING.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FEATURE_PAGE_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_MEDIA_STATE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_WRITE_ACTION.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_WRITE_ACTION.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_TAO_WRITE_ACTION.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_PHYSICAL_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_WRITE_PROTECT_STATE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_REQUEST_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_PROFILE_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMAPI_READ_TRACK_ADDRESS_TYPE.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMultisession.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMultisessionRandomWrite.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMultisessionSequential.cs create mode 100644 sources/Interop/Windows/um/imapi2/IMultisessionSequential2.cs create mode 100644 sources/Interop/Windows/um/imapi2/IRawCDImageCreator.cs create mode 100644 sources/Interop/Windows/um/imapi2/IRawCDImageTrackInfo.cs create mode 100644 sources/Interop/Windows/um/imapi2/IStreamConcatenate.cs create mode 100644 sources/Interop/Windows/um/imapi2/IStreamInterleave.cs create mode 100644 sources/Interop/Windows/um/imapi2/IStreamPseudoRandomBased.cs create mode 100644 sources/Interop/Windows/um/imapi2/IWriteEngine2.cs create mode 100644 sources/Interop/Windows/um/imapi2/IWriteEngine2EventArgs.cs create mode 100644 sources/Interop/Windows/um/imapi2/IWriteSpeedDescriptor.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscFormat2Data.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscFormat2Erase.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscFormat2RawCD.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnce.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscMaster2.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftDiscRecorder2.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftMultisessionRandomWrite.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftMultisessionSequential.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftRawCDImageCreator.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftStreamConcatenate.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftStreamInterleave.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftStreamPrng001.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftStreamZero.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftWriteEngine2.cs create mode 100644 sources/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptor.cs create mode 100644 sources/Interop/Windows/um/imapi2/Windows.cs create mode 100644 tests/Interop/Windows/um/imapi2/DDiscFormat2DataEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/DDiscFormat2EraseEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/DDiscFormat2RawCDEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/DDiscMaster2EventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/DWriteEngine2EventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IBlockRangeListTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IBlockRangeTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IBurnVerificationTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2DataTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2EraseTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscMaster2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscRecorder2ExTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IDiscRecorder2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IMultisessionRandomWriteTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IMultisessionSequential2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IMultisessionSequentialTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IMultisessionTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IRawCDImageCreatorTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IRawCDImageTrackInfoTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IStreamConcatenateTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IStreamInterleaveTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IStreamPseudoRandomBasedTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IWriteEngine2EventArgsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IWriteEngine2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/IWriteSpeedDescriptorTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscFormat2DataTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscFormat2EraseTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscFormat2RawCDTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnceTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscMaster2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftDiscRecorder2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftMultisessionRandomWriteTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftMultisessionSequentialTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftRawCDImageCreatorTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftStreamConcatenateTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftStreamInterleaveTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftStreamPrng001Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftStreamZeroTests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftWriteEngine2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptorTests.cs diff --git a/TerraFX.Interop.Windows.sln b/TerraFX.Interop.Windows.sln index cd01e25088..9ebaa1c46e 100644 --- a/TerraFX.Interop.Windows.sln +++ b/TerraFX.Interop.Windows.sln @@ -1797,6 +1797,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapi", "imapi", "{BC069863 generation\um\imapi\um-imapi.h = generation\um\imapi\um-imapi.h EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapi2", "imapi2", "{565AEC0D-94C9-46CB-8947-71E02C3C128D}" + ProjectSection(SolutionItems) = preProject + generation\um\imapi2\generate.rsp = generation\um\imapi2\generate.rsp + generation\um\imapi2\header.txt = generation\um\imapi2\header.txt + generation\um\imapi2\um-imapi2.h = generation\um\imapi2\um-imapi2.h + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2081,6 +2088,7 @@ Global {A40DA57D-3CE9-4CAA-B94F-62BEA1704A4F} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {BB1D1950-8068-4353-A482-0A2C60ED4644} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {BC069863-A717-4C9E-8D98-ACF9239E903A} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} + {565AEC0D-94C9-46CB-8947-71E02C3C128D} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2FE36DF8-2D9C-4F20-8787-45DC74B57461} diff --git a/generation/remap.rsp b/generation/remap.rsp index c20b6a6358..3073a10429 100644 --- a/generation/remap.rsp +++ b/generation/remap.rsp @@ -445,6 +445,20 @@ IID_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX=STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX IID_MSDiscMasterObj=CLSID_MSDiscMasterObj IID_MSDiscRecorderObj=CLSID_MSDiscRecorderObj IID_MSEnumDiscRecordersObj=CLSID_MSEnumDiscRecordersObj +IID_MsftDiscFormat2Data=CLSID_MsftDiscFormat2Data +IID_MsftDiscFormat2Erase=CLSID_MsftDiscFormat2Erase +IID_MsftDiscFormat2RawCD=CLSID_MsftDiscFormat2RawCD +IID_MsftDiscFormat2TrackAtOnce=CLSID_MsftDiscFormat2TrackAtOnce +IID_MsftDiscRecorder2=CLSID_MsftDiscRecorder2 +IID_MsftMultisessionRandomWrite=CLSID_MsftMultisessionRandomWrite +IID_MsftMultisessionSequential=CLSID_MsftMultisessionSequential +IID_MsftRawCDImageCreator=CLSID_MsftRawCDImageCreator +IID_MsftStreamConcatenate=CLSID_MsftStreamConcatenate +IID_MsftStreamInterleave=CLSID_MsftStreamInterleave +IID_MsftStreamPrng001=CLSID_MsftStreamPrng001 +IID_MsftStreamZero=CLSID_MsftStreamZero +IID_MsftWriteEngine2=CLSID_MsftWriteEngine2 +IID_MsftWriteSpeedDescriptor=CLSID_MsftWriteSpeedDescriptor IID_PrintDocumentPackageTarget=CLSID_PrintDocumentPackageTarget IID_PrintDocumentPackageTargetFactory=CLSID_PrintDocumentPackageTargetFactory IID_PropertySystem=CLSID_PropertySystem @@ -2050,6 +2064,21 @@ _IMAGE_THUNK_DATA64=IMAGE_THUNK_DATA64 _IMAGE_TLS_DIRECTORY32=IMAGE_TLS_DIRECTORY32 _IMAGE_TLS_DIRECTORY64=IMAGE_TLS_DIRECTORY64 _IMAGE_VXD_HEADER=IMAGE_VXD_HEADER +_IMAPI_BURN_VERIFICATION_LEVEL=IMAPI_BURN_VERIFICATION_LEVEL +_IMAPI_CD_SECTOR_TYPE=IMAPI_CD_SECTOR_TYPE +_IMAPI_CD_TRACK_DIGITAL_COPY_SETTING=IMAPI_CD_TRACK_DIGITAL_COPY_SETTING +_IMAPI_FEATURE_PAGE_TYPE=IMAPI_FEATURE_PAGE_TYPE +_IMAPI_FORMAT2_DATA_MEDIA_STATE=IMAPI_FORMAT2_DATA_MEDIA_STATE +_IMAPI_FORMAT2_DATA_WRITE_ACTION=IMAPI_FORMAT2_DATA_WRITE_ACTION +_IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE=IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE +_IMAPI_FORMAT2_RAW_CD_WRITE_ACTION=IMAPI_FORMAT2_RAW_CD_WRITE_ACTION +_IMAPI_FORMAT2_TAO_WRITE_ACTION=IMAPI_FORMAT2_TAO_WRITE_ACTION +_IMAPI_MEDIA_PHYSICAL_TYPE=IMAPI_MEDIA_PHYSICAL_TYPE +_IMAPI_MEDIA_WRITE_PROTECT_STATE=IMAPI_MEDIA_WRITE_PROTECT_STATE +_IMAPI_MODE_PAGE_REQUEST_TYPE=IMAPI_MODE_PAGE_REQUEST_TYPE +_IMAPI_MODE_PAGE_TYPE=IMAPI_MODE_PAGE_TYPE +_IMAPI_PROFILE_TYPE=IMAPI_PROFILE_TYPE +_IMAPI_READ_TRACK_ADDRESS_TYPE=IMAPI_READ_TRACK_ADDRESS_TYPE _INFCONTEXT=INFCONTEXT _INPUT_RECORD=INPUT_RECORD _INTENT_TO_SEAL_ATTRIBUTE=INTENT_TO_SEAL_ATTRIBUTE diff --git a/generation/um/imapi2/generate.rsp b/generation/um/imapi2/generate.rsp new file mode 100644 index 0000000000..b9aa25fcab --- /dev/null +++ b/generation/um/imapi2/generate.rsp @@ -0,0 +1,14 @@ +@../../settings.rsp +@../../remap.rsp +--exclude +LIBID_IMAPILib2 +--file +um-imapi2.h +--output +../../../sources/Interop/Windows/um/imapi2 +--test-output +../../../tests/Interop/Windows/um/imapi2 +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/imapi2.h +--with-attribute +IMAPI_FORMAT2_DATA_MEDIA_STATE=Flags diff --git a/generation/um/imapi2/header.txt b/generation/um/imapi2/header.txt new file mode 100644 index 0000000000..8c64407629 --- /dev/null +++ b/generation/um/imapi2/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/um/imapi2/um-imapi2.h b/generation/um/imapi2/um-imapi2.h new file mode 100644 index 0000000000..ae1ac9b2c1 --- /dev/null +++ b/generation/um/imapi2/um-imapi2.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/sources/Interop/Windows/um/imapi2/DDiscFormat2DataEvents.cs b/sources/Interop/Windows/um/imapi2/DDiscFormat2DataEvents.cs new file mode 100644 index 0000000000..ce7c6a0787 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DDiscFormat2DataEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735413C-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DDiscFormat2DataEvents : IDispatch")] + public unsafe partial struct DDiscFormat2DataEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("IDispatch *")] IDispatch* progress) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DDiscFormat2DataEvents*)Unsafe.AsPointer(ref this), @object, progress); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/DDiscFormat2EraseEvents.cs b/sources/Interop/Windows/um/imapi2/DDiscFormat2EraseEvents.cs new file mode 100644 index 0000000000..3b062f7d03 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DDiscFormat2EraseEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735413A-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DDiscFormat2EraseEvents : IDispatch")] + public unsafe partial struct DDiscFormat2EraseEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("LONG")] int elapsedSeconds, [NativeTypeName("LONG")] int estimatedTotalSeconds) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DDiscFormat2EraseEvents*)Unsafe.AsPointer(ref this), @object, elapsedSeconds, estimatedTotalSeconds); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/DDiscFormat2RawCDEvents.cs b/sources/Interop/Windows/um/imapi2/DDiscFormat2RawCDEvents.cs new file mode 100644 index 0000000000..7cd6c468a6 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DDiscFormat2RawCDEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354142-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DDiscFormat2RawCDEvents : IDispatch")] + public unsafe partial struct DDiscFormat2RawCDEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("IDispatch *")] IDispatch* progress) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DDiscFormat2RawCDEvents*)Unsafe.AsPointer(ref this), @object, progress); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEvents.cs b/sources/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEvents.cs new file mode 100644 index 0000000000..43bd85e001 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735413F-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DDiscFormat2TrackAtOnceEvents : IDispatch")] + public unsafe partial struct DDiscFormat2TrackAtOnceEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("IDispatch *")] IDispatch* progress) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DDiscFormat2TrackAtOnceEvents*)Unsafe.AsPointer(ref this), @object, progress); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/DDiscMaster2Events.cs b/sources/Interop/Windows/um/imapi2/DDiscMaster2Events.cs new file mode 100644 index 0000000000..8a1b4e8fd5 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DDiscMaster2Events.cs @@ -0,0 +1,81 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354131-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DDiscMaster2Events : IDispatch")] + public unsafe partial struct DDiscMaster2Events + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyDeviceAdded([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("BSTR")] ushort* uniqueId) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), @object, uniqueId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int NotifyDeviceRemoved([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("BSTR")] ushort* uniqueId) + { + return ((delegate* unmanaged)(lpVtbl[8]))((DDiscMaster2Events*)Unsafe.AsPointer(ref this), @object, uniqueId); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/DWriteEngine2Events.cs b/sources/Interop/Windows/um/imapi2/DWriteEngine2Events.cs new file mode 100644 index 0000000000..5572d9c9a7 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/DWriteEngine2Events.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354137-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct DWriteEngine2Events : IDispatch")] + public unsafe partial struct DWriteEngine2Events + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("IDispatch *")] IDispatch* progress) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DWriteEngine2Events*)Unsafe.AsPointer(ref this), @object, progress); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IBlockRange.cs b/sources/Interop/Windows/um/imapi2/IBlockRange.cs new file mode 100644 index 0000000000..d054ec3c63 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IBlockRange.cs @@ -0,0 +1,81 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA25-2204-11DD-966A-001AA01BBC58")] + [NativeTypeName("struct IBlockRange : IDispatch")] + public unsafe partial struct IBlockRange + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IBlockRange*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IBlockRange*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IBlockRange*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IBlockRange*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IBlockRange*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IBlockRange*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IBlockRange*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IBlockRange*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EndLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IBlockRange*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IBlockRangeList.cs b/sources/Interop/Windows/um/imapi2/IBlockRangeList.cs new file mode 100644 index 0000000000..830a24fad1 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IBlockRangeList.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA26-2204-11DD-966A-001AA01BBC58")] + [NativeTypeName("struct IBlockRangeList : IDispatch")] + public unsafe partial struct IBlockRangeList + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IBlockRangeList*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IBlockRangeList*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IBlockRangeList*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IBlockRangeList*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IBlockRangeList*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IBlockRangeList*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IBlockRangeList*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BlockRanges([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IBlockRangeList*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IBurnVerification.cs b/sources/Interop/Windows/um/imapi2/IBurnVerification.cs new file mode 100644 index 0000000000..a93fbba167 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IBurnVerification.cs @@ -0,0 +1,53 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("D2FFD834-958B-426D-8470-2A13879C6A91")] + [NativeTypeName("struct IBurnVerification : IUnknown")] + public unsafe partial struct IBurnVerification + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IBurnVerification*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IBurnVerification*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IBurnVerification*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BurnVerificationLevel(IMAPI_BURN_VERIFICATION_LEVEL value) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IBurnVerification*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BurnVerificationLevel([NativeTypeName("IMAPI_BURN_VERIFICATION_LEVEL *")] IMAPI_BURN_VERIFICATION_LEVEL* value) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IBurnVerification*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2.cs new file mode 100644 index 0000000000..4d5bd19120 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2.cs @@ -0,0 +1,102 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354152-8F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2 : IDispatch")] + public unsafe partial struct IDiscFormat2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsRecorderSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsCurrentMediaSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaPhysicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaHeuristicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedMediaTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2Data.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2Data.cs new file mode 100644 index 0000000000..079c63d5ff --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2Data.cs @@ -0,0 +1,326 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354153-9F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2Data : IDiscFormat2")] + public unsafe partial struct IDiscFormat2Data + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsRecorderSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsCurrentMediaSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaPhysicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaHeuristicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedMediaTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Recorder([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Recorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_PostgapAlreadyInImage([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_PostgapAlreadyInImage([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentMediaStatus([NativeTypeName("IMAPI_FORMAT2_DATA_MEDIA_STATE *")] IMAPI_FORMAT2_DATA_MEDIA_STATE* value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WriteProtectStatus([NativeTypeName("IMAPI_MEDIA_WRITE_PROTECT_STATE *")] IMAPI_MEDIA_WRITE_PROTECT_STATE* value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_NextWritableAddress([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ForceMediaToBeClosed([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ForceMediaToBeClosed([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_DisableConsumerDvdCompatibilityMode([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DisableConsumerDvdCompatibilityMode([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentPhysicalMediaType([NativeTypeName("IMAPI_MEDIA_PHYSICAL_TYPE *")] IMAPI_MEDIA_PHYSICAL_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ClientName([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ClientName([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeeds([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeeds) + { + return ((delegate* unmanaged)(lpVtbl[36]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), supportedSpeeds); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeedDescriptors([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeedDescriptors) + { + return ((delegate* unmanaged)(lpVtbl[37]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), supportedSpeedDescriptors); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ForceOverwrite([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[38]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ForceOverwrite([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[39]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MultisessionInterfaces([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[40]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Write([NativeTypeName("IStream *")] IStream* data) + { + return ((delegate* unmanaged)(lpVtbl[41]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CancelWrite() + { + return ((delegate* unmanaged)(lpVtbl[42]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetWriteSpeed([NativeTypeName("LONG")] int RequestedSectorsPerSecond, [NativeTypeName("VARIANT_BOOL")] short RotationTypeIsPureCAV) + { + return ((delegate* unmanaged)(lpVtbl[43]))((IDiscFormat2Data*)Unsafe.AsPointer(ref this), RequestedSectorsPerSecond, RotationTypeIsPureCAV); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgs.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgs.cs new file mode 100644 index 0000000000..1bf9c1424d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgs.cs @@ -0,0 +1,144 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735413D-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2DataEventArgs : IWriteEngine2EventArgs")] + public unsafe partial struct IDiscFormat2DataEventArgs + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorCount([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastReadLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ElapsedTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RemainingTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentAction([NativeTypeName("IMAPI_FORMAT2_DATA_WRITE_ACTION *")] IMAPI_FORMAT2_DATA_WRITE_ACTION* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2DataEventArgs*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2Erase.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2Erase.cs new file mode 100644 index 0000000000..9597d0ce5e --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2Erase.cs @@ -0,0 +1,158 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354156-8F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2Erase : IDiscFormat2")] + public unsafe partial struct IDiscFormat2Erase + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsRecorderSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsCurrentMediaSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaPhysicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaHeuristicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedMediaTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Recorder([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Recorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FullErase([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullErase([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentPhysicalMediaType([NativeTypeName("IMAPI_MEDIA_PHYSICAL_TYPE *")] IMAPI_MEDIA_PHYSICAL_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ClientName([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ClientName([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int EraseMedia() + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscFormat2Erase*)Unsafe.AsPointer(ref this)); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCD.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCD.cs new file mode 100644 index 0000000000..f15f377aae --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCD.cs @@ -0,0 +1,270 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354155-8F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2RawCD : IDiscFormat2")] + public unsafe partial struct IDiscFormat2RawCD + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsRecorderSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsCurrentMediaSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaPhysicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaHeuristicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedMediaTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int PrepareMedia() + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int WriteMedia([NativeTypeName("IStream *")] IStream* data) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int WriteMedia2([NativeTypeName("IStream *")] IStream* data, [NativeTypeName("LONG")] int streamLeadInSectors) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), data, streamLeadInSectors); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CancelWrite() + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ReleaseMedia() + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetWriteSpeed([NativeTypeName("LONG")] int RequestedSectorsPerSecond, [NativeTypeName("VARIANT_BOOL")] short RotationTypeIsPureCAV) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), RequestedSectorsPerSecond, RotationTypeIsPureCAV); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Recorder([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Recorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartOfNextSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastPossibleStartOfLeadout([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentPhysicalMediaType([NativeTypeName("IMAPI_MEDIA_PHYSICAL_TYPE *")] IMAPI_MEDIA_PHYSICAL_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedSectorTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_RequestedSectorType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE value) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedSectorType([NativeTypeName("IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE *")] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ClientName([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ClientName([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeeds([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeeds) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), supportedSpeeds); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeedDescriptors([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeedDescriptors) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IDiscFormat2RawCD*)Unsafe.AsPointer(ref this), supportedSpeedDescriptors); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgs.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgs.cs new file mode 100644 index 0000000000..16ee27019d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgs.cs @@ -0,0 +1,137 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354143-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2RawCDEventArgs : IWriteEngine2EventArgs")] + public unsafe partial struct IDiscFormat2RawCDEventArgs + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorCount([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastReadLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentAction([NativeTypeName("IMAPI_FORMAT2_RAW_CD_WRITE_ACTION *")] IMAPI_FORMAT2_RAW_CD_WRITE_ACTION* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ElapsedTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RemainingTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2RawCDEventArgs*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnce.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnce.cs new file mode 100644 index 0000000000..1f515cf727 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnce.cs @@ -0,0 +1,277 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354154-8F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2TrackAtOnce : IDiscFormat2")] + public unsafe partial struct IDiscFormat2TrackAtOnce + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsRecorderSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IsCurrentMediaSupported([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* recorder, [NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), recorder, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaPhysicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaHeuristicallyBlank([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedMediaTypes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int PrepareMedia() + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddAudioTrack([NativeTypeName("IStream *")] IStream* data) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CancelAddTrack() + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ReleaseMedia() + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetWriteSpeed([NativeTypeName("LONG")] int RequestedSectorsPerSecond, [NativeTypeName("VARIANT_BOOL")] short RotationTypeIsPureCAV) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), RequestedSectorsPerSecond, RotationTypeIsPureCAV); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Recorder([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Recorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BufferUnderrunFreeDisabled([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_NumberOfExistingTracks([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_DoNotFinalizeMedia([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DoNotFinalizeMedia([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ExpectedTableOfContents([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentPhysicalMediaType([NativeTypeName("IMAPI_MEDIA_PHYSICAL_TYPE *")] IMAPI_MEDIA_PHYSICAL_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ClientName([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ClientName([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RequestedRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentWriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentRotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeeds([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeeds) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), supportedSpeeds); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedWriteSpeedDescriptors([NativeTypeName("SAFEARRAY **")] SAFEARRAY** supportedSpeedDescriptors) + { + return ((delegate* unmanaged)(lpVtbl[36]))((IDiscFormat2TrackAtOnce*)Unsafe.AsPointer(ref this), supportedSpeedDescriptors); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgs.cs b/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgs.cs new file mode 100644 index 0000000000..6bbf7605de --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgs.cs @@ -0,0 +1,144 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354140-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscFormat2TrackAtOnceEventArgs : IWriteEngine2EventArgs")] + public unsafe partial struct IDiscFormat2TrackAtOnceEventArgs + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorCount([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastReadLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentTrackNumber([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentAction([NativeTypeName("IMAPI_FORMAT2_TAO_WRITE_ACTION *")] IMAPI_FORMAT2_TAO_WRITE_ACTION* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ElapsedTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RemainingTime([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscFormat2TrackAtOnceEventArgs*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscMaster2.cs b/sources/Interop/Windows/um/imapi2/IDiscMaster2.cs new file mode 100644 index 0000000000..ac336e8b40 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscMaster2.cs @@ -0,0 +1,95 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354130-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscMaster2 : IDispatch")] + public unsafe partial struct IDiscMaster2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscMaster2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscMaster2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscMaster2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscMaster2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscMaster2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscMaster2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscMaster2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get__NewEnum([NativeTypeName("IEnumVARIANT **")] IEnumVARIANT** ppunk) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscMaster2*)Unsafe.AsPointer(ref this), ppunk); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Item([NativeTypeName("LONG")] int index, [NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscMaster2*)Unsafe.AsPointer(ref this), index, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Count([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscMaster2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsSupportedEnvironment([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscMaster2*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscRecorder2.cs b/sources/Interop/Windows/um/imapi2/IDiscRecorder2.cs new file mode 100644 index 0000000000..1d4f72a918 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscRecorder2.cs @@ -0,0 +1,214 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354133-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscRecorder2 : IDispatch")] + public unsafe partial struct IDiscRecorder2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int EjectMedia() + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CloseTray() + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AcquireExclusiveAccess([NativeTypeName("VARIANT_BOOL")] short force, [NativeTypeName("BSTR")] ushort* __MIDL__IDiscRecorder20000) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), force, __MIDL__IDiscRecorder20000); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ReleaseExclusiveAccess() + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int DisableMcn() + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int EnableMcn() + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscRecorder2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int InitializeDiscRecorder([NativeTypeName("BSTR")] ushort* recorderUniqueId) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), recorderUniqueId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ActiveDiscRecorder([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VendorId([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ProductId([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ProductRevision([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeName([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumePathNames([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DeviceCanLoadMedia([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LegacyDeviceNumber([NativeTypeName("LONG *")] int* legacyDeviceNumber) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), legacyDeviceNumber); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedFeaturePages([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentFeaturePages([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedProfiles([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CurrentProfiles([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SupportedModePages([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ExclusiveAccessOwner([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IDiscRecorder2*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IDiscRecorder2Ex.cs b/sources/Interop/Windows/um/imapi2/IDiscRecorder2Ex.cs new file mode 100644 index 0000000000..c2247c2c5b --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IDiscRecorder2Ex.cs @@ -0,0 +1,165 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354132-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IDiscRecorder2Ex : IUnknown")] + public unsafe partial struct IDiscRecorder2Ex + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SendCommandNoData([NativeTypeName("BYTE *")] byte* Cdb, [NativeTypeName("ULONG")] uint CdbSize, [NativeTypeName("BYTE [18]")] byte* SenseBuffer, [NativeTypeName("ULONG")] uint Timeout) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), Cdb, CdbSize, SenseBuffer, Timeout); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SendCommandSendDataToDevice([NativeTypeName("BYTE *")] byte* Cdb, [NativeTypeName("ULONG")] uint CdbSize, [NativeTypeName("BYTE [18]")] byte* SenseBuffer, [NativeTypeName("ULONG")] uint Timeout, [NativeTypeName("BYTE *")] byte* Buffer, [NativeTypeName("ULONG_IMAPI2_NONZERO")] uint BufferSize) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), Cdb, CdbSize, SenseBuffer, Timeout, Buffer, BufferSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SendCommandGetDataFromDevice([NativeTypeName("BYTE *")] byte* Cdb, [NativeTypeName("ULONG")] uint CdbSize, [NativeTypeName("BYTE [18]")] byte* SenseBuffer, [NativeTypeName("ULONG")] uint Timeout, [NativeTypeName("BYTE *")] byte* Buffer, [NativeTypeName("ULONG_IMAPI2_NONZERO")] uint BufferSize, [NativeTypeName("ULONG_IMAPI2_NOT_NEGATIVE *")] uint* BufferFetched) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), Cdb, CdbSize, SenseBuffer, Timeout, Buffer, BufferSize, BufferFetched); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ReadDvdStructure([NativeTypeName("ULONG")] uint format, [NativeTypeName("ULONG")] uint address, [NativeTypeName("ULONG")] uint layer, [NativeTypeName("ULONG")] uint agid, [NativeTypeName("BYTE **")] byte** data, [NativeTypeName("ULONG_IMAPI2_DVD_STRUCTURE *")] uint* count) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), format, address, layer, agid, data, count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SendDvdStructure([NativeTypeName("ULONG")] uint format, [NativeTypeName("BYTE *")] byte* data, [NativeTypeName("ULONG_IMAPI2_DVD_STRUCTURE")] uint count) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), format, data, count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetAdapterDescriptor([NativeTypeName("BYTE **")] byte** data, [NativeTypeName("ULONG_IMAPI2_ADAPTER_DESCRIPTOR *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), data, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDeviceDescriptor([NativeTypeName("BYTE **")] byte** data, [NativeTypeName("ULONG_IMAPI2_DEVICE_DESCRIPTOR *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), data, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDiscInformation([NativeTypeName("BYTE **")] byte** discInformation, [NativeTypeName("ULONG_IMAPI2_DISC_INFORMATION *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), discInformation, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTrackInformation([NativeTypeName("ULONG")] uint address, IMAPI_READ_TRACK_ADDRESS_TYPE addressType, [NativeTypeName("BYTE **")] byte** trackInformation, [NativeTypeName("ULONG_IMAPI2_TRACK_INFORMATION *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), address, addressType, trackInformation, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetFeaturePage(IMAPI_FEATURE_PAGE_TYPE requestedFeature, [NativeTypeName("BOOLEAN")] byte currentFeatureOnly, [NativeTypeName("BYTE **")] byte** featureData, [NativeTypeName("ULONG_IMAPI2_FEATURE_PAGE *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), requestedFeature, currentFeatureOnly, featureData, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetModePage(IMAPI_MODE_PAGE_TYPE requestedModePage, IMAPI_MODE_PAGE_REQUEST_TYPE requestType, [NativeTypeName("BYTE **")] byte** modePageData, [NativeTypeName("ULONG_IMAPI2_MODE_PAGE *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), requestedModePage, requestType, modePageData, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetModePage(IMAPI_MODE_PAGE_REQUEST_TYPE requestType, [NativeTypeName("BYTE *")] byte* data, [NativeTypeName("ULONG_IMAPI2_MODE_PAGE")] uint byteSize) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), requestType, data, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetSupportedFeaturePages([NativeTypeName("BOOLEAN")] byte currentFeatureOnly, [NativeTypeName("IMAPI_FEATURE_PAGE_TYPE **")] IMAPI_FEATURE_PAGE_TYPE** featureData, [NativeTypeName("ULONG_IMAPI2_ALL_FEATURE_PAGES *")] uint* byteSize) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), currentFeatureOnly, featureData, byteSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetSupportedProfiles([NativeTypeName("BOOLEAN")] byte currentOnly, [NativeTypeName("IMAPI_PROFILE_TYPE **")] IMAPI_PROFILE_TYPE** profileTypes, [NativeTypeName("ULONG_IMAPI2_ALL_PROFILES *")] uint* validProfiles) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), currentOnly, profileTypes, validProfiles); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetSupportedModePages(IMAPI_MODE_PAGE_REQUEST_TYPE requestType, [NativeTypeName("IMAPI_MODE_PAGE_TYPE **")] IMAPI_MODE_PAGE_TYPE** modePageTypes, [NativeTypeName("ULONG_IMAPI2_ALL_MODE_PAGES *")] uint* validPages) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), requestType, modePageTypes, validPages); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetByteAlignmentMask([NativeTypeName("ULONG *")] uint* value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetMaximumNonPageAlignedTransferSize([NativeTypeName("ULONG *")] uint* value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetMaximumPageAlignedTransferSize([NativeTypeName("ULONG *")] uint* value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IDiscRecorder2Ex*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_BURN_VERIFICATION_LEVEL.cs b/sources/Interop/Windows/um/imapi2/IMAPI_BURN_VERIFICATION_LEVEL.cs new file mode 100644 index 0000000000..a08de3ff31 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_BURN_VERIFICATION_LEVEL.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_BURN_VERIFICATION_LEVEL + { + IMAPI_BURN_VERIFICATION_NONE = 0, + IMAPI_BURN_VERIFICATION_QUICK = 1, + IMAPI_BURN_VERIFICATION_FULL = 2, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_CD_SECTOR_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_CD_SECTOR_TYPE.cs new file mode 100644 index 0000000000..67d15a88aa --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_CD_SECTOR_TYPE.cs @@ -0,0 +1,21 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_CD_SECTOR_TYPE + { + IMAPI_CD_SECTOR_AUDIO = 0, + IMAPI_CD_SECTOR_MODE_ZERO = 0x1, + IMAPI_CD_SECTOR_MODE1 = 0x2, + IMAPI_CD_SECTOR_MODE2FORM0 = 0x3, + IMAPI_CD_SECTOR_MODE2FORM1 = 0x4, + IMAPI_CD_SECTOR_MODE2FORM2 = 0x5, + IMAPI_CD_SECTOR_MODE1RAW = 0x6, + IMAPI_CD_SECTOR_MODE2FORM0RAW = 0x7, + IMAPI_CD_SECTOR_MODE2FORM1RAW = 0x8, + IMAPI_CD_SECTOR_MODE2FORM2RAW = 0x9, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_CD_TRACK_DIGITAL_COPY_SETTING.cs b/sources/Interop/Windows/um/imapi2/IMAPI_CD_TRACK_DIGITAL_COPY_SETTING.cs new file mode 100644 index 0000000000..d58b17b429 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_CD_TRACK_DIGITAL_COPY_SETTING.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_CD_TRACK_DIGITAL_COPY_SETTING + { + IMAPI_CD_TRACK_DIGITAL_COPY_PERMITTED = 0, + IMAPI_CD_TRACK_DIGITAL_COPY_PROHIBITED = 0x1, + IMAPI_CD_TRACK_DIGITAL_COPY_SCMS = 0x2, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FEATURE_PAGE_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FEATURE_PAGE_TYPE.cs new file mode 100644 index 0000000000..bc1ec004bb --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FEATURE_PAGE_TYPE.cs @@ -0,0 +1,62 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_FEATURE_PAGE_TYPE + { + IMAPI_FEATURE_PAGE_TYPE_PROFILE_LIST = 0, + IMAPI_FEATURE_PAGE_TYPE_CORE = 0x1, + IMAPI_FEATURE_PAGE_TYPE_MORPHING = 0x2, + IMAPI_FEATURE_PAGE_TYPE_REMOVABLE_MEDIUM = 0x3, + IMAPI_FEATURE_PAGE_TYPE_WRITE_PROTECT = 0x4, + IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_READABLE = 0x10, + IMAPI_FEATURE_PAGE_TYPE_CD_MULTIREAD = 0x1d, + IMAPI_FEATURE_PAGE_TYPE_CD_READ = 0x1e, + IMAPI_FEATURE_PAGE_TYPE_DVD_READ = 0x1f, + IMAPI_FEATURE_PAGE_TYPE_RANDOMLY_WRITABLE = 0x20, + IMAPI_FEATURE_PAGE_TYPE_INCREMENTAL_STREAMING_WRITABLE = 0x21, + IMAPI_FEATURE_PAGE_TYPE_SECTOR_ERASABLE = 0x22, + IMAPI_FEATURE_PAGE_TYPE_FORMATTABLE = 0x23, + IMAPI_FEATURE_PAGE_TYPE_HARDWARE_DEFECT_MANAGEMENT = 0x24, + IMAPI_FEATURE_PAGE_TYPE_WRITE_ONCE = 0x25, + IMAPI_FEATURE_PAGE_TYPE_RESTRICTED_OVERWRITE = 0x26, + IMAPI_FEATURE_PAGE_TYPE_CDRW_CAV_WRITE = 0x27, + IMAPI_FEATURE_PAGE_TYPE_MRW = 0x28, + IMAPI_FEATURE_PAGE_TYPE_ENHANCED_DEFECT_REPORTING = 0x29, + IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_RW = 0x2a, + IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R = 0x2b, + IMAPI_FEATURE_PAGE_TYPE_RIGID_RESTRICTED_OVERWRITE = 0x2c, + IMAPI_FEATURE_PAGE_TYPE_CD_TRACK_AT_ONCE = 0x2d, + IMAPI_FEATURE_PAGE_TYPE_CD_MASTERING = 0x2e, + IMAPI_FEATURE_PAGE_TYPE_DVD_DASH_WRITE = 0x2f, + IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_READ = 0x30, + IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_R_WRITE = 0x31, + IMAPI_FEATURE_PAGE_TYPE_DOUBLE_DENSITY_CD_RW_WRITE = 0x32, + IMAPI_FEATURE_PAGE_TYPE_LAYER_JUMP_RECORDING = 0x33, + IMAPI_FEATURE_PAGE_TYPE_CD_RW_MEDIA_WRITE_SUPPORT = 0x37, + IMAPI_FEATURE_PAGE_TYPE_BD_PSEUDO_OVERWRITE = 0x38, + IMAPI_FEATURE_PAGE_TYPE_DVD_PLUS_R_DUAL_LAYER = 0x3b, + IMAPI_FEATURE_PAGE_TYPE_BD_READ = 0x40, + IMAPI_FEATURE_PAGE_TYPE_BD_WRITE = 0x41, + IMAPI_FEATURE_PAGE_TYPE_HD_DVD_READ = 0x50, + IMAPI_FEATURE_PAGE_TYPE_HD_DVD_WRITE = 0x51, + IMAPI_FEATURE_PAGE_TYPE_POWER_MANAGEMENT = 0x100, + IMAPI_FEATURE_PAGE_TYPE_SMART = 0x101, + IMAPI_FEATURE_PAGE_TYPE_EMBEDDED_CHANGER = 0x102, + IMAPI_FEATURE_PAGE_TYPE_CD_ANALOG_PLAY = 0x103, + IMAPI_FEATURE_PAGE_TYPE_MICROCODE_UPDATE = 0x104, + IMAPI_FEATURE_PAGE_TYPE_TIMEOUT = 0x105, + IMAPI_FEATURE_PAGE_TYPE_DVD_CSS = 0x106, + IMAPI_FEATURE_PAGE_TYPE_REAL_TIME_STREAMING = 0x107, + IMAPI_FEATURE_PAGE_TYPE_LOGICAL_UNIT_SERIAL_NUMBER = 0x108, + IMAPI_FEATURE_PAGE_TYPE_MEDIA_SERIAL_NUMBER = 0x109, + IMAPI_FEATURE_PAGE_TYPE_DISC_CONTROL_BLOCKS = 0x10a, + IMAPI_FEATURE_PAGE_TYPE_DVD_CPRM = 0x10b, + IMAPI_FEATURE_PAGE_TYPE_FIRMWARE_INFORMATION = 0x10c, + IMAPI_FEATURE_PAGE_TYPE_AACS = 0x10d, + IMAPI_FEATURE_PAGE_TYPE_VCPS = 0x110, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_MEDIA_STATE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_MEDIA_STATE.cs new file mode 100644 index 0000000000..1909ec1861 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_MEDIA_STATE.cs @@ -0,0 +1,28 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop +{ + [Flags] + public enum IMAPI_FORMAT2_DATA_MEDIA_STATE + { + IMAPI_FORMAT2_DATA_MEDIA_STATE_UNKNOWN = 0, + IMAPI_FORMAT2_DATA_MEDIA_STATE_INFORMATIONAL_MASK = 0xf, + IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MASK = 0xfc00, + IMAPI_FORMAT2_DATA_MEDIA_STATE_OVERWRITE_ONLY = 0x1, + IMAPI_FORMAT2_DATA_MEDIA_STATE_RANDOMLY_WRITABLE = 0x1, + IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK = 0x2, + IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE = 0x4, + IMAPI_FORMAT2_DATA_MEDIA_STATE_FINAL_SESSION = 0x8, + IMAPI_FORMAT2_DATA_MEDIA_STATE_DAMAGED = 0x400, + IMAPI_FORMAT2_DATA_MEDIA_STATE_ERASE_REQUIRED = 0x800, + IMAPI_FORMAT2_DATA_MEDIA_STATE_NON_EMPTY_SESSION = 0x1000, + IMAPI_FORMAT2_DATA_MEDIA_STATE_WRITE_PROTECTED = 0x2000, + IMAPI_FORMAT2_DATA_MEDIA_STATE_FINALIZED = 0x4000, + IMAPI_FORMAT2_DATA_MEDIA_STATE_UNSUPPORTED_MEDIA = 0x8000, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_WRITE_ACTION.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_WRITE_ACTION.cs new file mode 100644 index 0000000000..a4a8138eb1 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_DATA_WRITE_ACTION.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_FORMAT2_DATA_WRITE_ACTION + { + IMAPI_FORMAT2_DATA_WRITE_ACTION_VALIDATING_MEDIA = 0, + IMAPI_FORMAT2_DATA_WRITE_ACTION_FORMATTING_MEDIA = 0x1, + IMAPI_FORMAT2_DATA_WRITE_ACTION_INITIALIZING_HARDWARE = 0x2, + IMAPI_FORMAT2_DATA_WRITE_ACTION_CALIBRATING_POWER = 0x3, + IMAPI_FORMAT2_DATA_WRITE_ACTION_WRITING_DATA = 0x4, + IMAPI_FORMAT2_DATA_WRITE_ACTION_FINALIZATION = 0x5, + IMAPI_FORMAT2_DATA_WRITE_ACTION_COMPLETED = 0x6, + IMAPI_FORMAT2_DATA_WRITE_ACTION_VERIFYING = 0x7, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE.cs new file mode 100644 index 0000000000..6c219ff55e --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE + { + IMAPI_FORMAT2_RAW_CD_SUBCODE_PQ_ONLY = 0x1, + IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_COOKED = 0x2, + IMAPI_FORMAT2_RAW_CD_SUBCODE_IS_RAW = 0x3, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_WRITE_ACTION.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_WRITE_ACTION.cs new file mode 100644 index 0000000000..3dab8d2f49 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_RAW_CD_WRITE_ACTION.cs @@ -0,0 +1,15 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_FORMAT2_RAW_CD_WRITE_ACTION + { + IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_UNKNOWN = 0, + IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_PREPARING = 0x1, + IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_WRITING = 0x2, + IMAPI_FORMAT2_RAW_CD_WRITE_ACTION_FINISHING = 0x3, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_TAO_WRITE_ACTION.cs b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_TAO_WRITE_ACTION.cs new file mode 100644 index 0000000000..bb238d2d79 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_FORMAT2_TAO_WRITE_ACTION.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_FORMAT2_TAO_WRITE_ACTION + { + IMAPI_FORMAT2_TAO_WRITE_ACTION_UNKNOWN = 0, + IMAPI_FORMAT2_TAO_WRITE_ACTION_PREPARING = 0x1, + IMAPI_FORMAT2_TAO_WRITE_ACTION_WRITING = 0x2, + IMAPI_FORMAT2_TAO_WRITE_ACTION_FINISHING = 0x3, + IMAPI_FORMAT2_TAO_WRITE_ACTION_VERIFYING = 0x4, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_PHYSICAL_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_PHYSICAL_TYPE.cs new file mode 100644 index 0000000000..4a586db5a2 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_PHYSICAL_TYPE.cs @@ -0,0 +1,32 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_MEDIA_PHYSICAL_TYPE + { + IMAPI_MEDIA_TYPE_UNKNOWN = 0, + IMAPI_MEDIA_TYPE_CDROM = 0x1, + IMAPI_MEDIA_TYPE_CDR = 0x2, + IMAPI_MEDIA_TYPE_CDRW = 0x3, + IMAPI_MEDIA_TYPE_DVDROM = 0x4, + IMAPI_MEDIA_TYPE_DVDRAM = 0x5, + IMAPI_MEDIA_TYPE_DVDPLUSR = 0x6, + IMAPI_MEDIA_TYPE_DVDPLUSRW = 0x7, + IMAPI_MEDIA_TYPE_DVDPLUSR_DUALLAYER = 0x8, + IMAPI_MEDIA_TYPE_DVDDASHR = 0x9, + IMAPI_MEDIA_TYPE_DVDDASHRW = 0xa, + IMAPI_MEDIA_TYPE_DVDDASHR_DUALLAYER = 0xb, + IMAPI_MEDIA_TYPE_DISK = 0xc, + IMAPI_MEDIA_TYPE_DVDPLUSRW_DUALLAYER = 0xd, + IMAPI_MEDIA_TYPE_HDDVDROM = 0xe, + IMAPI_MEDIA_TYPE_HDDVDR = 0xf, + IMAPI_MEDIA_TYPE_HDDVDRAM = 0x10, + IMAPI_MEDIA_TYPE_BDROM = 0x11, + IMAPI_MEDIA_TYPE_BDR = 0x12, + IMAPI_MEDIA_TYPE_BDRE = 0x13, + IMAPI_MEDIA_TYPE_MAX = 0x13, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_WRITE_PROTECT_STATE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_WRITE_PROTECT_STATE.cs new file mode 100644 index 0000000000..1ca3cf1f40 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_MEDIA_WRITE_PROTECT_STATE.cs @@ -0,0 +1,17 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_MEDIA_WRITE_PROTECT_STATE + { + IMAPI_WRITEPROTECTED_UNTIL_POWERDOWN = 0x1, + IMAPI_WRITEPROTECTED_BY_CARTRIDGE = 0x2, + IMAPI_WRITEPROTECTED_BY_MEDIA_SPECIFIC_REASON = 0x4, + IMAPI_WRITEPROTECTED_BY_SOFTWARE_WRITE_PROTECT = 0x8, + IMAPI_WRITEPROTECTED_BY_DISC_CONTROL_BLOCK = 0x10, + IMAPI_WRITEPROTECTED_READ_ONLY_MEDIA = 0x4000, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_REQUEST_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_REQUEST_TYPE.cs new file mode 100644 index 0000000000..638b867d71 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_REQUEST_TYPE.cs @@ -0,0 +1,15 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_MODE_PAGE_REQUEST_TYPE + { + IMAPI_MODE_PAGE_REQUEST_TYPE_CURRENT_VALUES = 0, + IMAPI_MODE_PAGE_REQUEST_TYPE_CHANGEABLE_VALUES = 1, + IMAPI_MODE_PAGE_REQUEST_TYPE_DEFAULT_VALUES = 2, + IMAPI_MODE_PAGE_REQUEST_TYPE_SAVED_VALUES = 3, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_TYPE.cs new file mode 100644 index 0000000000..0b6c5a6493 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_MODE_PAGE_TYPE.cs @@ -0,0 +1,19 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_MODE_PAGE_TYPE + { + IMAPI_MODE_PAGE_TYPE_READ_WRITE_ERROR_RECOVERY = 0x1, + IMAPI_MODE_PAGE_TYPE_MRW = 0x3, + IMAPI_MODE_PAGE_TYPE_WRITE_PARAMETERS = 0x5, + IMAPI_MODE_PAGE_TYPE_CACHING = 0x8, + IMAPI_MODE_PAGE_TYPE_INFORMATIONAL_EXCEPTIONS = 0x1c, + IMAPI_MODE_PAGE_TYPE_TIMEOUT_AND_PROTECT = 0x1d, + IMAPI_MODE_PAGE_TYPE_POWER_CONDITION = 0x1a, + IMAPI_MODE_PAGE_TYPE_LEGACY_CAPABILITIES = 0x2a, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_PROFILE_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_PROFILE_TYPE.cs new file mode 100644 index 0000000000..6cc711ae78 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_PROFILE_TYPE.cs @@ -0,0 +1,42 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_PROFILE_TYPE + { + IMAPI_PROFILE_TYPE_INVALID = 0, + IMAPI_PROFILE_TYPE_NON_REMOVABLE_DISK = 0x1, + IMAPI_PROFILE_TYPE_REMOVABLE_DISK = 0x2, + IMAPI_PROFILE_TYPE_MO_ERASABLE = 0x3, + IMAPI_PROFILE_TYPE_MO_WRITE_ONCE = 0x4, + IMAPI_PROFILE_TYPE_AS_MO = 0x5, + IMAPI_PROFILE_TYPE_CDROM = 0x8, + IMAPI_PROFILE_TYPE_CD_RECORDABLE = 0x9, + IMAPI_PROFILE_TYPE_CD_REWRITABLE = 0xa, + IMAPI_PROFILE_TYPE_DVDROM = 0x10, + IMAPI_PROFILE_TYPE_DVD_DASH_RECORDABLE = 0x11, + IMAPI_PROFILE_TYPE_DVD_RAM = 0x12, + IMAPI_PROFILE_TYPE_DVD_DASH_REWRITABLE = 0x13, + IMAPI_PROFILE_TYPE_DVD_DASH_RW_SEQUENTIAL = 0x14, + IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_SEQUENTIAL = 0x15, + IMAPI_PROFILE_TYPE_DVD_DASH_R_DUAL_LAYER_JUMP = 0x16, + IMAPI_PROFILE_TYPE_DVD_PLUS_RW = 0x1a, + IMAPI_PROFILE_TYPE_DVD_PLUS_R = 0x1b, + IMAPI_PROFILE_TYPE_DDCDROM = 0x20, + IMAPI_PROFILE_TYPE_DDCD_RECORDABLE = 0x21, + IMAPI_PROFILE_TYPE_DDCD_REWRITABLE = 0x22, + IMAPI_PROFILE_TYPE_DVD_PLUS_RW_DUAL = 0x2a, + IMAPI_PROFILE_TYPE_DVD_PLUS_R_DUAL = 0x2b, + IMAPI_PROFILE_TYPE_BD_ROM = 0x40, + IMAPI_PROFILE_TYPE_BD_R_SEQUENTIAL = 0x41, + IMAPI_PROFILE_TYPE_BD_R_RANDOM_RECORDING = 0x42, + IMAPI_PROFILE_TYPE_BD_REWRITABLE = 0x43, + IMAPI_PROFILE_TYPE_HD_DVD_ROM = 0x50, + IMAPI_PROFILE_TYPE_HD_DVD_RECORDABLE = 0x51, + IMAPI_PROFILE_TYPE_HD_DVD_RAM = 0x52, + IMAPI_PROFILE_TYPE_NON_STANDARD = 0xffff, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMAPI_READ_TRACK_ADDRESS_TYPE.cs b/sources/Interop/Windows/um/imapi2/IMAPI_READ_TRACK_ADDRESS_TYPE.cs new file mode 100644 index 0000000000..23dde82fdc --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMAPI_READ_TRACK_ADDRESS_TYPE.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum IMAPI_READ_TRACK_ADDRESS_TYPE + { + IMAPI_READ_TRACK_ADDRESS_TYPE_LBA = 0, + IMAPI_READ_TRACK_ADDRESS_TYPE_TRACK = 1, + IMAPI_READ_TRACK_ADDRESS_TYPE_SESSION = 2, + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMultisession.cs b/sources/Interop/Windows/um/imapi2/IMultisession.cs new file mode 100644 index 0000000000..894451190d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMultisession.cs @@ -0,0 +1,95 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354150-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IMultisession : IDispatch")] + public unsafe partial struct IMultisession + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IMultisession*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IMultisession*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IMultisession*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IMultisession*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IMultisession*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IMultisession*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IMultisession*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsSupportedOnCurrentMediaState([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IMultisession*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_InUse([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IMultisession*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_InUse([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IMultisession*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportRecorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IMultisession*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMultisessionRandomWrite.cs b/sources/Interop/Windows/um/imapi2/IMultisessionRandomWrite.cs new file mode 100644 index 0000000000..25445f722d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMultisessionRandomWrite.cs @@ -0,0 +1,116 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA23-2204-11DD-966A-001AA01BBC58")] + [NativeTypeName("struct IMultisessionRandomWrite : IMultisession")] + public unsafe partial struct IMultisessionRandomWrite + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsSupportedOnCurrentMediaState([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_InUse([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_InUse([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportRecorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WriteUnitSize([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenAddress([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IMultisessionRandomWrite*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMultisessionSequential.cs b/sources/Interop/Windows/um/imapi2/IMultisessionSequential.cs new file mode 100644 index 0000000000..f3f0074b59 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMultisessionSequential.cs @@ -0,0 +1,130 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354151-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IMultisessionSequential : IMultisession")] + public unsafe partial struct IMultisessionSequential + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IMultisessionSequential*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IMultisessionSequential*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsSupportedOnCurrentMediaState([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_InUse([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_InUse([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportRecorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsFirstDataSession([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_NextWritableAddress([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IMultisessionSequential*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IMultisessionSequential2.cs b/sources/Interop/Windows/um/imapi2/IMultisessionSequential2.cs new file mode 100644 index 0000000000..ff8a8be1f6 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IMultisessionSequential2.cs @@ -0,0 +1,137 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA22-2204-11DD-966A-001AA01BBC58")] + [NativeTypeName("struct IMultisessionSequential2 : IMultisessionSequential")] + public unsafe partial struct IMultisessionSequential2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsSupportedOnCurrentMediaState([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_InUse([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_InUse([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportRecorder([NativeTypeName("IDiscRecorder2 **")] IDiscRecorder2** value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsFirstDataSession([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenAddressOfPreviousSession([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_NextWritableAddress([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSectorsOnMedia([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WriteUnitSize([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IMultisessionSequential2*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IRawCDImageCreator.cs b/sources/Interop/Windows/um/imapi2/IRawCDImageCreator.cs new file mode 100644 index 0000000000..9e07f8225e --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IRawCDImageCreator.cs @@ -0,0 +1,200 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("25983550-9D65-49CE-B335-40630D901227")] + [NativeTypeName("struct IRawCDImageCreator : IDispatch")] + public unsafe partial struct IRawCDImageCreator + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateResultImage([NativeTypeName("IStream **")] IStream** resultStream) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), resultStream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddTrack(IMAPI_CD_SECTOR_TYPE dataType, [NativeTypeName("IStream *")] IStream* data, [NativeTypeName("LONG *")] int* trackIndex) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), dataType, data, trackIndex); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddSpecialPregap([NativeTypeName("IStream *")] IStream* data) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddSubcodeRWGenerator([NativeTypeName("IStream *")] IStream* subcode) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), subcode); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ResultingImageType(IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ResultingImageType([NativeTypeName("IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE *")] IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartOfLeadout([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StartOfLeadoutLimit([NativeTypeName("LONG")] int value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartOfLeadoutLimit([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_DisableGaplessAudio([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DisableGaplessAudio([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_MediaCatalogNumber([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaCatalogNumber([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StartingTrackNumber([NativeTypeName("LONG")] int value) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartingTrackNumber([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TrackInfo([NativeTypeName("LONG")] int trackIndex, [NativeTypeName("IRawCDImageTrackInfo **")] IRawCDImageTrackInfo** value) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), trackIndex, value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_NumberOfExistingTracks([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastUsedUserSectorInImage([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ExpectedTableOfContents([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IRawCDImageCreator*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IRawCDImageTrackInfo.cs b/sources/Interop/Windows/um/imapi2/IRawCDImageTrackInfo.cs new file mode 100644 index 0000000000..2370727d24 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IRawCDImageTrackInfo.cs @@ -0,0 +1,158 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("25983551-9D65-49CE-B335-40630D901227")] + [NativeTypeName("struct IRawCDImageTrackInfo : IDispatch")] + public unsafe partial struct IRawCDImageTrackInfo + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartingLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorCount([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TrackNumber([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorType([NativeTypeName("IMAPI_CD_SECTOR_TYPE *")] IMAPI_CD_SECTOR_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISRC([NativeTypeName("BSTR *")] ushort** value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ISRC([NativeTypeName("BSTR")] ushort* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DigitalAudioCopySetting([NativeTypeName("IMAPI_CD_TRACK_DIGITAL_COPY_SETTING *")] IMAPI_CD_TRACK_DIGITAL_COPY_SETTING* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_DigitalAudioCopySetting(IMAPI_CD_TRACK_DIGITAL_COPY_SETTING value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_AudioHasPreemphasis([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_AudioHasPreemphasis([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TrackIndexes([NativeTypeName("SAFEARRAY **")] SAFEARRAY** value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddTrackIndex([NativeTypeName("LONG")] int lbaOffset) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), lbaOffset); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ClearTrackIndex([NativeTypeName("LONG")] int lbaOffset) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IRawCDImageTrackInfo*)Unsafe.AsPointer(ref this), lbaOffset); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IStreamConcatenate.cs b/sources/Interop/Windows/um/imapi2/IStreamConcatenate.cs new file mode 100644 index 0000000000..a6303ac373 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IStreamConcatenate.cs @@ -0,0 +1,144 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354146-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IStreamConcatenate : IStream")] + public unsafe partial struct IStreamConcatenate + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IStreamConcatenate*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IStreamConcatenate*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Read([NativeTypeName("void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbRead) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), pv, cb, pcbRead); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Write([NativeTypeName("const void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), pv, cb, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Seek(LARGE_INTEGER dlibMove, [NativeTypeName("DWORD")] uint dwOrigin, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* plibNewPosition) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), dlibMove, dwOrigin, plibNewPosition); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetSize(ULARGE_INTEGER libNewSize) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), libNewSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CopyTo([NativeTypeName("IStream *")] IStream* pstm, ULARGE_INTEGER cb, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbRead, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), pstm, cb, pcbRead, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Commit([NativeTypeName("DWORD")] uint grfCommitFlags) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), grfCommitFlags); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Revert() + { + return ((delegate* unmanaged)(lpVtbl[9]))((IStreamConcatenate*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Stat([NativeTypeName("STATSTG *")] STATSTG* pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IStream **")] IStream** ppstm) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), ppstm); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Initialize([NativeTypeName("IStream *")] IStream* stream1, [NativeTypeName("IStream *")] IStream* stream2) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), stream1, stream2); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Initialize2([NativeTypeName("IStream **")] IStream** streams, [NativeTypeName("ULONG")] uint streamCount) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), streams, streamCount); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Append([NativeTypeName("IStream *")] IStream* stream) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), stream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Append2([NativeTypeName("IStream **")] IStream** streams, [NativeTypeName("ULONG")] uint streamCount) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IStreamConcatenate*)Unsafe.AsPointer(ref this), streams, streamCount); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IStreamInterleave.cs b/sources/Interop/Windows/um/imapi2/IStreamInterleave.cs new file mode 100644 index 0000000000..1520bd6c41 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IStreamInterleave.cs @@ -0,0 +1,123 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354147-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IStreamInterleave : IStream")] + public unsafe partial struct IStreamInterleave + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IStreamInterleave*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IStreamInterleave*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IStreamInterleave*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Read([NativeTypeName("void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbRead) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IStreamInterleave*)Unsafe.AsPointer(ref this), pv, cb, pcbRead); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Write([NativeTypeName("const void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IStreamInterleave*)Unsafe.AsPointer(ref this), pv, cb, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Seek(LARGE_INTEGER dlibMove, [NativeTypeName("DWORD")] uint dwOrigin, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* plibNewPosition) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IStreamInterleave*)Unsafe.AsPointer(ref this), dlibMove, dwOrigin, plibNewPosition); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetSize(ULARGE_INTEGER libNewSize) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IStreamInterleave*)Unsafe.AsPointer(ref this), libNewSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CopyTo([NativeTypeName("IStream *")] IStream* pstm, ULARGE_INTEGER cb, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbRead, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IStreamInterleave*)Unsafe.AsPointer(ref this), pstm, cb, pcbRead, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Commit([NativeTypeName("DWORD")] uint grfCommitFlags) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IStreamInterleave*)Unsafe.AsPointer(ref this), grfCommitFlags); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Revert() + { + return ((delegate* unmanaged)(lpVtbl[9]))((IStreamInterleave*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IStreamInterleave*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IStreamInterleave*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Stat([NativeTypeName("STATSTG *")] STATSTG* pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IStreamInterleave*)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IStream **")] IStream** ppstm) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IStreamInterleave*)Unsafe.AsPointer(ref this), ppstm); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Initialize([NativeTypeName("IStream **")] IStream** streams, [NativeTypeName("ULONG *")] uint* interleaveSizes, [NativeTypeName("ULONG")] uint streamCount) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IStreamInterleave*)Unsafe.AsPointer(ref this), streams, interleaveSizes, streamCount); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IStreamPseudoRandomBased.cs b/sources/Interop/Windows/um/imapi2/IStreamPseudoRandomBased.cs new file mode 100644 index 0000000000..0024bedf1f --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IStreamPseudoRandomBased.cs @@ -0,0 +1,144 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354145-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IStreamPseudoRandomBased : IStream")] + public unsafe partial struct IStreamPseudoRandomBased + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Read([NativeTypeName("void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbRead) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), pv, cb, pcbRead); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Write([NativeTypeName("const void *")] void* pv, [NativeTypeName("ULONG")] uint cb, [NativeTypeName("ULONG *")] uint* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), pv, cb, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Seek(LARGE_INTEGER dlibMove, [NativeTypeName("DWORD")] uint dwOrigin, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* plibNewPosition) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), dlibMove, dwOrigin, plibNewPosition); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetSize(ULARGE_INTEGER libNewSize) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), libNewSize); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CopyTo([NativeTypeName("IStream *")] IStream* pstm, ULARGE_INTEGER cb, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbRead, [NativeTypeName("ULARGE_INTEGER *")] ULARGE_INTEGER* pcbWritten) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), pstm, cb, pcbRead, pcbWritten); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Commit([NativeTypeName("DWORD")] uint grfCommitFlags) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), grfCommitFlags); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Revert() + { + return ((delegate* unmanaged)(lpVtbl[9]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, [NativeTypeName("DWORD")] uint dwLockType) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), libOffset, cb, dwLockType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Stat([NativeTypeName("STATSTG *")] STATSTG* pstatstg, [NativeTypeName("DWORD")] uint grfStatFlag) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), pstatstg, grfStatFlag); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IStream **")] IStream** ppstm) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), ppstm); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Seed([NativeTypeName("ULONG")] uint value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Seed([NativeTypeName("ULONG *")] uint* value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ExtendedSeed([NativeTypeName("ULONG *")] uint* values, [NativeTypeName("ULONG")] uint eCount) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), values, eCount); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ExtendedSeed([NativeTypeName("ULONG **")] uint** values, [NativeTypeName("ULONG *")] uint* eCount) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IStreamPseudoRandomBased*)Unsafe.AsPointer(ref this), values, eCount); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IWriteEngine2.cs b/sources/Interop/Windows/um/imapi2/IWriteEngine2.cs new file mode 100644 index 0000000000..54928b713a --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IWriteEngine2.cs @@ -0,0 +1,158 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354135-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IWriteEngine2 : IDispatch")] + public unsafe partial struct IWriteEngine2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IWriteEngine2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IWriteEngine2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IWriteEngine2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IWriteEngine2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IWriteEngine2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IWriteEngine2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IWriteEngine2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int WriteSection([NativeTypeName("IStream *")] IStream* data, [NativeTypeName("LONG")] int startingBlockAddress, [NativeTypeName("LONG")] int numberOfBlocks) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IWriteEngine2*)Unsafe.AsPointer(ref this), data, startingBlockAddress, numberOfBlocks); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CancelWrite() + { + return ((delegate* unmanaged)(lpVtbl[8]))((IWriteEngine2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Recorder([NativeTypeName("IDiscRecorder2Ex *")] IDiscRecorder2Ex* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Recorder([NativeTypeName("IDiscRecorder2Ex **")] IDiscRecorder2Ex** value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UseStreamingWrite12([NativeTypeName("VARIANT_BOOL")] short value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UseStreamingWrite12([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StartingSectorsPerSecond([NativeTypeName("LONG")] int value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartingSectorsPerSecond([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_EndingSectorsPerSecond([NativeTypeName("LONG")] int value) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EndingSectorsPerSecond([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BytesPerSector([NativeTypeName("LONG")] int value) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BytesPerSector([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WriteInProgress([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IWriteEngine2*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IWriteEngine2EventArgs.cs b/sources/Interop/Windows/um/imapi2/IWriteEngine2EventArgs.cs new file mode 100644 index 0000000000..152a2382d2 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IWriteEngine2EventArgs.cs @@ -0,0 +1,116 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354136-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IWriteEngine2EventArgs : IDispatch")] + public unsafe partial struct IWriteEngine2EventArgs + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StartLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SectorCount([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastReadLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastWrittenLba([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeSystemBuffer([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IWriteEngine2EventArgs*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/IWriteSpeedDescriptor.cs b/sources/Interop/Windows/um/imapi2/IWriteSpeedDescriptor.cs new file mode 100644 index 0000000000..8a18fc026b --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/IWriteSpeedDescriptor.cs @@ -0,0 +1,88 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354144-7F64-5B0F-8F00-5D77AFBE261E")] + [NativeTypeName("struct IWriteSpeedDescriptor : IDispatch")] + public unsafe partial struct IWriteSpeedDescriptor + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MediaType([NativeTypeName("IMAPI_MEDIA_PHYSICAL_TYPE *")] IMAPI_MEDIA_PHYSICAL_TYPE* value) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_RotationTypeIsPureCAV([NativeTypeName("VARIANT_BOOL *")] short* value) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WriteSpeed([NativeTypeName("LONG *")] int* value) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IWriteSpeedDescriptor*)Unsafe.AsPointer(ref this), value); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Data.cs b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Data.cs new file mode 100644 index 0000000000..db3deab6b9 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Data.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735412A-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscFormat2Data + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Erase.cs b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Erase.cs new file mode 100644 index 0000000000..2369ca0508 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2Erase.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735412B-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscFormat2Erase + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscFormat2RawCD.cs b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2RawCD.cs new file mode 100644 index 0000000000..afe40103f1 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2RawCD.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354128-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscFormat2RawCD + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnce.cs b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnce.cs new file mode 100644 index 0000000000..bd6f95c927 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnce.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354129-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscFormat2TrackAtOnce + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscMaster2.cs b/sources/Interop/Windows/um/imapi2/MsftDiscMaster2.cs new file mode 100644 index 0000000000..89a481d9aa --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscMaster2.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735412E-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscMaster2 + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftDiscRecorder2.cs b/sources/Interop/Windows/um/imapi2/MsftDiscRecorder2.cs new file mode 100644 index 0000000000..5a84e37c46 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftDiscRecorder2.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735412D-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftDiscRecorder2 + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftMultisessionRandomWrite.cs b/sources/Interop/Windows/um/imapi2/MsftMultisessionRandomWrite.cs new file mode 100644 index 0000000000..77aa95c7bd --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftMultisessionRandomWrite.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA24-2204-11DD-966A-001AA01BBC58")] + public partial struct MsftMultisessionRandomWrite + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftMultisessionSequential.cs b/sources/Interop/Windows/um/imapi2/MsftMultisessionSequential.cs new file mode 100644 index 0000000000..98da30ea6c --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftMultisessionSequential.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354122-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftMultisessionSequential + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftRawCDImageCreator.cs b/sources/Interop/Windows/um/imapi2/MsftRawCDImageCreator.cs new file mode 100644 index 0000000000..c7727442f7 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftRawCDImageCreator.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("25983561-9D65-49CE-B335-40630D901227")] + public partial struct MsftRawCDImageCreator + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftStreamConcatenate.cs b/sources/Interop/Windows/um/imapi2/MsftStreamConcatenate.cs new file mode 100644 index 0000000000..730ff71cf6 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftStreamConcatenate.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354125-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftStreamConcatenate + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftStreamInterleave.cs b/sources/Interop/Windows/um/imapi2/MsftStreamInterleave.cs new file mode 100644 index 0000000000..25a51daed4 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftStreamInterleave.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354124-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftStreamInterleave + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftStreamPrng001.cs b/sources/Interop/Windows/um/imapi2/MsftStreamPrng001.cs new file mode 100644 index 0000000000..8ca705f9f3 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftStreamPrng001.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354126-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftStreamPrng001 + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftStreamZero.cs b/sources/Interop/Windows/um/imapi2/MsftStreamZero.cs new file mode 100644 index 0000000000..dfbc26ce1c --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftStreamZero.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354127-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftStreamZero + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftWriteEngine2.cs b/sources/Interop/Windows/um/imapi2/MsftWriteEngine2.cs new file mode 100644 index 0000000000..4ffbae18dc --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftWriteEngine2.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2735412C-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftWriteEngine2 + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptor.cs b/sources/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptor.cs new file mode 100644 index 0000000000..eeaf3c5daa --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptor.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("27354123-7F64-5B0F-8F00-5D77AFBE261E")] + public partial struct MsftWriteSpeedDescriptor + { + } +} diff --git a/sources/Interop/Windows/um/imapi2/Windows.cs b/sources/Interop/Windows/um/imapi2/Windows.cs new file mode 100644 index 0000000000..08dddc0ae2 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2/Windows.cs @@ -0,0 +1,640 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop +{ + public static partial class Windows + { + [NativeTypeName("#define IMAPI_SECTOR_SIZE ( 2048 )")] + public const int IMAPI_SECTOR_SIZE = (2048); + + [NativeTypeName("#define IMAPI2_DEFAULT_COMMAND_TIMEOUT 10")] + public const int IMAPI2_DEFAULT_COMMAND_TIMEOUT = 10; + + [NativeTypeName("#define DISPID_DDISCMASTER2EVENTS_DEVICEADDED 0x100")] + public const int DISPID_DDISCMASTER2EVENTS_DEVICEADDED = 0x100; + + [NativeTypeName("#define DISPID_DDISCMASTER2EVENTS_DEVICEREMOVED 0x101")] + public const int DISPID_DDISCMASTER2EVENTS_DEVICEREMOVED = 0x101; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_EJECTMEDIA 0x100")] + public const int DISPID_IDISCRECORDER2_EJECTMEDIA = 0x100; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_CLOSETRAY 0x101")] + public const int DISPID_IDISCRECORDER2_CLOSETRAY = 0x101; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_ACQUIREEXCLUSIVEACCESS 0x102")] + public const int DISPID_IDISCRECORDER2_ACQUIREEXCLUSIVEACCESS = 0x102; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_RELEASEEXCLUSIVEACCESS 0x103")] + public const int DISPID_IDISCRECORDER2_RELEASEEXCLUSIVEACCESS = 0x103; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_DISABLEMCN 0x104")] + public const int DISPID_IDISCRECORDER2_DISABLEMCN = 0x104; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_ENABLEMCN 0x105")] + public const int DISPID_IDISCRECORDER2_ENABLEMCN = 0x105; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_INITIALIZEDISCRECORDER 0x106")] + public const int DISPID_IDISCRECORDER2_INITIALIZEDISCRECORDER = 0x106; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_ACTIVEDISCRECORDER DISPID_VALUE")] + public const int DISPID_IDISCRECORDER2_ACTIVEDISCRECORDER = (0); + + [NativeTypeName("#define DISPID_IDISCRECORDER2_VENDORID 0x201")] + public const int DISPID_IDISCRECORDER2_VENDORID = 0x201; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_PRODUCTID 0x202")] + public const int DISPID_IDISCRECORDER2_PRODUCTID = 0x202; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_PRODUCTREVISION 0x203")] + public const int DISPID_IDISCRECORDER2_PRODUCTREVISION = 0x203; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_VOLUMENAME 0x204")] + public const int DISPID_IDISCRECORDER2_VOLUMENAME = 0x204; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_VOLUMEPATHNAMES 0x205")] + public const int DISPID_IDISCRECORDER2_VOLUMEPATHNAMES = 0x205; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_DEVICECANLOADMEDIA 0x206")] + public const int DISPID_IDISCRECORDER2_DEVICECANLOADMEDIA = 0x206; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_LEGACYDEVICENUMBER 0x207")] + public const int DISPID_IDISCRECORDER2_LEGACYDEVICENUMBER = 0x207; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_SUPPORTEDFEATUREPAGES 0x208")] + public const int DISPID_IDISCRECORDER2_SUPPORTEDFEATUREPAGES = 0x208; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_CURRENTFEATUREPAGES 0x209")] + public const int DISPID_IDISCRECORDER2_CURRENTFEATUREPAGES = 0x209; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_SUPPORTEDPROFILES 0x20A")] + public const int DISPID_IDISCRECORDER2_SUPPORTEDPROFILES = 0x20A; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_CURRENTPROFILES 0x20B")] + public const int DISPID_IDISCRECORDER2_CURRENTPROFILES = 0x20B; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_SUPPORTEDMODEPAGES 0x20C")] + public const int DISPID_IDISCRECORDER2_SUPPORTEDMODEPAGES = 0x20C; + + [NativeTypeName("#define DISPID_IDISCRECORDER2_EXCLUSIVEACCESSOWNER 0x20D")] + public const int DISPID_IDISCRECORDER2_EXCLUSIVEACCESSOWNER = 0x20D; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_WRITESECTION 0x200")] + public const int DISPID_IWRITEENGINE2_WRITESECTION = 0x200; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_CANCELWRITE 0x201")] + public const int DISPID_IWRITEENGINE2_CANCELWRITE = 0x201; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_DISCRECORDER 0x100")] + public const int DISPID_IWRITEENGINE2_DISCRECORDER = 0x100; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_USESTREAMINGWRITE12 0x101")] + public const int DISPID_IWRITEENGINE2_USESTREAMINGWRITE12 = 0x101; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_STARTINGSECTORSPERSECOND 0x102")] + public const int DISPID_IWRITEENGINE2_STARTINGSECTORSPERSECOND = 0x102; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_ENDINGSECTORSPERSECOND 0x103")] + public const int DISPID_IWRITEENGINE2_ENDINGSECTORSPERSECOND = 0x103; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_BYTESPERSECTOR 0x104")] + public const int DISPID_IWRITEENGINE2_BYTESPERSECTOR = 0x104; + + [NativeTypeName("#define DISPID_IWRITEENGINE2_WRITEINPROGRESS 0x105")] + public const int DISPID_IWRITEENGINE2_WRITEINPROGRESS = 0x105; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_STARTLBA 0x100")] + public const int DISPID_IWRITEENGINE2EVENTARGS_STARTLBA = 0x100; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_SECTORCOUNT 0x101")] + public const int DISPID_IWRITEENGINE2EVENTARGS_SECTORCOUNT = 0x101; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_LASTREADLBA 0x102")] + public const int DISPID_IWRITEENGINE2EVENTARGS_LASTREADLBA = 0x102; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_LASTWRITTENLBA 0x103")] + public const int DISPID_IWRITEENGINE2EVENTARGS_LASTWRITTENLBA = 0x103; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_TOTALDEVICEBUFFER 0x104")] + public const int DISPID_IWRITEENGINE2EVENTARGS_TOTALDEVICEBUFFER = 0x104; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_USEDDEVICEBUFFER 0x105")] + public const int DISPID_IWRITEENGINE2EVENTARGS_USEDDEVICEBUFFER = 0x105; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_TOTALSYSTEMBUFFER 0x106")] + public const int DISPID_IWRITEENGINE2EVENTARGS_TOTALSYSTEMBUFFER = 0x106; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_USEDSYSTEMBUFFER 0x107")] + public const int DISPID_IWRITEENGINE2EVENTARGS_USEDSYSTEMBUFFER = 0x107; + + [NativeTypeName("#define DISPID_IWRITEENGINE2EVENTARGS_FREESYSTEMBUFFER 0x108")] + public const int DISPID_IWRITEENGINE2EVENTARGS_FREESYSTEMBUFFER = 0x108; + + [NativeTypeName("#define DISPID_DWRITEENGINE2EVENTS_UPDATE 0x100")] + public const int DISPID_DWRITEENGINE2EVENTS_UPDATE = 0x100; + + [NativeTypeName("#define DISPID_IDISCFORMAT2_RECORDERSUPPORTED 0x800")] + public const int DISPID_IDISCFORMAT2_RECORDERSUPPORTED = 0x800; + + [NativeTypeName("#define DISPID_IDISCFORMAT2_MEDIASUPPORTED 0x801")] + public const int DISPID_IDISCFORMAT2_MEDIASUPPORTED = 0x801; + + [NativeTypeName("#define DISPID_IDISCFORMAT2_MEDIAPHYSICALLYBLANK 0x700")] + public const int DISPID_IDISCFORMAT2_MEDIAPHYSICALLYBLANK = 0x700; + + [NativeTypeName("#define DISPID_IDISCFORMAT2_MEDIAHEURISTICALLYBLANK 0x701")] + public const int DISPID_IDISCFORMAT2_MEDIAHEURISTICALLYBLANK = 0x701; + + [NativeTypeName("#define DISPID_IDISCFORMAT2_SUPPORTEDMEDIATYPES 0x702")] + public const int DISPID_IDISCFORMAT2_SUPPORTEDMEDIATYPES = 0x702; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASE_RECORDER 0x100")] + public const int DISPID_IDISCFORMAT2ERASE_RECORDER = 0x100; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASE_FULLERASE 0x101")] + public const int DISPID_IDISCFORMAT2ERASE_FULLERASE = 0x101; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASE_MEDIATYPE 0x102")] + public const int DISPID_IDISCFORMAT2ERASE_MEDIATYPE = 0x102; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASE_CLIENTNAME 0x103")] + public const int DISPID_IDISCFORMAT2ERASE_CLIENTNAME = 0x103; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASE_ERASEMEDIA 0x201")] + public const int DISPID_IDISCFORMAT2ERASE_ERASEMEDIA = 0x201; + + [NativeTypeName("#define DISPID_IDISCFORMAT2ERASEEVENTS_UPDATE 0x200")] + public const int DISPID_IDISCFORMAT2ERASEEVENTS_UPDATE = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_RECORDER 0x100")] + public const int DISPID_IDISCFORMAT2DATA_RECORDER = 0x100; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_BUFFERUNDERRUNFREEDISABLED 0x101")] + public const int DISPID_IDISCFORMAT2DATA_BUFFERUNDERRUNFREEDISABLED = 0x101; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_POSTGAPALREADYINIMAGE 0x104")] + public const int DISPID_IDISCFORMAT2DATA_POSTGAPALREADYINIMAGE = 0x104; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CURRENTMEDIASTATUS 0x106")] + public const int DISPID_IDISCFORMAT2DATA_CURRENTMEDIASTATUS = 0x106; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_WRITEPROTECTSTATUS 0x107")] + public const int DISPID_IDISCFORMAT2DATA_WRITEPROTECTSTATUS = 0x107; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_TOTALSECTORS 0x108")] + public const int DISPID_IDISCFORMAT2DATA_TOTALSECTORS = 0x108; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_FREESECTORS 0x109")] + public const int DISPID_IDISCFORMAT2DATA_FREESECTORS = 0x109; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_NEXTWRITABLEADDRESS 0x10A")] + public const int DISPID_IDISCFORMAT2DATA_NEXTWRITABLEADDRESS = 0x10A; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_STARTSECTOROFPREVIOUSSESSION 0x10B")] + public const int DISPID_IDISCFORMAT2DATA_STARTSECTOROFPREVIOUSSESSION = 0x10B; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_LASTSECTOROFPREVIOUSSESSION 0x10C")] + public const int DISPID_IDISCFORMAT2DATA_LASTSECTOROFPREVIOUSSESSION = 0x10C; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_FORCEMEDIATOBECLOSED 0x10D")] + public const int DISPID_IDISCFORMAT2DATA_FORCEMEDIATOBECLOSED = 0x10D; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_DISABLEDVDCOMPATIBILITYMODE 0x10E")] + public const int DISPID_IDISCFORMAT2DATA_DISABLEDVDCOMPATIBILITYMODE = 0x10E; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CURRENTMEDIATYPE 0x10F")] + public const int DISPID_IDISCFORMAT2DATA_CURRENTMEDIATYPE = 0x10F; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CLIENTNAME 0x110")] + public const int DISPID_IDISCFORMAT2DATA_CLIENTNAME = 0x110; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_REQUESTEDWRITESPEED 0x111")] + public const int DISPID_IDISCFORMAT2DATA_REQUESTEDWRITESPEED = 0x111; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_REQUESTEDROTATIONTYPEISPURECAV 0x112")] + public const int DISPID_IDISCFORMAT2DATA_REQUESTEDROTATIONTYPEISPURECAV = 0x112; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CURRENTWRITESPEED 0x113")] + public const int DISPID_IDISCFORMAT2DATA_CURRENTWRITESPEED = 0x113; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CURRENTROTATIONTYPEISPURECAV 0x114")] + public const int DISPID_IDISCFORMAT2DATA_CURRENTROTATIONTYPEISPURECAV = 0x114; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDS 0x115")] + public const int DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDS = 0x115; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDDESCRIPTORS 0x116")] + public const int DISPID_IDISCFORMAT2DATA_SUPPORTEDWRITESPEEDDESCRIPTORS = 0x116; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_FORCEOVERWRITE 0x117")] + public const int DISPID_IDISCFORMAT2DATA_FORCEOVERWRITE = 0x117; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_MUTLISESSIONINTERFACES 0x118")] + public const int DISPID_IDISCFORMAT2DATA_MUTLISESSIONINTERFACES = 0x118; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_WRITE 0x200")] + public const int DISPID_IDISCFORMAT2DATA_WRITE = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_CANCELWRITE 0x201")] + public const int DISPID_IDISCFORMAT2DATA_CANCELWRITE = 0x201; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATA_SETWRITESPEED 0x202")] + public const int DISPID_IDISCFORMAT2DATA_SETWRITESPEED = 0x202; + + [NativeTypeName("#define DISPID_DDISCFORMAT2DATAEVENTS_UPDATE 0x200")] + public const int DISPID_DDISCFORMAT2DATAEVENTS_UPDATE = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATAEVENTARGS_ELAPSEDTIME 0x300")] + public const int DISPID_IDISCFORMAT2DATAEVENTARGS_ELAPSEDTIME = 0x300; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDREMAININGTIME 0x301")] + public const int DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDREMAININGTIME = 0x301; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDTOTALTIME 0x302")] + public const int DISPID_IDISCFORMAT2DATAEVENTARGS_ESTIMATEDTOTALTIME = 0x302; + + [NativeTypeName("#define DISPID_IDISCFORMAT2DATAEVENTARGS_CURRENTACTION 0x303")] + public const int DISPID_IDISCFORMAT2DATAEVENTARGS_CURRENTACTION = 0x303; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_RECORDER 0x100")] + public const int DISPID_IDISCFORMAT2TAO_RECORDER = 0x100; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_BUFFERUNDERRUNFREEDISABLED 0x102")] + public const int DISPID_IDISCFORMAT2TAO_BUFFERUNDERRUNFREEDISABLED = 0x102; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_NUMBEROFEXISTINGTRACKS 0x103")] + public const int DISPID_IDISCFORMAT2TAO_NUMBEROFEXISTINGTRACKS = 0x103; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_TOTALSECTORSONMEDIA 0x104")] + public const int DISPID_IDISCFORMAT2TAO_TOTALSECTORSONMEDIA = 0x104; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_FREESECTORSONMEDIA 0x105")] + public const int DISPID_IDISCFORMAT2TAO_FREESECTORSONMEDIA = 0x105; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_USEDSECTORSONMEDIA 0x106")] + public const int DISPID_IDISCFORMAT2TAO_USEDSECTORSONMEDIA = 0x106; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_DONOTFINALIZEMEDIA 0x107")] + public const int DISPID_IDISCFORMAT2TAO_DONOTFINALIZEMEDIA = 0x107; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_EXPECTEDTABLEOFCONTENTS 0x10A")] + public const int DISPID_IDISCFORMAT2TAO_EXPECTEDTABLEOFCONTENTS = 0x10A; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_CURRENTMEDIATYPE 0x10B")] + public const int DISPID_IDISCFORMAT2TAO_CURRENTMEDIATYPE = 0x10B; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_CLIENTNAME 0x10E")] + public const int DISPID_IDISCFORMAT2TAO_CLIENTNAME = 0x10E; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_REQUESTEDWRITESPEED 0x10F")] + public const int DISPID_IDISCFORMAT2TAO_REQUESTEDWRITESPEED = 0x10F; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_REQUESTEDROTATIONTYPEISPURECAV 0x110")] + public const int DISPID_IDISCFORMAT2TAO_REQUESTEDROTATIONTYPEISPURECAV = 0x110; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_CURRENTWRITESPEED 0x111")] + public const int DISPID_IDISCFORMAT2TAO_CURRENTWRITESPEED = 0x111; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_CURRENTROTATIONTYPEISPURECAV 0x112")] + public const int DISPID_IDISCFORMAT2TAO_CURRENTROTATIONTYPEISPURECAV = 0x112; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDS 0x113")] + public const int DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDS = 0x113; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDDESCRIPTORS 0x114")] + public const int DISPID_IDISCFORMAT2TAO_SUPPORTEDWRITESPEEDDESCRIPTORS = 0x114; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_PREPAREMEDIA 0x200")] + public const int DISPID_IDISCFORMAT2TAO_PREPAREMEDIA = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_ADDAUDIOTRACK 0x201")] + public const int DISPID_IDISCFORMAT2TAO_ADDAUDIOTRACK = 0x201; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_CANCELADDTRACK 0x202")] + public const int DISPID_IDISCFORMAT2TAO_CANCELADDTRACK = 0x202; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_FINISHMEDIA 0x203")] + public const int DISPID_IDISCFORMAT2TAO_FINISHMEDIA = 0x203; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAO_SETWRITESPEED 0x204")] + public const int DISPID_IDISCFORMAT2TAO_SETWRITESPEED = 0x204; + + [NativeTypeName("#define DISPID_DDISCFORMAT2TAOEVENTS_UPDATE 0x200")] + public const int DISPID_DDISCFORMAT2TAOEVENTS_UPDATE = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTTRACKNUMBER 0x300")] + public const int DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTTRACKNUMBER = 0x300; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTACTION 0x301")] + public const int DISPID_IDISCFORMAT2TAOEVENTARGS_CURRENTACTION = 0x301; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAOEVENTARGS_ELAPSEDTIME 0x302")] + public const int DISPID_IDISCFORMAT2TAOEVENTARGS_ELAPSEDTIME = 0x302; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDREMAININGTIME 0x303")] + public const int DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDREMAININGTIME = 0x303; + + [NativeTypeName("#define DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDTOTALTIME 0x304")] + public const int DISPID_IDISCFORMAT2TAOEVENTARGS_ESTIMATEDTOTALTIME = 0x304; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_RECORDER 0x100")] + public const int DISPID_IDISCFORMAT2RAWCD_RECORDER = 0x100; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_BUFFERUNDERRUNFREEDISABLED 0x102")] + public const int DISPID_IDISCFORMAT2RAWCD_BUFFERUNDERRUNFREEDISABLED = 0x102; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_STARTOFNEXTSESSION 0x103")] + public const int DISPID_IDISCFORMAT2RAWCD_STARTOFNEXTSESSION = 0x103; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_LASTPOSSIBLESTARTOFLEADOUT 0x104")] + public const int DISPID_IDISCFORMAT2RAWCD_LASTPOSSIBLESTARTOFLEADOUT = 0x104; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_CURRENTMEDIATYPE 0x105")] + public const int DISPID_IDISCFORMAT2RAWCD_CURRENTMEDIATYPE = 0x105; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_SUPPORTEDDATASECTORTYPES 0x108")] + public const int DISPID_IDISCFORMAT2RAWCD_SUPPORTEDDATASECTORTYPES = 0x108; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_REQUESTEDDATASECTORTYPE 0x109")] + public const int DISPID_IDISCFORMAT2RAWCD_REQUESTEDDATASECTORTYPE = 0x109; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_CLIENTNAME 0x10A")] + public const int DISPID_IDISCFORMAT2RAWCD_CLIENTNAME = 0x10A; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_REQUESTEDWRITESPEED 0x10B")] + public const int DISPID_IDISCFORMAT2RAWCD_REQUESTEDWRITESPEED = 0x10B; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_REQUESTEDROTATIONTYPEISPURECAV 0x10C")] + public const int DISPID_IDISCFORMAT2RAWCD_REQUESTEDROTATIONTYPEISPURECAV = 0x10C; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_CURRENTWRITESPEED 0x10D")] + public const int DISPID_IDISCFORMAT2RAWCD_CURRENTWRITESPEED = 0x10D; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_CURRENTROTATIONTYPEISPURECAV 0x10E")] + public const int DISPID_IDISCFORMAT2RAWCD_CURRENTROTATIONTYPEISPURECAV = 0x10E; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDS 0x10F")] + public const int DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDS = 0x10F; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDDESCRIPTORS 0x110")] + public const int DISPID_IDISCFORMAT2RAWCD_SUPPORTEDWRITESPEEDDESCRIPTORS = 0x110; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_PREPAREMEDIA 0x200")] + public const int DISPID_IDISCFORMAT2RAWCD_PREPAREMEDIA = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_WRITEMEDIA 0x201")] + public const int DISPID_IDISCFORMAT2RAWCD_WRITEMEDIA = 0x201; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_WRITEMEDIAWITHVALIDATION 0x202")] + public const int DISPID_IDISCFORMAT2RAWCD_WRITEMEDIAWITHVALIDATION = 0x202; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_CANCELWRITE 0x203")] + public const int DISPID_IDISCFORMAT2RAWCD_CANCELWRITE = 0x203; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_RELEASEMEDIA 0x204")] + public const int DISPID_IDISCFORMAT2RAWCD_RELEASEMEDIA = 0x204; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCD_SETWRITESPEED 0x205")] + public const int DISPID_IDISCFORMAT2RAWCD_SETWRITESPEED = 0x205; + + [NativeTypeName("#define DISPID_DDISCFORMAT2RAWCDEVENTS_UPDATE 0x200")] + public const int DISPID_DDISCFORMAT2RAWCDEVENTS_UPDATE = 0x200; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTTRACKNUMBER 0x300")] + public const int DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTTRACKNUMBER = 0x300; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTACTION 0x301")] + public const int DISPID_IDISCFORMAT2RAWCDEVENTARGS_CURRENTACTION = 0x301; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCDEVENTARGS_ELAPSEDTIME 0x300")] + public const int DISPID_IDISCFORMAT2RAWCDEVENTARGS_ELAPSEDTIME = 0x300; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDREMAININGTIME 0x301")] + public const int DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDREMAININGTIME = 0x301; + + [NativeTypeName("#define DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDTOTALTIME 0x302")] + public const int DISPID_IDISCFORMAT2RAWCDEVENTARGS_ESTIMATEDTOTALTIME = 0x302; + + [NativeTypeName("#define IMAPI_SECTORS_PER_SECOND_AT_1X_CD 75")] + public const int IMAPI_SECTORS_PER_SECOND_AT_1X_CD = 75; + + [NativeTypeName("#define IMAPI_SECTORS_PER_SECOND_AT_1X_DVD 680")] + public const int IMAPI_SECTORS_PER_SECOND_AT_1X_DVD = 680; + + [NativeTypeName("#define IMAPI_SECTORS_PER_SECOND_AT_1X_BD 2195")] + public const int IMAPI_SECTORS_PER_SECOND_AT_1X_BD = 2195; + + [NativeTypeName("#define IMAPI_SECTORS_PER_SECOND_AT_1X_HD_DVD 4568")] + public const int IMAPI_SECTORS_PER_SECOND_AT_1X_HD_DVD = 4568; + + [NativeTypeName("#define DISPID_IMULTISESSION_SUPPORTEDONCURRENTMEDIA 0x100")] + public const int DISPID_IMULTISESSION_SUPPORTEDONCURRENTMEDIA = 0x100; + + [NativeTypeName("#define DISPID_IMULTISESSION_INUSE 0x101")] + public const int DISPID_IMULTISESSION_INUSE = 0x101; + + [NativeTypeName("#define DISPID_IMULTISESSION_IMPORTRECORDER 0x102")] + public const int DISPID_IMULTISESSION_IMPORTRECORDER = 0x102; + + [NativeTypeName("#define DISPID_IMULTISESSION_FIRSTDATASESSION 0x200")] + public const int DISPID_IMULTISESSION_FIRSTDATASESSION = 0x200; + + [NativeTypeName("#define DISPID_IMULTISESSION_STARTSECTOROFPREVIOUSSESSION 0x201")] + public const int DISPID_IMULTISESSION_STARTSECTOROFPREVIOUSSESSION = 0x201; + + [NativeTypeName("#define DISPID_IMULTISESSION_LASTSECTOROFPREVIOUSSESSION 0x202")] + public const int DISPID_IMULTISESSION_LASTSECTOROFPREVIOUSSESSION = 0x202; + + [NativeTypeName("#define DISPID_IMULTISESSION_NEXTWRITABLEADDRESS 0x203")] + public const int DISPID_IMULTISESSION_NEXTWRITABLEADDRESS = 0x203; + + [NativeTypeName("#define DISPID_IMULTISESSION_FREESECTORS 0x204")] + public const int DISPID_IMULTISESSION_FREESECTORS = 0x204; + + [NativeTypeName("#define DISPID_IMULTISESSION_WRITEUNITSIZE 0x205")] + public const int DISPID_IMULTISESSION_WRITEUNITSIZE = 0x205; + + [NativeTypeName("#define DISPID_IMULTISESSION_LASTWRITTENADDRESS 0x206")] + public const int DISPID_IMULTISESSION_LASTWRITTENADDRESS = 0x206; + + [NativeTypeName("#define DISPID_IMULTISESSION_SECTORSONMEDIA 0x207")] + public const int DISPID_IMULTISESSION_SECTORSONMEDIA = 0x207; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_CREATERESULTIMAGE 0x200")] + public const int DISPID_IRAWCDIMAGECREATOR_CREATERESULTIMAGE = 0x200; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_ADDTRACK 0x201")] + public const int DISPID_IRAWCDIMAGECREATOR_ADDTRACK = 0x201; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_ADDSPECIALPREGAP 0x202")] + public const int DISPID_IRAWCDIMAGECREATOR_ADDSPECIALPREGAP = 0x202; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_ADDSUBCODERWGENERATOR 0x203")] + public const int DISPID_IRAWCDIMAGECREATOR_ADDSUBCODERWGENERATOR = 0x203; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_RESULTINGIMAGETYPE 0x100")] + public const int DISPID_IRAWCDIMAGECREATOR_RESULTINGIMAGETYPE = 0x100; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUT 0x101")] + public const int DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUT = 0x101; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUTLIMIT 0x102")] + public const int DISPID_IRAWCDIMAGECREATOR_STARTOFLEADOUTLIMIT = 0x102; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_DISABLEGAPLESSAUDIO 0x103")] + public const int DISPID_IRAWCDIMAGECREATOR_DISABLEGAPLESSAUDIO = 0x103; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_MEDIACATALOGNUMBER 0x104")] + public const int DISPID_IRAWCDIMAGECREATOR_MEDIACATALOGNUMBER = 0x104; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_STARTINGTRACKNUMBER 0x105")] + public const int DISPID_IRAWCDIMAGECREATOR_STARTINGTRACKNUMBER = 0x105; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_TRACKINFO 0x106")] + public const int DISPID_IRAWCDIMAGECREATOR_TRACKINFO = 0x106; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_NUMBEROFEXISTINGTRACKS 0x107")] + public const int DISPID_IRAWCDIMAGECREATOR_NUMBEROFEXISTINGTRACKS = 0x107; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_USEDSECTORSONDISC 0x108")] + public const int DISPID_IRAWCDIMAGECREATOR_USEDSECTORSONDISC = 0x108; + + [NativeTypeName("#define DISPID_IRAWCDIMAGECREATOR_EXPECTEDTABLEOFCONTENTS 0x109")] + public const int DISPID_IRAWCDIMAGECREATOR_EXPECTEDTABLEOFCONTENTS = 0x109; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_STARTINGLBA 0x100")] + public const int DISPID_IRAWCDTRACKINFO_STARTINGLBA = 0x100; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_SECTORCOUNT 0x101")] + public const int DISPID_IRAWCDTRACKINFO_SECTORCOUNT = 0x101; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_TRACKNUMBER 0x102")] + public const int DISPID_IRAWCDTRACKINFO_TRACKNUMBER = 0x102; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_SECTORTYPE 0x103")] + public const int DISPID_IRAWCDTRACKINFO_SECTORTYPE = 0x103; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_ISRC 0x104")] + public const int DISPID_IRAWCDTRACKINFO_ISRC = 0x104; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_DIGITALAUDIOCOPYSETTING 0x105")] + public const int DISPID_IRAWCDTRACKINFO_DIGITALAUDIOCOPYSETTING = 0x105; + + [NativeTypeName("#define DISPID_IRAWCDTRACKINFO_AUDIOHASPREEMPHASIS 0x106")] + public const int DISPID_IRAWCDTRACKINFO_AUDIOHASPREEMPHASIS = 0x106; + + [NativeTypeName("#define DISPID_IBLOCKRANGE_STARTLBA 0x100")] + public const int DISPID_IBLOCKRANGE_STARTLBA = 0x100; + + [NativeTypeName("#define DISPID_IBLOCKRANGE_ENDLBA 0x101")] + public const int DISPID_IBLOCKRANGE_ENDLBA = 0x101; + + [NativeTypeName("#define DISPID_IBLOCKRANGELIST_BLOCKRANGES 0x100")] + public const int DISPID_IBLOCKRANGELIST_BLOCKRANGES = 0x100; + + [NativeTypeName("#define IMAPILib2_MajorVersion 1")] + public const int IMAPILib2_MajorVersion = 1; + + [NativeTypeName("#define IMAPILib2_MinorVersion 0")] + public const int IMAPILib2_MinorVersion = 0; + + public static readonly Guid IID_IDiscMaster2 = new Guid(0x27354130, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DDiscMaster2Events = new Guid(0x27354131, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscRecorder2Ex = new Guid(0x27354132, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscRecorder2 = new Guid(0x27354133, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IWriteEngine2 = new Guid(0x27354135, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IWriteEngine2EventArgs = new Guid(0x27354136, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DWriteEngine2Events = new Guid(0x27354137, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2 = new Guid(0x27354152, 0x8F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2Erase = new Guid(0x27354156, 0x8F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DDiscFormat2EraseEvents = new Guid(0x2735413A, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2Data = new Guid(0x27354153, 0x9F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DDiscFormat2DataEvents = new Guid(0x2735413C, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2DataEventArgs = new Guid(0x2735413D, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2TrackAtOnce = new Guid(0x27354154, 0x8F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DDiscFormat2TrackAtOnceEvents = new Guid(0x2735413F, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2TrackAtOnceEventArgs = new Guid(0x27354140, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2RawCD = new Guid(0x27354155, 0x8F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_DDiscFormat2RawCDEvents = new Guid(0x27354142, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IDiscFormat2RawCDEventArgs = new Guid(0x27354143, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IBurnVerification = new Guid(0xD2FFD834, 0x958B, 0x426D, 0x84, 0x70, 0x2A, 0x13, 0x87, 0x9C, 0x6A, 0x91); + + public static readonly Guid IID_IWriteSpeedDescriptor = new Guid(0x27354144, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IMultisession = new Guid(0x27354150, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IMultisessionSequential = new Guid(0x27354151, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IMultisessionSequential2 = new Guid(0xB507CA22, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid IID_IMultisessionRandomWrite = new Guid(0xB507CA23, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid IID_IStreamPseudoRandomBased = new Guid(0x27354145, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IStreamConcatenate = new Guid(0x27354146, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IStreamInterleave = new Guid(0x27354147, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid IID_IRawCDImageCreator = new Guid(0x25983550, 0x9D65, 0x49CE, 0xB3, 0x35, 0x40, 0x63, 0x0D, 0x90, 0x12, 0x27); + + public static readonly Guid IID_IRawCDImageTrackInfo = new Guid(0x25983551, 0x9D65, 0x49CE, 0xB3, 0x35, 0x40, 0x63, 0x0D, 0x90, 0x12, 0x27); + + public static readonly Guid IID_IBlockRange = new Guid(0xB507CA25, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid IID_IBlockRangeList = new Guid(0xB507CA26, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid IID_MsftDiscMaster2 = new Guid(0x2735412E, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftDiscRecorder2 = new Guid(0x2735412D, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftWriteEngine2 = new Guid(0x2735412C, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftDiscFormat2Erase = new Guid(0x2735412B, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftDiscFormat2Data = new Guid(0x2735412A, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftDiscFormat2TrackAtOnce = new Guid(0x27354129, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftDiscFormat2RawCD = new Guid(0x27354128, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftStreamZero = new Guid(0x27354127, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftStreamPrng001 = new Guid(0x27354126, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftStreamConcatenate = new Guid(0x27354125, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftStreamInterleave = new Guid(0x27354124, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftWriteSpeedDescriptor = new Guid(0x27354123, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftMultisessionSequential = new Guid(0x27354122, 0x7F64, 0x5B0F, 0x8F, 0x00, 0x5D, 0x77, 0xAF, 0xBE, 0x26, 0x1E); + + public static readonly Guid CLSID_MsftMultisessionRandomWrite = new Guid(0xB507CA24, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid CLSID_MsftRawCDImageCreator = new Guid(0x25983561, 0x9D65, 0x49CE, 0xB3, 0x35, 0x40, 0x63, 0x0D, 0x90, 0x12, 0x27); + } +} diff --git a/tests/Interop/Windows/um/imapi2/DDiscFormat2DataEventsTests.cs b/tests/Interop/Windows/um/imapi2/DDiscFormat2DataEventsTests.cs new file mode 100644 index 0000000000..387c7f3e28 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DDiscFormat2DataEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DDiscFormat2DataEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DDiscFormat2DataEvents).GUID, Is.EqualTo(IID_DDiscFormat2DataEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DDiscFormat2DataEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DDiscFormat2DataEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DDiscFormat2DataEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DDiscFormat2DataEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/DDiscFormat2EraseEventsTests.cs b/tests/Interop/Windows/um/imapi2/DDiscFormat2EraseEventsTests.cs new file mode 100644 index 0000000000..b66deed2fb --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DDiscFormat2EraseEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DDiscFormat2EraseEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DDiscFormat2EraseEvents).GUID, Is.EqualTo(IID_DDiscFormat2EraseEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DDiscFormat2EraseEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DDiscFormat2EraseEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DDiscFormat2EraseEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DDiscFormat2EraseEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/DDiscFormat2RawCDEventsTests.cs b/tests/Interop/Windows/um/imapi2/DDiscFormat2RawCDEventsTests.cs new file mode 100644 index 0000000000..70ec3435fa --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DDiscFormat2RawCDEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DDiscFormat2RawCDEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DDiscFormat2RawCDEvents).GUID, Is.EqualTo(IID_DDiscFormat2RawCDEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DDiscFormat2RawCDEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DDiscFormat2RawCDEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DDiscFormat2RawCDEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DDiscFormat2RawCDEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEventsTests.cs b/tests/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEventsTests.cs new file mode 100644 index 0000000000..8945e61522 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DDiscFormat2TrackAtOnceEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DDiscFormat2TrackAtOnceEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DDiscFormat2TrackAtOnceEvents).GUID, Is.EqualTo(IID_DDiscFormat2TrackAtOnceEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DDiscFormat2TrackAtOnceEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DDiscFormat2TrackAtOnceEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DDiscFormat2TrackAtOnceEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DDiscFormat2TrackAtOnceEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/DDiscMaster2EventsTests.cs b/tests/Interop/Windows/um/imapi2/DDiscMaster2EventsTests.cs new file mode 100644 index 0000000000..2f96bfd81b --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DDiscMaster2EventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DDiscMaster2EventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DDiscMaster2Events).GUID, Is.EqualTo(IID_DDiscMaster2Events)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DDiscMaster2Events))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DDiscMaster2Events).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DDiscMaster2Events), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DDiscMaster2Events), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/DWriteEngine2EventsTests.cs b/tests/Interop/Windows/um/imapi2/DWriteEngine2EventsTests.cs new file mode 100644 index 0000000000..39ada54c96 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/DWriteEngine2EventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DWriteEngine2EventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DWriteEngine2Events).GUID, Is.EqualTo(IID_DWriteEngine2Events)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DWriteEngine2Events))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DWriteEngine2Events).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DWriteEngine2Events), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DWriteEngine2Events), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IBlockRangeListTests.cs b/tests/Interop/Windows/um/imapi2/IBlockRangeListTests.cs new file mode 100644 index 0000000000..284560a80f --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IBlockRangeListTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IBlockRangeListTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IBlockRangeList).GUID, Is.EqualTo(IID_IBlockRangeList)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IBlockRangeList))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IBlockRangeList).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IBlockRangeList), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IBlockRangeList), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IBlockRangeTests.cs b/tests/Interop/Windows/um/imapi2/IBlockRangeTests.cs new file mode 100644 index 0000000000..096788ef79 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IBlockRangeTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IBlockRangeTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IBlockRange).GUID, Is.EqualTo(IID_IBlockRange)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IBlockRange))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IBlockRange).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IBlockRange), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IBlockRange), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IBurnVerificationTests.cs b/tests/Interop/Windows/um/imapi2/IBurnVerificationTests.cs new file mode 100644 index 0000000000..9a6083b2ab --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IBurnVerificationTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IBurnVerificationTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IBurnVerification).GUID, Is.EqualTo(IID_IBurnVerification)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IBurnVerification))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IBurnVerification).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IBurnVerification), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IBurnVerification), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgsTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgsTests.cs new file mode 100644 index 0000000000..9635020ef7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2DataEventArgsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2DataEventArgsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2DataEventArgs).GUID, Is.EqualTo(IID_IDiscFormat2DataEventArgs)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2DataEventArgs))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2DataEventArgs).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2DataEventArgs), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2DataEventArgs), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2DataTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2DataTests.cs new file mode 100644 index 0000000000..11600dc0dc --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2DataTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2DataTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2Data).GUID, Is.EqualTo(IID_IDiscFormat2Data)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2Data))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2Data).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2Data), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2Data), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2EraseTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2EraseTests.cs new file mode 100644 index 0000000000..8e7ec0fd17 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2EraseTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2EraseTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2Erase).GUID, Is.EqualTo(IID_IDiscFormat2Erase)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2Erase))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2Erase).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2Erase), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2Erase), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgsTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgsTests.cs new file mode 100644 index 0000000000..771ce68e25 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDEventArgsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2RawCDEventArgsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2RawCDEventArgs).GUID, Is.EqualTo(IID_IDiscFormat2RawCDEventArgs)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2RawCDEventArgs))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2RawCDEventArgs).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2RawCDEventArgs), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2RawCDEventArgs), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDTests.cs new file mode 100644 index 0000000000..bde4763adb --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2RawCDTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2RawCDTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2RawCD).GUID, Is.EqualTo(IID_IDiscFormat2RawCD)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2RawCD))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2RawCD).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2RawCD), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2RawCD), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2Tests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2Tests.cs new file mode 100644 index 0000000000..1dd9760fbb --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2).GUID, Is.EqualTo(IID_IDiscFormat2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgsTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgsTests.cs new file mode 100644 index 0000000000..ec00204921 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceEventArgsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2TrackAtOnceEventArgsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2TrackAtOnceEventArgs).GUID, Is.EqualTo(IID_IDiscFormat2TrackAtOnceEventArgs)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2TrackAtOnceEventArgs))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2TrackAtOnceEventArgs).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2TrackAtOnceEventArgs), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2TrackAtOnceEventArgs), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceTests.cs b/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceTests.cs new file mode 100644 index 0000000000..342edf03b8 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscFormat2TrackAtOnceTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscFormat2TrackAtOnceTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscFormat2TrackAtOnce).GUID, Is.EqualTo(IID_IDiscFormat2TrackAtOnce)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscFormat2TrackAtOnce))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscFormat2TrackAtOnce).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscFormat2TrackAtOnce), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscFormat2TrackAtOnce), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscMaster2Tests.cs b/tests/Interop/Windows/um/imapi2/IDiscMaster2Tests.cs new file mode 100644 index 0000000000..0272b8d070 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscMaster2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscMaster2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscMaster2).GUID, Is.EqualTo(IID_IDiscMaster2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscMaster2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscMaster2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscMaster2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscMaster2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscRecorder2ExTests.cs b/tests/Interop/Windows/um/imapi2/IDiscRecorder2ExTests.cs new file mode 100644 index 0000000000..5f26898ee5 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscRecorder2ExTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscRecorder2ExTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscRecorder2Ex).GUID, Is.EqualTo(IID_IDiscRecorder2Ex)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscRecorder2Ex))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscRecorder2Ex).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscRecorder2Ex), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscRecorder2Ex), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IDiscRecorder2Tests.cs b/tests/Interop/Windows/um/imapi2/IDiscRecorder2Tests.cs new file mode 100644 index 0000000000..9e91fe5cee --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IDiscRecorder2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IDiscRecorder2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IDiscRecorder2).GUID, Is.EqualTo(IID_IDiscRecorder2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IDiscRecorder2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IDiscRecorder2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IDiscRecorder2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IDiscRecorder2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IMultisessionRandomWriteTests.cs b/tests/Interop/Windows/um/imapi2/IMultisessionRandomWriteTests.cs new file mode 100644 index 0000000000..cee41c7dd3 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IMultisessionRandomWriteTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IMultisessionRandomWriteTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMultisessionRandomWrite).GUID, Is.EqualTo(IID_IMultisessionRandomWrite)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IMultisessionRandomWrite))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IMultisessionRandomWrite).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IMultisessionRandomWrite), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IMultisessionRandomWrite), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IMultisessionSequential2Tests.cs b/tests/Interop/Windows/um/imapi2/IMultisessionSequential2Tests.cs new file mode 100644 index 0000000000..af51a5b1d4 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IMultisessionSequential2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IMultisessionSequential2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMultisessionSequential2).GUID, Is.EqualTo(IID_IMultisessionSequential2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IMultisessionSequential2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IMultisessionSequential2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IMultisessionSequential2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IMultisessionSequential2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IMultisessionSequentialTests.cs b/tests/Interop/Windows/um/imapi2/IMultisessionSequentialTests.cs new file mode 100644 index 0000000000..abdb4d08c2 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IMultisessionSequentialTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IMultisessionSequentialTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMultisessionSequential).GUID, Is.EqualTo(IID_IMultisessionSequential)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IMultisessionSequential))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IMultisessionSequential).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IMultisessionSequential), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IMultisessionSequential), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IMultisessionTests.cs b/tests/Interop/Windows/um/imapi2/IMultisessionTests.cs new file mode 100644 index 0000000000..9b1f3a5b6c --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IMultisessionTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IMultisessionTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IMultisession).GUID, Is.EqualTo(IID_IMultisession)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IMultisession))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IMultisession).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IMultisession), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IMultisession), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IRawCDImageCreatorTests.cs b/tests/Interop/Windows/um/imapi2/IRawCDImageCreatorTests.cs new file mode 100644 index 0000000000..f30a0c1905 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IRawCDImageCreatorTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IRawCDImageCreatorTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IRawCDImageCreator).GUID, Is.EqualTo(IID_IRawCDImageCreator)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IRawCDImageCreator))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IRawCDImageCreator).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IRawCDImageCreator), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IRawCDImageCreator), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IRawCDImageTrackInfoTests.cs b/tests/Interop/Windows/um/imapi2/IRawCDImageTrackInfoTests.cs new file mode 100644 index 0000000000..f5c8ee3ce6 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IRawCDImageTrackInfoTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IRawCDImageTrackInfoTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IRawCDImageTrackInfo).GUID, Is.EqualTo(IID_IRawCDImageTrackInfo)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IRawCDImageTrackInfo))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IRawCDImageTrackInfo).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IRawCDImageTrackInfo), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IRawCDImageTrackInfo), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IStreamConcatenateTests.cs b/tests/Interop/Windows/um/imapi2/IStreamConcatenateTests.cs new file mode 100644 index 0000000000..f61acf8ac6 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IStreamConcatenateTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IStreamConcatenateTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IStreamConcatenate).GUID, Is.EqualTo(IID_IStreamConcatenate)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IStreamConcatenate))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IStreamConcatenate).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IStreamConcatenate), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IStreamConcatenate), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IStreamInterleaveTests.cs b/tests/Interop/Windows/um/imapi2/IStreamInterleaveTests.cs new file mode 100644 index 0000000000..5ad4a17567 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IStreamInterleaveTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IStreamInterleaveTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IStreamInterleave).GUID, Is.EqualTo(IID_IStreamInterleave)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IStreamInterleave))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IStreamInterleave).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IStreamInterleave), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IStreamInterleave), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IStreamPseudoRandomBasedTests.cs b/tests/Interop/Windows/um/imapi2/IStreamPseudoRandomBasedTests.cs new file mode 100644 index 0000000000..8a3264a2c1 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IStreamPseudoRandomBasedTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IStreamPseudoRandomBasedTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IStreamPseudoRandomBased).GUID, Is.EqualTo(IID_IStreamPseudoRandomBased)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IStreamPseudoRandomBased))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IStreamPseudoRandomBased).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IStreamPseudoRandomBased), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IStreamPseudoRandomBased), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IWriteEngine2EventArgsTests.cs b/tests/Interop/Windows/um/imapi2/IWriteEngine2EventArgsTests.cs new file mode 100644 index 0000000000..52b59803c9 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IWriteEngine2EventArgsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IWriteEngine2EventArgsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IWriteEngine2EventArgs).GUID, Is.EqualTo(IID_IWriteEngine2EventArgs)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IWriteEngine2EventArgs))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IWriteEngine2EventArgs).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IWriteEngine2EventArgs), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IWriteEngine2EventArgs), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IWriteEngine2Tests.cs b/tests/Interop/Windows/um/imapi2/IWriteEngine2Tests.cs new file mode 100644 index 0000000000..a04056c2a3 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IWriteEngine2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IWriteEngine2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IWriteEngine2).GUID, Is.EqualTo(IID_IWriteEngine2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IWriteEngine2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IWriteEngine2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IWriteEngine2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IWriteEngine2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/IWriteSpeedDescriptorTests.cs b/tests/Interop/Windows/um/imapi2/IWriteSpeedDescriptorTests.cs new file mode 100644 index 0000000000..5dc76ff79a --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/IWriteSpeedDescriptorTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IWriteSpeedDescriptorTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IWriteSpeedDescriptor).GUID, Is.EqualTo(IID_IWriteSpeedDescriptor)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IWriteSpeedDescriptor))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IWriteSpeedDescriptor).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IWriteSpeedDescriptor), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IWriteSpeedDescriptor), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscFormat2DataTests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2DataTests.cs new file mode 100644 index 0000000000..36c8f3a1f7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2DataTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscFormat2DataTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscFormat2Data).GUID, Is.EqualTo(CLSID_MsftDiscFormat2Data)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscFormat2Data))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscFormat2Data).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscFormat2Data), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscFormat2EraseTests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2EraseTests.cs new file mode 100644 index 0000000000..c741ad1b7c --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2EraseTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscFormat2EraseTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscFormat2Erase).GUID, Is.EqualTo(CLSID_MsftDiscFormat2Erase)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscFormat2Erase))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscFormat2Erase).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscFormat2Erase), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscFormat2RawCDTests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2RawCDTests.cs new file mode 100644 index 0000000000..c86ace7bd1 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2RawCDTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscFormat2RawCDTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscFormat2RawCD).GUID, Is.EqualTo(CLSID_MsftDiscFormat2RawCD)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscFormat2RawCD))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscFormat2RawCD).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscFormat2RawCD), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnceTests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnceTests.cs new file mode 100644 index 0000000000..9271c98058 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscFormat2TrackAtOnceTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscFormat2TrackAtOnceTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscFormat2TrackAtOnce).GUID, Is.EqualTo(CLSID_MsftDiscFormat2TrackAtOnce)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscFormat2TrackAtOnce))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscFormat2TrackAtOnce).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscFormat2TrackAtOnce), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscMaster2Tests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscMaster2Tests.cs new file mode 100644 index 0000000000..39d35653f5 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscMaster2Tests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscMaster2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscMaster2).GUID, Is.EqualTo(IID_MsftDiscMaster2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscMaster2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscMaster2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscMaster2), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftDiscRecorder2Tests.cs b/tests/Interop/Windows/um/imapi2/MsftDiscRecorder2Tests.cs new file mode 100644 index 0000000000..939526f64d --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftDiscRecorder2Tests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftDiscRecorder2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftDiscRecorder2).GUID, Is.EqualTo(CLSID_MsftDiscRecorder2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftDiscRecorder2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftDiscRecorder2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftDiscRecorder2), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftMultisessionRandomWriteTests.cs b/tests/Interop/Windows/um/imapi2/MsftMultisessionRandomWriteTests.cs new file mode 100644 index 0000000000..bd8957e847 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftMultisessionRandomWriteTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftMultisessionRandomWriteTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftMultisessionRandomWrite).GUID, Is.EqualTo(CLSID_MsftMultisessionRandomWrite)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftMultisessionRandomWrite))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftMultisessionRandomWrite).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftMultisessionRandomWrite), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftMultisessionSequentialTests.cs b/tests/Interop/Windows/um/imapi2/MsftMultisessionSequentialTests.cs new file mode 100644 index 0000000000..2b566c1956 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftMultisessionSequentialTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftMultisessionSequentialTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftMultisessionSequential).GUID, Is.EqualTo(CLSID_MsftMultisessionSequential)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftMultisessionSequential))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftMultisessionSequential).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftMultisessionSequential), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftRawCDImageCreatorTests.cs b/tests/Interop/Windows/um/imapi2/MsftRawCDImageCreatorTests.cs new file mode 100644 index 0000000000..9d1bbd1caa --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftRawCDImageCreatorTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftRawCDImageCreatorTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftRawCDImageCreator).GUID, Is.EqualTo(CLSID_MsftRawCDImageCreator)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftRawCDImageCreator))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftRawCDImageCreator).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftRawCDImageCreator), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftStreamConcatenateTests.cs b/tests/Interop/Windows/um/imapi2/MsftStreamConcatenateTests.cs new file mode 100644 index 0000000000..de228e3c06 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftStreamConcatenateTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftStreamConcatenateTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftStreamConcatenate).GUID, Is.EqualTo(CLSID_MsftStreamConcatenate)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftStreamConcatenate))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftStreamConcatenate).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftStreamConcatenate), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftStreamInterleaveTests.cs b/tests/Interop/Windows/um/imapi2/MsftStreamInterleaveTests.cs new file mode 100644 index 0000000000..a8b9589603 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftStreamInterleaveTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftStreamInterleaveTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftStreamInterleave).GUID, Is.EqualTo(CLSID_MsftStreamInterleave)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftStreamInterleave))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftStreamInterleave).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftStreamInterleave), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftStreamPrng001Tests.cs b/tests/Interop/Windows/um/imapi2/MsftStreamPrng001Tests.cs new file mode 100644 index 0000000000..73af78d481 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftStreamPrng001Tests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftStreamPrng001Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftStreamPrng001).GUID, Is.EqualTo(CLSID_MsftStreamPrng001)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftStreamPrng001))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftStreamPrng001).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftStreamPrng001), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftStreamZeroTests.cs b/tests/Interop/Windows/um/imapi2/MsftStreamZeroTests.cs new file mode 100644 index 0000000000..ade65efbb2 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftStreamZeroTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftStreamZeroTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftStreamZero).GUID, Is.EqualTo(CLSID_MsftStreamZero)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftStreamZero))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftStreamZero).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftStreamZero), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftWriteEngine2Tests.cs b/tests/Interop/Windows/um/imapi2/MsftWriteEngine2Tests.cs new file mode 100644 index 0000000000..5dc1b97268 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftWriteEngine2Tests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftWriteEngine2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftWriteEngine2).GUID, Is.EqualTo(CLSID_MsftWriteEngine2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftWriteEngine2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftWriteEngine2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftWriteEngine2), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptorTests.cs b/tests/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptorTests.cs new file mode 100644 index 0000000000..86e85db0da --- /dev/null +++ b/tests/Interop/Windows/um/imapi2/MsftWriteSpeedDescriptorTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftWriteSpeedDescriptorTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftWriteSpeedDescriptor).GUID, Is.EqualTo(CLSID_MsftWriteSpeedDescriptor)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftWriteSpeedDescriptor))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftWriteSpeedDescriptor).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftWriteSpeedDescriptor), Is.EqualTo(1)); + } + } +} From 6a08b7708b91bf047626c138a6847d68c52e352c Mon Sep 17 00:00:00 2001 From: reflectronic Date: Fri, 29 Jan 2021 20:51:49 -0500 Subject: [PATCH 3/3] Add imapi2fs.h --- TerraFX.Interop.Windows.sln | 8 + generation/remap.rsp | 14 + generation/um/imapi2fs/generate.rsp | 10 + generation/um/imapi2fs/header.txt | 4 + generation/um/imapi2fs/um-imapi2fs.h | 2 + .../Interop/Windows/um/imapi2fs/BlockRange.cs | 14 + .../Windows/um/imapi2fs/BlockRangeList.cs | 14 + .../Windows/um/imapi2fs/BootOptions.cs | 14 + .../um/imapi2fs/DFileSystemImageEvents.cs | 74 +++ .../imapi2fs/DFileSystemImageImportEvents.cs | 74 +++ .../Windows/um/imapi2fs/EmulationType.cs | 16 + .../Windows/um/imapi2fs/EnumFsiItems.cs | 14 + .../Windows/um/imapi2fs/EnumProgressItems.cs | 14 + .../um/imapi2fs/FileSystemImageResult.cs | 14 + .../Windows/um/imapi2fs/FsiDirectoryItem.cs | 14 + .../Windows/um/imapi2fs/FsiFileItem.cs | 14 + .../Windows/um/imapi2fs/FsiFileSystems.cs | 16 + .../Windows/um/imapi2fs/FsiItemType.cs | 14 + .../Windows/um/imapi2fs/FsiNamedStreams.cs | 14 + .../Interop/Windows/um/imapi2fs/FsiStream.cs | 14 + .../Windows/um/imapi2fs/IBootOptions.cs | 130 +++++ .../Windows/um/imapi2fs/IEnumFsiItems.cs | 67 +++ .../Windows/um/imapi2fs/IEnumProgressItems.cs | 67 +++ .../Windows/um/imapi2fs/IFileSystemImage.cs | 417 ++++++++++++++++ .../Windows/um/imapi2fs/IFileSystemImage2.cs | 431 +++++++++++++++++ .../Windows/um/imapi2fs/IFileSystemImage3.cs | 452 ++++++++++++++++++ .../um/imapi2fs/IFileSystemImageResult.cs | 102 ++++ .../um/imapi2fs/IFileSystemImageResult2.cs | 109 +++++ .../Windows/um/imapi2fs/IFsiDirectoryItem.cs | 221 +++++++++ .../Windows/um/imapi2fs/IFsiDirectoryItem2.cs | 228 +++++++++ .../Windows/um/imapi2fs/IFsiFileItem.cs | 186 +++++++ .../Windows/um/imapi2fs/IFsiFileItem2.cs | 228 +++++++++ .../Interop/Windows/um/imapi2fs/IFsiItem.cs | 151 ++++++ .../Windows/um/imapi2fs/IFsiNamedStreams.cs | 95 ++++ .../Windows/um/imapi2fs/IIsoImageManager.cs | 102 ++++ .../Windows/um/imapi2fs/IProgressItem.cs | 95 ++++ .../Windows/um/imapi2fs/IProgressItems.cs | 109 +++++ .../um/imapi2fs/MsftFileSystemImage.cs | 14 + .../um/imapi2fs/MsftIsoImageManager.cs | 14 + .../Interop/Windows/um/imapi2fs/PlatformId.cs | 15 + .../Windows/um/imapi2fs/ProgressItem.cs | 14 + .../Windows/um/imapi2fs/ProgressItems.cs | 14 + .../Interop/Windows/um/imapi2fs/Windows.cs | 99 ++++ .../um/imapi2fs/BlockRangeListTests.cs | 44 ++ .../Windows/um/imapi2fs/BlockRangeTests.cs | 44 ++ .../Windows/um/imapi2fs/BootOptionsTests.cs | 44 ++ .../imapi2fs/DFileSystemImageEventsTests.cs | 51 ++ .../DFileSystemImageImportEventsTests.cs | 51 ++ .../Windows/um/imapi2fs/EnumFsiItemsTests.cs | 44 ++ .../um/imapi2fs/EnumProgressItemsTests.cs | 44 ++ .../um/imapi2fs/FileSystemImageResultTests.cs | 44 ++ .../um/imapi2fs/FsiDirectoryItemTests.cs | 44 ++ .../Windows/um/imapi2fs/FsiFileItemTests.cs | 44 ++ .../um/imapi2fs/FsiNamedStreamsTests.cs | 44 ++ .../Windows/um/imapi2fs/FsiStreamTests.cs | 44 ++ .../Windows/um/imapi2fs/IBootOptionsTests.cs | 51 ++ .../Windows/um/imapi2fs/IEnumFsiItemsTests.cs | 51 ++ .../um/imapi2fs/IEnumProgressItemsTests.cs | 51 ++ .../um/imapi2fs/IFileSystemImage2Tests.cs | 51 ++ .../um/imapi2fs/IFileSystemImage3Tests.cs | 51 ++ .../imapi2fs/IFileSystemImageResult2Tests.cs | 51 ++ .../imapi2fs/IFileSystemImageResultTests.cs | 51 ++ .../um/imapi2fs/IFileSystemImageTests.cs | 51 ++ .../um/imapi2fs/IFsiDirectoryItem2Tests.cs | 51 ++ .../um/imapi2fs/IFsiDirectoryItemTests.cs | 51 ++ .../Windows/um/imapi2fs/IFsiFileItem2Tests.cs | 51 ++ .../Windows/um/imapi2fs/IFsiFileItemTests.cs | 51 ++ .../Windows/um/imapi2fs/IFsiItemTests.cs | 51 ++ .../um/imapi2fs/IFsiNamedStreamsTests.cs | 51 ++ .../um/imapi2fs/IIsoImageManagerTests.cs | 51 ++ .../Windows/um/imapi2fs/IProgressItemTests.cs | 51 ++ .../um/imapi2fs/IProgressItemsTests.cs | 51 ++ .../um/imapi2fs/MsftFileSystemImageTests.cs | 44 ++ .../um/imapi2fs/MsftIsoImageManagerTests.cs | 44 ++ .../Windows/um/imapi2fs/ProgressItemTests.cs | 44 ++ .../Windows/um/imapi2fs/ProgressItemsTests.cs | 44 ++ 76 files changed, 5317 insertions(+) create mode 100644 generation/um/imapi2fs/generate.rsp create mode 100644 generation/um/imapi2fs/header.txt create mode 100644 generation/um/imapi2fs/um-imapi2fs.h create mode 100644 sources/Interop/Windows/um/imapi2fs/BlockRange.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/BlockRangeList.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/BootOptions.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/DFileSystemImageEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/DFileSystemImageImportEvents.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/EmulationType.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/EnumFsiItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/EnumProgressItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FileSystemImageResult.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiDirectoryItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiFileItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiFileSystems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiItemType.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiNamedStreams.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/FsiStream.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IBootOptions.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IEnumFsiItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IEnumProgressItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFileSystemImage.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFileSystemImage2.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFileSystemImage3.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult2.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiFileItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiFileItem2.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IFsiNamedStreams.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IIsoImageManager.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IProgressItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/IProgressItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/MsftFileSystemImage.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/MsftIsoImageManager.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/PlatformId.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/ProgressItem.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/ProgressItems.cs create mode 100644 sources/Interop/Windows/um/imapi2fs/Windows.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/BlockRangeListTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/BlockRangeTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/BootOptionsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/DFileSystemImageEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/DFileSystemImageImportEventsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/EnumFsiItemsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/EnumProgressItemsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/FileSystemImageResultTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/FsiDirectoryItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/FsiFileItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/FsiNamedStreamsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/FsiStreamTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IBootOptionsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IEnumFsiItemsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IEnumProgressItemsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFileSystemImage2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFileSystemImage3Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFileSystemImageResult2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFileSystemImageResultTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFileSystemImageTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiFileItem2Tests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiFileItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IFsiNamedStreamsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IIsoImageManagerTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IProgressItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/IProgressItemsTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/MsftFileSystemImageTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/MsftIsoImageManagerTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/ProgressItemTests.cs create mode 100644 tests/Interop/Windows/um/imapi2fs/ProgressItemsTests.cs diff --git a/TerraFX.Interop.Windows.sln b/TerraFX.Interop.Windows.sln index 9ebaa1c46e..64e56aaccc 100644 --- a/TerraFX.Interop.Windows.sln +++ b/TerraFX.Interop.Windows.sln @@ -1804,6 +1804,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapi2", "imapi2", "{565AEC generation\um\imapi2\um-imapi2.h = generation\um\imapi2\um-imapi2.h EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imapi2fs", "imapi2fs", "{56D9CA05-6CF6-458A-AB1D-C85FBC239634}" + ProjectSection(SolutionItems) = preProject + generation\um\imapi2fs\generate.rsp = generation\um\imapi2fs\generate.rsp + generation\um\imapi2fs\header.txt = generation\um\imapi2fs\header.txt + generation\um\imapi2fs\um-imapi2fs.h = generation\um\imapi2fs\um-imapi2fs.h + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2089,6 +2096,7 @@ Global {BB1D1950-8068-4353-A482-0A2C60ED4644} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {BC069863-A717-4C9E-8D98-ACF9239E903A} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} {565AEC0D-94C9-46CB-8947-71E02C3C128D} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} + {56D9CA05-6CF6-458A-AB1D-C85FBC239634} = {67311E5E-FA9C-43A6-B431-9EF10047A0CE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2FE36DF8-2D9C-4F20-8787-45DC74B57461} diff --git a/generation/remap.rsp b/generation/remap.rsp index 3073a10429..dd24a4ef05 100644 --- a/generation/remap.rsp +++ b/generation/remap.rsp @@ -113,6 +113,9 @@ IDXGIInfoQueue.GetMessageW=GetMessage IGraphicsEffectSource**=void** IID_AudioReverb=CLSID_AudioReverb IID_AudioVolumeMeter=CLSID_AudioVolumeMeter +IID_BlockRange=CLSID_BlockRange +IID_BlockRangeList=CLSID_BlockRangeList +IID_BootOptions=CLSID_BootOptions IID_CODECAPI_AVAudioChannelConfig=STATIC_CODECAPI_AVAudioChannelConfig IID_CODECAPI_AVAudioChannelCount=STATIC_CODECAPI_AVAudioChannelCount IID_CODECAPI_AVAudioSampleRate=STATIC_CODECAPI_AVAudioSampleRate @@ -431,6 +434,13 @@ IID_DirectManipulationUpdateManager=CLSID_DirectManipulationUpdateManager IID_DirectManipulationViewport=CLSID_DirectManipulationViewport IID_DOMDocument=CLSID_DOMDocument IID_DOMFreeThreadedDocument=CLSID_DOMFreeThreadedDocument +IID_EnumFsiItems=CLSID_EnumFsiItems +IID_EnumProgressItems=CLSID_EnumProgressItems +IID_FileSystemImageResult=CLSID_FileSystemImageResult +IID_FsiDirectoryItem=CLSID_FsiDirectoryItem +IID_FsiFileItem=CLSID_FsiFileItem +IID_FsiNamedStreams=CLSID_FsiNamedStreams +IID_FsiStream=CLSID_FsiStream IID_FXEcho=CLSID_FXEcho IID_FXEQ=CLSID_FXEQ IID_FXMasteringLimiter=CLSID_FXMasteringLimiter @@ -450,6 +460,8 @@ IID_MsftDiscFormat2Erase=CLSID_MsftDiscFormat2Erase IID_MsftDiscFormat2RawCD=CLSID_MsftDiscFormat2RawCD IID_MsftDiscFormat2TrackAtOnce=CLSID_MsftDiscFormat2TrackAtOnce IID_MsftDiscRecorder2=CLSID_MsftDiscRecorder2 +IID_MsftFileSystemImage=CLSID_MsftFileSystemImage +IID_MsftIsoImageManager=CLSID_MsftIsoImageManager IID_MsftMultisessionRandomWrite=CLSID_MsftMultisessionRandomWrite IID_MsftMultisessionSequential=CLSID_MsftMultisessionSequential IID_MsftRawCDImageCreator=CLSID_MsftRawCDImageCreator @@ -461,6 +473,8 @@ IID_MsftWriteEngine2=CLSID_MsftWriteEngine2 IID_MsftWriteSpeedDescriptor=CLSID_MsftWriteSpeedDescriptor IID_PrintDocumentPackageTarget=CLSID_PrintDocumentPackageTarget IID_PrintDocumentPackageTargetFactory=CLSID_PrintDocumentPackageTargetFactory +IID_ProgressItem=CLSID_ProgressItem +IID_ProgressItems=CLSID_ProgressItems IID_PropertySystem=CLSID_PropertySystem IID_SpAudioFormat=CLSID_SpAudioFormat IID_SpCompressedLexicon=CLSID_SpCompressedLexicon diff --git a/generation/um/imapi2fs/generate.rsp b/generation/um/imapi2fs/generate.rsp new file mode 100644 index 0000000000..4cc64e2a54 --- /dev/null +++ b/generation/um/imapi2fs/generate.rsp @@ -0,0 +1,10 @@ +@../../settings.rsp +@../../remap.rsp +--file +um-imapi2fs.h +--output +../../../sources/Interop/Windows/um/imapi2fs +--test-output +../../../tests/Interop/Windows/um/imapi2fs +--traverse +C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/imapi2fs.h diff --git a/generation/um/imapi2fs/header.txt b/generation/um/imapi2fs/header.txt new file mode 100644 index 0000000000..7967b0ef40 --- /dev/null +++ b/generation/um/imapi2fs/header.txt @@ -0,0 +1,4 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. diff --git a/generation/um/imapi2fs/um-imapi2fs.h b/generation/um/imapi2fs/um-imapi2fs.h new file mode 100644 index 0000000000..b3971370d6 --- /dev/null +++ b/generation/um/imapi2fs/um-imapi2fs.h @@ -0,0 +1,2 @@ +#include +#include diff --git a/sources/Interop/Windows/um/imapi2fs/BlockRange.cs b/sources/Interop/Windows/um/imapi2fs/BlockRange.cs new file mode 100644 index 0000000000..1b1cd7e3da --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/BlockRange.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA27-2204-11DD-966A-001AA01BBC58")] + public partial struct BlockRange + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/BlockRangeList.cs b/sources/Interop/Windows/um/imapi2fs/BlockRangeList.cs new file mode 100644 index 0000000000..9e764377b1 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/BlockRangeList.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA28-2204-11DD-966A-001AA01BBC58")] + public partial struct BlockRangeList + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/BootOptions.cs b/sources/Interop/Windows/um/imapi2fs/BootOptions.cs new file mode 100644 index 0000000000..5c26f18398 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/BootOptions.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FCE-975B-59BE-A960-9A2A262853A5")] + public partial struct BootOptions + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/DFileSystemImageEvents.cs b/sources/Interop/Windows/um/imapi2fs/DFileSystemImageEvents.cs new file mode 100644 index 0000000000..8ad7a5c742 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/DFileSystemImageEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FDF-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct DFileSystemImageEvents : IDispatch")] + public unsafe partial struct DFileSystemImageEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Update([NativeTypeName("IDispatch *")] IDispatch* @object, [NativeTypeName("BSTR")] ushort* currentFile, [NativeTypeName("LONG")] int copiedSectors, [NativeTypeName("LONG")] int totalSectors) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DFileSystemImageEvents*)Unsafe.AsPointer(ref this), @object, currentFile, copiedSectors, totalSectors); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/DFileSystemImageImportEvents.cs b/sources/Interop/Windows/um/imapi2fs/DFileSystemImageImportEvents.cs new file mode 100644 index 0000000000..89da2361c4 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/DFileSystemImageImportEvents.cs @@ -0,0 +1,74 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("D25C30F9-4087-4366-9E24-E55BE286424B")] + [NativeTypeName("struct DFileSystemImageImportEvents : IDispatch")] + public unsafe partial struct DFileSystemImageImportEvents + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int UpdateImport([NativeTypeName("IDispatch *")] IDispatch* @object, FsiFileSystems fileSystem, [NativeTypeName("BSTR")] ushort* currentItem, [NativeTypeName("LONG")] int importedDirectoryItems, [NativeTypeName("LONG")] int totalDirectoryItems, [NativeTypeName("LONG")] int importedFileItems, [NativeTypeName("LONG")] int totalFileItems) + { + return ((delegate* unmanaged)(lpVtbl[7]))((DFileSystemImageImportEvents*)Unsafe.AsPointer(ref this), @object, fileSystem, currentItem, importedDirectoryItems, totalDirectoryItems, importedFileItems, totalFileItems); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/EmulationType.cs b/sources/Interop/Windows/um/imapi2fs/EmulationType.cs new file mode 100644 index 0000000000..b5cf5113d3 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/EmulationType.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum EmulationType + { + EmulationNone = 0, + Emulation12MFloppy = 1, + Emulation144MFloppy = 2, + Emulation288MFloppy = 3, + EmulationHardDisk = 4, + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/EnumFsiItems.cs b/sources/Interop/Windows/um/imapi2fs/EnumFsiItems.cs new file mode 100644 index 0000000000..24a123bf60 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/EnumFsiItems.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FC6-975B-59BE-A960-9A2A262853A5")] + public partial struct EnumFsiItems + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/EnumProgressItems.cs b/sources/Interop/Windows/um/imapi2fs/EnumProgressItems.cs new file mode 100644 index 0000000000..a9add935f7 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/EnumProgressItems.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FCA-975B-59BE-A960-9A2A262853A5")] + public partial struct EnumProgressItems + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FileSystemImageResult.cs b/sources/Interop/Windows/um/imapi2fs/FileSystemImageResult.cs new file mode 100644 index 0000000000..57a0e8f2b2 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FileSystemImageResult.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FCC-975B-59BE-A960-9A2A262853A5")] + public partial struct FileSystemImageResult + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiDirectoryItem.cs b/sources/Interop/Windows/um/imapi2fs/FsiDirectoryItem.cs new file mode 100644 index 0000000000..1f289633a8 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiDirectoryItem.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FC8-975B-59BE-A960-9A2A262853A5")] + public partial struct FsiDirectoryItem + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiFileItem.cs b/sources/Interop/Windows/um/imapi2fs/FsiFileItem.cs new file mode 100644 index 0000000000..9d3325d603 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiFileItem.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FC7-975B-59BE-A960-9A2A262853A5")] + public partial struct FsiFileItem + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiFileSystems.cs b/sources/Interop/Windows/um/imapi2fs/FsiFileSystems.cs new file mode 100644 index 0000000000..ed8a1a9a39 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiFileSystems.cs @@ -0,0 +1,16 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum FsiFileSystems + { + FsiFileSystemNone = 0, + FsiFileSystemISO9660 = 1, + FsiFileSystemJoliet = 2, + FsiFileSystemUDF = 4, + FsiFileSystemUnknown = 0x40000000, + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiItemType.cs b/sources/Interop/Windows/um/imapi2fs/FsiItemType.cs new file mode 100644 index 0000000000..ecf4891eaa --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiItemType.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum FsiItemType + { + FsiItemNotFound = 0, + FsiItemDirectory = 1, + FsiItemFile = 2, + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiNamedStreams.cs b/sources/Interop/Windows/um/imapi2fs/FsiNamedStreams.cs new file mode 100644 index 0000000000..862baaec2b --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiNamedStreams.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("C6B6F8ED-6D19-44B4-B539-B159B793A32D")] + public partial struct FsiNamedStreams + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/FsiStream.cs b/sources/Interop/Windows/um/imapi2fs/FsiStream.cs new file mode 100644 index 0000000000..81032c58f9 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/FsiStream.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FCD-975B-59BE-A960-9A2A262853A5")] + public partial struct FsiStream + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IBootOptions.cs b/sources/Interop/Windows/um/imapi2fs/IBootOptions.cs new file mode 100644 index 0000000000..855a22a138 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IBootOptions.cs @@ -0,0 +1,130 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD4-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IBootOptions : IDispatch")] + public unsafe partial struct IBootOptions + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IBootOptions*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IBootOptions*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IBootOptions*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IBootOptions*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IBootOptions*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IBootOptions*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IBootOptions*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImage([NativeTypeName("IStream **")] IStream** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IBootOptions*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Manufacturer([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IBootOptions*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Manufacturer([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IBootOptions*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_PlatformId([NativeTypeName("PlatformId *")] PlatformId* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IBootOptions*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_PlatformId(PlatformId newVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IBootOptions*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Emulation([NativeTypeName("EmulationType *")] EmulationType* pVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IBootOptions*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Emulation(EmulationType newVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IBootOptions*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImageSize([NativeTypeName("ULONG *")] uint* pVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IBootOptions*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AssignBootImage([NativeTypeName("IStream *")] IStream* newVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IBootOptions*)Unsafe.AsPointer(ref this), newVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IEnumFsiItems.cs b/sources/Interop/Windows/um/imapi2fs/IEnumFsiItems.cs new file mode 100644 index 0000000000..a0f3ac4c47 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IEnumFsiItems.cs @@ -0,0 +1,67 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FDA-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IEnumFsiItems : IUnknown")] + public unsafe partial struct IEnumFsiItems + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IEnumFsiItems*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IEnumFsiItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IEnumFsiItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Next([NativeTypeName("ULONG")] uint celt, [NativeTypeName("IFsiItem **")] IFsiItem** rgelt, [NativeTypeName("ULONG *")] uint* pceltFetched) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IEnumFsiItems*)Unsafe.AsPointer(ref this), celt, rgelt, pceltFetched); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Skip([NativeTypeName("ULONG")] uint celt) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IEnumFsiItems*)Unsafe.AsPointer(ref this), celt); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Reset() + { + return ((delegate* unmanaged)(lpVtbl[5]))((IEnumFsiItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IEnumFsiItems **")] IEnumFsiItems** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IEnumFsiItems*)Unsafe.AsPointer(ref this), ppEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IEnumProgressItems.cs b/sources/Interop/Windows/um/imapi2fs/IEnumProgressItems.cs new file mode 100644 index 0000000000..f0391bc8d0 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IEnumProgressItems.cs @@ -0,0 +1,67 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD6-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IEnumProgressItems : IUnknown")] + public unsafe partial struct IEnumProgressItems + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IEnumProgressItems*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IEnumProgressItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IEnumProgressItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Next([NativeTypeName("ULONG")] uint celt, [NativeTypeName("IProgressItem **")] IProgressItem** rgelt, [NativeTypeName("ULONG *")] uint* pceltFetched) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IEnumProgressItems*)Unsafe.AsPointer(ref this), celt, rgelt, pceltFetched); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Skip([NativeTypeName("ULONG")] uint celt) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IEnumProgressItems*)Unsafe.AsPointer(ref this), celt); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Reset() + { + return ((delegate* unmanaged)(lpVtbl[5]))((IEnumProgressItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Clone([NativeTypeName("IEnumProgressItems **")] IEnumProgressItems** ppEnum) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IEnumProgressItems*)Unsafe.AsPointer(ref this), ppEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFileSystemImage.cs b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage.cs new file mode 100644 index 0000000000..10f00b1e31 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage.cs @@ -0,0 +1,417 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FE1-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IFileSystemImage : IDispatch")] + public unsafe partial struct IFileSystemImage + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFileSystemImage*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFileSystemImage*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFileSystemImage*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFileSystemImage*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFileSystemImage*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFileSystemImage*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Root([NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SessionStartBlock([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_SessionStartBlock([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeMediaBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FreeMediaBlocks([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetMaxMediaBlocksFromDevice([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFileSystemImage*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_VolumeName([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportedVolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImageOptions([NativeTypeName("IBootOptions **")] IBootOptions** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BootImageOptions([NativeTypeName("IBootOptions *")] IBootOptions* newVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DirectoryCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WorkingDirectory([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_WorkingDirectory([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ChangePoint([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsToCreate([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FileSystemsToCreate(FsiFileSystems newVal) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsSupported([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UDFRevision([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevision([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevisionsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaults([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IFileSystemImage*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IFileSystemImage*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ISO9660InterchangeLevel([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[36]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevel([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[37]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevelsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[38]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateResultImage([NativeTypeName("IFileSystemImageResult **")] IFileSystemImageResult** resultStream) + { + return ((delegate* unmanaged)(lpVtbl[39]))((IFileSystemImage*)Unsafe.AsPointer(ref this), resultStream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Exists([NativeTypeName("BSTR")] ushort* fullPath, [NativeTypeName("FsiItemType *")] FsiItemType* itemType) + { + return ((delegate* unmanaged)(lpVtbl[40]))((IFileSystemImage*)Unsafe.AsPointer(ref this), fullPath, itemType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CalculateDiscIdentifier([NativeTypeName("BSTR *")] ushort** discIdentifier) + { + return ((delegate* unmanaged)(lpVtbl[41]))((IFileSystemImage*)Unsafe.AsPointer(ref this), discIdentifier); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IdentifyFileSystemsOnDisc([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* fileSystems) + { + return ((delegate* unmanaged)(lpVtbl[42]))((IFileSystemImage*)Unsafe.AsPointer(ref this), discRecorder, fileSystems); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDefaultFileSystemForImport(FsiFileSystems fileSystems, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* importDefault) + { + return ((delegate* unmanaged)(lpVtbl[43]))((IFileSystemImage*)Unsafe.AsPointer(ref this), fileSystems, importDefault); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportFileSystem([NativeTypeName("FsiFileSystems *")] FsiFileSystems* importedFileSystem) + { + return ((delegate* unmanaged)(lpVtbl[44]))((IFileSystemImage*)Unsafe.AsPointer(ref this), importedFileSystem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportSpecificFileSystem(FsiFileSystems fileSystemToUse) + { + return ((delegate* unmanaged)(lpVtbl[45]))((IFileSystemImage*)Unsafe.AsPointer(ref this), fileSystemToUse); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RollbackToChangePoint([NativeTypeName("LONG")] int changePoint) + { + return ((delegate* unmanaged)(lpVtbl[46]))((IFileSystemImage*)Unsafe.AsPointer(ref this), changePoint); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockInChangePoint() + { + return ((delegate* unmanaged)(lpVtbl[47]))((IFileSystemImage*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateDirectoryItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[48]))((IFileSystemImage*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateFileItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiFileItem **")] IFsiFileItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[49]))((IFileSystemImage*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameUDF([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[50]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameJoliet([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[51]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameISO9660([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[52]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StageFiles([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[53]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StageFiles([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[54]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MultisessionInterfaces([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[55]))((IFileSystemImage*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_MultisessionInterfaces([NativeTypeName("SAFEARRAY *")] SAFEARRAY* newVal) + { + return ((delegate* unmanaged)(lpVtbl[56]))((IFileSystemImage*)Unsafe.AsPointer(ref this), newVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFileSystemImage2.cs b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage2.cs new file mode 100644 index 0000000000..8b8fbe673d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage2.cs @@ -0,0 +1,431 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("D7644B2C-1537-4767-B62F-F1387B02DDFD")] + [NativeTypeName("struct IFileSystemImage2 : IFileSystemImage")] + public unsafe partial struct IFileSystemImage2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFileSystemImage2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFileSystemImage2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Root([NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SessionStartBlock([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_SessionStartBlock([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeMediaBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FreeMediaBlocks([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetMaxMediaBlocksFromDevice([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_VolumeName([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportedVolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImageOptions([NativeTypeName("IBootOptions **")] IBootOptions** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BootImageOptions([NativeTypeName("IBootOptions *")] IBootOptions* newVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DirectoryCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WorkingDirectory([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_WorkingDirectory([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ChangePoint([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsToCreate([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FileSystemsToCreate(FsiFileSystems newVal) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsSupported([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UDFRevision([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevision([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevisionsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaults([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ISO9660InterchangeLevel([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[36]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevel([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[37]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevelsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[38]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateResultImage([NativeTypeName("IFileSystemImageResult **")] IFileSystemImageResult** resultStream) + { + return ((delegate* unmanaged)(lpVtbl[39]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), resultStream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Exists([NativeTypeName("BSTR")] ushort* fullPath, [NativeTypeName("FsiItemType *")] FsiItemType* itemType) + { + return ((delegate* unmanaged)(lpVtbl[40]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), fullPath, itemType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CalculateDiscIdentifier([NativeTypeName("BSTR *")] ushort** discIdentifier) + { + return ((delegate* unmanaged)(lpVtbl[41]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), discIdentifier); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IdentifyFileSystemsOnDisc([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* fileSystems) + { + return ((delegate* unmanaged)(lpVtbl[42]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), discRecorder, fileSystems); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDefaultFileSystemForImport(FsiFileSystems fileSystems, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* importDefault) + { + return ((delegate* unmanaged)(lpVtbl[43]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), fileSystems, importDefault); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportFileSystem([NativeTypeName("FsiFileSystems *")] FsiFileSystems* importedFileSystem) + { + return ((delegate* unmanaged)(lpVtbl[44]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), importedFileSystem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportSpecificFileSystem(FsiFileSystems fileSystemToUse) + { + return ((delegate* unmanaged)(lpVtbl[45]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), fileSystemToUse); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RollbackToChangePoint([NativeTypeName("LONG")] int changePoint) + { + return ((delegate* unmanaged)(lpVtbl[46]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), changePoint); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockInChangePoint() + { + return ((delegate* unmanaged)(lpVtbl[47]))((IFileSystemImage2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateDirectoryItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[48]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateFileItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiFileItem **")] IFsiFileItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[49]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameUDF([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[50]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameJoliet([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[51]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameISO9660([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[52]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StageFiles([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[53]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StageFiles([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[54]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MultisessionInterfaces([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[55]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_MultisessionInterfaces([NativeTypeName("SAFEARRAY *")] SAFEARRAY* newVal) + { + return ((delegate* unmanaged)(lpVtbl[56]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImageOptionsArray([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[57]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BootImageOptionsArray([NativeTypeName("SAFEARRAY *")] SAFEARRAY* newVal) + { + return ((delegate* unmanaged)(lpVtbl[58]))((IFileSystemImage2*)Unsafe.AsPointer(ref this), newVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFileSystemImage3.cs b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage3.cs new file mode 100644 index 0000000000..962a53103c --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFileSystemImage3.cs @@ -0,0 +1,452 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("7CFF842C-7E97-4807-8304-910DD8F7C051")] + [NativeTypeName("struct IFileSystemImage3 : IFileSystemImage2")] + public unsafe partial struct IFileSystemImage3 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFileSystemImage3*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFileSystemImage3*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Root([NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_SessionStartBlock([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_SessionStartBlock([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FreeMediaBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FreeMediaBlocks([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetMaxMediaBlocksFromDevice([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UsedBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_VolumeName([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImportedVolumeName([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImageOptions([NativeTypeName("IBootOptions **")] IBootOptions** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BootImageOptions([NativeTypeName("IBootOptions *")] IBootOptions* newVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DirectoryCount([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_WorkingDirectory([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_WorkingDirectory([NativeTypeName("BSTR")] ushort* newVal) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ChangePoint([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StrictFileSystemCompliance([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UseRestrictedCharacterSet([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsToCreate([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_FileSystemsToCreate(FsiFileSystems newVal) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FileSystemsSupported([NativeTypeName("FsiFileSystems *")] FsiFileSystems* pVal) + { + return ((delegate* unmanaged)(lpVtbl[30]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_UDFRevision([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[31]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevision([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[32]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_UDFRevisionsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[33]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaults([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder) + { + return ((delegate* unmanaged)(lpVtbl[34]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), discRecorder); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ChooseImageDefaultsForMediaType(IMAPI_MEDIA_PHYSICAL_TYPE value) + { + return ((delegate* unmanaged)(lpVtbl[35]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), value); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_ISO9660InterchangeLevel([NativeTypeName("LONG")] int newVal) + { + return ((delegate* unmanaged)(lpVtbl[36]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevel([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[37]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ISO9660InterchangeLevelsSupported([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[38]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateResultImage([NativeTypeName("IFileSystemImageResult **")] IFileSystemImageResult** resultStream) + { + return ((delegate* unmanaged)(lpVtbl[39]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), resultStream); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Exists([NativeTypeName("BSTR")] ushort* fullPath, [NativeTypeName("FsiItemType *")] FsiItemType* itemType) + { + return ((delegate* unmanaged)(lpVtbl[40]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), fullPath, itemType); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CalculateDiscIdentifier([NativeTypeName("BSTR *")] ushort** discIdentifier) + { + return ((delegate* unmanaged)(lpVtbl[41]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), discIdentifier); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int IdentifyFileSystemsOnDisc([NativeTypeName("IDiscRecorder2 *")] IDiscRecorder2* discRecorder, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* fileSystems) + { + return ((delegate* unmanaged)(lpVtbl[42]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), discRecorder, fileSystems); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetDefaultFileSystemForImport(FsiFileSystems fileSystems, [NativeTypeName("FsiFileSystems *")] FsiFileSystems* importDefault) + { + return ((delegate* unmanaged)(lpVtbl[43]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), fileSystems, importDefault); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportFileSystem([NativeTypeName("FsiFileSystems *")] FsiFileSystems* importedFileSystem) + { + return ((delegate* unmanaged)(lpVtbl[44]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), importedFileSystem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ImportSpecificFileSystem(FsiFileSystems fileSystemToUse) + { + return ((delegate* unmanaged)(lpVtbl[45]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), fileSystemToUse); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RollbackToChangePoint([NativeTypeName("LONG")] int changePoint) + { + return ((delegate* unmanaged)(lpVtbl[46]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), changePoint); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int LockInChangePoint() + { + return ((delegate* unmanaged)(lpVtbl[47]))((IFileSystemImage3*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateDirectoryItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiDirectoryItem **")] IFsiDirectoryItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[48]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int CreateFileItem([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IFsiFileItem **")] IFsiFileItem** newItem) + { + return ((delegate* unmanaged)(lpVtbl[49]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), name, newItem); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameUDF([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[50]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameJoliet([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[51]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_VolumeNameISO9660([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[52]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_StageFiles([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[53]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_StageFiles([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[54]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_MultisessionInterfaces([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[55]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_MultisessionInterfaces([NativeTypeName("SAFEARRAY *")] SAFEARRAY* newVal) + { + return ((delegate* unmanaged)(lpVtbl[56]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BootImageOptionsArray([NativeTypeName("SAFEARRAY **")] SAFEARRAY** pVal) + { + return ((delegate* unmanaged)(lpVtbl[57]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_BootImageOptionsArray([NativeTypeName("SAFEARRAY *")] SAFEARRAY* newVal) + { + return ((delegate* unmanaged)(lpVtbl[58]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreateRedundantUdfMetadataFiles([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[59]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreateRedundantUdfMetadataFiles([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[60]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ProbeSpecificFileSystem(FsiFileSystems fileSystemToProbe, [NativeTypeName("VARIANT_BOOL *")] short* isAppendable) + { + return ((delegate* unmanaged)(lpVtbl[61]))((IFileSystemImage3*)Unsafe.AsPointer(ref this), fileSystemToProbe, isAppendable); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult.cs b/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult.cs new file mode 100644 index 0000000000..f9ae2597ea --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult.cs @@ -0,0 +1,102 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD8-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IFileSystemImageResult : IDispatch")] + public unsafe partial struct IFileSystemImageResult + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImageStream([NativeTypeName("IStream **")] IStream** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ProgressItems([NativeTypeName("IProgressItems **")] IProgressItems** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BlockSize([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DiscId([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFileSystemImageResult*)Unsafe.AsPointer(ref this), pVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult2.cs b/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult2.cs new file mode 100644 index 0000000000..db1f29348a --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFileSystemImageResult2.cs @@ -0,0 +1,109 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("B507CA29-2204-11DD-966A-001AA01BBC58")] + [NativeTypeName("struct IFileSystemImageResult2 : IFileSystemImageResult")] + public unsafe partial struct IFileSystemImageResult2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ImageStream([NativeTypeName("IStream **")] IStream** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ProgressItems([NativeTypeName("IProgressItems **")] IProgressItems** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_TotalBlocks([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BlockSize([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DiscId([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_ModifiedBlocks([NativeTypeName("IBlockRangeList **")] IBlockRangeList** pVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFileSystemImageResult2*)Unsafe.AsPointer(ref this), pVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem.cs b/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem.cs new file mode 100644 index 0000000000..59426bb88e --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem.cs @@ -0,0 +1,221 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FDC-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IFsiDirectoryItem : IFsiItem")] + public unsafe partial struct IFsiDirectoryItem + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Name([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullPath([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreationTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreationTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastAccessedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastAccessedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastModifiedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastModifiedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsHidden([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsHidden([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemName(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemPath(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get__NewEnum([NativeTypeName("IEnumVARIANT **")] IEnumVARIANT** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Item([NativeTypeName("BSTR")] ushort* path, [NativeTypeName("IFsiItem **")] IFsiItem** item) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), path, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Count([NativeTypeName("LONG *")] int* Count) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), Count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EnumFsiItems([NativeTypeName("IEnumFsiItems **")] IEnumFsiItems** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddDirectory([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), path); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddFile([NativeTypeName("BSTR")] ushort* path, [NativeTypeName("IStream *")] IStream* fileData) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), path, fileData); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddTree([NativeTypeName("BSTR")] ushort* sourceDirectory, [NativeTypeName("VARIANT_BOOL")] short includeBaseDirectory) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), sourceDirectory, includeBaseDirectory); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Add([NativeTypeName("IFsiItem *")] IFsiItem* item) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Remove([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), path); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RemoveTree([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFsiDirectoryItem*)Unsafe.AsPointer(ref this), path); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2.cs b/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2.cs new file mode 100644 index 0000000000..731727d6d6 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2.cs @@ -0,0 +1,228 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("F7FB4B9B-6D96-4D7B-9115-201B144811EF")] + [NativeTypeName("struct IFsiDirectoryItem2 : IFsiDirectoryItem")] + public unsafe partial struct IFsiDirectoryItem2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Name([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullPath([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreationTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreationTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastAccessedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastAccessedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastModifiedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastModifiedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsHidden([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsHidden([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemName(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemPath(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get__NewEnum([NativeTypeName("IEnumVARIANT **")] IEnumVARIANT** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Item([NativeTypeName("BSTR")] ushort* path, [NativeTypeName("IFsiItem **")] IFsiItem** item) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), path, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Count([NativeTypeName("LONG *")] int* Count) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), Count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EnumFsiItems([NativeTypeName("IEnumFsiItems **")] IEnumFsiItems** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddDirectory([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), path); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddFile([NativeTypeName("BSTR")] ushort* path, [NativeTypeName("IStream *")] IStream* fileData) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), path, fileData); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddTree([NativeTypeName("BSTR")] ushort* sourceDirectory, [NativeTypeName("VARIANT_BOOL")] short includeBaseDirectory) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), sourceDirectory, includeBaseDirectory); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Add([NativeTypeName("IFsiItem *")] IFsiItem* item) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Remove([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), path); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RemoveTree([NativeTypeName("BSTR")] ushort* path) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), path); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddTreeWithNamedStreams([NativeTypeName("BSTR")] ushort* sourceDirectory, [NativeTypeName("VARIANT_BOOL")] short includeBaseDirectory) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IFsiDirectoryItem2*)Unsafe.AsPointer(ref this), sourceDirectory, includeBaseDirectory); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiFileItem.cs b/sources/Interop/Windows/um/imapi2fs/IFsiFileItem.cs new file mode 100644 index 0000000000..3bb7ef243b --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiFileItem.cs @@ -0,0 +1,186 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FDB-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IFsiFileItem : IFsiItem")] + public unsafe partial struct IFsiFileItem + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiFileItem*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiFileItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiFileItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiFileItem*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiFileItem*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiFileItem*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Name([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullPath([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreationTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreationTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiFileItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastAccessedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastAccessedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFsiFileItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastModifiedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastModifiedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFsiFileItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsHidden([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsHidden([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFsiFileItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemName(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFsiFileItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemPath(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFsiFileItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize([NativeTypeName("LONGLONG *")] long* pVal) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize32BitLow([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize32BitHigh([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Data([NativeTypeName("IStream **")] IStream** pVal) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFsiFileItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Data([NativeTypeName("IStream *")] IStream* newVal) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFsiFileItem*)Unsafe.AsPointer(ref this), newVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiFileItem2.cs b/sources/Interop/Windows/um/imapi2fs/IFsiFileItem2.cs new file mode 100644 index 0000000000..eabf06cd2f --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiFileItem2.cs @@ -0,0 +1,228 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("199D0C19-11E1-40EB-8EC2-C8C822A07792")] + [NativeTypeName("struct IFsiFileItem2 : IFsiFileItem")] + public unsafe partial struct IFsiFileItem2 + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiFileItem2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiFileItem2*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Name([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullPath([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreationTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreationTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastAccessedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastAccessedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastModifiedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastModifiedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsHidden([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsHidden([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemName(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemPath(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize([NativeTypeName("LONGLONG *")] long* pVal) + { + return ((delegate* unmanaged)(lpVtbl[19]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize32BitLow([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[20]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_DataSize32BitHigh([NativeTypeName("LONG *")] int* pVal) + { + return ((delegate* unmanaged)(lpVtbl[21]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Data([NativeTypeName("IStream **")] IStream** pVal) + { + return ((delegate* unmanaged)(lpVtbl[22]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_Data([NativeTypeName("IStream *")] IStream* newVal) + { + return ((delegate* unmanaged)(lpVtbl[23]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FsiNamedStreams([NativeTypeName("IFsiNamedStreams **")] IFsiNamedStreams** streams) + { + return ((delegate* unmanaged)(lpVtbl[24]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), streams); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsNamedStream([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[25]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int AddStream([NativeTypeName("BSTR")] ushort* name, [NativeTypeName("IStream *")] IStream* streamData) + { + return ((delegate* unmanaged)(lpVtbl[26]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), name, streamData); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int RemoveStream([NativeTypeName("BSTR")] ushort* name) + { + return ((delegate* unmanaged)(lpVtbl[27]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), name); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsRealTime([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[28]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsRealTime([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[29]))((IFsiFileItem2*)Unsafe.AsPointer(ref this), newVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiItem.cs b/sources/Interop/Windows/um/imapi2fs/IFsiItem.cs new file mode 100644 index 0000000000..cff223da48 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiItem.cs @@ -0,0 +1,151 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD9-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IFsiItem : IDispatch")] + public unsafe partial struct IFsiItem + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiItem*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiItem*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiItem*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiItem*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiItem*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Name([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FullPath([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_CreationTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_CreationTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastAccessedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastAccessedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IFsiItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastModifiedTime([NativeTypeName("DATE *")] double* pVal) + { + return ((delegate* unmanaged)(lpVtbl[13]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_LastModifiedTime([NativeTypeName("DATE")] double newVal) + { + return ((delegate* unmanaged)(lpVtbl[14]))((IFsiItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_IsHidden([NativeTypeName("VARIANT_BOOL *")] short* pVal) + { + return ((delegate* unmanaged)(lpVtbl[15]))((IFsiItem*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int put_IsHidden([NativeTypeName("VARIANT_BOOL")] short newVal) + { + return ((delegate* unmanaged)(lpVtbl[16]))((IFsiItem*)Unsafe.AsPointer(ref this), newVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemName(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[17]))((IFsiItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int FileSystemPath(FsiFileSystems fileSystem, [NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[18]))((IFsiItem*)Unsafe.AsPointer(ref this), fileSystem, pVal); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IFsiNamedStreams.cs b/sources/Interop/Windows/um/imapi2fs/IFsiNamedStreams.cs new file mode 100644 index 0000000000..77b2fb295e --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IFsiNamedStreams.cs @@ -0,0 +1,95 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("ED79BA56-5294-4250-8D46-F9AECEE23459")] + [NativeTypeName("struct IFsiNamedStreams : IDispatch")] + public unsafe partial struct IFsiNamedStreams + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get__NewEnum([NativeTypeName("IEnumVARIANT **")] IEnumVARIANT** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Item([NativeTypeName("LONG")] int index, [NativeTypeName("IFsiFileItem2 **")] IFsiFileItem2** item) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), index, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Count([NativeTypeName("LONG *")] int* count) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EnumNamedStreams([NativeTypeName("IEnumFsiItems **")] IEnumFsiItems** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IFsiNamedStreams*)Unsafe.AsPointer(ref this), NewEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IIsoImageManager.cs b/sources/Interop/Windows/um/imapi2fs/IIsoImageManager.cs new file mode 100644 index 0000000000..310c7bd291 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IIsoImageManager.cs @@ -0,0 +1,102 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("6CA38BE5-FBBB-4800-95A1-A438865EB0D4")] + [NativeTypeName("struct IIsoImageManager : IDispatch")] + public unsafe partial struct IIsoImageManager + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IIsoImageManager*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IIsoImageManager*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IIsoImageManager*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IIsoImageManager*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IIsoImageManager*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IIsoImageManager*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IIsoImageManager*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Path([NativeTypeName("BSTR *")] ushort** pVal) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IIsoImageManager*)Unsafe.AsPointer(ref this), pVal); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Stream([NativeTypeName("IStream **")] IStream** data) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IIsoImageManager*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetPath([NativeTypeName("BSTR")] ushort* Val) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IIsoImageManager*)Unsafe.AsPointer(ref this), Val); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int SetStream([NativeTypeName("IStream *")] IStream* data) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IIsoImageManager*)Unsafe.AsPointer(ref this), data); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Validate() + { + return ((delegate* unmanaged)(lpVtbl[11]))((IIsoImageManager*)Unsafe.AsPointer(ref this)); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IProgressItem.cs b/sources/Interop/Windows/um/imapi2fs/IProgressItem.cs new file mode 100644 index 0000000000..b746740cd8 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IProgressItem.cs @@ -0,0 +1,95 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD5-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IProgressItem : IDispatch")] + public unsafe partial struct IProgressItem + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IProgressItem*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IProgressItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IProgressItem*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IProgressItem*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IProgressItem*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IProgressItem*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IProgressItem*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Description([NativeTypeName("BSTR *")] ushort** desc) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IProgressItem*)Unsafe.AsPointer(ref this), desc); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_FirstBlock([NativeTypeName("ULONG *")] uint* block) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IProgressItem*)Unsafe.AsPointer(ref this), block); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_LastBlock([NativeTypeName("ULONG *")] uint* block) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IProgressItem*)Unsafe.AsPointer(ref this), block); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_BlockCount([NativeTypeName("ULONG *")] uint* blocks) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IProgressItem*)Unsafe.AsPointer(ref this), blocks); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/IProgressItems.cs b/sources/Interop/Windows/um/imapi2fs/IProgressItems.cs new file mode 100644 index 0000000000..1413e26538 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/IProgressItems.cs @@ -0,0 +1,109 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FD7-975B-59BE-A960-9A2A262853A5")] + [NativeTypeName("struct IProgressItems : IDispatch")] + public unsafe partial struct IProgressItems + { + public void** lpVtbl; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int QueryInterface([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("void **")] void** ppvObject) + { + return ((delegate* unmanaged)(lpVtbl[0]))((IProgressItems*)Unsafe.AsPointer(ref this), riid, ppvObject); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint AddRef() + { + return ((delegate* unmanaged)(lpVtbl[1]))((IProgressItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("ULONG")] + public uint Release() + { + return ((delegate* unmanaged)(lpVtbl[2]))((IProgressItems*)Unsafe.AsPointer(ref this)); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfoCount([NativeTypeName("UINT *")] uint* pctinfo) + { + return ((delegate* unmanaged)(lpVtbl[3]))((IProgressItems*)Unsafe.AsPointer(ref this), pctinfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetTypeInfo([NativeTypeName("UINT")] uint iTInfo, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("ITypeInfo **")] ITypeInfo** ppTInfo) + { + return ((delegate* unmanaged)(lpVtbl[4]))((IProgressItems*)Unsafe.AsPointer(ref this), iTInfo, lcid, ppTInfo); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int GetIDsOfNames([NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LPOLESTR *")] ushort** rgszNames, [NativeTypeName("UINT")] uint cNames, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("DISPID *")] int* rgDispId) + { + return ((delegate* unmanaged)(lpVtbl[5]))((IProgressItems*)Unsafe.AsPointer(ref this), riid, rgszNames, cNames, lcid, rgDispId); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int Invoke([NativeTypeName("DISPID")] int dispIdMember, [NativeTypeName("const IID &")] Guid* riid, [NativeTypeName("LCID")] uint lcid, [NativeTypeName("WORD")] ushort wFlags, [NativeTypeName("DISPPARAMS *")] DISPPARAMS* pDispParams, [NativeTypeName("VARIANT *")] VARIANT* pVarResult, [NativeTypeName("EXCEPINFO *")] EXCEPINFO* pExcepInfo, [NativeTypeName("UINT *")] uint* puArgErr) + { + return ((delegate* unmanaged)(lpVtbl[6]))((IProgressItems*)Unsafe.AsPointer(ref this), dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get__NewEnum([NativeTypeName("IEnumVARIANT **")] IEnumVARIANT** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[7]))((IProgressItems*)Unsafe.AsPointer(ref this), NewEnum); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Item([NativeTypeName("long")] int Index, [NativeTypeName("IProgressItem **")] IProgressItem** item) + { + return ((delegate* unmanaged)(lpVtbl[8]))((IProgressItems*)Unsafe.AsPointer(ref this), Index, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_Count([NativeTypeName("long *")] int* Count) + { + return ((delegate* unmanaged)(lpVtbl[9]))((IProgressItems*)Unsafe.AsPointer(ref this), Count); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ProgressItemFromBlock([NativeTypeName("ULONG")] uint block, [NativeTypeName("IProgressItem **")] IProgressItem** item) + { + return ((delegate* unmanaged)(lpVtbl[10]))((IProgressItems*)Unsafe.AsPointer(ref this), block, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int ProgressItemFromDescription([NativeTypeName("BSTR")] ushort* description, [NativeTypeName("IProgressItem **")] IProgressItem** item) + { + return ((delegate* unmanaged)(lpVtbl[11]))((IProgressItems*)Unsafe.AsPointer(ref this), description, item); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + [return: NativeTypeName("HRESULT")] + public int get_EnumProgressItems([NativeTypeName("IEnumProgressItems **")] IEnumProgressItems** NewEnum) + { + return ((delegate* unmanaged)(lpVtbl[12]))((IProgressItems*)Unsafe.AsPointer(ref this), NewEnum); + } + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/MsftFileSystemImage.cs b/sources/Interop/Windows/um/imapi2fs/MsftFileSystemImage.cs new file mode 100644 index 0000000000..df1a8e9a89 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/MsftFileSystemImage.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FC5-975B-59BE-A960-9A2A262853A5")] + public partial struct MsftFileSystemImage + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/MsftIsoImageManager.cs b/sources/Interop/Windows/um/imapi2fs/MsftIsoImageManager.cs new file mode 100644 index 0000000000..700761b72d --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/MsftIsoImageManager.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("CEEE3B62-8F56-4056-869B-EF16917E3EFC")] + public partial struct MsftIsoImageManager + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/PlatformId.cs b/sources/Interop/Windows/um/imapi2fs/PlatformId.cs new file mode 100644 index 0000000000..59e49df0d5 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/PlatformId.cs @@ -0,0 +1,15 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +namespace TerraFX.Interop +{ + public enum PlatformId + { + PlatformX86 = 0, + PlatformPowerPC = 1, + PlatformMac = 2, + PlatformEFI = 0xef, + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/ProgressItem.cs b/sources/Interop/Windows/um/imapi2fs/ProgressItem.cs new file mode 100644 index 0000000000..764dd181d4 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/ProgressItem.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FCB-975B-59BE-A960-9A2A262853A5")] + public partial struct ProgressItem + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/ProgressItems.cs b/sources/Interop/Windows/um/imapi2fs/ProgressItems.cs new file mode 100644 index 0000000000..f9d15cdeaa --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/ProgressItems.cs @@ -0,0 +1,14 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System.Runtime.InteropServices; + +namespace TerraFX.Interop +{ + [Guid("2C941FC9-975B-59BE-A960-9A2A262853A5")] + public partial struct ProgressItems + { + } +} diff --git a/sources/Interop/Windows/um/imapi2fs/Windows.cs b/sources/Interop/Windows/um/imapi2fs/Windows.cs new file mode 100644 index 0000000000..3afad3e619 --- /dev/null +++ b/sources/Interop/Windows/um/imapi2fs/Windows.cs @@ -0,0 +1,99 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using System; + +namespace TerraFX.Interop +{ + public static partial class Windows + { + [NativeTypeName("#define IMAPI2FS_BOOT_ENTRY_COUNT_MAX 32")] + public const int IMAPI2FS_BOOT_ENTRY_COUNT_MAX = 32; + + [NativeTypeName("#define DISPID_DFILESYSTEMIMAGEEVENTS_UPDATE 0x100")] + public const int DISPID_DFILESYSTEMIMAGEEVENTS_UPDATE = 0x100; + + [NativeTypeName("#define DISPID_DFILESYSTEMIMAGEIMPORTEVENTS_UPDATEIMPORT 0x101")] + public const int DISPID_DFILESYSTEMIMAGEIMPORTEVENTS_UPDATEIMPORT = 0x101; + + [NativeTypeName("#define IMAPI2FS_MajorVersion 1")] + public const int IMAPI2FS_MajorVersion = 1; + + [NativeTypeName("#define IMAPI2FS_MinorVersion 0")] + public const int IMAPI2FS_MinorVersion = 0; + + [NativeTypeName("#define IMAPI2FS_FullVersion_STR \"1.0\"")] + public static ReadOnlySpan IMAPI2FS_FullVersion_STR => new byte[] { 0x31, 0x2E, 0x30, 0x00 }; + + [NativeTypeName("#define IMAPI2FS_FullVersion_WSTR L\"1.0\"")] + public const string IMAPI2FS_FullVersion_WSTR = "1.0"; + + public static readonly Guid IID_IBootOptions = new Guid(0x2C941FD4, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IProgressItem = new Guid(0x2C941FD5, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IEnumProgressItems = new Guid(0x2C941FD6, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IProgressItems = new Guid(0x2C941FD7, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFileSystemImageResult = new Guid(0x2C941FD8, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFileSystemImageResult2 = new Guid(0xB507CA29, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid IID_IFsiItem = new Guid(0x2C941FD9, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IEnumFsiItems = new Guid(0x2C941FDA, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFsiFileItem = new Guid(0x2C941FDB, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFsiFileItem2 = new Guid(0x199D0C19, 0x11E1, 0x40EB, 0x8E, 0xC2, 0xC8, 0xC8, 0x22, 0xA0, 0x77, 0x92); + + public static readonly Guid IID_IFsiNamedStreams = new Guid(0xED79BA56, 0x5294, 0x4250, 0x8D, 0x46, 0xF9, 0xAE, 0xCE, 0xE2, 0x34, 0x59); + + public static readonly Guid IID_IFsiDirectoryItem = new Guid(0x2C941FDC, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFsiDirectoryItem2 = new Guid(0xF7FB4B9B, 0x6D96, 0x4D7B, 0x91, 0x15, 0x20, 0x1B, 0x14, 0x48, 0x11, 0xEF); + + public static readonly Guid IID_IFileSystemImage = new Guid(0x2C941FE1, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_IFileSystemImage2 = new Guid(0xD7644B2C, 0x1537, 0x4767, 0xB6, 0x2F, 0xF1, 0x38, 0x7B, 0x02, 0xDD, 0xFD); + + public static readonly Guid IID_IFileSystemImage3 = new Guid(0x7CFF842C, 0x7E97, 0x4807, 0x83, 0x04, 0x91, 0x0D, 0xD8, 0xF7, 0xC0, 0x51); + + public static readonly Guid IID_DFileSystemImageEvents = new Guid(0x2C941FDF, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid IID_DFileSystemImageImportEvents = new Guid(0xD25C30F9, 0x4087, 0x4366, 0x9E, 0x24, 0xE5, 0x5B, 0xE2, 0x86, 0x42, 0x4B); + + public static readonly Guid IID_IIsoImageManager = new Guid(0x6CA38BE5, 0xFBBB, 0x4800, 0x95, 0xA1, 0xA4, 0x38, 0x86, 0x5E, 0xB0, 0xD4); + + public static readonly Guid CLSID_BootOptions = new Guid(0x2C941FCE, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_FsiStream = new Guid(0x2C941FCD, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_FileSystemImageResult = new Guid(0x2C941FCC, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_ProgressItem = new Guid(0x2C941FCB, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_EnumProgressItems = new Guid(0x2C941FCA, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_ProgressItems = new Guid(0x2C941FC9, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_FsiDirectoryItem = new Guid(0x2C941FC8, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_FsiFileItem = new Guid(0x2C941FC7, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_EnumFsiItems = new Guid(0x2C941FC6, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_FsiNamedStreams = new Guid(0xC6B6F8ED, 0x6D19, 0x44B4, 0xB5, 0x39, 0xB1, 0x59, 0xB7, 0x93, 0xA3, 0x2D); + + public static readonly Guid CLSID_MsftFileSystemImage = new Guid(0x2C941FC5, 0x975B, 0x59BE, 0xA9, 0x60, 0x9A, 0x2A, 0x26, 0x28, 0x53, 0xA5); + + public static readonly Guid CLSID_MsftIsoImageManager = new Guid(0xCEEE3B62, 0x8F56, 0x4056, 0x86, 0x9B, 0xEF, 0x16, 0x91, 0x7E, 0x3E, 0xFC); + + public static readonly Guid CLSID_BlockRange = new Guid(0xB507CA27, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + + public static readonly Guid CLSID_BlockRangeList = new Guid(0xB507CA28, 0x2204, 0x11DD, 0x96, 0x6A, 0x00, 0x1A, 0xA0, 0x1B, 0xBC, 0x58); + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/BlockRangeListTests.cs b/tests/Interop/Windows/um/imapi2fs/BlockRangeListTests.cs new file mode 100644 index 0000000000..2002101a89 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/BlockRangeListTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class BlockRangeListTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(BlockRangeList).GUID, Is.EqualTo(CLSID_BlockRangeList )); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(BlockRangeList))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(BlockRangeList).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(BlockRangeList), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/BlockRangeTests.cs b/tests/Interop/Windows/um/imapi2fs/BlockRangeTests.cs new file mode 100644 index 0000000000..390ad6d228 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/BlockRangeTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class BlockRangeTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(BlockRange).GUID, Is.EqualTo(CLSID_BlockRange)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(BlockRange))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(BlockRange).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(BlockRange), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/BootOptionsTests.cs b/tests/Interop/Windows/um/imapi2fs/BootOptionsTests.cs new file mode 100644 index 0000000000..a710d5b033 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/BootOptionsTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class BootOptionsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(BootOptions).GUID, Is.EqualTo(CLSID_BootOptions)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(BootOptions))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(BootOptions).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(BootOptions), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/DFileSystemImageEventsTests.cs b/tests/Interop/Windows/um/imapi2fs/DFileSystemImageEventsTests.cs new file mode 100644 index 0000000000..bac7d7c3ec --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/DFileSystemImageEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DFileSystemImageEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DFileSystemImageEvents).GUID, Is.EqualTo(IID_DFileSystemImageEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DFileSystemImageEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DFileSystemImageEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DFileSystemImageEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DFileSystemImageEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/DFileSystemImageImportEventsTests.cs b/tests/Interop/Windows/um/imapi2fs/DFileSystemImageImportEventsTests.cs new file mode 100644 index 0000000000..de75fb4143 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/DFileSystemImageImportEventsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class DFileSystemImageImportEventsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(DFileSystemImageImportEvents).GUID, Is.EqualTo(IID_DFileSystemImageImportEvents)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(DFileSystemImageImportEvents))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(DFileSystemImageImportEvents).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(DFileSystemImageImportEvents), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(DFileSystemImageImportEvents), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/EnumFsiItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/EnumFsiItemsTests.cs new file mode 100644 index 0000000000..cece198f96 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/EnumFsiItemsTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class EnumFsiItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(EnumFsiItems).GUID, Is.EqualTo(CLSID_EnumFsiItems )); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(EnumFsiItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(EnumFsiItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(EnumFsiItems), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/EnumProgressItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/EnumProgressItemsTests.cs new file mode 100644 index 0000000000..3725f7d4d7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/EnumProgressItemsTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class EnumProgressItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(EnumProgressItems).GUID, Is.EqualTo(CLSID_EnumProgressItems)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(EnumProgressItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(EnumProgressItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(EnumProgressItems), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/FileSystemImageResultTests.cs b/tests/Interop/Windows/um/imapi2fs/FileSystemImageResultTests.cs new file mode 100644 index 0000000000..b643f0c9b1 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/FileSystemImageResultTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class FileSystemImageResultTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(FileSystemImageResult).GUID, Is.EqualTo(CLSID_FileSystemImageResult)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(FileSystemImageResult))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(FileSystemImageResult).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(FileSystemImageResult), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/FsiDirectoryItemTests.cs b/tests/Interop/Windows/um/imapi2fs/FsiDirectoryItemTests.cs new file mode 100644 index 0000000000..eb2ca0754b --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/FsiDirectoryItemTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class FsiDirectoryItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(FsiDirectoryItem).GUID, Is.EqualTo(CLSID_FsiDirectoryItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(FsiDirectoryItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(FsiDirectoryItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(FsiDirectoryItem), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/FsiFileItemTests.cs b/tests/Interop/Windows/um/imapi2fs/FsiFileItemTests.cs new file mode 100644 index 0000000000..93282f08f6 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/FsiFileItemTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class FsiFileItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(FsiFileItem).GUID, Is.EqualTo(CLSID_FsiFileItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(FsiFileItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(FsiFileItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(FsiFileItem), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/FsiNamedStreamsTests.cs b/tests/Interop/Windows/um/imapi2fs/FsiNamedStreamsTests.cs new file mode 100644 index 0000000000..a32d550c11 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/FsiNamedStreamsTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class FsiNamedStreamsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(FsiNamedStreams).GUID, Is.EqualTo(CLSID_FsiNamedStreams)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(FsiNamedStreams))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(FsiNamedStreams).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(FsiNamedStreams), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/FsiStreamTests.cs b/tests/Interop/Windows/um/imapi2fs/FsiStreamTests.cs new file mode 100644 index 0000000000..9eecfd2f30 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/FsiStreamTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class FsiStreamTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(FsiStream).GUID, Is.EqualTo(CLSID_FsiStream)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(FsiStream))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(FsiStream).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(FsiStream), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IBootOptionsTests.cs b/tests/Interop/Windows/um/imapi2fs/IBootOptionsTests.cs new file mode 100644 index 0000000000..106eedf7eb --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IBootOptionsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IBootOptionsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IBootOptions).GUID, Is.EqualTo(IID_IBootOptions)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IBootOptions))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IBootOptions).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IBootOptions), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IBootOptions), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IEnumFsiItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/IEnumFsiItemsTests.cs new file mode 100644 index 0000000000..5f36acda24 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IEnumFsiItemsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IEnumFsiItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IEnumFsiItems).GUID, Is.EqualTo(IID_IEnumFsiItems)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IEnumFsiItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IEnumFsiItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IEnumFsiItems), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IEnumFsiItems), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IEnumProgressItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/IEnumProgressItemsTests.cs new file mode 100644 index 0000000000..07e685e6ac --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IEnumProgressItemsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IEnumProgressItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IEnumProgressItems).GUID, Is.EqualTo(IID_IEnumProgressItems)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IEnumProgressItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IEnumProgressItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IEnumProgressItems), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IEnumProgressItems), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFileSystemImage2Tests.cs b/tests/Interop/Windows/um/imapi2fs/IFileSystemImage2Tests.cs new file mode 100644 index 0000000000..f2f2b2db27 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFileSystemImage2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFileSystemImage2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFileSystemImage2).GUID, Is.EqualTo(IID_IFileSystemImage2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFileSystemImage2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFileSystemImage2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFileSystemImage2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFileSystemImage2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFileSystemImage3Tests.cs b/tests/Interop/Windows/um/imapi2fs/IFileSystemImage3Tests.cs new file mode 100644 index 0000000000..b48211fde7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFileSystemImage3Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFileSystemImage3Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFileSystemImage3).GUID, Is.EqualTo(IID_IFileSystemImage3)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFileSystemImage3))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFileSystemImage3).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFileSystemImage3), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFileSystemImage3), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResult2Tests.cs b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResult2Tests.cs new file mode 100644 index 0000000000..95ce605017 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResult2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFileSystemImageResult2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFileSystemImageResult2).GUID, Is.EqualTo(IID_IFileSystemImageResult2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFileSystemImageResult2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFileSystemImageResult2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFileSystemImageResult2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFileSystemImageResult2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResultTests.cs b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResultTests.cs new file mode 100644 index 0000000000..d858aef346 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageResultTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFileSystemImageResultTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFileSystemImageResult).GUID, Is.EqualTo(IID_IFileSystemImageResult)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFileSystemImageResult))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFileSystemImageResult).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFileSystemImageResult), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFileSystemImageResult), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFileSystemImageTests.cs b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageTests.cs new file mode 100644 index 0000000000..7d63c19e56 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFileSystemImageTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFileSystemImageTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFileSystemImage).GUID, Is.EqualTo(IID_IFileSystemImage)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFileSystemImage))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFileSystemImage).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFileSystemImage), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFileSystemImage), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2Tests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2Tests.cs new file mode 100644 index 0000000000..78c141b49c --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItem2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiDirectoryItem2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiDirectoryItem2).GUID, Is.EqualTo(IID_IFsiDirectoryItem2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiDirectoryItem2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiDirectoryItem2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiDirectoryItem2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiDirectoryItem2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItemTests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItemTests.cs new file mode 100644 index 0000000000..28a9b70b5d --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiDirectoryItemTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiDirectoryItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiDirectoryItem).GUID, Is.EqualTo(IID_IFsiDirectoryItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiDirectoryItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiDirectoryItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiDirectoryItem), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiDirectoryItem), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiFileItem2Tests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiFileItem2Tests.cs new file mode 100644 index 0000000000..2062cfb2b6 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiFileItem2Tests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiFileItem2Tests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiFileItem2).GUID, Is.EqualTo(IID_IFsiFileItem2)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiFileItem2))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiFileItem2).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiFileItem2), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiFileItem2), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiFileItemTests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiFileItemTests.cs new file mode 100644 index 0000000000..66e19f8e48 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiFileItemTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiFileItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiFileItem).GUID, Is.EqualTo(IID_IFsiFileItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiFileItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiFileItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiFileItem), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiFileItem), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiItemTests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiItemTests.cs new file mode 100644 index 0000000000..f475c91509 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiItemTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiItem).GUID, Is.EqualTo(IID_IFsiItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiItem), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiItem), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IFsiNamedStreamsTests.cs b/tests/Interop/Windows/um/imapi2fs/IFsiNamedStreamsTests.cs new file mode 100644 index 0000000000..015e8ee1c3 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IFsiNamedStreamsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IFsiNamedStreamsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IFsiNamedStreams).GUID, Is.EqualTo(IID_IFsiNamedStreams)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IFsiNamedStreams))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IFsiNamedStreams).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IFsiNamedStreams), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IFsiNamedStreams), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IIsoImageManagerTests.cs b/tests/Interop/Windows/um/imapi2fs/IIsoImageManagerTests.cs new file mode 100644 index 0000000000..ff2bce4bab --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IIsoImageManagerTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IIsoImageManagerTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IIsoImageManager).GUID, Is.EqualTo(IID_IIsoImageManager)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IIsoImageManager))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IIsoImageManager).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IIsoImageManager), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IIsoImageManager), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IProgressItemTests.cs b/tests/Interop/Windows/um/imapi2fs/IProgressItemTests.cs new file mode 100644 index 0000000000..08ad073d4c --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IProgressItemTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IProgressItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IProgressItem).GUID, Is.EqualTo(IID_IProgressItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IProgressItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IProgressItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IProgressItem), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IProgressItem), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/IProgressItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/IProgressItemsTests.cs new file mode 100644 index 0000000000..92e12fbd5e --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/IProgressItemsTests.cs @@ -0,0 +1,51 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class IProgressItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(IProgressItems).GUID, Is.EqualTo(IID_IProgressItems)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(IProgressItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(IProgressItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + if (Environment.Is64BitProcess) + { + Assert.That(sizeof(IProgressItems), Is.EqualTo(8)); + } + else + { + Assert.That(sizeof(IProgressItems), Is.EqualTo(4)); + } + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/MsftFileSystemImageTests.cs b/tests/Interop/Windows/um/imapi2fs/MsftFileSystemImageTests.cs new file mode 100644 index 0000000000..ca51078754 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/MsftFileSystemImageTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftFileSystemImageTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftFileSystemImage).GUID, Is.EqualTo(CLSID_MsftFileSystemImage)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftFileSystemImage))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftFileSystemImage).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftFileSystemImage), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/MsftIsoImageManagerTests.cs b/tests/Interop/Windows/um/imapi2fs/MsftIsoImageManagerTests.cs new file mode 100644 index 0000000000..c0f3f6cad7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/MsftIsoImageManagerTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class MsftIsoImageManagerTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(MsftIsoImageManager).GUID, Is.EqualTo(CLSID_MsftIsoImageManager )); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(MsftIsoImageManager))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(MsftIsoImageManager).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(MsftIsoImageManager), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/ProgressItemTests.cs b/tests/Interop/Windows/um/imapi2fs/ProgressItemTests.cs new file mode 100644 index 0000000000..3f8a7095c7 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/ProgressItemTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class ProgressItemTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(ProgressItem).GUID, Is.EqualTo(CLSID_ProgressItem)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(ProgressItem))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(ProgressItem).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(ProgressItem), Is.EqualTo(1)); + } + } +} diff --git a/tests/Interop/Windows/um/imapi2fs/ProgressItemsTests.cs b/tests/Interop/Windows/um/imapi2fs/ProgressItemsTests.cs new file mode 100644 index 0000000000..141cfe38c6 --- /dev/null +++ b/tests/Interop/Windows/um/imapi2fs/ProgressItemsTests.cs @@ -0,0 +1,44 @@ +// Copyright © Tanner Gooding and Contributors. Licensed under the MIT License (MIT). See License.md in the repository root for more information. + +// Ported from um/imapi2fs.h in the Windows SDK for Windows 10.0.19041.0 +// Original source is Copyright © Microsoft. All rights reserved. + +using NUnit.Framework; +using System; +using System.Runtime.InteropServices; +using static TerraFX.Interop.Windows; + +namespace TerraFX.Interop.UnitTests +{ + /// Provides validation of the struct. + public static unsafe class ProgressItemsTests + { + /// Validates that the of the struct is correct. + [Test] + public static void GuidOfTest() + { + Assert.That(typeof(ProgressItems).GUID, Is.EqualTo(CLSID_ProgressItems)); + } + + /// Validates that the struct is blittable. + [Test] + public static void IsBlittableTest() + { + Assert.That(Marshal.SizeOf(), Is.EqualTo(sizeof(ProgressItems))); + } + + /// Validates that the struct has the right . + [Test] + public static void IsLayoutSequentialTest() + { + Assert.That(typeof(ProgressItems).IsLayoutSequential, Is.True); + } + + /// Validates that the struct has the correct size. + [Test] + public static void SizeOfTest() + { + Assert.That(sizeof(ProgressItems), Is.EqualTo(1)); + } + } +}