Win32 / MFC
- Win32 / MFC SetWindowText/GetWindowText:バッファ・Unicode・他プロセス GetWindowTextLength でのバッファ確保、古いサンプルの sizeof バグ、他プロセスのコントロールは WM_GETTEXT で読む理由、C# の LibraryImport 宣言まで。
- Win32 / MFC SendMessageとPostMessage:デッドロック・タイムアウト・WM_COPYDATA SendMessageが止まる理由とPostMessageとの違い、SendMessageTimeoutで固まりを防ぐ方法、WM_COPYDATAでプロセス間に文字列を送る方法、UIPIによる遮断まで。
- Win32 / MFC GetKeyStateとGetAsyncKeyStateの違い:ビットの意味と代替手段 GetKeyState・GetAsyncKeyState の最上位・最下位ビットをドキュメントどおりに整理し、キュー上の状態と物理状態の違い、ポーリングより WM_KEYDOWN・Raw Input を使う理由を解説。
- Win32 / MFC GetCurrentDirectoryとGetModuleFileName:作業フォルダと実行ファイルの場所 カレントディレクトリはプロセスに1つで、いつでも変わります。GetModuleFileName の MAX_PATH 切り詰めを防ぐループと、.NET の CurrentDirectory・BaseDirectory・ProcessPath の実測。
- Win32 / MFC FindWindowでウィンドウハンドルを探す:クラス名・部分一致・UIPI FindWindow・FindWindowExで他のプログラムのウィンドウハンドルを探す方法。クラス名とタイトルの違い、EnumWindowsでの部分一致、ANSIビルドの文字化けの罠、UIPI、C# LibraryImport版まで。
- Win32 / MFC CreateWindow・ShowWindow:メッセージループとDPI対応まで書くWin32 CreateWindowEx・ShowWindowでウィンドウを出す完全なコードとメッセージループ、WM_DESTROY、DPI対応、ANSI/Unicodeのコンパイルエラー、C# LibraryImport版まで解説。