InfoPath 2007 o in InfoPath 2003 Service Pack 1 si blocca quando è presente un controllo ActiveX con una proprietà ReadyState

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

888705
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Microsoft Office InfoPath 2007 o Office InfoPath 2003 Service Pack 1 blocco di quando è presente un controllo ActiveX con una proprietà ReadyState . Questo problema si verifica quando apre o si visualizza in anteprima un modulo di InfoPath che includa un controllo ActiveX con la proprietà ReadyState standard.

Nota Non è inoltre possibile aggiungere una struttura futura alla visualizzazione maschera. Ad esempio, non è possibile aggiungere nuovi controlli visualizzazione Maschera e non è possibile accedere l'editor di script. Inoltre, è Impossibile eliminare facilmente controlli dalla visualizzazione maschera.
Cause
Questo problema si verifica perché InfoPath è in attesa della proprietà ReadyState di un controllo ActiveX sia impostata su "4".
Workaround
Non utilizzare un controllo ActiveX con la proprietà ReadyState .
Status
Microsoft ha confermato che questo un bug nei prodotti sono elencati nella sezione "Si applica a".
Informazioni
La proprietà ReadyState dispone di enumerazione che segue:
  • READYSTATE_UNINITIALIZED = 0
  • READYSTATE_LOADING = 1
  • READYSTATE_LOADED = 2
  • READYSTATE_INTERACTIVE = 3
  • READYSTATE_COMPLETE = 4

Procedura per riprodurre il problema

Creare un controllo denominato ReadyStateControl . Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Avviare Microsoft Visual Studio. NET 2003.
  2. Dal menu file , fare clic su Nuovo , quindi progetto per creare un nuovo progetto.
  3. Nella finestra di dialogo Nuovo progetto , fare clic su Progetti di Visual c ++ , fare clic su Progetto ATL e quindi digitare ReadyStateControl nella casella nome .
  4. Fare clic su OK , quindi Fine per accettare tutte le impostazioni predefinite per il progetto ATL.
  5. Scegliere Aggiungi classe dal menu progetto .
  6. Nella finestra della finestra di dialogo Aggiungi classe , fare doppio clic su Controllo ATL .
  7. Nella casella finestra di dialogo Creazione guidata controllo ATL , digitare ReadyState nella casella nome breve .
  8. Fare clic su Proprietà , fare clic su Stato Inizio nell'elenco non è supportato , quindi scegliere > per aggiungere la proprietà Ready State l'elenco di supporto .
  9. Fare clic su Fine .
  10. Nel file readystate.h, individuare la riga seguente.
    public CComControl<CReadyState>
    inserire la riga seguente nella riga precedente.
     public IObjectSafetyImpl<CReadyState, INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    Nota È necessario aggiungere una virgola (,) alla riga esistente prima di aggiungere la nuova riga.
  11. Dal menu Genera scegliere Genera soluzione per generare il progetto.
Per provare il controllo ReadyStateControl . Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Avviare InfoPath.
  2. Scegliere Progetta modulo dal menu file .
  3. Nel riquadro struttura una maschera , fare clic su Nuovo modulo vuoto .
  4. Fare clic su controlli e quindi fare clic su Aggiungi o Rimuovi controlli personalizzati .
  5. Nella finestra di dialogo Aggiungi o Rimuovi controlli personalizzati , fare clic su Aggiungi .
  6. Nell'Aggiunta guidata controllo personalizzato, fare clic su Oggetto CReadyState e quindi fare clic su Avanti .
  7. Fare clic su Avanti per continuare ad accettare le opzioni predefinite. Fare clic su Fine e quindi fare clic su OK .
  8. Nel gruppo personalizzato , fare clic su Oggetto CReadState nel riquadro controlli .

    Questo aggiunge il controllo Oggetto CReadState il modulo.
  9. In standard , fare clic su TextBox per aggiungere un controllo TextBox al form.
  10. Fare clic su Anteprima modulo .

    InfoPath 2003 Service Pack 1 non risponde. Non è possibile accedere al controllo TextBox .
kbnoOfficeAlertID InfoPath2003 InfoPath2007 IP2007

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 888705 - Ultima revisione: 01/16/2015 01:37:35 - Revisione: 2.3

  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
  • kbnosurvey kbarchive kbmt kbtshoot kbqfe kbbug KB888705 KbMtit
Feedback