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 上でも低い頻度で発生することが報告されています。