Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
AFX_EXTENSION_MODULE digunakan selama inisialisasi DLL ekstensi MFC untuk menahan status modul DLL ekstensi MFC.
Sintaks
struct AFX_EXTENSION_MODULE
{
BOOL bInitialized;
HMODULE hModule;
HMODULE hResource;
CRuntimeClass* pFirstSharedClass;
COleObjectFactory* pFirstSharedFactory;
};
Parameter
bInitialized
TRUE jika modul DLL telah diinisialisasi dengan AfxInitExtensionModule.
hModule
Menentukan handel modul DLL.
hResource
Menentukan handel modul sumber daya kustom DLL.
pFirstSharedClass
Penunjuk ke informasi ( CRuntimeClass struktur) tentang kelas runtime pertama modul DLL. Digunakan untuk menyediakan awal daftar kelas runtime.
pFirstSharedFactory
Penunjuk ke pabrik objek pertama modul DLL ( COleObjectFactory objek). Digunakan untuk menyediakan awal daftar pabrik kelas.
Keterangan
DLL ekstensi MFC perlu melakukan dua hal dalam fungsinya DllMain :
Panggil AfxInitExtensionModule dan periksa nilai yang dikembalikan.
Buat
CDynLinkLibraryobjek jika DLL akan mengekspor objek CRuntimeClass atau memiliki sumber daya kustomnya sendiri.
Struktur AFX_EXTENSION_MODULE ini digunakan untuk menyimpan salinan status modul DLL ekstensi MFC, termasuk salinan objek kelas runtime yang telah diinisialisasi oleh DLL ekstensi MFC sebagai bagian dari konstruksi objek statis normal yang dijalankan sebelum DllMain dimasukkan. Contohnya:
static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL;
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("NVC_MFC_DLL.DLL Initializing!\n");
// MFC extension DLL one-time initialization
if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))
return 0;
Informasi modul yang AFX_EXTENSION_MODULE disimpan dalam struktur dapat disalin ke CDynLinkLibrary dalam objek. Contohnya:
IMPLEMENT_DYNAMIC(CMyDynLinkLibrary, CDynLinkLibrary)
CMyDynLinkLibrary::CMyDynLinkLibrary(AFX_EXTENSION_MODULE& state, BOOL bSystem)
: CDynLinkLibrary(state, bSystem)
{
#ifndef _AFX_NO_OLE_SUPPORT
m_factoryList.Construct(offsetof(COleObjectFactory, m_pNextFactory));
#endif
m_classList.Construct(offsetof(CRuntimeClass, m_pNextClass));
// copy info from AFX_EXTENSION_MODULE struct
ASSERT(state.hModule != NULL);
m_hModule = state.hModule;
m_hResource = state.hResource;
m_classList.m_pHead = state.pFirstSharedClass;
#ifndef _AFX_NO_OLE_SUPPORT
m_factoryList.m_pHead = state.pFirstSharedFactory;
#endif
m_bSystem = bSystem;
}
Persyaratan
Header: afx.h
Lihat juga
Struktur, Gaya, Panggilan Balik, serta Peta Pesan
AfxInitExtensionModule
AfxTermExtensionModule