From 8643e236e4d40928d514e8b95e0499a7b98910f9 Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Tue, 23 Nov 2021 01:52:20 -0600 Subject: [PATCH] Added BstrArrayToStringArray --- ZuneDBApi/Module.cs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ZuneDBApi/Module.cs b/ZuneDBApi/Module.cs index a519824..fb60800 100644 --- a/ZuneDBApi/Module.cs +++ b/ZuneDBApi/Module.cs @@ -89,6 +89,38 @@ namespace ZuneDBApi return Unsafe.AddByteOffset(ref obj, new IntPtr(offset)); } + internal static string[] BstrArrayToStringArray(DynamicArray_003Cunsigned_0020short_0020_002A_003E* bstrArray) + { + string[] array = null; + int num = *(int*)((ulong)(nint)bstrArray + 16uL); + try + { + array = new string[num]; + for (int i = 0; i < num; i++) + { + ushort** ptr = (ushort**)(bstrArray + i); + array[i] = new string((char*)*ptr); + } + } + finally + { + int num2 = 0; + if (0 < num) + { + do + { + if ((long)(*(ushort**)(bstrArray + num2)) != 0L) + { + SysFreeString(*(ushort**)(bstrArray + num2)); + } + num2++; + } + while (num2 < num); + } + } + return array; + } + public static int CloseClipboard() { return User32.CloseClipboard() ? 1 : 0;