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

文書翻訳 文書翻訳
文書番号: 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 - 最終更新日: 2014年2月26日 - リビジョン: 3.4
この資料は以下の製品について記述したものです。
  • Microsoft Windows 2000
キーワード:?
kbnosurvey kbarchive kbbug kbshell kbqfe kbhotfixserver kbmt KB819499 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:819499
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com