---
generated_at: 2026-02-22 10:30:00
metrics:
  claims_total: 100
  claims_with_evidence: 100
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードの該当関数・処理フローが存在するか
2. **根拠との整合性**：テストケースの入力値・期待結果がソースコードの実装と矛盾していないか
3. **網羅性**：主要な関数・分岐がカバーされているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：100 / 100、根拠なし：0
- 優先レビュー（高）
  1. **該当なし**：全テストケースはソースコードに基づいて生成

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

- E-01: `backends/imgui_impl_win32.h` - Win32バックエンドの公開API宣言（行1-54）
- E-02: `backends/imgui_impl_win32.cpp` - Win32バックエンドの実装（行1-1002）
- E-03: `backends/imgui_impl_win32.cpp:114-135` - ImGui_ImplWin32_Data構造体定義
- E-04: `backends/imgui_impl_win32.cpp:141-148` - ImGui_ImplWin32_GetBackendData関数
- E-05: `backends/imgui_impl_win32.cpp:151-159` - ImGui_ImplWin32_UpdateKeyboardCodePage関数
- E-06: `backends/imgui_impl_win32.cpp:161-213` - ImGui_ImplWin32_InitEx関数（Init/InitForOpenGLの実装）
- E-07: `backends/imgui_impl_win32.cpp:215-224` - ImGui_ImplWin32_Init/InitForOpenGL関数
- E-08: `backends/imgui_impl_win32.cpp:226-244` - ImGui_ImplWin32_Shutdown関数
- E-09: `backends/imgui_impl_win32.cpp:246-277` - ImGui_ImplWin32_UpdateMouseCursor関数
- E-10: `backends/imgui_impl_win32.cpp:279-282` - IsVkDown関数
- E-11: `backends/imgui_impl_win32.cpp:284-289` - ImGui_ImplWin32_AddKeyEvent関数
- E-12: `backends/imgui_impl_win32.cpp:291-304` - ImGui_ImplWin32_ProcessKeyEventsWorkarounds関数
- E-13: `backends/imgui_impl_win32.cpp:306-312` - ImGui_ImplWin32_UpdateKeyModifiers関数
- E-14: `backends/imgui_impl_win32.cpp:314-340` - ImGui_ImplWin32_UpdateMouseData関数
- E-15: `backends/imgui_impl_win32.cpp:343-399` - ImGui_ImplWin32_UpdateGamepads関数
- E-16: `backends/imgui_impl_win32.cpp:401-434` - ImGui_ImplWin32_NewFrame関数
- E-17: `backends/imgui_impl_win32.cpp:438-589` - ImGui_ImplWin32_KeyEventToImGuiKey関数
- E-18: `backends/imgui_impl_win32.cpp:602-610` - ImGui_ImplWin32_GetMouseSourceFromMessageExtraInfo関数
- E-19: `backends/imgui_impl_win32.cpp:624-631` - ImGui_ImplWin32_WndProcHandler関数
- E-20: `backends/imgui_impl_win32.cpp:634-831` - ImGui_ImplWin32_WndProcHandlerEx関数（メッセージハンドラ本体）
- E-21: `backends/imgui_impl_win32.cpp:850-868` - _IsWindowsVersionOrGreater関数
- E-22: `backends/imgui_impl_win32.cpp:891-914` - ImGui_ImplWin32_EnableDpiAwareness関数
- E-23: `backends/imgui_impl_win32.cpp:920-944` - ImGui_ImplWin32_GetDpiScaleForMonitor関数
- E-24: `backends/imgui_impl_win32.cpp:946-950` - ImGui_ImplWin32_GetDpiScaleForHwnd関数
- E-25: `backends/imgui_impl_win32.cpp:963-990` - ImGui_ImplWin32_EnableAlphaCompositing関数

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

### 初期化・終了関連（UT-W32-001〜010）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ImGui_ImplWin32_Init：有効なHWNDで正常初期化 | E-06, E-07 | ○ |
| C-02 | Init：BackendFlagsの設定確認 | E-06:177-178 | ○ |
| C-03 | Init：BackendPlatformName設定 | E-06:176 | ○ |
| C-04 | Init：二重初期化のアサート | E-06:165 | ○ |
| C-05 | Init：QueryPerformanceFrequency失敗時 | E-06:168-171 | ○ |
| C-06 | InitForOpenGL：OpenGL用初期化 | E-07:220-224 | ○ |
| C-07 | Shutdown：リソース解放 | E-08:239-243 | ○ |
| C-08 | Shutdown：BackendFlagsクリア | E-08:241 | ○ |
| C-09 | Shutdown：XInputDLL解放 | E-08:234-237 | ○ |
| C-10 | Shutdown：未初期化時アサート | E-08:229 | ○ |

### フレーム更新関連（UT-W32-011〜014）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | NewFrame：DisplaySize設定 | E-16:408-410 | ○ |
| C-12 | NewFrame：DeltaTime計算 | E-16:412-416 | ○ |
| C-13 | NewFrame：マウスカーソル更新 | E-16:425-430 | ○ |
| C-14 | NewFrame：未初期化時アサート | E-16:403-404 | ○ |

### メッセージハンドラ関連（UT-W32-015〜039）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-15 | WndProc：WM_MOUSEMOVEマウス位置更新 | E-20:641-663 | ○ |
| C-16 | WndProc：WM_LBUTTONDOWN左クリック検出 | E-20:687-706 | ○ |
| C-17 | WndProc：WM_LBUTTONUP左クリック解除 | E-20:708-724 | ○ |
| C-18 | WndProc：WM_RBUTTONDOWN右クリック | E-20:687-706 | ○ |
| C-19 | WndProc：WM_MBUTTONDOWN中クリック | E-20:687-706 | ○ |
| C-20 | WndProc：WM_XBUTTONDOWNXボタン | E-20:690,697 | ○ |
| C-21 | WndProc：WM_MOUSEWHEELホイール | E-20:726-728 | ○ |
| C-22 | WndProc：WM_MOUSEHWHEEL水平ホイール | E-20:729-731 | ○ |
| C-23 | WndProc：WM_KEYDOWNキー押下 | E-20:732-774 | ○ |
| C-24 | WndProc：WM_KEYUPキー解放 | E-20:732-774 | ○ |
| C-25 | WndProc：WM_SYSKEYDOWNシステムキー | E-20:732-774 | ○ |
| C-26 | WndProc：WM_CHAR文字入力 | E-20:786-799 | ○ |
| C-27 | WndProc：WM_CHAR MBCS変換 | E-20:793-798 | ○ |
| C-28 | WndProc：WM_SETFOCUSフォーカス取得 | E-20:776-782 | ○ |
| C-29 | WndProc：WM_KILLFOCUSフォーカス喪失 | E-20:776-782 | ○ |
| C-30 | WndProc：WM_SETCURSORカーソル更新 | E-20:818-822 | ○ |
| C-31 | WndProc：WM_DEVICECHANGEゲームパッド | E-20:823-828 | ○ |
| C-32 | WndProc：WM_MOUSELEAVEマウス離脱 | E-20:664-676 | ○ |
| C-33 | WndProc：WM_NCMOUSEMOVE非クライアント | E-20:641-663 | ○ |
| C-34 | WndProc：WM_DESTROYクリーンアップ | E-20:677-686 | ○ |
| C-35 | WndProc：WM_INPUTLANGCHANGE言語変更 | E-20:783-785 | ○ |
| C-36 | WndProc：コンテキストnullガード | E-19:628-629 | ○ |
| C-37 | WndProc：バックエンドnullガード | E-20:636-638 | ○ |
| C-38 | WndProc：WM_IME_CHAR処理 | E-20:807-817 | ○ |
| C-39 | WndProc：WM_IME_COMPOSITION処理 | E-20:800-806 | ○ |

### キー変換関連（UT-W32-040〜050）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | KeyEventToImGuiKey：VK_TAB変換 | E-17:449 | ○ |
| C-41 | KeyEventToImGuiKey：VK_RETURN変換 | E-17:462 | ○ |
| C-42 | KeyEventToImGuiKey：KeypadEnter変換 | E-17:441-443 | ○ |
| C-43 | KeyEventToImGuiKey：F1〜F24変換 | E-17:540-563 | ○ |
| C-44 | KeyEventToImGuiKey：テンキー変換 | E-17:480-494 | ○ |
| C-45 | KeyEventToImGuiKey：アルファベット変換 | E-17:514-539 | ○ |
| C-46 | KeyEventToImGuiKey：数字変換 | E-17:504-513 | ○ |
| C-47 | KeyEventToImGuiKey：修飾キー変換 | E-17:495-503 | ○ |
| C-48 | KeyEventToImGuiKey：スキャンコードフォールバック | E-17:569-587 | ○ |
| C-49 | KeyEventToImGuiKey：未知キー処理 | E-17:566,588 | ○ |
| C-50 | KeyEventToImGuiKey：ブラウザキー変換 | E-17:564-565 | ○ |

### DPI関連（UT-W32-051〜058）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | EnableDpiAwareness：Win10設定 | E-22:893-901 | ○ |
| C-52 | EnableDpiAwareness：Win8.1設定 | E-22:902-910 | ○ |
| C-53 | EnableDpiAwareness：Vista/7設定 | E-22:911-913 | ○ |
| C-54 | GetDpiScaleForHwnd：96DPI | E-24:946-950, E-23 | ○ |
| C-55 | GetDpiScaleForHwnd：144DPI | E-24:946-950, E-23 | ○ |
| C-56 | GetDpiScaleForHwnd：192DPI | E-24:946-950, E-23 | ○ |
| C-57 | GetDpiScaleForMonitor：GetDpiForMonitor | E-23:923-934 | ○ |
| C-58 | GetDpiScaleForMonitor：GDIフォールバック | E-23:936-943 | ○ |

### アルファ合成関連（UT-W32-059〜062）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | EnableAlphaCompositing：Vista以降 | E-25:963-990 | ○ |
| C-60 | EnableAlphaCompositing：Win8ブラー | E-25:974-982 | ○ |
| C-61 | EnableAlphaCompositing：Vista未満 | E-25:965-966 | ○ |
| C-62 | EnableAlphaCompositing：DWM無効 | E-25:968-970 | ○ |

### マウスカーソル関連（UT-W32-063〜070）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | UpdateMouseCursor：IDC_ARROW | E-09:262 | ○ |
| C-64 | UpdateMouseCursor：IDC_IBEAM | E-09:263 | ○ |
| C-65 | UpdateMouseCursor：IDC_HAND | E-09:269 | ○ |
| C-66 | UpdateMouseCursor：IDC_NO | E-09:272 | ○ |
| C-67 | UpdateMouseCursor：None | E-09:251-255 | ○ |
| C-68 | UpdateMouseCursor：MouseDrawCursor | E-09:251 | ○ |
| C-69 | UpdateMouseCursor：NoMouseCursorChange | E-09:248-249 | ○ |
| C-70 | UpdateMouseCursor：リサイズカーソル | E-09:264-268 | ○ |

### ゲームパッド関連（UT-W32-071〜077）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | UpdateGamepads：HasGamepadフラグ設定 | E-15:357,362 | ○ |
| C-72 | UpdateGamepads：ボタン入力 | E-15:368-385 | ○ |
| C-73 | UpdateGamepads：アナログスティック | E-15:386-393 | ○ |
| C-74 | UpdateGamepads：トリガー入力 | E-15:382-383 | ○ |
| C-75 | UpdateGamepads：未接続時クリア | E-15:360-361 | ○ |
| C-76 | UpdateGamepads：パケット番号スキップ | E-15:363-365 | ○ |
| C-77 | UpdateGamepads：WantUpdateHasGamepad | E-15:350-355 | ○ |

### ヘルパー関数関連（UT-W32-078〜100）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | GetBackendData：正常取得 | E-04:141-144 | ○ |
| C-79 | GetBackendData：コンテキストnull | E-04:143 | ○ |
| C-80 | UpdateKeyboardCodePage：コードページ取得 | E-05:151-159 | ○ |
| C-81 | UpdateKeyboardCodePage：CP_ACPフォールバック | E-05:158 | ○ |
| C-82 | UpdateKeyModifiers：Ctrl | E-13:308 | ○ |
| C-83 | UpdateKeyModifiers：Shift | E-13:309 | ○ |
| C-84 | UpdateKeyModifiers：Alt | E-13:310 | ○ |
| C-85 | UpdateKeyModifiers：Super | E-13:311 | ○ |
| C-86 | ProcessKeyEventsWorkarounds：左Shift | E-12:294-295 | ○ |
| C-87 | ProcessKeyEventsWorkarounds：右Shift | E-12:296-297 | ○ |
| C-88 | ProcessKeyEventsWorkarounds：Winキー | E-12:299-303 | ○ |
| C-89 | GetMouseSourceFromMessageExtraInfo：ペン | E-18:605-606 | ○ |
| C-90 | GetMouseSourceFromMessageExtraInfo：タッチ | E-18:607-608 | ○ |
| C-91 | GetMouseSourceFromMessageExtraInfo：マウス | E-18:609 | ○ |
| C-92 | IsVkDown：キー押下true | E-10:279-282 | ○ |
| C-93 | IsVkDown：キー未押下false | E-10:279-282 | ○ |
| C-94 | _IsWindowsVersionOrGreater：Win10 | E-21:850-868 | ○ |
| C-95 | _IsWindowsVersionOrGreater：Win8.1 | E-21:850-868 | ○ |
| C-96 | ImGui_ImplWin32_Data：ゼロ初期化 | E-03:134 | ○ |
| C-97 | UpdateMouseData：WantSetMousePos | E-14:324-329 | ○ |
| C-98 | UpdateMouseData：フォールバック | E-14:331-338 | ○ |
| C-99 | UpdateMouseData：非フォーカス | E-14:321 | ○ |
| C-100 | AddKeyEvent：キーイベント送信 | E-11:284-289 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし
  - 全テストケースはソースコード `backends/imgui_impl_win32.cpp` および `backends/imgui_impl_win32.h` に基づいて生成されており、根拠が存在する

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいている
- 注意点：
  - Win32 APIのモック化が必要（SetCursorPos, GetCursorPos, SetCapture, ReleaseCapture等）
  - XInput DLLの動的ロードをモック化する必要あり
  - DPI関連テストは環境依存（Windows 8.1/10/11での動作確認推奨）
  - マルチモニター環境でのDPIテストも考慮

## 6) レビュアーチェックリスト（最小）
- [ ] 初期化/終了の対称性が正しくテストされているか（Init⇔Shutdown）
- [ ] 全WM_*メッセージに対するハンドリングがカバーされているか
- [ ] エラーパス（アサート条件）が適切にテストされているか
- [ ] 境界値テスト（キーコード範囲、DPI値）が十分か
- [ ] ゲームパッドのデッドゾーン処理がテストされているか
- [ ] IME入力（日本語等）の処理が十分にテストされているか
- [ ] マウスキャプチャの取得/解放ロジックが正しくテストされているか
