コモン コントロール ライブラリは、 MFC 内でマニフェストのバージョンを指定することにより、分離し、コモン コントロール ライブラリの異なるバージョンを使用するように異なるモジュール (ユーザーの DLL など)します。
FunctionName がコモン コントロール API の名前である場合に MFC アプリケーション (または MFC によって呼び出されるユーザー コード AfxFunctionNameというラッパー関数によってコモン コントロール ライブラリの API に)呼び出しを行います。これらのラッパー関数は afxcomctl32.h と afxcomctl32.inl で定義されます。
AFX_COMCTL32_IF_EXISTS と AFX_COMCTL32_IF_EXISTS2 のマクロができます (コモン コントロール ライブラリが GetProcAddressを呼び出す代わりにある API を実行するかどうかを判断するためにで使用 afxcomctl32.h で定義)です。
厳密には、ラッパー クラスを通じてコモン コントロール ライブラリの API、 CComCtlWrapper に呼び出しを行い (afxcomctl32.h)で定義されます。CComCtlWrapper は comctl32.dll の読み込みとアンロードにも使用されます。MFC のモジュール状態は CComCtlWrapperのインスタンスへのポインターが格納されます。afxComCtlWrapper マクロを使用して、ラッパー クラスにアクセスできます。
MFC アプリケーションからコモン コントロール API (ない MFC ラッパー関数を使用して直接呼び出すとは、ユーザーの DLL は MFC アプリケーションまたはユーザーの DLL がマニフェストに要求した)コモン コントロール ライブラリにバインドされるため、ほとんどの場合です。ただし、 MFC コードが別のコモン コントロール ライブラリ バージョンのユーザーの DLL から呼び出される可能性があるため、 MFC コード自体はラッパーを使用する必要があります。