diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Graphics/RectInt32Extension.cs b/src/Snap.Hutao/Snap.Hutao/Core/Graphics/RectInt32Extension.cs index 5a22731c4..7e7d18cd7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Graphics/RectInt32Extension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Graphics/RectInt32Extension.cs @@ -1,7 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Microsoft.UI.Xaml.Controls.Primitives; using Snap.Hutao.Win32.Foundation; using Windows.Graphics; diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Threading/VolatileWrite.cs b/src/Snap.Hutao/Snap.Hutao/Core/Threading/VolatileWrite.cs new file mode 100644 index 000000000..5e8f98c5e --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Core/Threading/VolatileWrite.cs @@ -0,0 +1,22 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Core.Threading; + +internal readonly ref struct VolatileWrite +{ + private readonly ref bool reference; + private readonly bool initialState; + + public VolatileWrite(ref bool reference, bool initialState) + { + this.reference = ref reference; + this.initialState = initialState; + Volatile.Write(ref this.reference, initialState); + } + + public void Dispose() + { + Volatile.Write(ref reference, !initialState); + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest index 55b7dea70..5fea8525d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest +++ b/src/Snap.Hutao/Snap.Hutao/Package.appxmanifest @@ -13,7 +13,7 @@ + Version="1.10.6.0" /> Snap Hutao diff --git a/src/Snap.Hutao/Snap.Hutao/Package.development.appxmanifest b/src/Snap.Hutao/Snap.Hutao/Package.development.appxmanifest index a07f85a31..58fffa673 100644 --- a/src/Snap.Hutao/Snap.Hutao/Package.development.appxmanifest +++ b/src/Snap.Hutao/Snap.Hutao/Package.development.appxmanifest @@ -13,7 +13,7 @@ + Version="1.10.6.0" /> Snap Hutao Dev diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx index 6fc134f56..ff619093c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx @@ -147,6 +147,12 @@ No results found + + Delete + + + Select All + Invalid Uri @@ -162,12 +168,6 @@ List - - Delete - - - Select All - Database is corrupted: {0} @@ -977,6 +977,18 @@ Waiting for the game process to close… + + Unlocks the module inject the game process, which is dangerous, but easy to succeed + + + Injection + + + Classic process memory operations are more dangerous but easy to fail. + + + Classic + Select game executable @@ -2435,6 +2447,12 @@ Unlock Frame Rate Limit + + Change how to unlock framerate + + + Unlock Method + Disabled @@ -3107,6 +3125,9 @@ {0} mins + + {0} 时 {1} 分 + Daily Commissions are not Completed diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.fr.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.fr.resx index 22327410e..7c6880e73 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.fr.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.fr.resx @@ -147,6 +147,12 @@ Aucun résultat trouvé + + 删除 + + + 选择全部 + Uri invalide @@ -162,12 +168,6 @@ Liste - - 删除 - - - 选择全部 - La base de donnée est corrompue : {0} @@ -977,6 +977,18 @@ 等待游戏进程退出 + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + 选择游戏本体 @@ -2435,6 +2447,12 @@ 解锁帧率限制 + + 更改解锁帧率的工作方式 + + + 解锁方式 + 禁用 @@ -3107,6 +3125,9 @@ {0} 分 + + {0} 时 {1} 分 + 今日完成委托数量不足 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.id.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.id.resx index 4a6893e59..bcf914237 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.id.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.id.resx @@ -147,6 +147,12 @@ 未找到结果 + + Hapus + + + 选择全部 + Invalid Url @@ -162,12 +168,6 @@ Daftar - - Hapus - - - 选择全部 - Database mengalami kerusakan: {0} @@ -977,6 +977,18 @@ Menunggu proses game tertutup... + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + Pilih exe game @@ -2435,6 +2447,12 @@ Membuka limit Frame Rate + + 更改解锁帧率的工作方式 + + + 解锁方式 + Nonaktifkan @@ -3107,6 +3125,9 @@ {0} menit + + {0} 时 {1} 分 + Komisi Harian Belum Selesai diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx index ca1e04d91..a1f234548 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja.resx @@ -147,6 +147,12 @@ 検索結果なし + + 削除 + + + すべて選択 + 無効なURL @@ -162,12 +168,6 @@ リスト - - 削除 - - - すべて選択 - データベースが破損しています:{0} @@ -977,6 +977,18 @@ プロセスが終了するまで待機中 + + モジュールをロック解除する際に非常に危険で賭けます。モジュールが成功することは容易です。 + + + インジェクション + + + 標準的な手続きによる外メモリ操作、危険です、そして失敗することが容易です + + + クラシック + ゲーム本体を選択する @@ -2435,6 +2447,12 @@ フレームレート上限解除 + + ロック解除フレームレート変更方法の変更 + + + ロック解除モード + 無効 @@ -3107,6 +3125,9 @@ {0} 分 + + {0} 时 {1} 分 + すべての依頼を完了していません diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx index 49f713512..e6761aa97 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko.resx @@ -147,6 +147,12 @@ 未找到结果 + + 삭제 + + + 选择全部 + 잘못된 Uri @@ -162,12 +168,6 @@ 목록 - - 삭제 - - - 选择全部 - 数据库已损坏:{0} @@ -977,6 +977,18 @@ 等待游戏进程退出 + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + 게임 파일 선택 @@ -2435,6 +2447,12 @@ 프레임 속도 제한 해제 + + 更改解锁帧率的工作方式 + + + 解锁方式 + 비활성화 @@ -3107,6 +3125,9 @@ {0}분 + + {0} 时 {1} 分 + 今日完成委托数量不足 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.pt.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.pt.resx index 86045c1d8..d09ee294d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.pt.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.pt.resx @@ -147,6 +147,12 @@ Nenhum resultado + + Excluir + + + 选择全部 + Uri inválido @@ -162,12 +168,6 @@ Lista - - Excluir - - - 选择全部 - O banco de dados está corrompido: {0} @@ -977,6 +977,18 @@ Aguardando o encerramento do processo do jogo… + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + Selecione o executável do jogo @@ -2435,6 +2447,12 @@ Desbloquear limite de taxa de quadros + + 更改解锁帧率的工作方式 + + + 解锁方式 + Desativado @@ -3107,6 +3125,9 @@ {0} mins + + {0} 时 {1} 分 + Missões diárias incompletas diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 39035bd64..54a3eafe2 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -3125,6 +3125,9 @@ {0} 分 + + {0} 时 {1} 分 + 今日完成委托数量不足 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru.resx index 644e3575e..e3238adf9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru.resx @@ -147,6 +147,12 @@ Результаты не найдены + + Удалить + + + 选择全部 + Ошибка ссылки @@ -162,12 +168,6 @@ Список - - Удалить - - - 选择全部 - База данных повреждена: {0} @@ -977,6 +977,18 @@ Ожидание закрытия процесса игры + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + Выберите исполняемый файл игры @@ -2435,6 +2447,12 @@ Разблокировать ограничение частоты кадров + + 更改解锁帧率的工作方式 + + + 解锁方式 + Отключено @@ -3107,6 +3125,9 @@ {0} минут + + {0} 时 {1} 分 + Incomplete Daily Commissions diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.vi.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.vi.resx index f831bc136..b8dc8135d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.vi.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.vi.resx @@ -147,6 +147,12 @@ Không tìm thấy kết quả + + 删除 + + + 选择全部 + Uri không hợp lệ @@ -162,12 +168,6 @@ Danh sách - - 删除 - - - 选择全部 - 数据库已损坏:{0} @@ -977,6 +977,18 @@ Đang đợi tiến trình trò chơi đóng... + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + 选择游戏本体 @@ -2435,6 +2447,12 @@ 解锁帧率限制 + + 更改解锁帧率的工作方式 + + + 解锁方式 + 禁用 @@ -3107,6 +3125,9 @@ {0} 分 + + {0} 时 {1} 分 + 今日完成委托数量不足 diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx index a4b571b9e..1ce56753b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-Hant.resx @@ -147,6 +147,12 @@ 未找到結果 + + 刪除 + + + 选择全部 + 無效的 URI @@ -162,12 +168,6 @@ 清單 - - 刪除 - - - 选择全部 - 數據庫已損壞:{0} @@ -977,6 +977,18 @@ 等待遊戲進程退出 + + 解锁模块注入游戏进程,非常危险,但容易成功 + + + 注入 + + + 经典的进程外内存操作,较为危险,但容易失败 + + + 经典 + 請選擇遊戲本體 @@ -2435,6 +2447,12 @@ 解鎖 FPS 限制 + + 更改解锁帧率的工作方式 + + + 解锁方式 + 停用 @@ -3107,6 +3125,9 @@ {0} 分 + + {0} 时 {1} 分 + 今日完成委託數量不足 diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs index 6e92e93a7..fd04204dd 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs @@ -7,7 +7,6 @@ using Snap.Hutao.Model.Entity; using Snap.Hutao.Model.InterChange.Achievement; using Snap.Hutao.Model.Primitive; -using Snap.Hutao.UI.Xaml.Data; using Snap.Hutao.ViewModel.Achievement; using System.Collections.ObjectModel; using EntityAchievement = Snap.Hutao.Model.Entity.Achievement; diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs index a7edb5964..03ffffa7b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs @@ -109,6 +109,7 @@ public async ValueTask RefreshGachaLogAsync(GachaLogQuery query, RefreshSt if (target is not null && Archives is not null) { + await taskContext.SwitchToMainThreadAsync(); Archives.CurrentItem = target; } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UIGFImportService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UIGFImportService.cs index fe1bfaa3f..ca20e3404 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UIGFImportService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/UIGFImportService.cs @@ -83,6 +83,8 @@ public async ValueTask ImportAsync(GachaLogServiceMetadataContext context, UIGF } gachaLogDbService.AddGachaItemRange(fullItems); + + await taskContext.SwitchToMainThreadAsync(); archives.MoveCurrentTo(archive); } diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/GameAccountService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/GameAccountService.cs index 93612d6f2..dbce927b0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/GameAccountService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/GameAccountService.cs @@ -88,10 +88,13 @@ public bool SetGameAccount(GameAccount account) return RegistryInterop.Set(account); } - public void AttachGameAccountToUid(GameAccount gameAccount, string uid) + public async ValueTask AttachGameAccountToUidAsync(GameAccount gameAccount, string uid) { - gameAccount.UpdateAttachUid(uid); + await taskContext.SwitchToBackgroundAsync(); gameDbService.UpdateGameAccount(gameAccount); + + await taskContext.SwitchToMainThreadAsync(); + gameAccount.UpdateAttachUid(uid); } public async ValueTask ModifyGameAccountAsync(GameAccount gameAccount) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/IGameAccountService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/IGameAccountService.cs index eb132170e..c3c7da9ee 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/IGameAccountService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Account/IGameAccountService.cs @@ -11,7 +11,7 @@ internal interface IGameAccountService { ObservableReorderableDbCollection GameAccountCollection { get; } - void AttachGameAccountToUid(GameAccount gameAccount, string uid); + ValueTask AttachGameAccountToUidAsync(GameAccount gameAccount, string uid); GameAccount? DetectCurrentGameAccount(SchemeType schemeType); diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Automation/ScreenCapture/GameScreenCaptureContext.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Automation/ScreenCapture/GameScreenCaptureContext.cs index 61194e999..8b00ca8be 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Automation/ScreenCapture/GameScreenCaptureContext.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Automation/ScreenCapture/GameScreenCaptureContext.cs @@ -148,7 +148,7 @@ public readonly bool TryGetClientBox(uint width, uint height, out D3D11_BOX clie return clientBox.right <= width && clientBox.bottom <= height; } - public unsafe readonly void AttachPreview(GameScreenCaptureDebugPreviewWindow? window) + public readonly unsafe void AttachPreview(GameScreenCaptureDebugPreviewWindow? window) { if (PreviewEnabled && window is not null) { @@ -156,7 +156,7 @@ public unsafe readonly void AttachPreview(GameScreenCaptureDebugPreviewWindow? w } } - public unsafe readonly void UpdatePreview(GameScreenCaptureDebugPreviewWindow? window, IDirect3DSurface surface) + public readonly unsafe void UpdatePreview(GameScreenCaptureDebugPreviewWindow? window, IDirect3DSurface surface) { if (PreviewEnabled && window is not null) { @@ -164,7 +164,7 @@ public unsafe readonly void UpdatePreview(GameScreenCaptureDebugPreviewWindow? w } } - public unsafe readonly void DetachPreview(GameScreenCaptureDebugPreviewWindow? window) + public readonly unsafe void DetachPreview(GameScreenCaptureDebugPreviewWindow? window) { if (PreviewEnabled && window is not null) { @@ -173,7 +173,7 @@ public unsafe readonly void DetachPreview(GameScreenCaptureDebugPreviewWindow? w } } - public unsafe readonly void Dispose() + public readonly unsafe void Dispose() { IUnknownMarshal.Release(factory); IUnknownMarshal.Release(swapChain); diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Configuration/GameConfigurationFileService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Configuration/GameConfigurationFileService.cs index 73a91444b..1b257f94d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Configuration/GameConfigurationFileService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Configuration/GameConfigurationFileService.cs @@ -26,9 +26,20 @@ public void Restore(string destination) { string serverCacheFolder = runtimeOptions.GetDataFolderServerCacheFolder(); string source = Path.Combine(serverCacheFolder, ConfigurationFileName); - if (File.Exists(source)) + + if (!File.Exists(source)) + { + return; + } + + // If target directory does not exist, do not copy the file + // This often means user has moved the game folder away. + string? directory = Path.GetDirectoryName(destination); + if (string.IsNullOrEmpty(directory) || !Directory.Exists(directory)) { - File.Copy(source, destination, true); + return; } + + File.Copy(source, destination, true); } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameServiceFacade.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameServiceFacade.cs index 83958a87c..9c0112928 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/GameServiceFacade.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/GameServiceFacade.cs @@ -54,9 +54,9 @@ public ChannelOptions GetChannelOptions() } /// - public void AttachGameAccountToUid(GameAccount gameAccount, string uid) + public ValueTask AttachGameAccountToUidAsync(GameAccount gameAccount, string uid) { - gameAccountService.AttachGameAccountToUid(gameAccount, uid); + return gameAccountService.AttachGameAccountToUidAsync(gameAccount, uid); } /// diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameServiceFacade.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameServiceFacade.cs index ecb034214..e79731a30 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameServiceFacade.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/IGameServiceFacade.cs @@ -25,7 +25,7 @@ internal interface IGameServiceFacade /// /// 游戏内账号 /// uid - void AttachGameAccountToUid(GameAccount gameAccount, string uid); + ValueTask AttachGameAccountToUidAsync(GameAccount gameAccount, string uid); ValueTask DetectGameAccountAsync(SchemeType scheme); diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Windowing/XamlWindowController.cs b/src/Snap.Hutao/Snap.Hutao/UI/Windowing/XamlWindowController.cs index cd91751d2..85e856142 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Windowing/XamlWindowController.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Windowing/XamlWindowController.cs @@ -22,7 +22,6 @@ using Snap.Hutao.Win32.Foundation; using Snap.Hutao.Win32.Graphics.Dwm; using Snap.Hutao.Win32.UI.WindowsAndMessaging; -using System.Diagnostics; using System.IO; using Windows.Foundation; using Windows.Graphics; diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/AutoSuggestBox/InterspersedObservableCollection.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/AutoSuggestBox/InterspersedObservableCollection.cs index 550fc8d49..cdf340e19 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/AutoSuggestBox/InterspersedObservableCollection.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/AutoSuggestBox/InterspersedObservableCollection.cs @@ -45,15 +45,30 @@ public InterspersedObservableCollection(object itemsSource) public IList ItemsSource { get; private set; } - public bool IsFixedSize => false; + public bool IsFixedSize + { + get => false; + } - public bool IsReadOnly => false; + public bool IsReadOnly + { + get => false; + } - public int Count => ItemsSource.Count + interspersedObjects.Count; + public int Count + { + get => ItemsSource.Count + interspersedObjects.Count; + } - public bool IsSynchronized => false; + public bool IsSynchronized + { + get => false; + } - public object SyncRoot => new(); + public object SyncRoot + { + get => new(); + } public object? this[int index] { diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Image/CompositionImage.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Image/CompositionImage.cs index 5ac652f57..e261b0f28 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Image/CompositionImage.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Control/Image/CompositionImage.cs @@ -14,7 +14,6 @@ using System.IO; using System.Net.Http; using System.Runtime.InteropServices; -using Windows.Foundation; namespace Snap.Hutao.UI.Xaml.Control.Image; diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Card/LaunchGameCard.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Card/LaunchGameCard.xaml index 0d6378e0e..7c465128e 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Card/LaunchGameCard.xaml +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Card/LaunchGameCard.xaml @@ -60,6 +60,7 @@ Command="{Binding NavigateCommand}" Content="{StaticResource FontIconContentSetting}" FontFamily="{StaticResource SymbolThemeFontFamily}" + Style="{ThemeResource ButtonRevealStyle}" ToolTipService.ToolTip="{shuxm:ResourceString Name=ViewPageHomeLaunchGameSettingAction}"/> ? archives; private GachaStatistics? statistics; private bool isAggressiveRefresh; + private bool suppressCurrentItemChangedHandling; public AdvancedDbCollectionView? Archives { @@ -119,25 +120,30 @@ protected override void UninitializeOverride() private void OnCurrentArchiveChanged(object? sender, object? e) { + if (suppressCurrentItemChangedHandling) + { + return; + } + UpdateStatisticsAsync(Archives?.CurrentItem).SafeForget(logger); } [Command("RefreshByWebCacheCommand")] - private Task RefreshByWebCacheAsync() + private async Task RefreshByWebCacheAsync() { - return RefreshCoreAsync(RefreshOption.WebCache).AsTask(); + await RefreshCoreAsync(RefreshOption.WebCache).ConfigureAwait(false); } [Command("RefreshBySTokenCommand")] - private Task RefreshBySTokenAsync() + private async Task RefreshBySTokenAsync() { - return RefreshCoreAsync(RefreshOption.SToken).AsTask(); + await RefreshCoreAsync(RefreshOption.SToken).ConfigureAwait(false); } [Command("RefreshByManualInputCommand")] - private Task RefreshByManualInputAsync() + private async Task RefreshByManualInputAsync() { - return RefreshCoreAsync(RefreshOption.ManualInput).AsTask(); + await RefreshCoreAsync(RefreshOption.ManualInput).ConfigureAwait(false); } private async ValueTask RefreshCoreAsync(RefreshOption option) @@ -184,7 +190,16 @@ private async ValueTask RefreshCoreAsync(RefreshOption option) { try { - authkeyValid = await gachaLogService.RefreshGachaLogAsync(query, strategy, progress, CancellationToken).ConfigureAwait(false); + try + { + suppressCurrentItemChangedHandling = true; + authkeyValid = await gachaLogService.RefreshGachaLogAsync(query, strategy, progress, CancellationToken).ConfigureAwait(false); + } + finally + { + suppressCurrentItemChangedHandling = false; + await UpdateStatisticsAsync(Archives?.CurrentItem).ConfigureAwait(false); + } } catch (HutaoException ex) { @@ -339,7 +354,7 @@ private async ValueTask UpdateStatisticsAsync(GachaArchive? archive) private async ValueTask TryImportUIGFInternalAsync(UIGF uigf) { - if (!uigf.IsCurrentVersionSupported(out UIGFVersion version)) + if (!uigf.IsCurrentVersionSupported(out _)) { infoBarService.Warning(SH.ViewModelGachaLogImportWarningTitle, SH.ViewModelGachaLogImportWarningMessage); return false; @@ -357,7 +372,16 @@ private async ValueTask TryImportUIGFInternalAsync(UIGF uigf) { using (await dialog.BlockAsync(taskContext).ConfigureAwait(false)) { - await gachaLogService.ImportFromUIGFAsync(uigf).ConfigureAwait(false); + try + { + suppressCurrentItemChangedHandling = true; + await gachaLogService.ImportFromUIGFAsync(uigf).ConfigureAwait(false); + } + finally + { + suppressCurrentItemChangedHandling = false; + await UpdateStatisticsAsync(Archives?.CurrentItem).ConfigureAwait(false); + } } } catch (InvalidOperationException ex) diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs index 5a29f3866..58225358f 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Game/LaunchGameViewModel.cs @@ -249,7 +249,7 @@ private async Task AttachGameAccountToCurrentUserGameRole(GameAccount? gameAccou if (await userService.GetCurrentUidAsync().ConfigureAwait(false) is { } uid) { - gameService.AttachGameAccountToUid(gameAccount, uid); + await gameService.AttachGameAccountToUidAsync(gameAccount, uid).ConfigureAwait(false); } else { diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/DailyNote/Expedition.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/DailyNote/Expedition.cs index 1981bc477..7cedfc38f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/DailyNote/Expedition.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/DailyNote/Expedition.cs @@ -80,9 +80,7 @@ public string RemainedTimeFormatted } TimeSpan ts = new(0, 0, RemainedTime); - return ts.Hours > 0 - ? SH.FormatWebDailyNoteExpeditionRemainHoursFormat(ts.Hours) - : SH.FormatWebDailyNoteExpeditionRemainMinutesFormat(ts.Minutes); + return SH.FormatWebDailyNoteExpeditionRemainTime(ts.Hours, ts.Minutes); } } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatBuff.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatBuff.cs index aa5d329ec..96953d7b4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatBuff.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatBuff.cs @@ -1,9 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Snap.Hutao.Model.Intrinsic; -using Snap.Hutao.Model.Primitive; - namespace Snap.Hutao.Web.Hoyolab.Takumi.GameRecord.RoleCombat; internal sealed class RoleCombatBuff diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatData.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatData.cs index 7705fd4d0..44ab2cf68 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatData.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatData.cs @@ -1,9 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Snap.Hutao.Model.Intrinsic; -using Snap.Hutao.Model.Primitive; - namespace Snap.Hutao.Web.Hoyolab.Takumi.GameRecord.RoleCombat; internal sealed class RoleCombatData diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatDetail.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatDetail.cs index 80659a29b..afae2e6a9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatDetail.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatDetail.cs @@ -1,9 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using Snap.Hutao.Model.Intrinsic; -using Snap.Hutao.Model.Primitive; - namespace Snap.Hutao.Web.Hoyolab.Takumi.GameRecord.RoleCombat; internal sealed class RoleCombatDetail diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatLinks.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatLinks.cs index 7005476a9..a71f422ef 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatLinks.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/Takumi/GameRecord/RoleCombat/RoleCombatLinks.cs @@ -1,12 +1,6 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Snap.Hutao.Web.Hoyolab.Takumi.GameRecord.RoleCombat; internal sealed class RoleCombatLinks diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/AdvApi32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/AdvApi32.cs index ddfd2dffd..d981b0d55 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/AdvApi32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/AdvApi32.cs @@ -15,7 +15,7 @@ internal static class AdvApi32 { [DllImport("ADVAPI32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL ConvertSidToStringSidW(PSID Sid, PWSTR* StringSid); + public static extern unsafe BOOL ConvertSidToStringSidW(PSID Sid, PWSTR* StringSid); public static unsafe BOOL ConvertSidToStringSidW(PSID Sid, out PWSTR StringSid) { @@ -27,7 +27,7 @@ public static unsafe BOOL ConvertSidToStringSidW(PSID Sid, out PWSTR StringSid) [DllImport("ADVAPI32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL ConvertStringSidToSidW(PCWSTR StringSid, PSID* Sid); + public static extern unsafe BOOL ConvertStringSidToSidW(PCWSTR StringSid, PSID* Sid); public static unsafe BOOL ConvertStringSidToSidW(ReadOnlySpan StringSid, out PSID Sid) { @@ -54,7 +54,7 @@ public static unsafe BOOL ConvertStringSidToSidW(ReadOnlySpan StringSid, o [DllImport("ADVAPI32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern WIN32_ERROR RegOpenKeyExW(HKEY hKey, [AllowNull] PCWSTR lpSubKey, [AllowNull] uint ulOptions, REG_SAM_FLAGS samDesired, HKEY* phkResult); + public static extern unsafe WIN32_ERROR RegOpenKeyExW(HKEY hKey, [AllowNull] PCWSTR lpSubKey, [AllowNull] uint ulOptions, REG_SAM_FLAGS samDesired, HKEY* phkResult); [DebuggerStepThrough] public static unsafe WIN32_ERROR RegOpenKeyExW(HKEY hKey, ReadOnlySpan subKey, uint ulOptions, REG_SAM_FLAGS samDesired, out HKEY hkResult) diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/ComCtl32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/ComCtl32.cs index 9f1ee9454..df114da5a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/ComCtl32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/ComCtl32.cs @@ -22,5 +22,5 @@ internal static class ComCtl32 [DllImport("COMCTL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, nuint uIdSubclass, nuint dwRefData); + public static extern unsafe BOOL SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, nuint uIdSubclass, nuint dwRefData); } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/D3d11.cs b/src/Snap.Hutao/Snap.Hutao/Win32/D3d11.cs index 57cdcca7e..9064d5742 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/D3d11.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/D3d11.cs @@ -16,7 +16,7 @@ namespace Snap.Hutao.Win32; internal static class D3d11 { [DllImport("d3d11.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern HRESULT CreateDirect3D11DeviceFromDXGIDevice(IDXGIDevice* dxgiDevice, IInspectable** graphicsDevice); + public static extern unsafe HRESULT CreateDirect3D11DeviceFromDXGIDevice(IDXGIDevice* dxgiDevice, IInspectable** graphicsDevice); [DebuggerStepThrough] public static unsafe HRESULT CreateDirect3D11DeviceFromDXGIDevice(IDXGIDevice* dxgiDevice, out IInspectable* graphicsDevice) @@ -28,7 +28,7 @@ public static unsafe HRESULT CreateDirect3D11DeviceFromDXGIDevice(IDXGIDevice* d } [DllImport("d3d11.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern HRESULT D3D11CreateDevice([AllowNull] IDXGIAdapter* pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, D3D11_CREATE_DEVICE_FLAG Flags, [AllowNull] D3D_FEATURE_LEVEL* pFeatureLevels, uint FeatureLevels, uint SDKVersion, [MaybeNull] ID3D11Device** ppDevice, [MaybeNull] D3D_FEATURE_LEVEL* pFeatureLevel, [MaybeNull] ID3D11DeviceContext** ppImmediateContext); + public static extern unsafe HRESULT D3D11CreateDevice([AllowNull] IDXGIAdapter* pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, D3D11_CREATE_DEVICE_FLAG Flags, [AllowNull] D3D_FEATURE_LEVEL* pFeatureLevels, uint FeatureLevels, uint SDKVersion, [MaybeNull] ID3D11Device** ppDevice, [MaybeNull] D3D_FEATURE_LEVEL* pFeatureLevel, [MaybeNull] ID3D11DeviceContext** ppImmediateContext); public static unsafe HRESULT D3D11CreateDevice([AllowNull] IDXGIAdapter* pAdapter, D3D_DRIVER_TYPE DriverType, HMODULE Software, D3D11_CREATE_DEVICE_FLAG Flags, [AllowNull] ReadOnlySpan featureLevels, uint SDKVersion, out ID3D11Device* pDevice, out D3D_FEATURE_LEVEL featureLevel, out ID3D11DeviceContext* pImmediateContext) { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/DwmApi.cs b/src/Snap.Hutao/Snap.Hutao/Win32/DwmApi.cs index 627cce21d..07c3a125b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/DwmApi.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/DwmApi.cs @@ -14,7 +14,7 @@ internal static class DwmApi { [DllImport("dwmapi.dll", ExactSpelling = true)] [SupportedOSPlatform("windows6.0.6000")] - public static unsafe extern HRESULT DwmGetWindowAttribute(HWND hwnd, uint dwAttribute, void* pvAttribute, uint cbAttribute); + public static extern unsafe HRESULT DwmGetWindowAttribute(HWND hwnd, uint dwAttribute, void* pvAttribute, uint cbAttribute); public static unsafe HRESULT DwmGetWindowAttribute(HWND hwnd, DWMWINDOWATTRIBUTE dwAttribute, out T attribute) where T : unmanaged @@ -27,7 +27,7 @@ public static unsafe HRESULT DwmGetWindowAttribute(HWND hwnd, DWMWINDOWATTRIB [DllImport("dwmapi.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows6.0.6000")] - public static unsafe extern HRESULT DwmSetWindowAttribute(HWND hwnd, uint dwAttribute, void* pvAttribute, uint cbAttribute); + public static extern unsafe HRESULT DwmSetWindowAttribute(HWND hwnd, uint dwAttribute, void* pvAttribute, uint cbAttribute); [DebuggerStepThrough] public static unsafe HRESULT DwmSetWindowAttribute(HWND hwnd, DWMWINDOWATTRIBUTE dwAttribute, ref readonly T attribute) diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Dxgi.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Dxgi.cs index 28ef5aab6..778255eaf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Dxgi.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Dxgi.cs @@ -13,7 +13,7 @@ internal static class Dxgi { [DllImport("dxgi.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows8.1")] - public static unsafe extern HRESULT CreateDXGIFactory2(uint Flags, Guid* riid, void** ppFactory); + public static extern unsafe HRESULT CreateDXGIFactory2(uint Flags, Guid* riid, void** ppFactory); public static unsafe HRESULT CreateDXGIFactory2(uint Flags, ref readonly Guid iid, out T* pFactory) where T : unmanaged diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/FirewallApi.cs b/src/Snap.Hutao/Snap.Hutao/Win32/FirewallApi.cs index 5f3038da5..2559fafc6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/FirewallApi.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/FirewallApi.cs @@ -16,7 +16,7 @@ internal static class FirewallApi { [DllImport("api-ms-win-net-isolation-l1-1-0.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows8.0")] - public static unsafe extern uint NetworkIsolationEnumAppContainers(uint Flags, uint* pdwNumPublicAppCs, INET_FIREWALL_APP_CONTAINER** ppPublicAppCs); + public static extern unsafe uint NetworkIsolationEnumAppContainers(uint Flags, uint* pdwNumPublicAppCs, INET_FIREWALL_APP_CONTAINER** ppPublicAppCs); [DebuggerStepThrough] public static unsafe WIN32_ERROR NetworkIsolationEnumAppContainers(NETISO_FLAG Flags, out uint dwNumPublicAppCs, out INET_FIREWALL_APP_CONTAINER* pPublicAppCs) @@ -33,7 +33,7 @@ public static unsafe WIN32_ERROR NetworkIsolationEnumAppContainers(NETISO_FLAG F [DllImport("api-ms-win-net-isolation-l1-1-0.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows8.0")] - public static unsafe extern uint NetworkIsolationFreeAppContainers(INET_FIREWALL_APP_CONTAINER* pPublicAppCs); + public static extern unsafe uint NetworkIsolationFreeAppContainers(INET_FIREWALL_APP_CONTAINER* pPublicAppCs); [DebuggerStepThrough] public static unsafe WIN32_ERROR NetworkIsolationFreeAppContainers(ref readonly INET_FIREWALL_APP_CONTAINER publicAppCs) @@ -47,7 +47,7 @@ public static unsafe WIN32_ERROR NetworkIsolationFreeAppContainers(ref readonly [DllImport("api-ms-win-net-isolation-l1-1-0.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows8.0")] - public static unsafe extern uint NetworkIsolationGetAppContainerConfig(uint* pdwNumPublicAppCs, SID_AND_ATTRIBUTES** appContainerSids); + public static extern unsafe uint NetworkIsolationGetAppContainerConfig(uint* pdwNumPublicAppCs, SID_AND_ATTRIBUTES** appContainerSids); [DebuggerStepThrough] public static unsafe WIN32_ERROR NetworkIsolationGetAppContainerConfig(out uint dwNumPublicAppCs, out SID_AND_ATTRIBUTES* appContainerSids) @@ -64,7 +64,7 @@ public static unsafe WIN32_ERROR NetworkIsolationGetAppContainerConfig(out uint [DllImport("api-ms-win-net-isolation-l1-1-0.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows8.0")] - public static unsafe extern uint NetworkIsolationSetAppContainerConfig(uint dwNumPublicAppCs, SID_AND_ATTRIBUTES* appContainerSids); + public static extern unsafe uint NetworkIsolationSetAppContainerConfig(uint dwNumPublicAppCs, SID_AND_ATTRIBUTES* appContainerSids); [DebuggerStepThrough] public static unsafe WIN32_ERROR NetworkIsolationSetAppContainerConfig(ReadOnlySpan appContainerSids) diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/BOOL.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/BOOL.cs index 439441b1c..59be83d8c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/BOOL.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/BOOL.cs @@ -9,13 +9,28 @@ internal readonly struct BOOL public readonly int Value; - public BOOL(bool value) => Value = value ? 1 : 0; - - public static unsafe implicit operator int(BOOL value) => *(int*)&value; - - public static unsafe implicit operator BOOL(int value) => *(BOOL*)&value; - - public static implicit operator BOOL(bool value) => new(value); - - public static implicit operator bool(BOOL value) => value != 0; + public BOOL(bool value) + { + Value = value ? 1 : 0; + } + + public static unsafe implicit operator int(BOOL value) + { + return *(int*)&value; + } + + public static unsafe implicit operator BOOL(int value) + { + return *(BOOL*)&value; + } + + public static implicit operator BOOL(bool value) + { + return new(value); + } + + public static implicit operator bool(BOOL value) + { + return value != 0; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HANDLE.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HANDLE.cs index ee467992b..af8a9244c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HANDLE.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HANDLE.cs @@ -9,9 +9,18 @@ internal readonly struct HANDLE { public readonly nint Value; - public static unsafe implicit operator HANDLE(nint value) => *(HANDLE*)&value; + public static unsafe implicit operator HANDLE(nint value) + { + return *(HANDLE*)&value; + } - public static unsafe implicit operator nint(HANDLE handle) => *(nint*)&handle; + public static unsafe implicit operator nint(HANDLE handle) + { + return *(nint*)&handle; + } - public static unsafe implicit operator HANDLE(BOOL value) => *(int*)&value; + public static unsafe implicit operator HANDLE(BOOL value) + { + return *(int*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HINSTANCE.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HINSTANCE.cs index 954a700bc..73f5faa8b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HINSTANCE.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HINSTANCE.cs @@ -9,5 +9,8 @@ internal readonly struct HINSTANCE { public readonly nint Value; - public static unsafe implicit operator HINSTANCE(HANDLE value) => *(HINSTANCE*)&value; + public static unsafe implicit operator HINSTANCE(HANDLE value) + { + return *(HINSTANCE*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HMODULE.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HMODULE.cs index 999be25c7..746cdc81c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HMODULE.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HMODULE.cs @@ -9,7 +9,13 @@ internal readonly struct HMODULE { public readonly nint Value; - public static unsafe implicit operator HMODULE(nint value) => *(HMODULE*)&value; + public static unsafe implicit operator HMODULE(nint value) + { + return *(HMODULE*)&value; + } - public static unsafe implicit operator nint(HMODULE module) => *(nint*)&module; + public static unsafe implicit operator nint(HMODULE module) + { + return *(nint*)&module; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HRESULT.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HRESULT.cs index 96053e934..6fc4e8447 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HRESULT.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HRESULT.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Foundation; [SuppressMessage("", "SA1310")] internal readonly partial struct HRESULT { - public static readonly HRESULT S_OK = unchecked((int)0x00000000); + public static readonly HRESULT S_OK = unchecked(0x00000000); public static readonly HRESULT E_ASYNC_OPERATION_NOT_STARTED = unchecked((int)0x80000019); public static readonly HRESULT E_FAIL = unchecked((int)0x80004005); public static readonly HRESULT DXGI_ERROR_NOT_FOUND = unchecked((int)0x887A0002); @@ -17,9 +17,15 @@ internal readonly partial struct HRESULT public readonly int Value; - public static unsafe implicit operator int(HRESULT value) => *(int*)&value; + public static unsafe implicit operator int(HRESULT value) + { + return *(int*)&value; + } - public static unsafe implicit operator HRESULT(int value) => *(HRESULT*)&value; + public static unsafe implicit operator HRESULT(int value) + { + return *(HRESULT*)&value; + } public override string ToString() { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HWND.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HWND.cs index c29e15e64..fe81f9da1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HWND.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/HWND.cs @@ -7,7 +7,13 @@ internal readonly struct HWND { public readonly nint Value; - public static unsafe implicit operator HWND(nint value) => *(HWND*)&value; + public static unsafe implicit operator HWND(nint value) + { + return *(HWND*)&value; + } - public static unsafe implicit operator nint(HWND value) => *(nint*)&value; + public static unsafe implicit operator nint(HWND value) + { + return *(nint*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LPARAM.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LPARAM.cs index 4c0557f87..ca8dd7c21 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LPARAM.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LPARAM.cs @@ -7,5 +7,8 @@ internal readonly struct LPARAM { public readonly nint Value; - public static unsafe implicit operator void*(LPARAM value) => *(void**)&value; + public static unsafe implicit operator void*(LPARAM value) + { + return *(void**)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LRESULT.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LRESULT.cs index 9bd9a4dd1..a63ede293 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LRESULT.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/LRESULT.cs @@ -7,5 +7,8 @@ internal readonly struct LRESULT { public readonly nint Value; - public static unsafe implicit operator LRESULT(nint value) => *(LRESULT*)&value; + public static unsafe implicit operator LRESULT(nint value) + { + return *(LRESULT*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCSTR.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCSTR.cs index 91449169b..4a3c253f6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCSTR.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCSTR.cs @@ -7,7 +7,13 @@ internal readonly struct PCSTR { public readonly unsafe byte* Value; - public static unsafe implicit operator PCSTR(byte* value) => *(PCSTR*)&value; + public static unsafe implicit operator PCSTR(byte* value) + { + return *(PCSTR*)&value; + } - public static unsafe implicit operator byte*(PCSTR value) => *(byte**)&value; + public static unsafe implicit operator byte*(PCSTR value) + { + return *(byte**)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCWSTR.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCWSTR.cs index 1dda18f36..c8d36c33b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCWSTR.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PCWSTR.cs @@ -7,7 +7,13 @@ internal readonly struct PCWSTR { public readonly unsafe char* Value; - public static unsafe implicit operator PCWSTR(char* value) => *(PCWSTR*)&value; + public static unsafe implicit operator PCWSTR(char* value) + { + return *(PCWSTR*)&value; + } - public static unsafe implicit operator char*(PCWSTR value) => *(char**)&value; + public static unsafe implicit operator char*(PCWSTR value) + { + return *(char**)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PSID.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PSID.cs index 2c969ebb6..b944d575b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PSID.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PSID.cs @@ -9,7 +9,13 @@ internal struct PSID { public unsafe void* Value; - public static unsafe implicit operator PSID(SID* value) => *(PSID*)&value; + public static unsafe implicit operator PSID(SID* value) + { + return *(PSID*)&value; + } - public static unsafe implicit operator void*(PSID value) => *(void**)&value; + public static unsafe implicit operator void*(PSID value) + { + return *(void**)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PWSTR.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PWSTR.cs index e5e8ca35c..46b662a1c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PWSTR.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Foundation/PWSTR.cs @@ -7,7 +7,13 @@ internal readonly struct PWSTR { public readonly unsafe char* Value; - public static unsafe implicit operator PWSTR(char* value) => *(PWSTR*)&value; + public static unsafe implicit operator PWSTR(char* value) + { + return *(PWSTR*)&value; + } - public static unsafe implicit operator char*(PWSTR value) => *(char**)&value; + public static unsafe implicit operator char*(PWSTR value) + { + return *(char**)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Asynchronous.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Asynchronous.cs index 6416b5f75..30e4215e3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Asynchronous.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Asynchronous.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Asynchronous +internal readonly unsafe struct ID3D11Asynchronous { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11BlendState.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11BlendState.cs index 6a358d38f..1edaaa9c1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11BlendState.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11BlendState.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11BlendState +internal readonly unsafe struct ID3D11BlendState { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Buffer.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Buffer.cs index 4434c2d71..66f2d0bec 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Buffer.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Buffer.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Buffer +internal readonly unsafe struct ID3D11Buffer { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassInstance.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassInstance.cs index 6a7c969f2..d1448f18d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassInstance.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassInstance.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11ClassInstance +internal readonly unsafe struct ID3D11ClassInstance { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassLinkage.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassLinkage.cs index aa8f11c37..28f480a11 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassLinkage.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ClassLinkage.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11ClassLinkage +internal readonly unsafe struct ID3D11ClassLinkage { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11CommandList.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11CommandList.cs index a32a267d1..2dacc2975 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11CommandList.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11CommandList.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11CommandList +internal readonly unsafe struct ID3D11CommandList { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ComputeShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ComputeShader.cs index e3e7c8db6..9ad3ee32b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ComputeShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ComputeShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11ComputeShader +internal readonly unsafe struct ID3D11ComputeShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Counter.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Counter.cs index d77e2ed08..18a69e076 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Counter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Counter.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Counter +internal readonly unsafe struct ID3D11Counter { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilState.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilState.cs index 33cabc7a7..8683da77c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilState.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilState.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11DepthStencilState +internal readonly unsafe struct ID3D11DepthStencilState { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilView.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilView.cs index 65b03b249..cfdd3bd82 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilView.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DepthStencilView.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11DepthStencilView +internal readonly unsafe struct ID3D11DepthStencilView { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DeviceChild.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DeviceChild.cs index a9a2d9f59..34bfcf54d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DeviceChild.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DeviceChild.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11DeviceChild +internal readonly unsafe struct ID3D11DeviceChild { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DomainShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DomainShader.cs index d8f7ab262..20d9fd491 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DomainShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11DomainShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11DomainShader +internal readonly unsafe struct ID3D11DomainShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11GeometryShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11GeometryShader.cs index 892164512..93ee148f4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11GeometryShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11GeometryShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11GeometryShader +internal readonly unsafe struct ID3D11GeometryShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11HullShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11HullShader.cs index 6b130671a..44c6e63a4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11HullShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11HullShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11HullShader +internal readonly unsafe struct ID3D11HullShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11InputLayout.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11InputLayout.cs index e642de53c..5bb22692d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11InputLayout.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11InputLayout.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11InputLayout +internal readonly unsafe struct ID3D11InputLayout { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11PixelShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11PixelShader.cs index 430d56cfc..0929e117f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11PixelShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11PixelShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11PixelShader +internal readonly unsafe struct ID3D11PixelShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Predicate.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Predicate.cs index c09a0b30f..9283bf6cf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Predicate.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Predicate.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Predicate +internal readonly unsafe struct ID3D11Predicate { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Query.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Query.cs index 08b49afec..7e32f383b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Query.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Query.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Query +internal readonly unsafe struct ID3D11Query { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RasterizerState.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RasterizerState.cs index 2621ed629..059fe5467 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RasterizerState.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RasterizerState.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11RasterizerState +internal readonly unsafe struct ID3D11RasterizerState { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RenderTargetView.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RenderTargetView.cs index 8fca1f10a..43297f955 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RenderTargetView.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11RenderTargetView.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11RenderTargetView +internal readonly unsafe struct ID3D11RenderTargetView { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Resource.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Resource.cs index 16fb4553a..8ddffa667 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Resource.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Resource.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Resource +internal readonly unsafe struct ID3D11Resource { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11SamplerState.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11SamplerState.cs index 6dca1e284..3cff8457f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11SamplerState.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11SamplerState.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11SamplerState +internal readonly unsafe struct ID3D11SamplerState { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ShaderResourceView.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ShaderResourceView.cs index c2fc3a258..98e20934a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ShaderResourceView.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11ShaderResourceView.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11ShaderResourceView +internal readonly unsafe struct ID3D11ShaderResourceView { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture1D.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture1D.cs index f67823cf7..20bf6f391 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture1D.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture1D.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Texture1D +internal readonly unsafe struct ID3D11Texture1D { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture2D.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture2D.cs index d9e6910f9..b98a3d482 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture2D.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture2D.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Texture2D +internal readonly unsafe struct ID3D11Texture2D { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture3D.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture3D.cs index 1c40cbef3..441150e9f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture3D.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11Texture3D.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11Texture3D +internal readonly unsafe struct ID3D11Texture3D { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11UnorderedAccessView.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11UnorderedAccessView.cs index de2fc820e..1230e5b08 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11UnorderedAccessView.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11UnorderedAccessView.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11UnorderedAccessView +internal readonly unsafe struct ID3D11UnorderedAccessView { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11VertexShader.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11VertexShader.cs index 5f83cc99b..088960a0b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11VertexShader.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11VertexShader.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11VertexShader +internal readonly unsafe struct ID3D11VertexShader { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11View.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11View.cs index af06410b9..bfd94ecd0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11View.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Direct3D11/ID3D11View.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Direct3D11; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct ID3D11View +internal readonly unsafe struct ID3D11View { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter.cs index 7ff068d9c..5e92b78b5 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIAdapter +internal readonly unsafe struct IDXGIAdapter { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter1.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter1.cs index 07b261277..4c0adbc8e 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter1.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIAdapter1.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIAdapter1 +internal readonly unsafe struct IDXGIAdapter1 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDevice.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDevice.cs index 84916f431..39ffcaef0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDevice.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDevice.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIDevice +internal readonly unsafe struct IDXGIDevice { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDeviceSubObject.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDeviceSubObject.cs index 2c701eec4..269d9077c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDeviceSubObject.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIDeviceSubObject.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIDeviceSubObject +internal readonly unsafe struct IDXGIDeviceSubObject { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory.cs index 76f263705..82acd91c0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIFactory +internal readonly unsafe struct IDXGIFactory { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory1.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory1.cs index 20eb3a602..816d24d9d 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory1.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory1.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; [SupportedOSPlatform("windows6.1")] -internal unsafe readonly struct IDXGIFactory1 +internal readonly unsafe struct IDXGIFactory1 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory2.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory2.cs index bfda0fd29..5c8fa97c4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory2.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory2.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; [SupportedOSPlatform("windows8.0")] -internal unsafe readonly struct IDXGIFactory2 +internal readonly unsafe struct IDXGIFactory2 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory3.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory3.cs index ab45029f7..cf331b618 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory3.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory3.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; [SupportedOSPlatform("windows8.1")] -internal unsafe readonly struct IDXGIFactory3 +internal readonly unsafe struct IDXGIFactory3 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory4.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory4.cs index b11cafa3d..0af739971 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory4.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory4.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIFactory4 +internal readonly unsafe struct IDXGIFactory4 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory5.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory5.cs index 072a4cba9..f7db077a1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory5.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIFactory5.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIFactory5 +internal readonly unsafe struct IDXGIFactory5 { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIObject.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIObject.cs index 4588585dc..4a0932dbf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIObject.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIObject.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIObject +internal readonly unsafe struct IDXGIObject { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIOutput.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIOutput.cs index 4e8ad0d9e..ab034bcbd 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIOutput.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGIOutput.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGIOutput +internal readonly unsafe struct IDXGIOutput { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGISwapChain.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGISwapChain.cs index be912cf85..d90bc04e4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGISwapChain.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Dxgi/IDXGISwapChain.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.Graphics.Dxgi; -internal unsafe readonly struct IDXGISwapChain +internal readonly unsafe struct IDXGISwapChain { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Gdi/HDC.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Gdi/HDC.cs index fe13a7096..712181100 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Gdi/HDC.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Graphics/Gdi/HDC.cs @@ -11,10 +11,19 @@ internal readonly struct HDC public readonly nint Value; - public static unsafe implicit operator HDC(nint value) => *(HDC*)&value; + public static unsafe implicit operator HDC(nint value) + { + return *(HDC*)&value; + } - public static unsafe bool operator ==(HDC left, HDC right) => *(nint*)&left == *(nint*)&right; + public static unsafe bool operator ==(HDC left, HDC right) + { + return *(nint*)&left == *(nint*)&right; + } - public static unsafe bool operator !=(HDC left, HDC right) => *(nint*)&left != *(nint*)&right; + public static unsafe bool operator !=(HDC left, HDC right) + { + return *(nint*)&left != *(nint*)&right; + } } #pragma warning restore CS0660, CS0661 \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Kernel32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Kernel32.cs index fb8c07e39..bdac60275 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Kernel32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Kernel32.cs @@ -26,7 +26,7 @@ internal static class Kernel32 [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern HANDLE CreateEventW([AllowNull] SECURITY_ATTRIBUTES* lpEventAttributes, BOOL bManualReset, BOOL bInitialState, [AllowNull] PCWSTR lpName); + public static extern unsafe HANDLE CreateEventW([AllowNull] SECURITY_ATTRIBUTES* lpEventAttributes, BOOL bManualReset, BOOL bInitialState, [AllowNull] PCWSTR lpName); [DebuggerStepThrough] public static unsafe HANDLE CreateEventW(ref readonly SECURITY_ATTRIBUTES eventAttributes, BOOL bManualReset, BOOL bInitialState, [AllowNull] ReadOnlySpan name) @@ -48,7 +48,7 @@ public static unsafe HANDLE CreateEventW(ref readonly SECURITY_ATTRIBUTES eventA public static extern BOOL FreeLibrary(HMODULE hLibModule); [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern BOOL GetConsoleMode(HANDLE hConsoleHandle, CONSOLE_MODE* lpMode); + public static extern unsafe BOOL GetConsoleMode(HANDLE hConsoleHandle, CONSOLE_MODE* lpMode); [DebuggerStepThrough] public static unsafe BOOL GetConsoleMode(HANDLE hConsoleHandle, out CONSOLE_MODE mode) @@ -72,10 +72,10 @@ public static unsafe BOOL GetConsoleMode(HANDLE hConsoleHandle, out CONSOLE_MODE [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL HeapFree(HANDLE hHeap, HEAP_FLAGS dwFlags, [AllowNull] void* lpMem); + public static extern unsafe BOOL HeapFree(HANDLE hHeap, HEAP_FLAGS dwFlags, [AllowNull] void* lpMem); [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern BOOL K32EnumProcessModules(HANDLE hProcess, HMODULE* lphModule, uint cb, uint* lpcbNeeded); + public static extern unsafe BOOL K32EnumProcessModules(HANDLE hProcess, HMODULE* lphModule, uint cb, uint* lpcbNeeded); [DebuggerStepThrough] public static unsafe BOOL K32EnumProcessModules(HANDLE hProcess, Span hModules, out uint cbNeeded) @@ -102,7 +102,7 @@ public static unsafe uint K32GetModuleBaseNameW(HANDLE hProcess, [AllowNull] HMO } [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern BOOL K32GetModuleInformation(HANDLE hProcess, HMODULE hModule, MODULEINFO* lpmodinfo, uint cb); + public static extern unsafe BOOL K32GetModuleInformation(HANDLE hProcess, HMODULE hModule, MODULEINFO* lpmodinfo, uint cb); [DebuggerStepThrough] public static unsafe BOOL K32GetModuleInformation(HANDLE hProcess, HMODULE hModule, out MODULEINFO modinfo) @@ -132,7 +132,7 @@ public static unsafe HMODULE LoadLibraryExW(ReadOnlySpan libFileName, [All [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL ReadProcessMemory(HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, nuint nSize, [MaybeNull] nuint* lpNumberOfBytesRead); + public static extern unsafe BOOL ReadProcessMemory(HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, nuint nSize, [MaybeNull] nuint* lpNumberOfBytesRead); [DebuggerStepThrough] public static unsafe BOOL ReadProcessMemory(HANDLE hProcess, void* lpBaseAddress, Span buffer, [MaybeNull] out nuint numberOfBytesRead) @@ -180,7 +180,7 @@ public static unsafe BOOL SetConsoleTitleW(ReadOnlySpan consoleTitle) [DllImport("KERNEL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL WriteProcessMemory(HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, nuint nSize, nuint* lpNumberOfBytesWritten); + public static extern unsafe BOOL WriteProcessMemory(HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, nuint nSize, nuint* lpNumberOfBytesWritten); [DebuggerStepThrough] public static unsafe BOOL WriteProcessMemory(HANDLE hProcess, void* lpBaseAddress, ReadOnlySpan buffer, out nuint numberOfBytesWritten) diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Ole32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Ole32.cs index 3cdf2e64a..b5b7d2074 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Ole32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Ole32.cs @@ -15,7 +15,7 @@ internal static class Ole32 { [DllImport("OLE32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern HRESULT CoCreateInstance(Guid* rclsid, [AllowNull] IUnknown pUnkOuter, CLSCTX dwClsContext, Guid* riid, void** ppv); + public static extern unsafe HRESULT CoCreateInstance(Guid* rclsid, [AllowNull] IUnknown pUnkOuter, CLSCTX dwClsContext, Guid* riid, void** ppv); [DebuggerStepThrough] public static unsafe HRESULT CoCreateInstance(ref readonly Guid clsid, [AllowNull] IUnknown pUnkOuter, CLSCTX dwClsContext, ref readonly Guid iid, out T* pv) @@ -35,10 +35,10 @@ public static unsafe HRESULT CoCreateInstance(ref readonly Guid clsid, [Allow [DllImport("OLE32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern void CoTaskMemFree([AllowNull] void* pv); + public static extern unsafe void CoTaskMemFree([AllowNull] void* pv); [DllImport("OLE32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - public static unsafe extern HRESULT CoWaitForMultipleObjects(uint dwFlags, uint dwTimeout, uint cHandles, HANDLE* pHandles, uint* lpdwindex); + public static extern unsafe HRESULT CoWaitForMultipleObjects(uint dwFlags, uint dwTimeout, uint cHandles, HANDLE* pHandles, uint* lpdwindex); [DebuggerStepThrough] public static unsafe HRESULT CoWaitForMultipleObjects(CWMO_FLAGS dwFlags, uint dwTimeout, ReadOnlySpan handles, out uint dwindex) diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Registry/HKEY.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Registry/HKEY.cs index c7bb03f1c..6f8d931be 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Registry/HKEY.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Registry/HKEY.cs @@ -16,5 +16,8 @@ internal readonly struct HKEY public readonly nint Value; - public static unsafe implicit operator HKEY(int value) => *(HKEY*)&value; + public static unsafe implicit operator HKEY(int value) + { + return *(HKEY*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Shell32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Shell32.cs index ce1e20eee..4e520e914 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Shell32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Shell32.cs @@ -15,7 +15,7 @@ internal static class Shell32 { [DllImport("SHELL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows6.0.6000")] - public static unsafe extern HRESULT SHCreateItemFromParsingName(PCWSTR pszPath, [AllowNull] IBindCtx pbc, Guid* riid, void** ppv); + public static extern unsafe HRESULT SHCreateItemFromParsingName(PCWSTR pszPath, [AllowNull] IBindCtx pbc, Guid* riid, void** ppv); [DebuggerStepThrough] public static unsafe HRESULT SHCreateItemFromParsingName(ReadOnlySpan szPath, [AllowNull] IBindCtx pbc, ref readonly Guid riid, out T* pv) @@ -35,7 +35,7 @@ public static unsafe HRESULT SHCreateItemFromParsingName(ReadOnlySpan s [DllImport("SHELL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows6.1")] - public static unsafe extern HRESULT Shell_NotifyIconGetRect(NOTIFYICONIDENTIFIER* identifier, RECT* iconLocation); + public static extern unsafe HRESULT Shell_NotifyIconGetRect(NOTIFYICONIDENTIFIER* identifier, RECT* iconLocation); public static unsafe HRESULT Shell_NotifyIconGetRect(ref readonly NOTIFYICONIDENTIFIER identifier, out RECT iconLocation) { @@ -50,7 +50,7 @@ public static unsafe HRESULT Shell_NotifyIconGetRect(ref readonly NOTIFYICONIDEN [DllImport("SHELL32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.1.2600")] - public static unsafe extern BOOL Shell_NotifyIconW(NOTIFY_ICON_MESSAGE dwMessage, NOTIFYICONDATAW* lpData); + public static extern unsafe BOOL Shell_NotifyIconW(NOTIFY_ICON_MESSAGE dwMessage, NOTIFYICONDATAW* lpData); public static unsafe BOOL Shell_NotifyIconW(NOTIFY_ICON_MESSAGE dwMessage, ref readonly NOTIFYICONDATAW data) { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs index 344a78930..ddd19569e 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IBindCtx +internal readonly unsafe struct IBindCtx { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs index 967e7a0d9..bccbf3592 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IEnumMoniker +internal readonly unsafe struct IEnumMoniker { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs index fc55711b1..20ab30644 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IEnumString +internal readonly unsafe struct IEnumString { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs index e3ba23db4..d73c974f5 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IMoniker +internal readonly unsafe struct IMoniker { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs index 2cdc9b0dd..6656bbd81 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IPersist +internal readonly unsafe struct IPersist { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs index 4ffa32b73..f4588acc8 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IPersistStream +internal readonly unsafe struct IPersistStream { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs index 8dc041050..12ad83464 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IRunningObjectTable +internal readonly unsafe struct IRunningObjectTable { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs index 6fd1b46c0..4003fd69c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct ISequentialStream +internal readonly unsafe struct ISequentialStream { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs index 38c2de500..7489e47a1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs @@ -9,7 +9,7 @@ namespace Snap.Hutao.Win32.System.Com; [SupportedOSPlatform("windows5.0")] -internal unsafe readonly struct IStream +internal readonly unsafe struct IStream { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IUnknown.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IUnknown.cs index 7886d7718..127f633b0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IUnknown.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IUnknown.cs @@ -7,7 +7,7 @@ namespace Snap.Hutao.Win32.System.Com; -internal unsafe readonly struct IUnknown +internal readonly unsafe struct IUnknown { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/WinRT/IInspectable.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/WinRT/IInspectable.cs index ccb7f91d7..906ea9bb9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/WinRT/IInspectable.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/WinRT/IInspectable.cs @@ -8,7 +8,7 @@ namespace Snap.Hutao.Win32.System.WinRT; -internal unsafe readonly struct IInspectable +internal readonly unsafe struct IInspectable { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOpenDialog.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOpenDialog.cs index d2e7a2970..d03369648 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOpenDialog.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOpenDialog.cs @@ -6,7 +6,7 @@ namespace Snap.Hutao.Win32.UI.Shell; -internal unsafe readonly struct FileOpenDialog +internal readonly unsafe struct FileOpenDialog { internal static ref readonly Guid CLSID { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOperation.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOperation.cs index 14400d013..cb3cbe92e 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOperation.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileOperation.cs @@ -6,7 +6,7 @@ namespace Snap.Hutao.Win32.UI.Shell; -internal unsafe readonly struct FileOperation +internal readonly unsafe struct FileOperation { internal static ref readonly Guid CLSID { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileSaveDialog.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileSaveDialog.cs index 4b1414504..546db1ae2 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileSaveDialog.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/FileSaveDialog.cs @@ -6,7 +6,7 @@ namespace Snap.Hutao.Win32.UI.Shell; -internal unsafe readonly struct FileSaveDialog +internal readonly unsafe struct FileSaveDialog { internal static ref readonly Guid CLSID { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs index f842b8e44..ead9316a5 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IFileDialogEvents +internal readonly unsafe struct IFileDialogEvents { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileOperationProgressSink.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileOperationProgressSink.cs index df0207720..081d5c8d1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileOperationProgressSink.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileOperationProgressSink.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IFileOperationProgressSink +internal readonly unsafe struct IFileOperationProgressSink { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs index 895aca9b6..eb6b39ef3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell; [SupportedOSPlatform("windows5.1.2600")] -internal unsafe readonly struct IModalWindow +internal readonly unsafe struct IModalWindow { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IOperationsProgressDialog.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IOperationsProgressDialog.cs index 66da7b06a..e2a480ddb 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IOperationsProgressDialog.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IOperationsProgressDialog.cs @@ -11,7 +11,7 @@ namespace Snap.Hutao.Win32.UI.Shell; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IOperationsProgressDialog +internal readonly unsafe struct IOperationsProgressDialog { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs index 6daeba18d..1b0f68dcf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IShellItemFilter +internal readonly unsafe struct IShellItemFilter { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellLinkW.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellLinkW.cs index 8eb2b00d1..47ca7f4d3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellLinkW.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellLinkW.cs @@ -55,7 +55,7 @@ public HRESULT SetPath(ReadOnlySpan szFile) } } - internal unsafe readonly struct Vftbl + internal readonly unsafe struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; internal readonly delegate* unmanaged[Stdcall] GetPath; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IObjectWithPropertyKey.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IObjectWithPropertyKey.cs index f5587653d..6a487c4b7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IObjectWithPropertyKey.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IObjectWithPropertyKey.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell.PropertiesSystem; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IObjectWithPropertyKey +internal readonly unsafe struct IObjectWithPropertyKey { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChange.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChange.cs index 804f526b4..5c9d4f591 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChange.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChange.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell.PropertiesSystem; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IPropertyChange +internal readonly unsafe struct IPropertyChange { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChangeArray.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChangeArray.cs index 35e712b12..a3149aa4b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChangeArray.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/PropertiesSystem/IPropertyChangeArray.cs @@ -10,7 +10,7 @@ namespace Snap.Hutao.Win32.UI.Shell.PropertiesSystem; [SupportedOSPlatform("windows6.0.6000")] -internal unsafe readonly struct IPropertyChangeArray +internal readonly unsafe struct IPropertyChangeArray { public readonly Vftbl* ThisPtr; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/SUBCLASSPROC.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/SUBCLASSPROC.cs index 3c931be01..b982fcbd6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/SUBCLASSPROC.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/SUBCLASSPROC.cs @@ -5,7 +5,7 @@ namespace Snap.Hutao.Win32.UI.Shell; -internal unsafe readonly struct SUBCLASSPROC +internal readonly unsafe struct SUBCLASSPROC { [SuppressMessage("", "IDE0052")] private readonly delegate* unmanaged[Stdcall] value; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/ShellLink.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/ShellLink.cs index 85fbda9bc..83010dca7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/ShellLink.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/ShellLink.cs @@ -6,7 +6,7 @@ namespace Snap.Hutao.Win32.UI.Shell; -internal unsafe readonly struct ShellLink +internal readonly unsafe struct ShellLink { internal static ref readonly Guid CLSID { diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HICON.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HICON.cs index 35dbc4b48..97d3df75b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HICON.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HICON.cs @@ -9,7 +9,13 @@ internal readonly struct HICON { public readonly nint Value; - public static unsafe implicit operator HICON(nint value) => *(HICON*)&value; + public static unsafe implicit operator HICON(nint value) + { + return *(HICON*)&value; + } - public static unsafe implicit operator nint(HICON value) => *(nint*)&value; + public static unsafe implicit operator nint(HICON value) + { + return *(nint*)&value; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HOOKPROC.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HOOKPROC.cs index a0de0d972..f4f70b82c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HOOKPROC.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/HOOKPROC.cs @@ -5,7 +5,7 @@ namespace Snap.Hutao.Win32.UI.WindowsAndMessaging; -internal unsafe readonly struct HOOKPROC +internal readonly unsafe struct HOOKPROC { [SuppressMessage("", "IDE0052")] private readonly delegate* unmanaged[Stdcall] value; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/WNDPROC.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/WNDPROC.cs index 127757638..e62755084 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/WNDPROC.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/WindowsAndMessaging/WNDPROC.cs @@ -5,7 +5,7 @@ namespace Snap.Hutao.Win32.UI.WindowsAndMessaging; -internal unsafe readonly struct WNDPROC +internal readonly unsafe struct WNDPROC { [SuppressMessage("", "IDE0052")] private readonly delegate* unmanaged[Stdcall] value; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/User32.cs b/src/Snap.Hutao/Snap.Hutao/Win32/User32.cs index 35cc7313c..2dcf5b686 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/User32.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/User32.cs @@ -21,7 +21,7 @@ internal static class User32 [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL ClientToScreen(HWND hWnd, POINT* lpPoint); + public static extern unsafe BOOL ClientToScreen(HWND hWnd, POINT* lpPoint); public static unsafe BOOL ClientToScreen(HWND hWnd, ref POINT point) { @@ -33,7 +33,7 @@ public static unsafe BOOL ClientToScreen(HWND hWnd, ref POINT point) [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern HWND CreateWindowExW(WINDOW_EX_STYLE dwExStyle, [AllowNull] PCWSTR lpClassName, [AllowNull] PCWSTR lpWindowName, WINDOW_STYLE dwStyle, int X, int Y, int nWidth, int nHeight, [AllowNull] HWND hWndParent, [AllowNull] HMENU hMenu, [AllowNull] HINSTANCE hInstance, [AllowNull] void* lpParam); + public static extern unsafe HWND CreateWindowExW(WINDOW_EX_STYLE dwExStyle, [AllowNull] PCWSTR lpClassName, [AllowNull] PCWSTR lpWindowName, WINDOW_STYLE dwStyle, int X, int Y, int nWidth, int nHeight, [AllowNull] HWND hWndParent, [AllowNull] HMENU hMenu, [AllowNull] HINSTANCE hInstance, [AllowNull] void* lpParam); public static unsafe HWND CreateWindowExW(WINDOW_EX_STYLE dwExStyle, [AllowNull] string className, [AllowNull] string windowName, WINDOW_STYLE dwStyle, int X, int Y, int nWidth, int nHeight, [AllowNull] HWND hWndParent, [AllowNull] HMENU hMenu, [AllowNull] HINSTANCE hInstance, [AllowNull] void* lpParam) { @@ -60,7 +60,7 @@ public static unsafe HWND CreateWindowExW(WINDOW_EX_STYLE dwExStyle, [AllowNull] [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL EqualRect(RECT* lprc1, RECT* lprc2); + public static extern unsafe BOOL EqualRect(RECT* lprc1, RECT* lprc2); [DebuggerStepThrough] public static unsafe BOOL EqualRect(ref readonly RECT rc1, ref readonly RECT rc2) @@ -92,7 +92,7 @@ public static unsafe HWND FindWindowExW([AllowNull] HWND hWndParent, [AllowNull] [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL GetClientRect(HWND hWnd, RECT* lpRect); + public static extern unsafe BOOL GetClientRect(HWND hWnd, RECT* lpRect); public static unsafe BOOL GetClientRect(HWND hWnd, out RECT rect) { @@ -120,7 +120,7 @@ public static unsafe BOOL GetClientRect(HWND hWnd, out RECT rect) [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT* lpwndpl); + public static extern unsafe BOOL GetWindowPlacement(HWND hWnd, WINDOWPLACEMENT* lpwndpl); [DebuggerStepThrough] public static unsafe BOOL GetWindowPlacement(HWND hWnd, ref WINDOWPLACEMENT wndpl) @@ -133,7 +133,7 @@ public static unsafe BOOL GetWindowPlacement(HWND hWnd, ref WINDOWPLACEMENT wndp [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL GetWindowRect(HWND hWnd, RECT* lpRect); + public static extern unsafe BOOL GetWindowRect(HWND hWnd, RECT* lpRect); [DebuggerStepThrough] public static unsafe BOOL GetWindowRect(HWND hWnd, out RECT rect) @@ -146,7 +146,7 @@ public static unsafe BOOL GetWindowRect(HWND hWnd, out RECT rect) [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern uint GetWindowThreadProcessId(HWND hWnd, [MaybeNull] uint* lpdwProcessId); + public static extern unsafe uint GetWindowThreadProcessId(HWND hWnd, [MaybeNull] uint* lpdwProcessId); [DebuggerStepThrough] public static unsafe uint GetWindowThreadProcessId(HWND hWnd, [MaybeNull] out uint dwProcessId) @@ -159,7 +159,7 @@ public static unsafe uint GetWindowThreadProcessId(HWND hWnd, [MaybeNull] out ui [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern BOOL IntersectRect([Out] RECT* lprcDst, RECT* lprcSrc1, RECT* lprcSrc2); + public static extern unsafe BOOL IntersectRect([Out] RECT* lprcDst, RECT* lprcSrc1, RECT* lprcSrc2); public static unsafe BOOL IntersectRect(out RECT rcDst, ref readonly RECT rcSrc1, ref readonly RECT rcSrc2) { @@ -189,7 +189,7 @@ public static unsafe BOOL IntersectRect(out RECT rcDst, ref readonly RECT rcSrc1 [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern ushort RegisterClassW(WNDCLASSW* lpWndClass); + public static extern unsafe ushort RegisterClassW(WNDCLASSW* lpWndClass); public static unsafe ushort RegisterClassW(ref readonly WNDCLASSW lpWndClass) { @@ -234,7 +234,7 @@ public static unsafe HANDLE RemovePropW(HWND hWnd, string @string) [DllImport("USER32.dll", CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] [SupportedOSPlatform("windows5.0")] - public static unsafe extern uint SendInput(uint cInputs, INPUT* pInputs, int cbSize); + public static extern unsafe uint SendInput(uint cInputs, INPUT* pInputs, int cbSize); [DebuggerStepThrough] public static unsafe uint SendInput(ReadOnlySpan inputs, int cbSize)