Windows 10 version 1803 (April 2018 Update) で、日本語版 Microsoft IME を無効化すると、タッチ キーボードが起動しない

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 version 1803 (April 2018 Update) において日本語版 Microsoft IME を無効化した場合、タッチ キーボード (Tabtip.exe) が起動しない現象についてご案内します。   現象 IME のコンテキスト (HIMC 値) の状態には、ON/OFF/Disable の三つの状態があります。 ON : 日本語入力が可能なコンテキスト OFF : 日本語入力が不可能なコンテキスト (英数のみ入力可能なコンテキスト) Disable : IME を介した日本語、英数いずれの入力も不可能なコンテキスト (直接入力は可) これまでの Windows 10 では、TextBox 等の編集可能なコントロールをタッチした場合、IME のコンテキストが上記三つの状態のいずれであっても、タッチ キーボードが起動しました。 しかしながら、Windows 10 version 1803 (April 2018 Update) では、編集可能なコントロールの IME…


リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について

こんにちは、Platform SDK (Windows SDK) サポート チームです。 今回は、Windows 10 version 1803 (April 2018 Update) において、リモートでオープンされた メールスロット に、CreateFile 関数を実施すると ERROR_BAD_NETPATH (53) エラーとなる現象についてご案内します。 現象 サーバー側で CreateMailslot関数によりオープン処理が実施済みであり、クライアント側で本 メールスロットへ書き込むためにCreateFile関数を呼び出します。 クライアント側が \\<ComputerName>\mailslot\sample のようにリモートである場合、サーバー側のオープン状態であるにかかわらず、ERROR_BAD_NETPATH となり、書き込むことができません。 なお、この現象はクライアント側が Windows 10 version 1803 (April 2018 Update) のみで発生し、他の Windows バージョンでは発生しません。 また、クライアントが \\.\mailslot\sample のように自ホストを指定した場合にも発生しません。 原因 原因がわかりましたら、本ブログを更新予定です。 回避策 現時点では、回避策はありません。 状況 マイクロソフトでは、この事象について調査しています。 進展があり次第、本ブログを更新予定です。


ツールバー移動時の軌跡が残像となる問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 version 1709 (Fall Creators Update) においてツールバーを移動した時の軌跡が残像となって残る現象についてご案内します。   現象 MFC の CToolBar クラスを使用してツールバーを実装し、アプリケーション実行時にドラッグ アンド ドロップ操作でツールバーを移動すると、下記スクリーンショットのように、ツールバーを移動した軌跡が残像となって残り、正しく描画されません。 この現象は Windows 10 version 1709 (Fall Creators Update) で発生し、Windows 10 version 1607 (Anniversary Update) や Windows 10 version 1703 (Creators Update) では発生しません。 なお CToolBar クラスは、Visual Studio 2017 でいうと MFC の新規プロジェクトの作成ウィザードにおいてプロジェクト形式として “MFC 標準” を選択した場合に、アプリケーションのツールバーとして使用されるようになります。  …


Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、System.Threading 名前空間の Thread.Abort メソッド (以降、Abort メソッド) を利用してスレッドを終了させた場合に発生する可能性がある現象についてご案内いたします。   現象 Abort メソッドはスレッドを強制終了させるメソッドです。 Thread.Abort メソッド < https://msdn.microsoft.com/ja-jp/library/system.threading.thread.abort.aspx > Abort メソッドを利用してスレッドを強制終了させると、以下の様な現象が発生する可能性があります。 ・ オブジェクト ハンドルやメモリ等のリーク ・ プロセスの強制終了 ・ プロセスのデッドロック   原因 スレッドが開始すると、そのスレッド内部で必要な様々なリソースの確保や初期化処理が行われます。 そしてスレッドが終了するタイミングでは、そのスレッド内部で確保・初期化された様々なリソースの解放処理が行われます。 ところが Abort メソッドを利用してスレッドを強制終了した場合は、これらのリソースの解放処理が必ず行われる保証がありません。 そして、これらのリソースの解放処理が行われなかった結果として、前述したような現象に発展する可能性があります。   回避策 可能な限り、Abort メソッドを利用してスレッドを強制終了しないようにします。 たとえば、以下のように自分自身を自発的に終了させる仕組みをスレッド (下記例ではスレッド B) 内に実装しておくことで、その仕組みを利用した外部スレッド (下記例ではスレッド A) が、安全にそのスレッド (下記例ではスレッド B) を終了させることができるようになります。 – スレッド A…


CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、MFC の CFileDialog クラスに関して確認されている問題についてご案内します。   現象 CFileDialog のコンストラクタにて bVistaStyle を FALSE に指定して表示させたファイル選択ダイアログ ボックスで SharePoint 上にあるフォルダを開くと、ダイアログボックスの応答が停止します。   CFileDialog クラス https://msdn.microsoft.com/ja-jp/library/dk77e5e7.aspx   原因 この現象は、ファイル選択ダイアログの中で SharePoint サーバー上の Web 画面の表示をサポートするコンポーネントの不具合によって発生します。   回避策 以下のレジストリ設定を適用することにより、ファイル選択ダイアログの中の Web 画面の表示が無効となり、本問題を回避することができます。   – 現在のユーザーに対して適用する場合 キー : HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer 名前 : NoHTMLViewForWebDAV 種類 : REG_DWORD (32ビット) 値 : 1   – コンピューターにログオンするすべてのユーザーに適用する場合…


WPF の CheckBox コントロールのチェック マーク (オプション マーク) について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、WPF の CheckBox コントロールのチェック マーク (オプション マーク) についてご案内します。   現象 WPF の CheckBox コントロールにおいて FlowDirection プロパティを RightToLeft に設定すると、CheckBox コントロール全体が「左向き」に描画されるだけでなく、CheckBox コントロールのチェック マーク部分も「左ハネ」で描画されるようになります。 ※ WPF の CheckBox コントロールの例   なお、アラビア語版 Windows の Explorer の CheckBox コントロールや、同様に RightToLeft 設定された Windows フォームの CheckBox コントロールについては、チェック マーク部分は「右ハネ」のまま描画されます。 ※ Windows フォームの CheckBox コントロールの例   原因 この動作は、WPF の…


Windows Search のSQL文にSystem.ItemUrlを指定すると、検索処理に失敗する

こんにちは、Platform SDK (Windows SDK) サポートチームです。アプリケーションから Windows Search 機能を利用してファイルの検索を行った場合、内部的なエラーにより検索結果が得られない現象についてご案内します。 現象Windows 10 1703 (Creators Update) および Windows 10 1709 (Fall Creators Update) 上で OS の Windows Search 機能を利用してファイル検索を行い、結果としてファイルの URL (file:///c:/mydir/bar/hello.txt 等) を取得しようとすると、検索に失敗します。 たとえば、アプリケーションから以下のように SELECT 文に System.ItemUrl を指定した場合、hr = cCommand.Open(cSession, pszSQL); が DB_E_ERRORSOCCURRED エラーを返して失敗します。 #include <atldbcli.h> CDataSource cDataSource; hr = cDataSource.OpenFromInitializationString(L”provider=Search.CollatorDSO.1;EXTENDED PROPERTIES=\”Application=Windows\””); CString pszSQL = “SELECT System.ItemUrl FROM…


TreeView を操作していると、StackOverflowException 例外で WPF アプリケーションが強制終了します

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、TreeView を操作している時に、WPF アプリケーションが StackOverflowException 例外で強制終了する問題についてご案内します。   現象 TreeView を実装した WPF アプリケーションにおいて、スクロールバーから TreeView をスクロールさせる、TreeView のクライアント領域をマウスでクリックする等の操作を行うと、StackOverflowException 例外でプロセスが強制終了することがあります。 本現象は、.NET Framework のバージョン 4.7 および 4.7.1 でのみ確認されています。   原因 本現象は、.NET Framework 4.7 ならびに 4.7.1 の TreeView 内部で使用している、VirtualizingStackPanel の仮想化処理の不具合が原因で発生しています。   回避策 以下のいずれかの回避策をご検討ください。 回避策 (1) TreeView の VirtualizingStackPanel.IsVirtualizing プロパティを False に設定し、仮想化オフの状態で TreeView を使用するようにします。 回避策 (2) TreeView の…


Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 における ISequentialStream インターフェースの動作についてご案内いたします。   現象 Windows 10 では以前のバージョンの Windows と比べて ISequentialStream インターフェースからファイルを操作する際の処理時間が長くなる場合があります。   これは Windows 10 で導入された UWP に対応するため ISequentialStream の内部実装に変更が加えられたことにより、 内部的なメソッド呼び出しのオーバーヘッドが増加したことに起因します。 例えば SHCreateStreamOnFileEx 関数で開いたファイルを Read メソッドで読み出す場合が該当します。特に繰り返し何度も呼び出すようなケースでは、前述のオーバーヘッドの影響を大きく受けます。   パフォーマンスを重視される場合は、メソッドを呼び出す回数が少なくなるようにアプリケーションの実装を変更するか、 ReadFile 関数や SetFilePointer 関数を直接利用する方法をご検討ください。


UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Windows 10 1703 (RS2) において UIAutomationCore.dll を利用するアプリケーションが異常終了する問題についてご案内します。   現象 アプリケーションが UIAutomationCore.dll を利用し、その後このモジュールをアンロードした場合、アプリケーションがクラッシュする場合があります。たとえば、アプリケーション内で IUIAutomation::GetFocusedElement を呼び出した後、そこで返されたインターフェイスを解放してもクラッシュします。   原因 UIAutomationCore.dll は、自身が内部的に登録したコールバックの情報をクリアせずにアンロードされる不具合があります。それにより、DLL のアンロード後であっても、そのコールバック処理の呼び出しが行われてしまいます。この時すでに存在しない DLL のコールバックであるため、クラッシュする問題が発生します。   回避策 この問題をコード上で回避する方法はありません。   状況 この問題は Windows 10 RS2 上で顕著に発生します。 Windows 10 RS3 リリース時に修正していますが、完全には解決しておらず、Windows 10 RS3 上でも低い頻度で発生することが報告されています。