mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 10:17:22 +01:00
Update TerraFX.Interop.Windows
This commit is contained in:
parent
5bb212bfaa
commit
ddc3113244
17 changed files with 73 additions and 73 deletions
|
|
@ -64,9 +64,9 @@ public interface IObjectWithLocalizableName
|
|||
var result = new Dictionary<string, string>((int)count);
|
||||
for (var i = 0u; i < count; i++)
|
||||
{
|
||||
fn->GetLocaleName(i, (ushort*)buf, maxStrLen).ThrowOnError();
|
||||
fn->GetLocaleName(i, buf, maxStrLen).ThrowOnError();
|
||||
var key = new string(buf);
|
||||
fn->GetString(i, (ushort*)buf, maxStrLen).ThrowOnError();
|
||||
fn->GetString(i, buf, maxStrLen).ThrowOnError();
|
||||
var value = new string(buf);
|
||||
result[key.ToLowerInvariant()] = value;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,8 +133,8 @@ public sealed class SystemFontFamilyId : IFontFamilyId
|
|||
|
||||
var familyIndex = 0u;
|
||||
BOOL exists = false;
|
||||
fixed (void* pName = this.EnglishName)
|
||||
sfc.Get()->FindFamilyName((ushort*)pName, &familyIndex, &exists).ThrowOnError();
|
||||
fixed (char* pName = this.EnglishName)
|
||||
sfc.Get()->FindFamilyName(pName, &familyIndex, &exists).ThrowOnError();
|
||||
if (!exists)
|
||||
throw new FileNotFoundException($"Font \"{this.EnglishName}\" not found.");
|
||||
|
||||
|
|
|
|||
|
|
@ -113,8 +113,8 @@ public sealed class SystemFontId : IFontId
|
|||
|
||||
var familyIndex = 0u;
|
||||
BOOL exists = false;
|
||||
fixed (void* name = this.Family.EnglishName)
|
||||
sfc.Get()->FindFamilyName((ushort*)name, &familyIndex, &exists).ThrowOnError();
|
||||
fixed (char* name = this.Family.EnglishName)
|
||||
sfc.Get()->FindFamilyName(name, &familyIndex, &exists).ThrowOnError();
|
||||
if (!exists)
|
||||
throw new FileNotFoundException($"Font \"{this.Family.EnglishName}\" not found.");
|
||||
|
||||
|
|
@ -151,7 +151,7 @@ public sealed class SystemFontId : IFontId
|
|||
flocal.Get()->GetFilePathLengthFromKey(refKey, refKeySize, &pathSize).ThrowOnError();
|
||||
|
||||
var path = stackalloc char[(int)pathSize + 1];
|
||||
flocal.Get()->GetFilePathFromKey(refKey, refKeySize, (ushort*)path, pathSize + 1).ThrowOnError();
|
||||
flocal.Get()->GetFilePathFromKey(refKey, refKeySize, path, pathSize + 1).ThrowOnError();
|
||||
return (new(path, 0, (int)pathSize), (int)fface.Get()->GetIndex());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -104,19 +104,19 @@ internal static unsafe class ReShadePeeler
|
|||
fixed (byte* pfn5 = "glBegin"u8)
|
||||
fixed (byte* pfn6 = "vkCreateDevice"u8)
|
||||
{
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn0) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn0) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn1) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn1) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn2) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn2) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn3) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn3) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn4) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn4) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn5) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn5) == null)
|
||||
continue;
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn6) == 0)
|
||||
if (GetProcAddress((HMODULE)dosh, (sbyte*)pfn6) == null)
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -622,7 +622,7 @@ internal sealed unsafe partial class Win32InputHandler : IImGuiInputHandler
|
|||
hbrBackground = (HBRUSH)(1 + COLOR.COLOR_BACKGROUND),
|
||||
lpfnWndProc = (delegate* unmanaged<HWND, uint, WPARAM, LPARAM, LRESULT>)Marshal
|
||||
.GetFunctionPointerForDelegate(this.input.wndProcDelegate),
|
||||
lpszClassName = (ushort*)windowClassNamePtr,
|
||||
lpszClassName = windowClassNamePtr,
|
||||
};
|
||||
|
||||
if (RegisterClassExW(&wcex) == 0)
|
||||
|
|
@ -658,7 +658,7 @@ internal sealed unsafe partial class Win32InputHandler : IImGuiInputHandler
|
|||
fixed (char* windowClassNamePtr = WindowClassName)
|
||||
{
|
||||
UnregisterClassW(
|
||||
(ushort*)windowClassNamePtr,
|
||||
windowClassNamePtr,
|
||||
(HINSTANCE)Marshal.GetHINSTANCE(typeof(ViewportHandler).Module));
|
||||
}
|
||||
|
||||
|
|
@ -781,8 +781,8 @@ internal sealed unsafe partial class Win32InputHandler : IImGuiInputHandler
|
|||
{
|
||||
data->Hwnd = CreateWindowExW(
|
||||
(uint)data->DwExStyle,
|
||||
(ushort*)windowClassNamePtr,
|
||||
(ushort*)windowClassNamePtr,
|
||||
windowClassNamePtr,
|
||||
windowClassNamePtr,
|
||||
(uint)data->DwStyle,
|
||||
rect.left,
|
||||
rect.top,
|
||||
|
|
@ -993,7 +993,7 @@ internal sealed unsafe partial class Win32InputHandler : IImGuiInputHandler
|
|||
{
|
||||
var data = (ImGuiViewportDataWin32*)viewport.PlatformUserData;
|
||||
fixed (char* pwszTitle = MemoryHelper.ReadStringNullTerminated((nint)title))
|
||||
SetWindowTextW(data->Hwnd, (ushort*)pwszTitle);
|
||||
SetWindowTextW(data->Hwnd, pwszTitle);
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ internal partial class InterfaceManager : IInternalDisposableService
|
|||
var gwh = default(HWND);
|
||||
fixed (char* pClass = "FFXIVGAME")
|
||||
{
|
||||
while ((gwh = FindWindowExW(default, gwh, (ushort*)pClass, default)) != default)
|
||||
while ((gwh = FindWindowExW(default, gwh, pClass, default)) != default)
|
||||
{
|
||||
uint pid;
|
||||
_ = GetWindowThreadProcessId(gwh, &pid);
|
||||
|
|
|
|||
|
|
@ -63,11 +63,11 @@ internal sealed unsafe partial class ReShadeAddonInterface
|
|||
|
||||
return;
|
||||
|
||||
bool GetProcAddressInto(ProcessModule m, ReadOnlySpan<char> name, void* res)
|
||||
static bool GetProcAddressInto(ProcessModule m, ReadOnlySpan<char> name, void* res)
|
||||
{
|
||||
Span<byte> name8 = stackalloc byte[Encoding.UTF8.GetByteCount(name) + 1];
|
||||
name8[Encoding.UTF8.GetBytes(name, name8)] = 0;
|
||||
*(nint*)res = GetProcAddress((HMODULE)m.BaseAddress, (sbyte*)Unsafe.AsPointer(ref name8[0]));
|
||||
*(nint*)res = (nint)GetProcAddress((HMODULE)m.BaseAddress, (sbyte*)Unsafe.AsPointer(ref name8[0]));
|
||||
return *(nint*)res != 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -174,7 +174,7 @@ internal sealed unsafe partial class ReShadeAddonInterface
|
|||
CERT.CERT_NAME_SIMPLE_DISPLAY_TYPE,
|
||||
CERT.CERT_NAME_ISSUER_FLAG,
|
||||
null,
|
||||
(ushort*)Unsafe.AsPointer(ref issuerName[0]),
|
||||
(char*)Unsafe.AsPointer(ref issuerName[0]),
|
||||
pcb);
|
||||
if (pcb == 0)
|
||||
throw new Win32Exception("CertGetNameStringW(2)");
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ internal static unsafe class ReShadeUnwrapper
|
|||
static bool HasProcExported(ProcessModule m, ReadOnlySpan<byte> name)
|
||||
{
|
||||
fixed (byte* p = name)
|
||||
return GetProcAddress((HMODULE)m.BaseAddress, (sbyte*)p) != 0;
|
||||
return GetProcAddress((HMODULE)m.BaseAddress, (sbyte*)p) != null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ internal partial class StaThreadService : IInternalDisposableService
|
|||
lpfnWndProc = &MessageReceiverWndProcStatic,
|
||||
hInstance = hInstance,
|
||||
hbrBackground = (HBRUSH)(COLOR.COLOR_BACKGROUND + 1),
|
||||
lpszClassName = (ushort*)name,
|
||||
lpszClassName = name,
|
||||
};
|
||||
|
||||
wndClassAtom = RegisterClassExW(&wndClass);
|
||||
|
|
@ -226,8 +226,8 @@ internal partial class StaThreadService : IInternalDisposableService
|
|||
this.messageReceiverHwndTask.SetResult(
|
||||
CreateWindowExW(
|
||||
0,
|
||||
(ushort*)wndClassAtom,
|
||||
(ushort*)name,
|
||||
(char*)wndClassAtom,
|
||||
name,
|
||||
0,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
|
|
@ -275,7 +275,7 @@ internal partial class StaThreadService : IInternalDisposableService
|
|||
_ = OleFlushClipboard();
|
||||
OleUninitialize();
|
||||
if (wndClassAtom != 0)
|
||||
UnregisterClassW((ushort*)wndClassAtom, hInstance);
|
||||
UnregisterClassW((char*)wndClassAtom, hInstance);
|
||||
this.messageReceiverHwndTask.TrySetException(e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,12 +44,12 @@ internal sealed class BitmapCodecInfo : IBitmapCodecInfo
|
|||
|
||||
private static unsafe string ReadStringUsing(
|
||||
IWICBitmapCodecInfo* codecInfo,
|
||||
delegate* unmanaged<IWICBitmapCodecInfo*, uint, ushort*, uint*, int> readFuncPtr)
|
||||
delegate* unmanaged[MemberFunction]<IWICBitmapCodecInfo*, uint, char*, uint*, int> readFuncPtr)
|
||||
{
|
||||
var cch = 0u;
|
||||
_ = readFuncPtr(codecInfo, 0, null, &cch);
|
||||
var buf = stackalloc char[(int)cch + 1];
|
||||
Marshal.ThrowExceptionForHR(readFuncPtr(codecInfo, cch + 1, (ushort*)buf, &cch));
|
||||
Marshal.ThrowExceptionForHR(readFuncPtr(codecInfo, cch + 1, buf, &cch));
|
||||
return new(buf, 0, (int)cch);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -219,14 +219,14 @@ internal sealed partial class TextureManager
|
|||
|
||||
return;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int QueryInterfaceStatic(IUnknown* pThis, Guid* riid, void** ppvObject) =>
|
||||
ToManagedObject(pThis)?.QueryInterface(riid, ppvObject) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static uint AddRefStatic(IUnknown* pThis) => (uint)(ToManagedObject(pThis)?.AddRef() ?? 0);
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static uint ReleaseStatic(IUnknown* pThis) => (uint)(ToManagedObject(pThis)?.Release() ?? 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ internal sealed partial class TextureManager
|
|||
},
|
||||
},
|
||||
};
|
||||
namea.AsSpan().CopyTo(new(fgda.fgd.e0.cFileName, 260));
|
||||
namea.AsSpan().CopyTo(new(Unsafe.AsPointer(ref fgda.fgd.e0.cFileName[0]), 260));
|
||||
|
||||
AddToDataObject(
|
||||
pdo,
|
||||
|
|
@ -157,7 +157,7 @@ internal sealed partial class TextureManager
|
|||
},
|
||||
},
|
||||
};
|
||||
preferredFileNameWithoutExtension.AsSpan().CopyTo(new(fgdw.fgd.e0.cFileName, 260));
|
||||
preferredFileNameWithoutExtension.AsSpan().CopyTo(new(Unsafe.AsPointer(ref fgdw.fgd.e0.cFileName[0]), 260));
|
||||
|
||||
AddToDataObject(
|
||||
pdo,
|
||||
|
|
@ -450,7 +450,7 @@ internal sealed partial class TextureManager
|
|||
try
|
||||
{
|
||||
IStream* pfs;
|
||||
SHCreateStreamOnFileW((ushort*)pPath, sharedRead, &pfs).ThrowOnError();
|
||||
SHCreateStreamOnFileW((char*)pPath, sharedRead, &pfs).ThrowOnError();
|
||||
|
||||
var stgm2 = new STGMEDIUM
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
using System.Collections.Concurrent;
|
||||
using System.Collections.Concurrent;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Drawing;
|
||||
|
|
@ -294,18 +294,18 @@ internal sealed class LoadingDialog
|
|||
? null
|
||||
: Icon.ExtractAssociatedIcon(Path.Combine(workingDirectory, "Dalamud.Injector.exe"));
|
||||
|
||||
fixed (void* pszEmpty = "-")
|
||||
fixed (void* pszWindowTitle = "Dalamud")
|
||||
fixed (void* pszDalamudBoot = "Dalamud.Boot.dll")
|
||||
fixed (void* pszThemesManifestResourceName = "RT_MANIFEST_THEMES")
|
||||
fixed (void* pszHide = Loc.Localize("LoadingDialogHide", "Hide"))
|
||||
fixed (void* pszShowLatestLogs = Loc.Localize("LoadingDialogShowLatestLogs", "Show Latest Logs"))
|
||||
fixed (void* pszHideLatestLogs = Loc.Localize("LoadingDialogHideLatestLogs", "Hide Latest Logs"))
|
||||
fixed (char* pszEmpty = "-")
|
||||
fixed (char* pszWindowTitle = "Dalamud")
|
||||
fixed (char* pszDalamudBoot = "Dalamud.Boot.dll")
|
||||
fixed (char* pszThemesManifestResourceName = "RT_MANIFEST_THEMES")
|
||||
fixed (char* pszHide = Loc.Localize("LoadingDialogHide", "Hide"))
|
||||
fixed (char* pszShowLatestLogs = Loc.Localize("LoadingDialogShowLatestLogs", "Show Latest Logs"))
|
||||
fixed (char* pszHideLatestLogs = Loc.Localize("LoadingDialogHideLatestLogs", "Hide Latest Logs"))
|
||||
{
|
||||
var taskDialogButton = new TASKDIALOG_BUTTON
|
||||
{
|
||||
nButtonID = IDOK,
|
||||
pszButtonText = (ushort*)pszHide,
|
||||
pszButtonText = pszHide,
|
||||
};
|
||||
var taskDialogConfig = new TASKDIALOGCONFIG
|
||||
{
|
||||
|
|
@ -318,8 +318,8 @@ internal sealed class LoadingDialog
|
|||
(int)TDF_CALLBACK_TIMER |
|
||||
(extractedIcon is null ? 0 : (int)TDF_USE_HICON_MAIN),
|
||||
dwCommonButtons = 0,
|
||||
pszWindowTitle = (ushort*)pszWindowTitle,
|
||||
pszMainIcon = extractedIcon is null ? TD.TD_INFORMATION_ICON : (ushort*)extractedIcon.Handle,
|
||||
pszWindowTitle = pszWindowTitle,
|
||||
pszMainIcon = extractedIcon is null ? TD.TD_INFORMATION_ICON : (char*)extractedIcon.Handle,
|
||||
pszMainInstruction = null,
|
||||
pszContent = null,
|
||||
cButtons = 1,
|
||||
|
|
@ -329,9 +329,9 @@ internal sealed class LoadingDialog
|
|||
pRadioButtons = null,
|
||||
nDefaultRadioButton = 0,
|
||||
pszVerificationText = null,
|
||||
pszExpandedInformation = (ushort*)pszEmpty,
|
||||
pszExpandedControlText = (ushort*)pszShowLatestLogs,
|
||||
pszCollapsedControlText = (ushort*)pszHideLatestLogs,
|
||||
pszExpandedInformation = pszEmpty,
|
||||
pszExpandedControlText = pszShowLatestLogs,
|
||||
pszCollapsedControlText = pszHideLatestLogs,
|
||||
pszFooterIcon = null,
|
||||
pszFooter = null,
|
||||
pfCallback = &HResultFuncBinder,
|
||||
|
|
@ -348,8 +348,8 @@ internal sealed class LoadingDialog
|
|||
{
|
||||
cbSize = (uint)sizeof(ACTCTXW),
|
||||
dwFlags = ACTCTX_FLAG_HMODULE_VALID | ACTCTX_FLAG_RESOURCE_NAME_VALID,
|
||||
lpResourceName = (ushort*)pszThemesManifestResourceName,
|
||||
hModule = GetModuleHandleW((ushort*)pszDalamudBoot),
|
||||
lpResourceName = pszThemesManifestResourceName,
|
||||
hModule = GetModuleHandleW(pszDalamudBoot),
|
||||
};
|
||||
hActCtx = CreateActCtxW(&actctx);
|
||||
if (hActCtx == default)
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ internal static class ClipboardFormats
|
|||
private static unsafe uint ClipboardFormatFromName(ReadOnlySpan<char> name)
|
||||
{
|
||||
uint cf;
|
||||
fixed (void* p = name)
|
||||
cf = RegisterClipboardFormatW((ushort*)p);
|
||||
fixed (char* p = name)
|
||||
cf = RegisterClipboardFormatW(p);
|
||||
if (cf != 0)
|
||||
return cf;
|
||||
throw Marshal.GetExceptionForHR(Marshal.GetHRForLastWin32Error()) ??
|
||||
|
|
|
|||
|
|
@ -57,60 +57,60 @@ internal sealed unsafe class ManagedIStream : IStream.Interface, IRefCountable
|
|||
static ManagedIStream? ToManagedObject(void* pThis) =>
|
||||
GCHandle.FromIntPtr(((nint*)pThis)[1]).Target as ManagedIStream;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int QueryInterfaceStatic(IStream* pThis, Guid* riid, void** ppvObject) =>
|
||||
ToManagedObject(pThis)?.QueryInterface(riid, ppvObject) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static uint AddRefStatic(IStream* pThis) => (uint)(ToManagedObject(pThis)?.AddRef() ?? 0);
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static uint ReleaseStatic(IStream* pThis) => (uint)(ToManagedObject(pThis)?.Release() ?? 0);
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int ReadStatic(IStream* pThis, void* pv, uint cb, uint* pcbRead) =>
|
||||
ToManagedObject(pThis)?.Read(pv, cb, pcbRead) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int WriteStatic(IStream* pThis, void* pv, uint cb, uint* pcbWritten) =>
|
||||
ToManagedObject(pThis)?.Write(pv, cb, pcbWritten) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int SeekStatic(
|
||||
IStream* pThis, LARGE_INTEGER dlibMove, uint dwOrigin, ULARGE_INTEGER* plibNewPosition) =>
|
||||
ToManagedObject(pThis)?.Seek(dlibMove, dwOrigin, plibNewPosition) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int SetSizeStatic(IStream* pThis, ULARGE_INTEGER libNewSize) =>
|
||||
ToManagedObject(pThis)?.SetSize(libNewSize) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int CopyToStatic(
|
||||
IStream* pThis, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead,
|
||||
ULARGE_INTEGER* pcbWritten) =>
|
||||
ToManagedObject(pThis)?.CopyTo(pstm, cb, pcbRead, pcbWritten) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int CommitStatic(IStream* pThis, uint grfCommitFlags) =>
|
||||
ToManagedObject(pThis)?.Commit(grfCommitFlags) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int RevertStatic(IStream* pThis) => ToManagedObject(pThis)?.Revert() ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int LockRegionStatic(IStream* pThis, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, uint dwLockType) =>
|
||||
ToManagedObject(pThis)?.LockRegion(libOffset, cb, dwLockType) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int UnlockRegionStatic(
|
||||
IStream* pThis, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, uint dwLockType) =>
|
||||
ToManagedObject(pThis)?.UnlockRegion(libOffset, cb, dwLockType) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int StatStatic(IStream* pThis, STATSTG* pstatstg, uint grfStatFlag) =>
|
||||
ToManagedObject(pThis)?.Stat(pstatstg, grfStatFlag) ?? E.E_UNEXPECTED;
|
||||
|
||||
[UnmanagedCallersOnly]
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvMemberFunction)])]
|
||||
static int CloneStatic(IStream* pThis, IStream** ppstm) => ToManagedObject(pThis)?.Clone(ppstm) ?? E.E_UNEXPECTED;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ internal static unsafe partial class TerraFxComInterfaceExtensions
|
|||
fixed (char* pPath = path)
|
||||
{
|
||||
SHCreateStreamOnFileEx(
|
||||
(ushort*)pPath,
|
||||
pPath,
|
||||
grfMode,
|
||||
(uint)attributes,
|
||||
fCreate,
|
||||
|
|
@ -115,7 +115,7 @@ internal static unsafe partial class TerraFxComInterfaceExtensions
|
|||
{
|
||||
fixed (char* pName = name)
|
||||
{
|
||||
var option = new PROPBAG2 { pstrName = (ushort*)pName };
|
||||
var option = new PROPBAG2 { pstrName = pName };
|
||||
return obj.Write(1, &option, &varValue);
|
||||
}
|
||||
}
|
||||
|
|
@ -145,7 +145,7 @@ internal static unsafe partial class TerraFxComInterfaceExtensions
|
|||
try
|
||||
{
|
||||
fixed (char* pName = name)
|
||||
return obj.SetMetadataByName((ushort*)pName, &propVarValue);
|
||||
return obj.SetMetadataByName(pName, &propVarValue);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
@ -165,7 +165,7 @@ internal static unsafe partial class TerraFxComInterfaceExtensions
|
|||
public static HRESULT RemoveMetadataByName(ref this IWICMetadataQueryWriter obj, string name)
|
||||
{
|
||||
fixed (char* pName = name)
|
||||
return obj.RemoveMetadataByName((ushort*)pName);
|
||||
return obj.RemoveMetadataByName(pName);
|
||||
}
|
||||
|
||||
[LibraryImport("propsys.dll")]
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<PackageVersion Include="sqlite-net-pcl" Version="1.8.116" />
|
||||
|
||||
<!-- DirectX / Win32 -->
|
||||
<PackageVersion Include="TerraFX.Interop.Windows" Version="10.0.22621.2" />
|
||||
<PackageVersion Include="TerraFX.Interop.Windows" Version="10.0.26100.5" />
|
||||
<PackageVersion Include="SharpDX.Direct3D11" Version="4.2.0" />
|
||||
<PackageVersion Include="SharpDX.Mathematics" Version="4.2.0" />
|
||||
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.183" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue