AFX_EXTENSION_MODULE 구조

AFX_EXTENSION_MODULE 구조는 다음과 같은 형태:

aFX_EXTENSION_MODULE 구조체
{
 nbsp; BOOL bInitialized;
 ? HMODULE hModule;
 ? HMODULE hResource;
 ? CRuntimeClass * pFirstSharedClass;
 ? COleObjectFactory * pFirstSharedFactory;
}(&N)

확장 DLL 모듈의 상태를 MFC 확장 Dll 초기화 하는 동안 사용 되는 AFX_EXTENSION_MODULE。

회원

bInitialized

TRUE 이면 AfxInitExtensionModule DLL 모듈 초기화 된。

hModule

DLL 모듈의 핸들을 지정합니다.

hResource

사용자 지정 리소스 DLL 모듈의 핸들을 지정합니다.

pFirstSharedClass

DLL 모듈의 첫 번째 런타임 클래스 ( CRuntimeClass 구조체) 정보에 대 한 포인터입니다. 런타임 클래스 목록의 시작을 제공 하는 데 사용。

pFirstSharedFactory

DLL 모듈의 첫 번째 개체 팩터리 ( COleObjectFactory 개체)에 대 한 포인터입니다. 클래스 팩터리 목록의 시작을 제공 하는 데 사용。

코멘트

MFC 확장 Dll의 DllMain 함수에서 두 가지를 할 필요가:

AFX_EXTENSION_MODULE 구조는 DllMain 을 입력 하기 전에 실행 하는 일반적인 정적 개체 생성의 일부로 확장 DLL에 의해 초기화 된 런타임 클래스 개체의 복사본을 포함 하는 DLL 모듈 상태 확장의 복사본을 저장 하는 데 사용 됩니다. 예를 들어:

 정적 AFX_EXTENSION_MODULE extensionDLL;
extern "C" int APIENTRY
DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
 nbsp; / /이 DLL 확장 모듈 초기화
 ? 확인 (AfxInitExtensionModule (extensionDLL, hInstance))(&N)

AFX_EXTENSION_MODULE 구조에 저장 된 모듈 정보 CDynLinkLibrary 개체에 복사할 수 있습니다. 예를 들어:

/ / CDynLinkLibrary 클래스
IMPLEMENT_DYNAMIC (CDynLinkLibrary, CCmdTarget)
/ / 생성자
CDynLinkLibrary::CDynLinkLibrary (AFX_EXTENSION_MODULEamp; 상태, BOOL bSystem)
{
#ifndef _AFX_NO_OLE_SUPPORT
 ? m_factoryList.Construct (offsetof (COleObjectFactory, m_pNextFactory));
# endif
 ? m_classList.Construct (offsetof (CRuntimeClass, m_pNextClass));

/ / AFX_EXTENSION_MODULE 구조체에서 정보 복사
 ? 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(&A)

참고 항목nbsp;AfxInitExtensionModule, AfxTermExtensionModule(&N)

Index