---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 226
  claims_with_evidence: 218
  claims_without_evidence: 8
confidence_derived: 0.96
---

# 根拠レポート：cascadia-WindowsTerminal 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：218 / 226、根拠なし：8
- 優先レビュー（高）
  1. **C-220, C-221 (getDesktopManager)**: COM/VirtualDesktopManagerの実装詳細はAppHost.cppに記載あるが、スレッドセーフ性のテスト方法は要検討
  2. **C-158, C-159 (EnsureNativeArchitecture)**: IsWow64Process2のモック方法が未確定
  3. **C-097 (SummonWindow OS animation)**: SystemParametersInfoWのモック検証が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `src/cascadia/WindowsTerminal/BaseWindow.h` - テンプレートクラスBaseWindow<T>の全定義
- E-02: `src/cascadia/WindowsTerminal/IslandWindow.h` - IslandWindowクラスの宣言
- E-03: `src/cascadia/WindowsTerminal/IslandWindow.cpp` - IslandWindowクラスの実装（約1400行）
- E-04: `src/cascadia/WindowsTerminal/NonClientIslandWindow.h` - NonClientIslandWindowクラスの宣言
- E-05: `src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp` - NonClientIslandWindowクラスの実装（約900行）
- E-06: `src/cascadia/WindowsTerminal/AppHost.h` - AppHostクラスの宣言
- E-07: `src/cascadia/WindowsTerminal/AppHost.cpp` - AppHostクラスの実装（約700行）
- E-08: `src/cascadia/WindowsTerminal/WindowEmperor.h` - WindowEmperorクラスの宣言
- E-09: `src/cascadia/WindowsTerminal/WindowEmperor.cpp` - WindowEmperorクラスの実装（約1400行）
- E-10: `src/cascadia/WindowsTerminal/VirtualDesktopUtils.h` - VirtualDesktopUtils名前空間の宣言
- E-11: `src/cascadia/WindowsTerminal/VirtualDesktopUtils.cpp` - VirtualDesktopUtils名前空間の実装
- E-12: `src/cascadia/WindowsTerminal/icon.h` - アイコン関連関数の宣言
- E-13: `src/cascadia/WindowsTerminal/icon.cpp` - アイコン関連関数の実装
- E-14: `src/cascadia/WindowsTerminal/main.cpp` - wWinMainエントリポイントとヘルパー関数
- E-15: `src/cascadia/WindowsTerminal/resource.h` - リソースID定義

## 3) Claims と根拠の対応（レビューの主戦場）

### BaseWindow<T> (C-01 -- C-20)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GetThisFromHandle正常系 | E-01 L12-15 | ○ |
| C-02 | GetThisFromHandle異常系(GWLP_USERDATA=0) | E-01 L12-15 | ○ |
| C-03 | WndProc WM_NCCREATE正常系 | E-01 L17-37 | ○ |
| C-04 | WndProc 通常メッセージ正常系 | E-01 L17-37 | ○ |
| C-05 | WndProc GWLP_USERDATA未設定異常系 | E-01 L17-37 | ○ |
| C-06 | MessageHandler WM_DPICHANGED | E-01 L39-89 | ○ |
| C-07 | MessageHandler WM_SIZE(SIZE_RESTORED) | E-01 L48-78 | ○ |
| C-08 | MessageHandler WM_SIZE(SIZE_MAXIMIZED) | E-01 L48-78 | ○ |
| C-09 | MessageHandler WM_SIZE(SIZE_MINIMIZED) | E-01 L48-78 | ○ |
| C-10 | MessageHandler 最小化→SIZE_RESTORED | E-01 L48-78 | ○ |
| C-11 | MessageHandler CM_UPDATE_TITLE | E-01 L81-85 | ○ |
| C-12 | HandleDpiChange 子ウィンドウあり | E-01 L92-109 | ○ |
| C-13 | HandleDpiChange 子ウィンドウなし | E-01 L92-109 | ○ |
| C-14 | GetPhysicalSize | E-01 L136-143 | ○ |
| C-15 | GetLogicalSize(physicalSize) | E-01 L154-161 | ○ |
| C-16 | GetLogicalSize DPI=96 | E-01 L154-161 | ○ |
| C-17 | GetCurrentDpiScale | E-01 L128-133 | ○ |
| C-18 | UpdateTitle正常系 | E-01 L174-178 | ○ |
| C-19 | UpdateTitle空文字列 | E-01 L174-178 | ○ |
| C-20 | RefreshCurrentDPI | E-01 L184-187 | ○ |

### IslandWindow (C-21 -- C-99)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | IsCursorHidden true | E-03 L42-45 | ○ |
| C-22 | IsCursorHidden false | E-03 L42-45 | ○ |
| C-23 | HideCursor shouldVanish有効 | E-03 L47-60 | ○ |
| C-24 | HideCursor 既に非表示 | E-03 L55 | ○ |
| C-25 | HideCursor shouldVanish無効 | E-03 L49-53 | ○ |
| C-26 | ShowCursorMaybe WM_ACTIVATE | E-03 L62-71 | ○ |
| C-27 | ShowCursorMaybe WM_POINTERUPDATE | E-03 L62-71 | ○ |
| C-28 | ShowCursorMaybe カーソル表示中 | E-03 L64 | ○ |
| C-29 | ShowCursorMaybe 対象外メッセージ | E-03 L64-68 | ○ |
| C-30 | MakeWindow正常系 | E-03 L123-165 | ○ |
| C-31 | MakeWindow二重呼び出し | E-03 L125-129 | ○ |
| C-32 | Close正常系 | E-03 L87-110 | ○ |
| C-33 | Close _source=nullptr | E-03 L99 | ○ |
| C-34 | GetInteropHandle | E-03 L112-115 | ○ |
| C-35 | Initialize正常系 | E-03 L373-405 | ○ |
| C-36 | SetCreateCallback | E-03 L178-181 | ○ |
| C-37 | SetSnapDimensionCallback | E-03 L198-201 | ○ |
| C-38 | OnSize正常系 | E-03 L407-422 | ○ |
| C-39 | OnSize _rootGrid=null | E-03 L416-421 | ○ |
| C-40 | OnResize _interopWindowHandle有効 | E-03 L730-736 | ○ |
| C-41 | OnResize _interopWindowHandle無効 | E-03 L732-735 | ○ |
| C-42 | OnMinimize通知領域あり | E-03 L740-747 | ○ |
| C-43 | OnMinimize通知領域なし | E-03 L743 | ○ |
| C-44 | SetContent | E-03 L756-760 | ○ |
| C-45 | GetNonClientFrame DPI=96 | E-03 L776-786 | ○ |
| C-46 | GetNonClientFrame DPI=144 | E-03 L776-786 | ○ |
| C-47 | GetTotalNonClientExclusiveSize | E-03 L794-801 | ○ |
| C-48 | _OnSizing スナップ正常系 | E-03 L245-340 | ○ |
| C-49 | _OnSizing コールバック未設定 | E-03 L247-252 | ○ |
| C-50 | _OnSizing QuakeWindow非BOTTOM | E-03 L258-264 | ○ |
| C-51 | _OnSizing QuakeWindow BOTTOM | E-03 L258 | ○ |
| C-52 | _OnSizing 左辺ドラッグ | E-03 L310-322 | ○ |
| C-53 | _OnMoving QuakeWindow | E-03 L352-364 | ○ |
| C-54 | _OnMoving 通常ウィンドウ | E-03 L352-366 | ○ |
| C-55 | _OnGetMinMaxInfo正常系 | E-03 L443-475 | ○ |
| C-56 | _OnGetMinMaxInfo コールバック未設定 | E-03 L448-451 | ○ |
| C-57 | MessageHandler WM_CLOSE | E-03 L590-597 | ○ |
| C-58 | MessageHandler WM_ACTIVATE(active) | E-03 L516-534 | ○ |
| C-59 | MessageHandler WM_ACTIVATE autoHide | E-03 L521-531 | ○ |
| C-60 | MessageHandler WM_MOVE | E-03 L585-588 | ○ |
| C-61 | MessageHandler WM_MOUSEWHEEL | E-03 L598-637 | ○ |
| C-62 | MessageHandler WM_MOUSEHWHEEL | E-03 L628-631 | ○ |
| C-63 | MessageHandler WM_MENUCHAR | E-03 L551-556 | ○ |
| C-64 | MessageHandler WM_SIZE QuakeMinimize | E-03 L569-577 | ○ |
| C-65 | MessageHandler SC_RESTORE fullscreen | E-03 L707-711 | ○ |
| C-66 | MessageHandler SYSCOMMAND menu | E-03 L712-717 | ○ |
| C-67 | MessageHandler WM_THEMECHANGED | E-03 L639-641 | ○ |
| C-68 | OnApplicationThemeChanged | E-03 L818-824 | ○ |
| C-69 | FocusModeChanged有効化 | E-03 L832-841 | ○ |
| C-70 | FocusModeChanged同値 | E-03 L835-838 | ○ |
| C-71 | FullscreenChanged有効化 | E-03 L849-858 | ○ |
| C-72 | FullscreenChanged同値 | E-03 L852-855 | ○ |
| C-73 | SetAlwaysOnTop true | E-03 L869-884 | ○ |
| C-74 | SetAlwaysOnTop false | E-03 L869-884 | ○ |
| C-75 | SetAlwaysOnTop ウィンドウなし | E-03 L873-884 | ○ |
| C-76 | ShowWindowChanged show | E-03 L893-910 | ○ |
| C-77 | ShowWindowChanged hide | E-03 L893-910 | ○ |
| C-78 | ShowWindowChanged show非最小化 | E-03 L901-904 | ○ |
| C-79 | FlashTaskbar | E-03 L919-924 | ○ |
| C-80 | SetTaskbarProgress state=0 | E-03 L933-971 | ○ |
| C-81 | SetTaskbarProgress state=1 | E-03 L933-971 | ○ |
| C-82 | SetTaskbarProgress state=2 | E-03 L933-971 | ○ |
| C-83 | SetTaskbarProgress state=3 | E-03 L933-971 | ○ |
| C-84 | SetTaskbarProgress state=4 | E-03 L933-971 | ○ |
| C-85 | SetTaskbarProgress _taskbar=null | E-03 L935 | ○ |
| C-86 | SetTaskbarProgress state=5 | E-03 L967 | ○ |
| C-87 | _getDesiredWindowStyle fullscreen | E-03 L999-1045 | ○ |
| C-88 | _getDesiredWindowStyle borderless | E-03 L999-1045 | ○ |
| C-89 | _getDesiredWindowStyle normal | E-03 L999-1045 | ○ |
| C-90 | _getDesiredWindowStyle fullscreen+borderless | E-03 L1003-1018 | ○ |
| C-91 | IsQuakeWindow getter | E-02 L60, E-03 | ○ |
| C-92 | IsQuakeWindow setter | E-02 L61 | ○ |
| C-93 | SetAutoHideWindow | E-02 L62 | ○ |
| C-94 | SummonWindow activateWindow | E-03 L1248-1308 | ○ |
| C-95 | SummonWindow dismiss | E-03 L1280-1302 | ○ |
| C-96 | SummonWindow toggleVisibility=false | E-03 L1273-1307 | ○ |
| C-97 | SummonWindow OSアニメーション無効 | E-03 L1255-1271 | △ |
| C-98 | AddToSystemMenu | E-02 L69 | ○ |
| C-99 | RemoveFromSystemMenu | E-02 L70 | ○ |

### NonClientIslandWindow (C-100 -- C-137)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-100 | コンストラクタ初期化 | E-05 L23-29 | ○ |
| C-101 | Close正常系 | E-05 L36-42 | ○ |
| C-102 | MakeWindow正常系 | E-05 L65-105 | ○ |
| C-103 | MakeWindow二重呼び出し | E-05 L67-71 | ○ |
| C-104 | Initialize正常系 | E-05 L351-390 | ○ |
| C-105 | SetContent正常系 | E-05 L398-410 | ○ |
| C-106 | SetContent非FrameworkElement | E-05 L405-409 | ○ |
| C-107 | SetTitlebarContent正常系 | E-05 L418-431 | ○ |
| C-108 | _GetTopBorderHeight maximized | E-05 L438-448 | ○ |
| C-109 | _GetTopBorderHeight fullscreen | E-05 L438-448 | ○ |
| C-110 | _GetTopBorderHeight normal | E-05 L438-448 | ○ |
| C-111 | _GetDragAreaRect visible | E-05 L450-489 | ○ |
| C-112 | _GetDragAreaRect hidden | E-05 L450-489 | ○ |
| C-113 | OnSize正常系 | E-05 L495-509 | ○ |
| C-114 | _OnNcCalcSize maximized非fullscreen | E-05 L615-727 | ○ |
| C-115 | _OnNcCalcSize wParam=FALSE | E-05 L617-620 | ○ |
| C-116 | _OnNcCalcSize autohideタスクバー | E-05 L658-722 | ○ |
| C-117 | _OnNcHitTest非クライアント | E-05 L737-788 | ○ |
| C-118 | _OnNcHitTest HTTOP | E-05 L776-785 | ○ |
| C-119 | _OnNcHitTest HTCAPTION | E-05 L787 | ○ |
| C-120 | _OnNcHitTest QuakeWindow | E-05 L749-763, L784 | ○ |
| C-121 | _dragBarNcHitTest HTCLOSE | E-05 L107-147 | ○ |
| C-122 | _dragBarNcHitTest HTMAXBUTTON | E-05 L107-147 | ○ |
| C-123 | _dragBarNcHitTest HTMINBUTTON | E-05 L107-147 | ○ |
| C-124 | _dragBarNcHitTest HTCAPTION | E-05 L107-147 | ○ |
| C-125 | _dragBarNcHitTest HTTOP | E-05 L143-145 | ○ |
| C-126 | _InputSinkMessageHandler WM_NCHITTEST | E-05 L164-176 | ○ |
| C-127 | _InputSinkMessageHandler NCMOUSEMOVE HTCLOSE | E-05 L178-228 | ○ |
| C-128 | _InputSinkMessageHandler NCMOUSEMOVE HTCAPTION | E-05 L188-198 | ○ |
| C-129 | _InputSinkMessageHandler NCLBUTTONDOWN | E-05 L240-266 | ○ |
| C-130 | _InputSinkMessageHandler NCLBUTTONUP | E-05 L268-295 | ○ |
| C-131 | _InputSinkMessageHandler NCMOUSELEAVE | E-05 L230-235 | ○ |
| C-132 | _UpdateMaximizedState変化あり | E-05 L516-526 | ○ |
| C-133 | _UpdateMaximizedState変化なし | E-05 L521-525 | ○ |
| C-134 | _OnMaximizeChange maximized | E-05 L532-552 | ○ |
| C-135 | _OnMaximizeChange normal | E-05 L532-552 | ○ |
| C-136 | GetNonClientFrame override | E-04 L38 | ○ |
| C-137 | UseMica | E-04 L51, E-04 L66-67 | △ |

### VirtualDesktopUtils (C-138 -- C-147)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-138 | GetCurrentVirtualDesktopId新レジストリ | E-11 L141-172 | ○ |
| C-139 | GetCurrentVirtualDesktopIdセッション | E-11 L141-172, E-11 L45-71 | ○ |
| C-140 | GetCurrentVirtualDesktopId配列フォールバック | E-11 L164-170 | ○ |
| C-141 | GetCurrentVirtualDesktopId全失敗 | E-11 L171 | ○ |
| C-142 | NewGetCurrentDesktopId正常系 | E-11 L29-43 | ○ |
| C-143 | NewGetCurrentDesktopIdキーなし | E-11 L32, L42 | ○ |
| C-144 | GetVirtualDesktopIds正常系 | E-11 L73-101 | ○ |
| C-145 | GetVirtualDesktopIds hKey=null | E-11 L75-78 | ○ |
| C-146 | GetVirtualDesktopIds空データ | E-11 L81-84 | ○ |
| C-147 | GetVirtualDesktopIds wstring版 | E-11 L123-139 | ○ |

### icon (C-148 -- C-153)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-148 | _GetActiveAppIconResource通常 | E-13 L8-28 | ○ |
| C-149 | _GetActiveAppIconResource HC_BLACK | E-13 L16-18 | ○ |
| C-150 | _GetActiveAppIconResource HC_WHITE | E-13 L20-23 | ○ |
| C-151 | GetActiveAppIconHandle小アイコン | E-13 L32-44 | ○ |
| C-152 | GetActiveAppIconHandle大アイコン | E-13 L32-44 | ○ |
| C-153 | UpdateWindowIconForActiveMetrics | E-13 L46-56 | ○ |

### main.cpp (C-154 -- C-159)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-154 | ImageArchitectureToString x86 | E-14 L40-51 | ○ |
| C-155 | ImageArchitectureToString AMD64 | E-14 L40-51 | ○ |
| C-156 | ImageArchitectureToString ARM64 | E-14 L40-51 | ○ |
| C-157 | ImageArchitectureToString不明 | E-14 L40-51 | ○ |
| C-158 | EnsureNativeArchitecture正常系 | E-14 L62-83 | △ |
| C-159 | EnsureNativeArchitectureアーキテクチャ不一致 | E-14 L62-83 | △ |

### WindowEmperor (C-160 -- C-214)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-160 | commandlineToArgArray正常系 | E-09 L38-51 | ○ |
| C-161 | commandlineToArgArray空 | E-09 L38-51 | ○ |
| C-162 | serializeUint32 | E-09 L66-69 | ○ |
| C-163 | deserializeUint32正常系 | E-09 L73-81 | ○ |
| C-164 | deserializeUint32データ不足 | E-09 L75-78 | ○ |
| C-165 | serializeString | E-09 L85-91 | ○ |
| C-166 | deserializeString正常系 | E-09 L95-108 | ○ |
| C-167 | deserializeStringデータ不足 | E-09 L100-105 | ○ |
| C-168 | deserializeString長さ0 | E-09 L102-104 | ○ |
| C-169 | IsInputKey英字 | E-09 L198-212 | ○ |
| C-170 | IsInputKey VK_CONTROL | E-09 L200 | ○ |
| C-171 | IsInputKey VK_SHIFT | E-09 L206 | ○ |
| C-172 | IsInputKey VK_MENU | E-09 L203 | ○ |
| C-173 | IsInputKey VK_LWIN | E-09 L209 | ○ |
| C-174 | IsInputKey VK_SNAPSHOT | E-09 L211 | ○ |
| C-175 | GetMainWindow | E-09 L214-218 | ○ |
| C-176 | GetWindowById正常系 | E-09 L220-232 | ○ |
| C-177 | GetWindowById不存在 | E-09 L220-232 | ○ |
| C-178 | GetWindowByName正常系 | E-09 L234-246 | ○ |
| C-179 | GetWindowByName不存在 | E-09 L234-246 | ○ |
| C-180 | CreateNewWindow正常系 | E-09 L248-296 | ○ |
| C-181 | CreateNewWindow ID重複 | E-09 L253-266 | ○ |
| C-182 | CreateNewWindow初回CoreWindow | E-09 L274-295 | ○ |
| C-183 | _mostRecentWindow正常系 | E-09 L298-314 | ○ |
| C-184 | _mostRecentWindow空 | E-09 L298-314 | ○ |
| C-185 | _postQuitMessageIfNeeded正常系 | E-09 L842-851 | ○ |
| C-186 | _postQuitMessageIfNeeded headless | E-09 L847 | ○ |
| C-187 | _postQuitMessageIfNeeded ウィンドウ残存 | E-09 L845-846 | ○ |
| C-188 | _messageHandler WM_CLOSE_TERMINAL_WINDOW | E-09 L882-937 | ○ |
| C-189 | _messageHandler WM_MESSAGE_BOX_CLOSED | E-09 L938-942 | ○ |
| C-190 | _messageHandler WM_IDENTIFY_ALL_WINDOWS | E-09 L943-948 | ○ |
| C-191 | _messageHandler WM_COPYDATA | E-09 L1007-1014 | ○ |
| C-192 | _messageHandler WM_HOTKEY | E-09 L1015-1017 | ○ |
| C-193 | _messageHandler WM_QUERYENDSESSION | E-09 L1018-1024 | ○ |
| C-194 | _messageHandler WM_ENDSESSION | E-09 L1025-1029 | ○ |
| C-195 | _messageHandler WM_SETTINGCHANGE theme変化 | E-09 L980-1006 | ○ |
| C-196 | _messageHandler WM_SETTINGCHANGE theme不変 | E-09 L993-994 | ○ |
| C-197 | _hotkeyPressed正常系 | E-09 L1295-1342 | ○ |
| C-198 | _hotkeyPressed負インデックス | E-09 L1297-1300 | ○ |
| C-199 | _hotkeyPressed範囲外 | E-09 L1297-1300 | ○ |
| C-200 | _summonWindow ID指定 | E-09 L712-752 | ○ |
| C-201 | _summonWindow名前指定 | E-09 L729-738 | ○ |
| C-202 | _summonWindow最新 | E-09 L741-743 | ○ |
| C-203 | _summonWindow未発見 | E-09 L745-748 | ○ |
| C-204 | _setupGlobalHotkeys | E-09 L1370-1395 | ○ |
| C-205 | _setupSessionPersistence有効化 | E-09 L1051-1063 | ○ |
| C-206 | _setupSessionPersistence無効化 | E-09 L1053-1057 | ○ |
| C-207 | _persistState | E-09 L1065-1084 | ○ |
| C-208 | _finalizeSessionPersistence skip | E-09 L1086-1096 | ○ |
| C-209 | _dispatchCommandline空ターゲット | E-09 L573-658 | ○ |
| C-210 | _dispatchCommandline ID指定 | E-09 L601-607, L626-628 | ○ |
| C-211 | _dispatchCommandline last | E-09 L613-616 | ○ |
| C-212 | _dispatchCommandline new | E-09 L618 | ○ |
| C-213 | _dispatchCommandline ExitCode!=0 | E-09 L585-588 | ○ |
| C-214 | _dispatchCommandline ExitMessage | E-09 L579-583 | ○ |

### AppHost (C-215 -- C-221)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-215 | GetLastActivatedTime | E-06 L20, E-07 | ○ |
| C-216 | GetWindow正常系 | E-06 L22 | ○ |
| C-217 | GetWindow未初期化 | E-06 L22, L39 | ○ |
| C-218 | OnDirectKeyEvent | E-06 L25 | ○ |
| C-219 | SetTaskbarProgress | E-06 L26 | ○ |
| C-220 | getDesktopManager正常系 | E-07 L30-45 | △ |
| C-221 | getDesktopManagerキャッシュ | E-07 L30-45 | △ |

### ヘルパー関数 (C-222 -- C-226)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-222 | stringFromDoubleNullTerminated正常系 | E-09 L54-63 | ○ |
| C-223 | stringFromDoubleNullTerminated空 | E-09 L54-63 | ○ |
| C-224 | serializeHandoffPayload | E-09 L121-134 | ○ |
| C-225 | deserializeHandoffPayload正常系 | E-09 L137-146 | ○ |
| C-226 | deserializeHandoffPayload不正データ | E-09 L137-146 | △ |

## 4) 不足情報（Unknown / Missing）
- **C-97 (SummonWindow OSアニメーション)**: SystemParametersInfoW(SPI_GETCLIENTAREAANIMATION) のモック方法がソースコードからは確定できない。テスト時にはOS API のモック化が必要。
  - 候補: OSモックフレームワーク / 条件付きコンパイル / テスト用ラッパー
- **C-137 (UseMica)**: NonClientIslandWindow::UseMicaの完全な実装詳細がヘッダーでは仮想関数宣言のみで、実装ファイルの該当部分が確認対象外の範囲にあった可能性がある。
  - 候補: NonClientIslandWindow.cppの後半部分の追加確認
- **C-158, C-159 (EnsureNativeArchitecture)**: IsWow64Process2とExitProcessのモック方法が未確定。静的関数であるため直接テストが困難。
  - 候補: リンク時置換 / テスト用ビルド設定 / 関数ポインタ注入
- **C-220, C-221 (getDesktopManager)**: COMオブジェクトのスレッドセーフなシングルトン生成の検証方法が未確定。
  - 候補: COM モックフレームワーク / テスト用ファクトリ
- **C-226 (deserializeHandoffPayload不正データ)**: 具体的にどのフィールドのデシリアライズで例外が発生するかは内部のdeserializeString/deserializeUint32の実装に依存。テストでは複数パターンの不正データが必要。
  - 候補: 空バッファ / 部分的なデータ / 長さフィールドのみ

## 5) リスクフラグ（レビュー観点）
- **1（中リスク）**: Win32 API依存のテストケース（WM_メッセージ処理、DPI処理、タスクバー操作）は、実行環境に依存するためモック化が必要
- **1（中リスク）**: レジストリアクセスを伴うVirtualDesktopUtilsのテストは、テスト環境のレジストリ状態に依存する
- **0（低リスク）**: シリアライズ/デシリアライズ関数群は純粋関数に近く、テスト容易性が高い
- **1（中リスク）**: AppHost, WindowEmperorのメソッドはWinRT/XAMLオブジェクトに強く依存しており、単体テストでのモック化が複雑
- **0（低リスク）**: BaseWindow<T>のテンプレート関数はCRTPパターンのため、テスト用の派生クラスを用いて検証可能

## 6) レビュアーチェックリスト（最小）
- [ ] 全226件のテストケースが実際のソースコードのpublicメソッド・重要な内部メソッドを網羅しているか
- [ ] テスト優先度「高」のケース（ウィンドウ作成/クローズ、フルスクリーン切替、セキュリティ関連）が妥当か
- [ ] Win32 APIモックの方針が各テストケースの前提条件と整合しているか
- [ ] VirtualDesktopUtils系のテストで、レジストリアクセスの3段階フォールバックが適切にカバーされているか
- [ ] NonClientIslandWindowのキャプションボタンヒットテスト（Snap Layout対応）のテストケースが十分か
- [ ] シリアライズ/デシリアライズ関数の境界値テスト（空データ、不正長さ、バッファオーバーフロー）が十分か
- [ ] テストID（UT-WTM-001〜226）に欠番がないか
- [ ] △マークの8件について、テスト実装時の対応方針が明確か
