Supporto per contesti di attivazione nello stato del modulo MFC
MFC crea un contesto di attivazione utilizzando una risorsa manifesto fornita dal modulo dell'utente. Per ulteriori informazioni su come vengono creati i contesti di attivazione, vedere i seguenti argomenti:
Osservazioni
Durante la lettura di questi argomenti Windows SDK, si noti che il meccanismo di contesto di attivazione MFC è simile al contesto di attivazione Windows SDK ma MFC non utilizza il contesto di attivazione API Windows SDK.
Il contesto di attivazione lavora nei seguenti modi con le applicazioni MFC. le DLL dell'utente e le DLL estese:
Le applicazioni MFC utilizzano gli ID di risorsa 1 per la risorsa manifesto. In questo caso, MFC non crea il proprio contesto di attivazione, ma utilizza il contesto di applicazione predefinito.
Le DLL dell'utente MFC utilizzano gli ID di risorsa 2 per la risorsa manifesto. In questo caso, MFC crea un contesto di attivazione per ogni DLL dell'utente, in modo differente le DLL dell'utente possono utilizzare versioni diverse delle stesse librerie (come ad esempio, la libreria dei controlli comuni).
Le DLL di estensione MFC si basano sulle applicazioni host o DLL dell'utente per stabilire il relativo contesto di attivazione.
Sebbene lo stato del contesto di attivazione possa essere modificato utilizzando i processi descritti in Using the Activation Context API, utilizzare il meccanismo di contesto di attivazione MFC può essere utile quando si creano le architetture plug-in basate sulle DLL in cui non è facile (o non è possibile) commutare manualmente lo stato di attivazione prima e dopo le chiamate individuali ai collegamenti esterni.
Il contesto di attivazione viene creato in AfxWinInit. Viene eliminato nel distruttore AFX_MODULE_STATE. Il punto di controllo del contesto di attivazione viene conservato in AFX_MODULE_STATE. (AFX_MODULE_STATE è descritto in AfxGetStaticModuleState.)
La macro AFX_MANAGE_STATE attiva e disattiva il contesto di attivazione. AFX_MANAGE_STATE è abilitata per le librerie MFC statiche nonché le DLL MFC, per consentire al codice MFC di eseguire nel proprio contesto di attivazione selezionato dalle DLL dell'utente.