COM 인터페이스 진입점COM Interface Entry Points

COM 인터페이스의 멤버 함수에 대해, 매크로를 사용 METHOD_PROLOGUE 하 여 내보낸 인터페이스의 메서드를 호출할 때 적절 한 전역 상태를 유지 합니다.For member functions of a COM interface, use the METHOD_PROLOGUE macro to maintain the proper global state when calling methods of an exported interface.

일반적으로 파생 개체에서 구현 하는 인터페이스의 멤버 함수는 CCmdTarget 이미이 매크로를 사용 하 여 포인터의 자동 초기화를 제공 pThis 합니다.Typically, member functions of interfaces implemented by CCmdTarget-derived objects already use this macro to provide automatic initialization of the pThis pointer. 예를 들면 다음과 같습니다.For example:

STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
   METHOD_PROLOGUE(CMySink, Sinky);
   return pThis->InternalAddRef();
}

자세한 내용은 MFC/OLE 구현에서 기술 정보 38 을 참조 하세요 IUnknown .For additional information, see Technical Note 38 on MFC/OLE IUnknown implementation.

METHOD_PROLOGUE매크로는 다음과 같이 정의 됩니다.The METHOD_PROLOGUE macro is defined as:

#define METHOD_PROLOGUE(theClass, localClass) \
    theClass* pThis = \
    ((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
    AFX_MANAGE_STATE(pThis->m_pModuleState) \

전역 상태를 관리 하는 것과 관련 된 매크로 부분은 다음과 같습니다.The portion of the macro concerned with managing the global state is:

AFX_MANAGE_STATE( pThis->m_pModuleState )

이 식에서 m_pModuleState 는 포함 하는 개체의 멤버 변수로 간주 됩니다.In this expression, m_pModuleState is assumed to be a member variable of the containing object. 이 클래스는 기본 클래스에 의해 구현 되며 CCmdTarget COleObjectFactory , 개체가 인스턴스화될 때에서 적절 한 값으로 초기화 됩니다.It is implemented by the CCmdTarget base class and is initialized to the appropriate value by COleObjectFactory, when the object is instantiated.

참고 항목See also

MFC 모듈의 상태 데이터 관리Managing the State Data of MFC Modules