Select the product you need help with
ESEMPIO: MFCAxs.exe implementa un host Script ActiveX con MFCIdentificativo articolo: 168214 - Visualizza i prodotti a cui si riferisce l?articolo. In questa paginaSommarioMFCAxs.exe è un esempio che contiene MfcAxscrVb. MfcAxscrVb è un host di Active Scripting esempio istruzioni scritte utilizzando MFC. Che ospita la DLL di VBScript; tuttavia, i meccanismi di scripting sono generici al motore di scripting. MfcAxscrVb viene illustrato solo un modo possibile per fornire oggetti di invio da host, per implementare interfacce Active Scripting dell'host di e per connettere i messaggi delle finestre nell'host con gli eventi generati al motore di script. MfcAxscrVb include il file dell'area di lavoro e di progetto Visual c ++ 5.0. Sebbene venga fornito né mdpfile makefile compatibile di VC ++ 4.2, il codice sorgente per MfcAxscrVb è compatibile con MFC 4.2b. Prerequisiti: COM, automazione InformazioniIl seguente file è disponibile per il download dall'Area download Microsoft: MFCAxs.exe Per ulteriori informazioni su come scaricare file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
(http://download.microsoft.com/download/vc50pro/mfcaxs/1/win98/en-us/mfcaxs.exe)
119591 Microsoft analizzati questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente disponibile alla data di pubblicazione del file. Il file è archiviato in server con protezione avanzata per impedire modifiche non autorizzate al file.
(http://support.microsoft.com/kb/119591/EN-US/
)
Come ottenere file di supporto Microsoft dai servizi online Esecuzione del campioneQuando si esegue l'esempio MfcAxscrVb si noterà un controllo di modifica di grandi dimensioni nell'angolo superiore sinistro dell'applicazione. È possibile incollare o script di tipo in questa finestra e selezionare il "Esegui script" pulsante per richiamare lo script. Numerosi script di test vengono fornite nei file Script.txt e testevents.txt.L'host di esposizione: dispatch oggettiL'obiettivo principale di questo esempio è l'implementazione di oggetti di invio utilizzando MFC. Il motivo per questo è semplice. Un linguaggio di script non è molto utile se non c'è niente da script.La tecnologia di base da cui tutti i Scripting dipende è la maggior parte delle certamente automazione. Una conoscenza a tinta unita di automazione è assolutamente necessaria prima di qualsiasi host Active Scripting del codice. Esistono diversi riferimenti valido per l'automazione: capitoli 14 e 15 di "Inside OLE di Brockshmidt," Capitolo 11 di Dale Rogerson "Inside COM" e "OLE Automation Programmer Reference". CCmdTargetPlus: Le informazioni necessarie sono alcuni oggetti che consentono di proprietà e metodi tramite IDispatch inoltre generano eventi di script. MFC non sicuramente la maggior parte del lavoro noioso durante l'implementazione di interfacce dispatch per un oggetto COM. Tuttavia, l'unica classe MFC che supporta le interfacce dispatch in ingresso e in uscita interfacce dispatch o event sink, è COleControl. COleControl è molto troppo sporgenti che si desidera. È solo gli eventi, un'interfaccia dispatch e digitare le informazioni. VBScript deve leggere informazioni di tipo per gli oggetti di invio che supportano gli eventi. È possibile creare questo in tempo reale, o creare una libreria tipo statico per gli oggetti di invio dell'host di e ottenere il ITypeInfo per ogni singolo oggetto. Mentre potrebbe non essere necessario, MfcAxscrVb dispone di una una classe base denominata CCmdTargetPlus che supporta questi tre tipi: interfaccia, punti di connessione con una mappa eventi stile del controllo e le informazioni di tipo facilmente accessibili tramite IProvideClassInfo di invio. Gran parte del codice in CmdTargetPlus è stato aggiunto per consentire per le mappe eventi, che consente di aggiunta di eventi per derivata classi molto più semplice. dispatch oggetti: Tutti gli oggetti fornito dall'host di invio vengono implementati utilizzando CCmdTargetPlus. Esistono alcuni aspetti che sono necessarie per funziona correttamente. Per un standard su che cosa è necessario fare riferimento a tutti gli oggetti dispatch (CAButtonDispatch, CBButtonDispatch e così via). Riportato un breve riepilogo sul modello a oggetti del MfcAxscrvb è elencato alla fine di questo documento. Se si aggiungono oggetti personalizzati, assicurarsi di controllare per tre GUID univoci per le interfacce di eventi primario e di invio principale e per il clsid per l'oggetto nella somma. Deve essere eseguita nel file di implementazione e nel file ODL. (Taglia e Incolla consente qui). Tagliare e incollare tutte le macro classe procedura guidata e modificarle quindi il nuovo nome della classe. Guidata classe è molto particolari, ma se si segue tutto solo destra ODL, h e cpp, file, è possibile utilizzarlo per aggiungere nuovi eventi, proprietà, e che i metodi per l'invio di oggetto come se fosse un OLE controllo MFC. Si tratta di ordinamento di utile. MfcAxscrVb mantiene l'oggetto che implementa i meccanismi di dispatch separati dall'oggetto MFC, che effettivamente fa riferimento a. Ad esempio, la finestra di dialogo ha un pulsante denominato il "AButton," che è utilizzabile tramite script. L'oggetto del pulsante MFC è CButton. La classe derivata CCmdTargetPlus, CAButtonDispatch, è separato e distinto. Questo è un punto chiave. Solo ciò che il programmatore di host in modo esplicito sceglie di esporre per oggetti MFC di base e controlli Windows sarà utilizzabile tramite script. CEventsButton, CEventsEdit, CeventsListBox: Per gli eventi, è necessario essere il codice che risponde a un Windows evento--pronunciare, un pulsante--e genera un evento per il modulo di gestione di script. (Ricordare che un evento è un Invoke su un'interfaccia gestita da punti di connessione nell'oggetto host di invio). In questo esempio esegue questa operazione aggiungendo i gestori di messaggi MFC standard in oggetti derivati da diverse classi. Semplicemente ciascuno di questi gestori dispone di chiamare FireEvent (del codice aggiunto CCmdTargetPlus) sull'oggetto dispatch. Tutto il resto viene eseguita automaticamente. Poiché l'oggetto di invio e l'effettivo oggetto finestra MFC sono distinti in questo esempio, è necessario il padre della finestra di dialogo in modo esplicito collegare insieme i due. Questa operazione viene eseguita nel costruttore Mfcaxscrvbdlg. Elementi denominatiDopo avere oggetti dispatch, è necessario impostare in modo che il modulo di gestione di script su di essi. L'insieme di tutti gli oggetti denominati invio che il modulo di gestione di script è a conoscenza è in è di denominato "Namespace Script". Elementi vengono aggiunti allo spazio dei nomi script tramite il metodo IActiveScript::AddNamedItem. Come già anticipato, è imposta dell'host di implementare IDispatch per l'oggetto e supportare informazioni sul tipo tramite ITypeInfo per l'oggetto. Quando il modulo di gestione di script è necessario risolvere un riferimento a un elemento denominato, viene utilizzato il metodo di IActiveScriptSite::GetItemInfo per richiedere un puntatore IUnknown (che richiede principalmente per IDispatch) e un puntatore ITypeInfo.Non tutto ciò che un host desidera utilizzabile tramite script deve essere un elemento denominato. In genere è possibile che l'host avrà una gerarchia di oggetti, in cui oggetti secondari accessibili tramite un oggetto di livello superiore. Una metafora comune è l'applicazione-> documento-> gerarchia di elementi, in cui l'oggetto di documento è accessibile dall'oggetto Application principale come proprietà IDispatch dell'oggetto applicazione stesso. Allo stesso modo, l'oggetto del documento stesso espone diversi oggetti secondari, e ognuno è un elemento che è possibile ottenere tramite una matrice di elementi o altri contrivance. Utilizzando questo schema, il motore di script è smart abbastanza per passare a un sottoelemento quando il codice di script indica che le seguenti operazioni senza documenti o elementi da aggiungere allo spazio dei nomi script: controllo WebBrowser: In questo esempio, l'host di script espone un solo oggetto esterno allo spazio dei nomi script. Si tratta del controllo WebBrowser ospitato nella finestra di dialogo controllo contenimento supporto MFC predefinito. È sufficiente un AddRef sarebbe inviare un puntatore al controllo e è impostata. Per gli eventi, l'oggetto esterno deve esporre un puntatore ITypeInfo in qualche modo. MfcAxscrVb ottiene questo IProvideClassInfo::GetClassInfo. Come ultima risorsa, un host potrebbe leggere il tipo di informazioni dell'oggetto per esporre un ITypeInfo. Per fortuna, il controllo WebBrowser supporta GetClassInfo, in modo non MfcAxscrVb questo. Se si desidera aggiungere altri oggetti di automazione esterna allo spazio dei nomi, in genere è necessario è per ottenere un'interfaccia IUnknown utilizzando CoCreateInstance. In alternativa, l'host può supportare in modo generico per ottenere oggetti esterni, ma quelle che non devono disporre di eventi gestiti. In Visual Basic, è è che la funzione per eseguire questa operazione chiamata CreateObject. Informazioni su altre applicazioni: HostCreateObjectDiversi dal set di proprietà utilizzate per esporre tutti gli oggetti figlio, l'oggetto di script principale (la classe finestra di dialogo stessa) espone un solo metodo speciale. Questo metodo viene illustrato che un semplice significa per simulare la funzione CreateObject di Visual Basic. Si noti che il metodo è denominato HostCreateObject per sottolineare che questo metodo non viene fornito gratuitamente dal motore di script, ma l'host implementi stesso. Alcuni host chiaramente potrebbe non voler consentire per motivi di protezione, IE3 è un esempio. L'obiettivo principale di HostCreateObject è per restituire il puntatore di invio dell'oggetto richiesto. Una volta che il motore di script ha il puntatore dispatch, sa che cosa fare da tale posizione.Nota : nome della versione 2.0, i motori VBScript e JScript supportano ora CreateObject come una funzione incorporata. L'host non è necessario implementare questa funzione. Questa funzione verrà, tuttavia, verificare un oggetto per assicurarsi che sia sicuro prima di consentire l'oggetto da utilizzare. Gli oggetti stessi riterranno sicuri per lo script da supportare l'interfaccia IObjectSafety o contrassegnare le voci del Registro di sistema di Component Category appropriate per Safe-for-scripting. Fare riferimento della Microsoft Knowledge Base per ulteriori informazioni. Supporto della procedura guidata classeIl bit di poco ultimo di trickery in MfcAxscrVb è la modifiche apportate per supportare ClassWizard. Classe di creazione guidata, tecnicamente non "tipo dumb". È sufficiente mentally richieste. È molto utile per che cosa viene, ma è importante ricordare che ricerca solo ciecamente file cercare tali commenti classe speciale. Se si segue il formato per COleControl, è possibile solo su get stoccaggio con eventi e automazione della creazione guidata classe schede.Una complicazione è che MfcAxscrVb utilizza derivazione nella parte della gerarchia di oggetti. Tutti gli oggetti pulsante sono derivati da un oggetto CButtonDispatch comune che espone proprietà e metodi, che ognuno dei quali è sarebbe singolarmente supporti. Tuttavia, per quanto riguarda tempo per compilare il file ODL, ogni singolo oggetto deve contenere tutte le proprietà e i metodi della classe padre. Inutile a dirsi, questo verrà confondere la creazione guidata classe quando si ha tempo per numerare i DISPID. Se si utilizza Creazione guidata classe, verificare controllare i DispId generati in due posizioni: file di classe di automazione e l'enumerazione all'interno della definizione di classe ODL. Quando si lavora con le classi derivate pulsante, è facile visualizzare il DISPID stesso assegnato a più proprietà e metodi. È molto più semplice correggere i DISPID, tuttavia, a per aggiungere tutti gli elementi da zero, pertanto la funzionalità è stata lasciata in MfcAxscrVb. Con supporto migliorato del Visual c ++ 5.0 di IDL metodi e proprietà attraverso la visualizzazione delle classi, è un buttare voluto backup se la classe è necessario o non. Ma MfcAxscrVb supporta per ora. Divertirsi con. Appendice A: modello a oggettiscript:Questo è l'oggetto master da cui derivano tutti gli altri oggetti. È "IMfcaxscrvbDlg" nel file ODL ma viene aggiunto come l'elemento denominato "Script". Dispone di un metodo, HostCreateObject descritta sopra. oggetti Button: AButton BButton, RunScript CancelButton, OKButton, Proprietà
BroCon è il nome del controllo WebBrowser nella finestra di dialogo. Supporta tutti i metodi come descritto in Internet Client SDK/ActiveX SDK per il controllo WebBrowser e le proprietà. EditCon: metodi
metodi
ProprietàIdentificativo articolo: 168214 - Ultima modifica: giovedì 5 agosto 2004 - Revisione: 2.2 Le informazioni in questo articolo si applicano a:
Traduzione automatica articoli 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. Clicca qui per visualizzare la versione originale in inglese dell?articolo: 168214
(http://support.microsoft.com/kb/168214/en-us/
)
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO. | Traduzione articoli |





Torna all'inizio








