A/Wのバリエーションがないことに気付きましWM_DEVMODECHANGEたが、 に文字列が必要LPARAMです。この文字列が狭いか広いかを示すドキュメント (見つけることができる) はありません。
に適切なものを知っている人はいますLPARAMか?
WM_DEVMODECHANGEは単なる数字であり、そのうちの1つだけです。狭い文字列と広い文字列のどちらを取得するかは、ウィンドウがUnicodeであるかどうかによって決まります。これは、CreateWindowExAまたはCreateWindowExW()のいずれかを使用して作成した方法によって決まります。そして、後でIsWindowUnicode()で見つけることができるもの。
コメントからハンスの回答まで、あなたはメッセージを送信しています。通常、このメッセージは で送信されSendMessageTimeoutます。現在、SendMessageTimeoutと の 2 つのバージョンがSendMessageTimeoutWありSendMessageTimeoutAます。を呼び出すときはSendMessageTimeoutWUnicode テキストを指定する必要があり、呼び出すときはSendMessageTimeoutAANSI テキストを指定する必要があります。
したがって、データのタイプの識別は、2 つのメッセージ ID を持つことによって行われるのではなく、データを送信するために使用される関数に基づいて行われます。
SendMessageW/ SendMessageA、PostMessageW/などを使用する場合もまったく同じことが当てはまりますPostMessageA。
を呼び出す場合はSendMessageTimeoutW、HWND_BROADCASTANSI と Unicode の両方のウィンドウがメッセージを受け取ることが期待できます。メッセージング システムは、送信したデータが、メッセージを受信するウィンドウに適したエンコードに変換されることを保証します。