Hata: Windows Klasik mod, Windows Explorer döndürüyor Selectedıtems için yanlış değer kullanma.

Makale çevirileri Makale çevirileri
Makale numarası: 819499 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Windows Gezgini, Windows Klasik modunda klasörleri görüntülemek için ayarladığınızda, IShellFolderViewDual arabirimi Selectedıtems yöntemi FolderItems yanlış bir dizi döndürür.

Durum

Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Not Defteri gibi bir metin düzenleyicisini açın, aşağıdaki kod yeni bir dosyaya yapıştırın ve dosyayı Sample.cpp kaydedin:
    #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. Bir komut isteminde, aşağıdaki komutu çalıştırarak dosya derleme: cl /EHsc Sample.cpp
  3. Şu anda açık olan tüm Windows Gezgini pencerelerini kapatın.
  4. Başlat ' ı sağ tıklatın ve sonra Windows Gezgini penceresini açmak için Araştır ' ı tıklatın.
  5. Araçlar menüsünde Klasör Seçenekleri
  6. Genel sekmesinde, Web görünümü altında <a2>Windows klasik klasörlerini kullan</a2> seçeneğini belirleyin ve Tamam ' ı tıklatın.
  7. Çok sayıda öğe içeren bir klasör seçin. Sağ bölmede, bu klasördeki öğelerden bazılarını seçin.
  8. Bir komut isteminde (diğer bir deyişle, 2 numaralı adımda oluşturulur) örnek.exe yürütülebilir dosyayı çalıştırmak.

    Çıktı, Count özelliğini IShellFolderViewDual arabiriminin Selectedıtems yöntemi tarafından döndürülen FolderItems örneğinin sonucunu görüntüler.

    Windows Gezgini klasöründeki önceki adımdaki seçtiğiniz öğelerin sayısı çıktı beklediğiniz. Ancak, çıktı, Windows Gezgini'nde seçilen klasördeki öğelerin tüm numarasını içerir.
  9. Windows Gezgini Web görünümünde moddayken Selectedıtems tarafından döndürülen klasör öğeleri doğru ayarlanmış FolderItem örneklerine seçilir.

    Windows Gezgini'nde, Araçlar menüsünde önceki ifade doğrulamak için Klasör Seçenekleri ' ni tıklatın.
  10. Genel sekmesinde, Web görünümü altında Web içeriğini etkinleştir Masaüstümde seçeneğini ve sonra iletişim kutusunu kapatmak için Tamam ' ı tıklatın.
  11. Bir komut isteminde örnek.exe (2. adımda oluşturulan) çalıştırın.

    Çıktı, Count özelliğini IShellFolderViewDual arabiriminin Selectedıtems yöntemi tarafından döndürülen FolderItems örneğinin sonucunu görüntüler.

    Çıkış alınır, beklendiği gibi seçtiğiniz klasörde öğe sayısı.
Alternatif olarak, IShellFolderViewDual arabirimi FocusedItem yöntemi yanlış işlevselliğini Selectedıtems yöntemini değiştirmek için kullanabilirsiniz. FocusedItem yöntemi, seçili öğenin klasörü verir ve uygulamanıza Windows Gezgini'nde bir tek klasör seçimi kısıtlar.

Referanslar

Kabuk kılavuz programlama hakkında ek bilgi için aşağıdaki MSDN belgelerine bakın:
Programmer's Guide'ı kabuk
http://msdn2.microsoft.com/en-us/library/bb776778.aspx

Özellikler

Makale numarası: 819499 - Last Review: 26 Şubat 2014 Çarşamba - Gözden geçirme: 3.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows 2000
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbshell kbbug KB819499 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:819499

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