Condividi tramite


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 sulla modalità di creazione dei contesti di attivazione, vedere i seguenti argomenti:

Osservazioni:

Durante la lettura di questi argomenti di Windows SDK, si noti che il meccanismo del contesto di attivazione MFC è simile al contesto di attivazione di Windows SDK, ad eccezione del fatto che MFC non usa l'API contesto di attivazione di Windows SDK.

Il contesto di attivazione funziona in applicazioni MFC, DLL utente e DLL di estensione MFC nei modi seguenti:

  • Le applicazioni MFC utilizzano gli ID di risorsa 1 per la propria 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 propria risorsa manifesto. In questo caso, MFC crea un contesto di attivazione per ogni DLL dell'utente, pertanto differenti 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 sulle DLL dell'utente per determinare il proprio contesto di attivazione.

Anche se lo stato del contesto di attivazione può essere modificato usando i processi descritti in Uso dell'API contesto di attivazione, l'uso del meccanismo di contesto di attivazione MFC può essere utile quando si sviluppano architetture plug-in basate su DLL in cui non è facile (o non possibile) cambiare manualmente lo stato di attivazione prima e dopo singole chiamate a plug-in esterni.

Il contesto di attivazione viene creato in AfxWinInit. Viene eliminato definitivamente nel distruttore AFX_MODULE_STATE. L'handle 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é per le DLL MFC, per consentire al codice MFC di operare nel proprio contesto di attivazione selezionato dalla DLL dell'utente.

Vedi anche

Contesti di attivazione
Manifesti dell'applicazione
Manifesti dell'assembly
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE