次の方法で共有


COM インターフェイスのエントリ ポイント

COM インターフェイスのメンバー関数に対して、適切なグローバル状態を維持するために METHOD_PROLOGUE マクロとエクスポートされたインターフェイスの呼び出し元のメソッドを使用します。

通常、 CCmdTargetによって実装されるインターフェイスのメンバー関数の派生オブジェクトが既に pThis のポインターの自動的な初期化を提供するには、このマクロを使用します。次に例を示します。

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

詳細については、 MFC/OLE IUnknown の実装の テクニカル ノート 38 を参照してください。

METHOD_PROLOGUE のマクロは次のように定義されています:

#define METHOD_PROLOGUE(theClass, localClass) \

theClass* pThis = \

((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \

AFX_MANAGE_STATE(pThis->m_pModuleState) \

グローバル状態の管理に関連するマクロの部分は次のとおりです:

AFX_MANAGE_STATE( pThis->m_pModuleState )

この式では、 m_pModuleState は コンテナー オブジェクトのメンバー変数と見なされます。これは CCmdTarget の基本クラスによってオブジェクトがインスタンス化されると、が実行され、適切な値に COleObjectFactoryによって初期化されます。

参照

概念

MFC モジュールの状態データの管理