O InfoPath 2007 ou o InfoPath 2003 Service Pack 1 deixa de responder quando existe um controlo ActiveX com uma propriedade ReadyState

Traduções de Artigos Traduções de Artigos
Artigo: 888705 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Microsoft Office InfoPath 2007 ou o Microsoft Office InfoPath 2003 Service Pack 1 deixa de responder quando existe um controlo ActiveX com uma propriedade ReadyState . Este problema ocorre quando abre ou pré-visualizar um formulário do InfoPath que inclui um controlo ActiveX com a propriedade ReadyState padrão.

Nota Além disso, não pode adicionar uma estrutura de futura para a vista formulário. Por exemplo, não pode adicionar novos controlos à vista de formulário e não é possível aceder o editor de scripts. Além disso, não é possível eliminar facilmente controlos da vista de formulário.

Causa

Este problema ocorre porque o InfoPath está à espera para a propriedade ReadyState de um controlo ActiveX para ser definido como "4".

Como contornar

Não utilize um controlo ActiveX com a propriedade ReadyState .

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".

Mais Informação

A propriedade ReadyState tem a enumeração seguinte:
  • READYSTATE_UNINITIALIZED = 0
  • READYSTATE_LOADING = 1
  • READYSTATE_LOADED = 2
  • READYSTATE_INTERACTIVE = 3
  • READYSTATE_COMPLETE = 4

Passos para reproduzir o problema

Crie um controlo denominado ReadyStateControl . Para o fazer, siga estes passos:
  1. Inicie o Microsoft Visual Studio. NET 2003.
  2. No menu ficheiro , clique em Novo e, em seguida, clique em Project para criar um novo projecto.
  3. Na caixa de diálogo Novo projecto , clique em Visual C++ Projects , clique em Projecto ATL e, em seguida, escreva ReadyStateControl na caixa nome .
  4. Clique em OK e, em seguida, clique em Concluir para aceitar todas as predefinições para o projecto ATL.
  5. No menu projecto , clique em Adicionar classe .
  6. Na caixa de diálogo Adicionar classe , faça duplo clique ATL controlo .
  7. Na caixa de diálogo Assistente de controlo ATL , escreva ReadyState na caixa de nome curto .
  8. Clique em Propriedades de acções , clique em Estado de preparado na lista não suportados e, em seguida, clique em > para adicionar a propriedade State pronto a lista de suporte .
  9. Clique em Concluir .
  10. No ficheiro readystate.h, localize a linha seguinte.
    public CComControl<CReadyState>
    colocar a linha seguinte na linha anterior.
     public IObjectSafetyImpl<CReadyState, INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    Nota que tem de adicionar uma vírgula (,) para a linha existente antes de adicionar a nova linha.
  11. No menu criar , clique em Criar solução para criar o projecto.
Teste o controlo ReadyStateControl . Para o fazer, siga estes passos:
  1. Inicie o InfoPath.
  2. No menu ficheiro , clique em Estruturar um formulário .
  3. No painel estrutura um formulário , clique em Novo formulário em branco .
  4. Clique em controlos e, em seguida, clique em Adicionar ou remover controlos personalizados .
  5. Na caixa de diálogo Adicionar ou remover controlos personalizados , clique em Adicionar .
  6. No Assistente de adição de controlos personalizados, clique em CReadyState objecto e, em seguida, clique em seguinte .
  7. Clique em seguinte para continuar aceitar as opções predefinidas. Clique em Concluir e, em seguida, clique em OK .
  8. Em Personalizar , clique em Objecto CReadState no painel de controlos .

    Adiciona o controlo Objecto CReadState ao formulário.
  9. Em padrão , faça clique sobre caixa de texto para adicionar um controlo de caixa de texto no formulário.
  10. Clique em Pré-visualizar formulário .

    O InfoPath 2003 Service Pack 1 não responde. Não é possível aceder o controlo de caixa de texto .

Propriedades

Artigo: 888705 - Última revisão: 18 de abril de 2007 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
Palavras-chave: 
kbmt kbtshoot kbqfe kbbug KB888705 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: 888705

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