Erro: Utilizar o modo clássico do Windows no Windows Explorer devolve valor incorrecto para SelectedItems

Traduções de Artigos Traduções de Artigos
Artigo: 819499 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando define o Explorador do Windows para apresentar pastas no modo Windows clássico , o método SelectedItems da interface IShellFolderViewDual devolve um conjunto de FolderItems incorrecto.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo.

Mais Informação

Passos para reproduzir o comportamento

  1. Abra um editor de texto, tal como o bloco de notas, cole o seguinte código num novo ficheiro e, em seguida, guarde o ficheiro como 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. Numa linha de comandos, compile o ficheiro executando o seguinte comando: cl /EHsc Sample.cpp
  3. Feche as janelas Explorador do Windows que estão actualmente abertas.
  4. Clique com o botão direito do rato em Iniciar e, em seguida, clique em explorar abrir uma janela do Explorador do Windows.
  5. No menu Ferramentas , clique em pasta Opções
  6. No separador Geral , seleccione a opção pastas clássicas de utilizar o Windows Vista da Web e, em seguida, clique em OK .
  7. Seleccione uma pasta que contém muitos itens. No painel da direita, seleccione alguns dos itens nesta pasta.
  8. Numa linha de comandos, execute o executável exemplo.exe (que gerou no passo 2).

    A saída apresenta o resultado da propriedade Count da instância FolderItems devolvido pelo método SelectedItems da interface IShellFolderViewDual .

    Pensa que a saída para o número de itens que seleccionou na pasta no Explorador do Windows no passo anterior. No entanto, o resultado contém o número de todos os itens na pasta que foi seleccionado no Explorador do Windows.
  9. Quando O Explorador do Windows está no modo de vista Web , os itens de pasta que são devolvidos pelo SelectedItems correctamente está definido para as instâncias de FolderItem estão seleccionadas.

    Para verificar a instrução anterior no Explorador do Windows, no menu Ferramentas , clique em Opções de pastas .
  10. No separador Geral , clique na opção Permitir conteúdo da Web no ambiente de trabalho em Vista Web e, em seguida, clique em OK para fechar a caixa de diálogo.
  11. Numa linha de comandos, execute exemplo.exe (gerado no passo 2).

    A saída apresenta o resultado da propriedade Count da instância FolderItems devolvido pelo método SelectedItems da interface IShellFolderViewDual .

    A saída é, conforme esperado, o número de itens que seleccionou na pasta.
Em alternativa, pode utilizar o método FocusedItem da interface IShellFolderViewDual para substituir a funcionalidade incorrecta do método SelectedItems . O método FocusedItem devolve o item seleccionado actualmente na pasta e restringe a aplicação uma selecção única pasta no Explorador do Windows.

Referências

Para obter informações adicionais sobre a shell do Guia de programação, consulte a documentação da MSDN seguinte:
Shell Programmer ' s Guide
http://msdn2.microsoft.com/en-us/library/bb776778.aspx

Propriedades

Artigo: 819499 - Última revisão: 24 de fevereiro de 2014 - Revisão: 3.4
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbshell kbbug KB819499 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 819499

Submeter comentários

 

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