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)