次の方法で共有


AfxDoForAllClasses

更新 : 2007 年 11 月

アプリケーションのメモリ空間内のすべてのシリアル化可能な CObject 派生クラスに対して反復関数の実行を呼び出します。

void AFXAPI AfxDoForAllClasses(
   void (*pfn
)(const CRuntimeClass* pClass,
   void* pContext
),
   void* pContext 
); 

パラメータ

  • pfn
    各クラスで実行する反復関数へのポインタ。関数の引数は、CRuntimeClass オブジェクトへのポインタと、呼び出し側が関数に渡す付加的なデータへの void 型のポインタです。

  • pContext
    呼び出し側が反復関数に引き渡せる省略可能なデータへのポインタ。このポインタは NULL でもかまいません。

解説

シリアル化可能な CObject 派生クラスは、DECLARE_SERIAL マクロで派生させたクラスです。pContext で AfxDoForAllClasses に渡されるポインタは、呼び出しのたびに指定された反復関数に渡されます。

717e3aw5.alert_note(ja-jp,VS.90).gifメモ :

この関数は MFC ライブラリのデバッグ環境でしか動作しません。

使用例

#ifdef _DEBUG
void DoForAllClasses(const CRuntimeClass* pClass, void* pContext)
{
   ASSERT(pContext != NULL);
   CString *pStr = (CString *)pContext;

   *pStr += pClass->m_lpszClassName;
   *pStr += _T("\n");
}
#endif
#ifdef _DEBUG
   CString cStr;
   AfxDoForAllClasses(DoForAllClasses, &cStr);
   AfxMessageBox(cStr);
#endif

必要条件

ヘッダー : afx.h

参照

概念

MFC マクロとグローバル

参照

DECLARE_SERIAL