現在オフラインです。再接続するためにインターネットの接続を待っています

BUG: Windows エクスプローラー返します SelectedItems の不適切な値での Windows クラシック モードの使用

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:819499
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
Windows クラシック モードでフォルダーを表示する Windows エクスプローラーを設定すると、 IShellFolderViewDual インターフェイスの SelectedItems メソッドは、 FolderItems の誤ったセットを返します。
状況
マイクロソフトではこれが、この資料の冒頭に記載されているマイクロソフト製品のバグとして認識しています。
詳細

動作を再現する手順

  1. メモ帳などのテキスト エディターを開く、次のコードを新しいファイルに貼り付けますおよびし Sample.cpp として、ファイルを保存:
    #include <Windows.h>#include <TChar.h>#import <SHDocVw.dll>#import <Shell32.dll>#include <iostream>using namespace std;int _tmain(int argc, TCHAR ** argv){    CoInitialize(0);    try    {            SHDocVw::IShellWindowsPtr sw(__uuidof(SHDocVw::ShellWindows));        for (long i = 0; i < sw->Count; ++i)        {            if (SHDocVw::IWebBrowser2Ptr ie = sw->Item(i))            {                cout << _com_util::ConvertBSTRToString(ie->LocationURL) << endl;                if (Shell32::IShellFolderViewDualPtr view = ie->Document)                {                   cout << view->SelectedItems()->Count << _T(" selected item(s)") << endl;                }            }        }    }    catch (_com_error const & e)    {        cout << e.ErrorMessage() << endl;    }    CoUninitialize();    return 0;}
  2. コマンド プロンプトで次のコマンドを実行して、ファイルをコンパイル: cl/EHsc Sample.cpp
  3. 現在開いているエクスプローラー ウィンドウを閉じます。
  4. 開始 ] を右クリックし、Windows エクスプローラー ウィンドウを開くには、 エクスプローラー を実行します。
  5. [ ツール ] メニューのをクリックして フォルダー オプション
  6. [ 全般 ] タブ [ Web の表示 ] の [ Windows クラシック フォルダーを使う ] を選択し、 [OK]
  7. 多数のアイテムを含むフォルダー選択してください。 右ペインでこのフォルダーにアイテムの一部を選択します。
  8. コマンド プロンプト] で Sample.exe 実行可能 (つまり手順 2 で生成した) ファイルを実行します。

    IShellFolderViewDual インターフェイスの SelectedItems メソッドによって返される FolderItems インスタンスの Count プロパティの結果を出力に表示します。

    以前の手順から Windows エクスプローラーでフォルダー内に選択した項目の数を出力はずです。 ただし、出力、多数含まれています すべて Windows エクスプローラーで選択されたフォルダーのアイテム。
  9. Windows エクスプローラーが Web の表示 モードの場合 SelectedItems によって返されるフォルダーのアイテムは選択されている FolderItem インスタンスに正しく設定されます。

    エクスプローラーで、[ ツール ] メニューの [直前のステートメントを確認するには、 フォルダー オプション ] をクリックします。
  10. [ 全般 ] タブ [ Web の表示 ] の [ デスクトップを有効にする Web コンテンツ オプションをクリックし、 [OK] ダイアログ ボックスを閉じます。
  11. コマンド プロンプトで、 Sample.exe (手順 2 で生成) を実行します。

    IShellFolderViewDual インターフェイスの SelectedItems メソッドによって返される FolderItems インスタンスの Count プロパティの結果を出力に表示します。

    出力は、期待どおりのフォルダーで選択した項目の数。
また、 IShellFolderViewDual インターフェイスの FocusedItem メソッドを使用して不適切な SelectedItems メソッドの機能を置換することができます。 FocusedItem メソッドは、フォルダー内の現在選択されている項目を返し、アプリケーションに Windows エクスプローラーでフォルダーの 1 つ選択範囲を制限します。
関連情報
のガイドのプログラミング、シェルの詳細については、次の MSDN ドキュメントを参照してください。
「プログラマ ガイド」ををシェルします。
http://msdn2.microsoft.com/en-us/library/bb776778.aspx

警告: この記事は自動翻訳されています

プロパティ

文書番号:819499 - 最終更新日: 02/26/2014 23:31:51 - リビジョン: 3.4

Microsoft Windows 2000

  • kbnosurvey kbarchive kbbug kbshell kbqfe kbhotfixserver kbmt KB819499 KbMtja
フィードバック