Windows 3.1にWM_COPYDATAメッセージをレトロフィットする
WM_COPYDATAメッセージはアプリケーション間でデータを安全に転送するためのWindowsメッセージだが、Windows 3.1時代には存在しなかった。この記事では、当時の制約下で同様の機能を実現するためのレトロフィット手法について解説する。
背景メモ
- Raymond ChenはMicrosoftの開発者で、「The Old New Thing」ブログでWindowsの内部動作や歴史的経緯を解説している。
- WM_COPYDATAはWindowsのメッセージで、あるプロセスから別のプロセスにデータを渡すための仕組み。プロセス間通信(IPC)の一種。
- Windows 3.1(1992年リリース)は、真のマルチタスクではなく「協調的マルチタスク」しか持たず、プロセス間のメモリ保護も不完全だったため、後のWindows NT/95系よりIPCの実装が難しかった。
- この記事では、そうした制約の多い16bit環境に、後付けでWM_COPYDATAを追加した際の技術的工夫(グローバルアトムを介したデータ共有など)を解説している。現代の開発者が「なぜこのAPIはこう動くのか」を理解するための歴史的背景が詰まっている。