AFX_EXTENSION_MODULE

AFX_EXTENSION_MODULE是計算機標誌,用以MFC 擴展 Dll 的初始化過程中用來保存擴展 DLL 模組的狀態。

基本介紹

  • 中文名:無
  • 外文名:AFX_EXTENSION_MODULE MFC
語法,參數,備註,要求,

語法

struct AFX_EXTENSION_MODULE  {       BOOL bInitialized;      HMODULE hModule;       HMODULE hResource;       CRuntimeClass* pFirstSharedClass;       COleObjectFactory* pFirstSharedFactory;  };

參數

bInitialized
TRUEDLL 模組已初始化,如果AfxInitExtensionModule。
hModule
指定 DLL 模組的句柄。
hResource
指定 DLL 的自定義資源模組的句柄。
pFirstSharedClass
指向信息的指針 (CRuntimeClass結構) 有關 DLL 模組的第一個運行時類。用於提供運行時類列表的開頭。
pFirstSharedFactory
DLL 模組的第一個對象工廠的指針 (COleObjectFactory對象)。用於提供類工廠列表的開頭。

備註

MFC 擴展 Dll 需要做兩件事中的其DllMain函式︰
  • 調用AfxInitExtensionModule並檢查返回的值。
  • 創建CDynLinkLibrary對象 DLL 將會導出CRuntimeClass對象,或在具有其自己的自定義資源。
AFX_EXTENSION_MODULE結構用來保存一份擴展 DLL 的模組狀態,包括通過擴展 DLL 初始化之前執行的普通靜態對象構造過程中的運行時類對象的副本DllMain輸入。例如:
C++
static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL = { NULL, NULL };extern "C" int APIENTRYDllMain(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"); // Extension DLL one-time initialization        if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))                            return 0;           }       }
模組信息存儲在AFX_EXTENSION_MODULE結構可以複製到CDynLinkLibrary對象。例如:
C++
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;}

相關詞條

熱門詞條

聯絡我們