mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
Added BstrArrayToStringArray
This commit is contained in:
@@ -89,6 +89,38 @@ namespace ZuneDBApi
|
|||||||
return Unsafe.AddByteOffset(ref obj, new IntPtr(offset));
|
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()
|
public static int CloseClipboard()
|
||||||
{
|
{
|
||||||
return User32.CloseClipboard() ? 1 : 0;
|
return User32.CloseClipboard() ? 1 : 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user