diff --git a/NativeFileDialogs.AutoGen/nfd.cs b/NativeFileDialogs.AutoGen/nfd.cs index 575edb4..360a157 100644 --- a/NativeFileDialogs.AutoGen/nfd.cs +++ b/NativeFileDialogs.AutoGen/nfd.cs @@ -1,778 +1,778 @@ -// ---------------------------------------------------------------------------- -// -// This is autogenerated code by CppSharp. -// Do not edit this file or all your changes will be lost after re-generation. -// -// ---------------------------------------------------------------------------- -using System; -using System.Runtime.InteropServices; -using System.Security; -using __CallingConvention = global::System.Runtime.InteropServices.CallingConvention; -using __IntPtr = global::System.IntPtr; - -#pragma warning disable CS0109 // Member does not hide an inherited member; new keyword is not required - -namespace NativeFileDialogs.AutoGen -{ - public enum NfdresultT - { - NFD_ERROR = 0, - NFD_OKAY = 1, - NFD_CANCEL = 2 - } - - public unsafe partial class NfdpathsetenumT : IDisposable - { - [StructLayout(LayoutKind.Sequential, Size = 8)] - public partial struct __Internal - { - internal __IntPtr ptr; - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdpathsetenum_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] - internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); - } - - public __IntPtr __Instance { get; protected set; } - - internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = - new global::System.Collections.Concurrent.ConcurrentDictionary(); - - internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.NfdpathsetenumT managed) - { - NativeToManagedMap[native] = managed; - } - - internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.NfdpathsetenumT managed) - { - - return NativeToManagedMap.TryGetValue(native, out managed); - } - - protected bool __ownsNativeInstance; - - internal static NfdpathsetenumT __CreateInstance(__IntPtr native, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - return new NfdpathsetenumT(native.ToPointer(), skipVTables); - } - - internal static NfdpathsetenumT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - if (__TryGetNativeToManagedMapping(native, out var managed)) - return (NfdpathsetenumT)managed; - var result = __CreateInstance(native, skipVTables); - if (saveInstance) - __RecordNativeToManagedMapping(native, result); - return result; - } - - internal static NfdpathsetenumT __CreateInstance(__Internal native, bool skipVTables = false) - { - return new NfdpathsetenumT(native, skipVTables); - } - - private static void* __CopyValue(__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(__Internal)); - *(__Internal*) ret = native; - return ret.ToPointer(); - } - - private NfdpathsetenumT(__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - protected NfdpathsetenumT(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new __IntPtr(native); - } - - public NfdpathsetenumT() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - public NfdpathsetenumT(global::NativeFileDialogs.AutoGen.NfdpathsetenumT _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - *((global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal*) _0.__Instance); - } - - public void Dispose() - { - Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); - } - - partial void DisposePartial(bool disposing); - - internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) - { - if (__Instance == IntPtr.Zero) - return; - NativeToManagedMap.TryRemove(__Instance, out _); - DisposePartial(disposing); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - __Instance = IntPtr.Zero; - } - - public __IntPtr Ptr - { - get - { - return ((__Internal*)__Instance)->ptr; - } - - set - { - ((__Internal*)__Instance)->ptr = (__IntPtr) value; - } - } - } - - public unsafe partial class NfdnfilteritemT : IDisposable - { - [StructLayout(LayoutKind.Sequential, Size = 16)] - public partial struct __Internal - { - internal __IntPtr name; - internal __IntPtr spec; - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdnfilteritem_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] - internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); - } - - public __IntPtr __Instance { get; protected set; } - - internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = - new global::System.Collections.Concurrent.ConcurrentDictionary(); - - internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.NfdnfilteritemT managed) - { - NativeToManagedMap[native] = managed; - } - - internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.NfdnfilteritemT managed) - { - - return NativeToManagedMap.TryGetValue(native, out managed); - } - - private bool __name_OwnsNativeMemory = false; - private bool __spec_OwnsNativeMemory = false; - protected bool __ownsNativeInstance; - - internal static NfdnfilteritemT __CreateInstance(__IntPtr native, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - return new NfdnfilteritemT(native.ToPointer(), skipVTables); - } - - internal static NfdnfilteritemT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - if (__TryGetNativeToManagedMapping(native, out var managed)) - return (NfdnfilteritemT)managed; - var result = __CreateInstance(native, skipVTables); - if (saveInstance) - __RecordNativeToManagedMapping(native, result); - return result; - } - - internal static NfdnfilteritemT __CreateInstance(__Internal native, bool skipVTables = false) - { - return new NfdnfilteritemT(native, skipVTables); - } - - private static void* __CopyValue(__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(__Internal)); - *(__Internal*) ret = native; - return ret.ToPointer(); - } - - private NfdnfilteritemT(__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - protected NfdnfilteritemT(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new __IntPtr(native); - } - - public NfdnfilteritemT() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - public NfdnfilteritemT(global::NativeFileDialogs.AutoGen.NfdnfilteritemT _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - *((global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) _0.__Instance); - if (_0.__name_OwnsNativeMemory) - this.Name = _0.Name; - if (_0.__spec_OwnsNativeMemory) - this.Spec = _0.Spec; - } - - public void Dispose() - { - Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); - } - - partial void DisposePartial(bool disposing); - - internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) - { - if (__Instance == IntPtr.Zero) - return; - NativeToManagedMap.TryRemove(__Instance, out _); - DisposePartial(disposing); - if (__name_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->name); - if (__spec_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - __Instance = IntPtr.Zero; - } - - public string Name - { - get - { - return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.Unicode, ((__Internal*)__Instance)->name); - } - - set - { - if (__name_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->name); - __name_OwnsNativeMemory = true; - if (value == null) - { - ((__Internal*)__Instance)->name = global::System.IntPtr.Zero; - return; - } - var __bytePtr0 = Marshal.StringToHGlobalUni(value); - ((__Internal*)__Instance)->name = (__IntPtr) __bytePtr0; - } - } - - public string Spec - { - get - { - return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.Unicode, ((__Internal*)__Instance)->spec); - } - - set - { - if (__spec_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); - __spec_OwnsNativeMemory = true; - if (value == null) - { - ((__Internal*)__Instance)->spec = global::System.IntPtr.Zero; - return; - } - var __bytePtr0 = Marshal.StringToHGlobalUni(value); - ((__Internal*)__Instance)->spec = (__IntPtr) __bytePtr0; - } - } - } - - public unsafe partial class Nfdu8filteritemT : IDisposable - { - [StructLayout(LayoutKind.Sequential, Size = 16)] - public partial struct __Internal - { - internal __IntPtr name; - internal __IntPtr spec; - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdu8filteritem_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] - internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); - } - - public __IntPtr __Instance { get; protected set; } - - internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = - new global::System.Collections.Concurrent.ConcurrentDictionary(); - - internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT managed) - { - NativeToManagedMap[native] = managed; - } - - internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.Nfdu8filteritemT managed) - { - - return NativeToManagedMap.TryGetValue(native, out managed); - } - - private bool __name_OwnsNativeMemory = false; - private bool __spec_OwnsNativeMemory = false; - protected bool __ownsNativeInstance; - - internal static Nfdu8filteritemT __CreateInstance(__IntPtr native, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - return new Nfdu8filteritemT(native.ToPointer(), skipVTables); - } - - internal static Nfdu8filteritemT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) - { - if (native == __IntPtr.Zero) - return null; - if (__TryGetNativeToManagedMapping(native, out var managed)) - return (Nfdu8filteritemT)managed; - var result = __CreateInstance(native, skipVTables); - if (saveInstance) - __RecordNativeToManagedMapping(native, result); - return result; - } - - internal static Nfdu8filteritemT __CreateInstance(__Internal native, bool skipVTables = false) - { - return new Nfdu8filteritemT(native, skipVTables); - } - - private static void* __CopyValue(__Internal native) - { - var ret = Marshal.AllocHGlobal(sizeof(__Internal)); - *(__Internal*) ret = native; - return ret.ToPointer(); - } - - private Nfdu8filteritemT(__Internal native, bool skipVTables = false) - : this(__CopyValue(native), skipVTables) - { - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - protected Nfdu8filteritemT(void* native, bool skipVTables = false) - { - if (native == null) - return; - __Instance = new __IntPtr(native); - } - - public Nfdu8filteritemT() - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - } - - public Nfdu8filteritemT(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT _0) - { - __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal)); - __ownsNativeInstance = true; - __RecordNativeToManagedMapping(__Instance, this); - *((global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) _0.__Instance); - if (_0.__name_OwnsNativeMemory) - this.Name = _0.Name; - if (_0.__spec_OwnsNativeMemory) - this.Spec = _0.Spec; - } - - public void Dispose() - { - Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); - } - - partial void DisposePartial(bool disposing); - - internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) - { - if (__Instance == IntPtr.Zero) - return; - NativeToManagedMap.TryRemove(__Instance, out _); - DisposePartial(disposing); - if (__name_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->name); - if (__spec_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); - if (__ownsNativeInstance) - Marshal.FreeHGlobal(__Instance); - __Instance = IntPtr.Zero; - } - - public string Name - { - get - { - return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ((__Internal*)__Instance)->name); - } - - set - { - if (__name_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->name); - __name_OwnsNativeMemory = true; - if (value == null) - { - ((__Internal*)__Instance)->name = global::System.IntPtr.Zero; - return; - } - var __bytes0 = global::System.Text.Encoding.UTF8.GetBytes(value); - var __bytePtr0 = Marshal.AllocHGlobal(__bytes0.Length + 1); - Marshal.Copy(__bytes0, 0, __bytePtr0, __bytes0.Length); - Marshal.WriteByte(__bytePtr0 + __bytes0.Length, 0); - ((__Internal*)__Instance)->name = (__IntPtr) __bytePtr0; - } - } - - public string Spec - { - get - { - return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ((__Internal*)__Instance)->spec); - } - - set - { - if (__spec_OwnsNativeMemory) - Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); - __spec_OwnsNativeMemory = true; - if (value == null) - { - ((__Internal*)__Instance)->spec = global::System.IntPtr.Zero; - return; - } - var __bytes0 = global::System.Text.Encoding.UTF8.GetBytes(value); - var __bytePtr0 = Marshal.AllocHGlobal(__bytes0.Length + 1); - Marshal.Copy(__bytes0, 0, __bytePtr0, __bytes0.Length); - Marshal.WriteByte(__bytePtr0 + __bytes0.Length, 0); - ((__Internal*)__Instance)->spec = (__IntPtr) __bytePtr0; - } - } - } - - public unsafe partial class nfd - { - public partial struct __Internal - { - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_FreePathN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_FreePathN(char* filePath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_Init", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_Init(); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_Quit", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_Quit(); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogN(char** outPath, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogMultipleN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleN(__IntPtr* outPaths, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_SaveDialogN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogN(char** outPath, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath, [MarshalAs(UnmanagedType.LPWStr)] string defaultName); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PickFolderN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderN(char** outPath, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_GetError", CallingConvention = __CallingConvention.Cdecl)] - internal static extern __IntPtr NFD_GetError(); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_ClearError", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_ClearError(); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetCount", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetCount(__IntPtr pathSet, uint* count); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetPathN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathN(__IntPtr pathSet, uint index, char** outPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetEnum", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetEnum(__IntPtr pathSet, __IntPtr outEnumerator); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_FreeEnum", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_PathSetFreeEnum(__IntPtr enumerator); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_EnumNextN", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextN(__IntPtr enumerator, char** outPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_Free", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_PathSetFree(__IntPtr pathSet); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_FreePathU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern void NFD_FreePathU8(sbyte* outPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogU8(sbyte** outPath, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogMultipleU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleU8(__IntPtr* outPaths, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_SaveDialogU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogU8(sbyte** outPath, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultName); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PickFolderU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderU8(sbyte** outPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetPathU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathU8(__IntPtr pathSet, uint index, sbyte** outPath); - - [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_EnumNextU8", CallingConvention = __CallingConvention.Cdecl)] - internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextU8(__IntPtr enumerator, sbyte** outPath); - } - - public static void NFD_FreePathN(char* filePath) - { - __Internal.NFD_FreePathN(filePath); - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_Init() - { - var ___ret = __Internal.NFD_Init(); - return ___ret; - } - - public static void NFD_Quit() - { - __Internal.NFD_Quit(); - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogN(char** outPath, Span filterList, uint filterCount, string defaultPath) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_OpenDialogN(outPath, __arg1, filterCount, defaultPath); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleN(__IntPtr* outPaths, Span filterList, uint filterCount, string defaultPath) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_OpenDialogMultipleN(outPaths, __arg1, filterCount, defaultPath); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogN(char** outPath, Span filterList, uint filterCount, string defaultPath, string defaultName) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_SaveDialogN(outPath, __arg1, filterCount, defaultPath, defaultName); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderN(char** outPath, string defaultPath) - { - var ___ret = __Internal.NFD_PickFolderN(outPath, defaultPath); - return ___ret; - } - - public static string NFD_GetError() - { - var ___ret = __Internal.NFD_GetError(); - return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ___ret); - } - - public static void NFD_ClearError() - { - __Internal.NFD_ClearError(); - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetCount(__IntPtr pathSet, ref uint count) - { - fixed (uint* __count1 = &count) - { - var __arg1 = __count1; - var ___ret = __Internal.NFD_PathSetGetCount(pathSet, __arg1); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathN(__IntPtr pathSet, uint index, char** outPath) - { - var ___ret = __Internal.NFD_PathSetGetPathN(pathSet, index, outPath); - return ___ret; - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetEnum(__IntPtr pathSet, global::NativeFileDialogs.AutoGen.NfdpathsetenumT outEnumerator) - { - var __arg1 = outEnumerator is null ? __IntPtr.Zero : outEnumerator.__Instance; - var ___ret = __Internal.NFD_PathSetGetEnum(pathSet, __arg1); - return ___ret; - } - - public static void NFD_PathSetFreeEnum(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator) - { - var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; - __Internal.NFD_PathSetFreeEnum(__arg0); - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextN(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator, char** outPath) - { - var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; - var ___ret = __Internal.NFD_PathSetEnumNextN(__arg0, outPath); - return ___ret; - } - - public static void NFD_PathSetFree(__IntPtr pathSet) - { - __Internal.NFD_PathSetFree(pathSet); - } - - public static void NFD_FreePathU8(sbyte* outPath) - { - __Internal.NFD_FreePathU8(outPath); - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogU8(sbyte** outPath, Span filterList, uint count, string defaultPath) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_OpenDialogU8(outPath, __arg1, count, defaultPath); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleU8(__IntPtr* outPaths, Span filterList, uint count, string defaultPath) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_OpenDialogMultipleU8(outPaths, __arg1, count, defaultPath); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogU8(sbyte** outPath, Span filterList, uint count, string defaultPath, string defaultName) - { - Span __filterList; - if (filterList == null) - __filterList = null; - else - { - __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; - for (int i = 0; i < __filterList.Length; i++) - { - var __element = filterList[i]; - __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; - } - } - fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) - { - var __arg1 = ____filterList1; - var ___ret = __Internal.NFD_SaveDialogU8(outPath, __arg1, count, defaultPath, defaultName); - return ___ret; - } - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderU8(sbyte** outPath, string defaultPath) - { - var ___ret = __Internal.NFD_PickFolderU8(outPath, defaultPath); - return ___ret; - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathU8(__IntPtr pathSet, uint index, sbyte** outPath) - { - var ___ret = __Internal.NFD_PathSetGetPathU8(pathSet, index, outPath); - return ___ret; - } - - public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextU8(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator, sbyte** outPath) - { - var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; - var ___ret = __Internal.NFD_PathSetEnumNextU8(__arg0, outPath); - return ___ret; - } - } -} +// ---------------------------------------------------------------------------- +// +// This is autogenerated code by CppSharp. +// Do not edit this file or all your changes will be lost after re-generation. +// +// ---------------------------------------------------------------------------- +using System; +using System.Runtime.InteropServices; +using System.Security; +using __CallingConvention = global::System.Runtime.InteropServices.CallingConvention; +using __IntPtr = global::System.IntPtr; + +#pragma warning disable CS0109 // Member does not hide an inherited member; new keyword is not required + +namespace NativeFileDialogs.AutoGen +{ + public enum NfdresultT + { + NFD_ERROR = 0, + NFD_OKAY = 1, + NFD_CANCEL = 2 + } + + public unsafe partial class NfdpathsetenumT : IDisposable + { + [StructLayout(LayoutKind.Sequential, Size = 8)] + public partial struct __Internal + { + internal __IntPtr ptr; + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdpathsetenum_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); + } + + public __IntPtr __Instance { get; protected set; } + + internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = + new global::System.Collections.Concurrent.ConcurrentDictionary(); + + internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.NfdpathsetenumT managed) + { + NativeToManagedMap[native] = managed; + } + + internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.NfdpathsetenumT managed) + { + + return NativeToManagedMap.TryGetValue(native, out managed); + } + + protected bool __ownsNativeInstance; + + internal static NfdpathsetenumT __CreateInstance(__IntPtr native, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + return new NfdpathsetenumT(native.ToPointer(), skipVTables); + } + + internal static NfdpathsetenumT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + if (__TryGetNativeToManagedMapping(native, out var managed)) + return (NfdpathsetenumT)managed; + var result = __CreateInstance(native, skipVTables); + if (saveInstance) + __RecordNativeToManagedMapping(native, result); + return result; + } + + internal static NfdpathsetenumT __CreateInstance(__Internal native, bool skipVTables = false) + { + return new NfdpathsetenumT(native, skipVTables); + } + + private static void* __CopyValue(__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(__Internal)); + *(__Internal*) ret = native; + return ret.ToPointer(); + } + + private NfdpathsetenumT(__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + protected NfdpathsetenumT(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new __IntPtr(native); + } + + public NfdpathsetenumT() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + public NfdpathsetenumT(global::NativeFileDialogs.AutoGen.NfdpathsetenumT _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + *((global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.NfdpathsetenumT.__Internal*) _0.__Instance); + } + + public void Dispose() + { + Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); + } + + partial void DisposePartial(bool disposing); + + internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) + { + if (__Instance == IntPtr.Zero) + return; + NativeToManagedMap.TryRemove(__Instance, out _); + DisposePartial(disposing); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + __Instance = IntPtr.Zero; + } + + public __IntPtr Ptr + { + get + { + return ((__Internal*)__Instance)->ptr; + } + + set + { + ((__Internal*)__Instance)->ptr = (__IntPtr) value; + } + } + } + + public unsafe partial class NfdnfilteritemT : IDisposable + { + [StructLayout(LayoutKind.Sequential, Size = 16)] + public partial struct __Internal + { + internal __IntPtr name; + internal __IntPtr spec; + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdnfilteritem_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); + } + + public __IntPtr __Instance { get; protected set; } + + internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = + new global::System.Collections.Concurrent.ConcurrentDictionary(); + + internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.NfdnfilteritemT managed) + { + NativeToManagedMap[native] = managed; + } + + internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.NfdnfilteritemT managed) + { + + return NativeToManagedMap.TryGetValue(native, out managed); + } + + private bool __name_OwnsNativeMemory = false; + private bool __spec_OwnsNativeMemory = false; + protected bool __ownsNativeInstance; + + internal static NfdnfilteritemT __CreateInstance(__IntPtr native, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + return new NfdnfilteritemT(native.ToPointer(), skipVTables); + } + + internal static NfdnfilteritemT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + if (__TryGetNativeToManagedMapping(native, out var managed)) + return (NfdnfilteritemT)managed; + var result = __CreateInstance(native, skipVTables); + if (saveInstance) + __RecordNativeToManagedMapping(native, result); + return result; + } + + internal static NfdnfilteritemT __CreateInstance(__Internal native, bool skipVTables = false) + { + return new NfdnfilteritemT(native, skipVTables); + } + + private static void* __CopyValue(__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(__Internal)); + *(__Internal*) ret = native; + return ret.ToPointer(); + } + + private NfdnfilteritemT(__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + protected NfdnfilteritemT(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new __IntPtr(native); + } + + public NfdnfilteritemT() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + public NfdnfilteritemT(global::NativeFileDialogs.AutoGen.NfdnfilteritemT _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + *((global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) _0.__Instance); + if (_0.__name_OwnsNativeMemory) + this.Name = _0.Name; + if (_0.__spec_OwnsNativeMemory) + this.Spec = _0.Spec; + } + + public void Dispose() + { + Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); + } + + partial void DisposePartial(bool disposing); + + internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) + { + if (__Instance == IntPtr.Zero) + return; + NativeToManagedMap.TryRemove(__Instance, out _); + DisposePartial(disposing); + if (__name_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->name); + if (__spec_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + __Instance = IntPtr.Zero; + } + + public string Name + { + get + { + return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.Unicode, ((__Internal*)__Instance)->name); + } + + set + { + if (__name_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->name); + __name_OwnsNativeMemory = true; + if (value == null) + { + ((__Internal*)__Instance)->name = global::System.IntPtr.Zero; + return; + } + var __bytePtr0 = Marshal.StringToHGlobalUni(value); + ((__Internal*)__Instance)->name = (__IntPtr) __bytePtr0; + } + } + + public string Spec + { + get + { + return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.Unicode, ((__Internal*)__Instance)->spec); + } + + set + { + if (__spec_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); + __spec_OwnsNativeMemory = true; + if (value == null) + { + ((__Internal*)__Instance)->spec = global::System.IntPtr.Zero; + return; + } + var __bytePtr0 = Marshal.StringToHGlobalUni(value); + ((__Internal*)__Instance)->spec = (__IntPtr) __bytePtr0; + } + } + } + + public unsafe partial class Nfdu8filteritemT : IDisposable + { + [StructLayout(LayoutKind.Sequential, Size = 16)] + public partial struct __Internal + { + internal __IntPtr name; + internal __IntPtr spec; + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "??0nfdu8filteritem_t@@QEAA@AEBU0@@Z", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0); + } + + public __IntPtr __Instance { get; protected set; } + + internal static readonly new global::System.Collections.Concurrent.ConcurrentDictionary NativeToManagedMap = + new global::System.Collections.Concurrent.ConcurrentDictionary(); + + internal static void __RecordNativeToManagedMapping(IntPtr native, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT managed) + { + NativeToManagedMap[native] = managed; + } + + internal static bool __TryGetNativeToManagedMapping(IntPtr native, out global::NativeFileDialogs.AutoGen.Nfdu8filteritemT managed) + { + + return NativeToManagedMap.TryGetValue(native, out managed); + } + + private bool __name_OwnsNativeMemory = false; + private bool __spec_OwnsNativeMemory = false; + protected bool __ownsNativeInstance; + + internal static Nfdu8filteritemT __CreateInstance(__IntPtr native, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + return new Nfdu8filteritemT(native.ToPointer(), skipVTables); + } + + internal static Nfdu8filteritemT __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false) + { + if (native == __IntPtr.Zero) + return null; + if (__TryGetNativeToManagedMapping(native, out var managed)) + return (Nfdu8filteritemT)managed; + var result = __CreateInstance(native, skipVTables); + if (saveInstance) + __RecordNativeToManagedMapping(native, result); + return result; + } + + internal static Nfdu8filteritemT __CreateInstance(__Internal native, bool skipVTables = false) + { + return new Nfdu8filteritemT(native, skipVTables); + } + + private static void* __CopyValue(__Internal native) + { + var ret = Marshal.AllocHGlobal(sizeof(__Internal)); + *(__Internal*) ret = native; + return ret.ToPointer(); + } + + private Nfdu8filteritemT(__Internal native, bool skipVTables = false) + : this(__CopyValue(native), skipVTables) + { + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + protected Nfdu8filteritemT(void* native, bool skipVTables = false) + { + if (native == null) + return; + __Instance = new __IntPtr(native); + } + + public Nfdu8filteritemT() + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + } + + public Nfdu8filteritemT(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT _0) + { + __Instance = Marshal.AllocHGlobal(sizeof(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal)); + __ownsNativeInstance = true; + __RecordNativeToManagedMapping(__Instance, this); + *((global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __Instance) = *((global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) _0.__Instance); + if (_0.__name_OwnsNativeMemory) + this.Name = _0.Name; + if (_0.__spec_OwnsNativeMemory) + this.Spec = _0.Spec; + } + + public void Dispose() + { + Dispose(disposing: true, callNativeDtor : __ownsNativeInstance ); + } + + partial void DisposePartial(bool disposing); + + internal protected virtual void Dispose(bool disposing, bool callNativeDtor ) + { + if (__Instance == IntPtr.Zero) + return; + NativeToManagedMap.TryRemove(__Instance, out _); + DisposePartial(disposing); + if (__name_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->name); + if (__spec_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); + if (__ownsNativeInstance) + Marshal.FreeHGlobal(__Instance); + __Instance = IntPtr.Zero; + } + + public string Name + { + get + { + return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ((__Internal*)__Instance)->name); + } + + set + { + if (__name_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->name); + __name_OwnsNativeMemory = true; + if (value == null) + { + ((__Internal*)__Instance)->name = global::System.IntPtr.Zero; + return; + } + var __bytes0 = global::System.Text.Encoding.UTF8.GetBytes(value); + var __bytePtr0 = Marshal.AllocHGlobal(__bytes0.Length + 1); + Marshal.Copy(__bytes0, 0, __bytePtr0, __bytes0.Length); + Marshal.WriteByte(__bytePtr0 + __bytes0.Length, 0); + ((__Internal*)__Instance)->name = (__IntPtr) __bytePtr0; + } + } + + public string Spec + { + get + { + return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ((__Internal*)__Instance)->spec); + } + + set + { + if (__spec_OwnsNativeMemory) + Marshal.FreeHGlobal(((__Internal*)__Instance)->spec); + __spec_OwnsNativeMemory = true; + if (value == null) + { + ((__Internal*)__Instance)->spec = global::System.IntPtr.Zero; + return; + } + var __bytes0 = global::System.Text.Encoding.UTF8.GetBytes(value); + var __bytePtr0 = Marshal.AllocHGlobal(__bytes0.Length + 1); + Marshal.Copy(__bytes0, 0, __bytePtr0, __bytes0.Length); + Marshal.WriteByte(__bytePtr0 + __bytes0.Length, 0); + ((__Internal*)__Instance)->spec = (__IntPtr) __bytePtr0; + } + } + } + + public unsafe partial class nfd + { + public partial struct __Internal + { + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_FreePathN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_FreePathN(char* filePath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_Init", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_Init(); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_Quit", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_Quit(); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogN(char** outPath, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogMultipleN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleN(__IntPtr* outPaths, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_SaveDialogN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogN(char** outPath, global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* filterList, uint filterCount, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath, [MarshalAs(UnmanagedType.LPWStr)] string defaultName); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PickFolderN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderN(char** outPath, [MarshalAs(UnmanagedType.LPWStr)] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_GetError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr NFD_GetError(); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_ClearError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_ClearError(); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetCount(__IntPtr pathSet, uint* count); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetPathN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathN(__IntPtr pathSet, uint index, char** outPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetEnum", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetEnum(__IntPtr pathSet, __IntPtr outEnumerator); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_FreeEnum", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_PathSetFreeEnum(__IntPtr enumerator); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_EnumNextN", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextN(__IntPtr enumerator, char** outPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_Free", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_PathSetFree(__IntPtr pathSet); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_FreePathU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void NFD_FreePathU8(sbyte* outPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogU8(sbyte** outPath, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_OpenDialogMultipleU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleU8(__IntPtr* outPaths, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_SaveDialogU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogU8(sbyte** outPath, global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* filterList, uint count, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultName); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PickFolderU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderU8(sbyte** outPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string defaultPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_GetPathU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathU8(__IntPtr pathSet, uint index, sbyte** outPath); + + [SuppressUnmanagedCodeSecurity, DllImport("nfd", EntryPoint = "NFD_PathSet_EnumNextU8", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextU8(__IntPtr enumerator, sbyte** outPath); + } + + public static void NFD_FreePathN(char* filePath) + { + __Internal.NFD_FreePathN(filePath); + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_Init() + { + var ___ret = __Internal.NFD_Init(); + return ___ret; + } + + public static void NFD_Quit() + { + __Internal.NFD_Quit(); + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogN(char** outPath, Span filterList, uint filterCount, string defaultPath) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_OpenDialogN(outPath, __arg1, filterCount, defaultPath); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleN(__IntPtr* outPaths, Span filterList, uint filterCount, string defaultPath) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_OpenDialogMultipleN(outPaths, __arg1, filterCount, defaultPath); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogN(char** outPath, Span filterList, uint filterCount, string defaultPath, string defaultName) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.NfdnfilteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_SaveDialogN(outPath, __arg1, filterCount, defaultPath, defaultName); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderN(char** outPath, string defaultPath) + { + var ___ret = __Internal.NFD_PickFolderN(outPath, defaultPath); + return ___ret; + } + + public static string NFD_GetError() + { + var ___ret = __Internal.NFD_GetError(); + return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, ___ret); + } + + public static void NFD_ClearError() + { + __Internal.NFD_ClearError(); + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetCount(__IntPtr pathSet, ref uint count) + { + fixed (uint* __count1 = &count) + { + var __arg1 = __count1; + var ___ret = __Internal.NFD_PathSetGetCount(pathSet, __arg1); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathN(__IntPtr pathSet, uint index, char** outPath) + { + var ___ret = __Internal.NFD_PathSetGetPathN(pathSet, index, outPath); + return ___ret; + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetEnum(__IntPtr pathSet, global::NativeFileDialogs.AutoGen.NfdpathsetenumT outEnumerator) + { + var __arg1 = outEnumerator is null ? __IntPtr.Zero : outEnumerator.__Instance; + var ___ret = __Internal.NFD_PathSetGetEnum(pathSet, __arg1); + return ___ret; + } + + public static void NFD_PathSetFreeEnum(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator) + { + var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; + __Internal.NFD_PathSetFreeEnum(__arg0); + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextN(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator, char** outPath) + { + var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; + var ___ret = __Internal.NFD_PathSetEnumNextN(__arg0, outPath); + return ___ret; + } + + public static void NFD_PathSetFree(__IntPtr pathSet) + { + __Internal.NFD_PathSetFree(pathSet); + } + + public static void NFD_FreePathU8(sbyte* outPath) + { + __Internal.NFD_FreePathU8(outPath); + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogU8(sbyte** outPath, Span filterList, uint count, string defaultPath) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_OpenDialogU8(outPath, __arg1, count, defaultPath); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_OpenDialogMultipleU8(__IntPtr* outPaths, Span filterList, uint count, string defaultPath) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_OpenDialogMultipleU8(outPaths, __arg1, count, defaultPath); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_SaveDialogU8(sbyte** outPath, Span filterList, uint count, string defaultPath, string defaultName) + { + Span __filterList; + if (filterList == null) + __filterList = null; + else + { + __filterList = new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal[filterList.Length]; + for (int i = 0; i < __filterList.Length; i++) + { + var __element = filterList[i]; + __filterList[i] = __element is null ? new global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal() : *(global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal*) __element.__Instance; + } + } + fixed (global::NativeFileDialogs.AutoGen.Nfdu8filteritemT.__Internal* ____filterList1 = &MemoryMarshal.GetReference(__filterList)) + { + var __arg1 = ____filterList1; + var ___ret = __Internal.NFD_SaveDialogU8(outPath, __arg1, count, defaultPath, defaultName); + return ___ret; + } + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PickFolderU8(sbyte** outPath, string defaultPath) + { + var ___ret = __Internal.NFD_PickFolderU8(outPath, defaultPath); + return ___ret; + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetGetPathU8(__IntPtr pathSet, uint index, sbyte** outPath) + { + var ___ret = __Internal.NFD_PathSetGetPathU8(pathSet, index, outPath); + return ___ret; + } + + public static global::NativeFileDialogs.AutoGen.NfdresultT NFD_PathSetEnumNextU8(global::NativeFileDialogs.AutoGen.NfdpathsetenumT enumerator, sbyte** outPath) + { + var __arg0 = enumerator is null ? __IntPtr.Zero : enumerator.__Instance; + var ___ret = __Internal.NFD_PathSetEnumNextU8(__arg0, outPath); + return ___ret; + } + } +}