Windows 10 Creators Update 以降の OS で日本語 Microsoft IME を使用中にメモリ アクセス違反が発生することがある

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、日本語の Microsoft IME 使用中にメモリ アクセス違反が発生する現象についてご案内します。   現象 Windows 10 Creators Update 以降で、日本語 Microsoft IME を使用中に、大量のキー入力を高速で行うと、メモリ アクセス違反が発生することがあります。   詳細 テキスト ボックス等の入力可能なコントロールで WM_IME_COMPOSITION メッセージを処理すると、コントロール上で入力された変換文字列を操作することが可能です。 例えば、テキスト ボックスで WM_IME_COMPOSITION メッセージを受信した際に、引数に NI_COMPOSITIONSTR および CPS_COMPLETE を指定して ImmNotifyIME() を呼び出すプログラムを作成すると、ユーザーによって入力された変換文字列を即座に確定させることができます。 ひらがなのみ、カタカナのみを入力として受け付けたいテキスト ボックス等がある場合は、このようなプログラムを作成することによって、ユーザーの入力支援を行うことができます。 ところが、このような処理を行うプログラムを Windows 10 Creators Update 以降で実行して、大量のキー入力を連続して高速で行った (同じキーを押し続ける等) 場合に、メモリ アクセス違反が発生してプログラムが強制終了することがあります。   原因 Microsoft IME 側の予測変換処理とアプリケーション側の変換処理が並行して高速で実行されたために、文字変換処理に必要な内部データに不整合が生じた結果、メモリ アクセス違反が発生していました。  …


Fall Creators Update を適用後 DataGridView に文字を入力すると 2 文字入力される

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Fall Creators Update を適用すると Windows フォーム アプリケーションの DataGridView で文字が 2 文字表示される現象についてご案内します。   現象 Windows フォーム アプリケーションで DataGridView のセル自体が選択されている状態で日本語 (全角文字、カタカナ) を 1 文字入力すると、確定された状態で 2 文字が表示されます。 例)写真 1 の状態で「あ」と入力するため「A」キーを 1 回押下すると、写真 2 のように「ああ」と 2 文字が確定された状態で表示されます。 写真 1 写真 2   この現象は Fall Creators Update を適用した Windows 10 で発生を確認しており、以前のバージョンでは発生しません。 写真のような Visual Studio で…