Izolace knihovny běžných ovládacích prvků MFC
Běžné ovládací prvky knihovny nyní samostatný v rámci knihovny MFC, umožňující různé moduly (například uživatele knihovny DLL) Chcete-li použít různé verze knihovny běžné ovládací prvky zadáním verze v jejich manifestů.
Aplikace knihovny MFC (nebo uživatelský kód MFC volány) volá knihovnu běžné ovládací prvky rozhraní API pomocí funkce souhrnného seznamu stop s názvem AfxFunctionName, kde FunctionName je název společné rozhraní API ovládacích prvků.Tyto obálky jsou definovány v afxcomctl32.h a afxcomctl32.inl.
Lze použít AFX_COMCTL32_IF_EXISTS a AFX_COMCTL32_IF_EXISTS2 maker (ve smyslu afxcomctl32.h) k určení, zda implementuje běžné ovládací prvky knihovny určitých rozhraní API namísto volání metody GetProcAddress.
Technicky, provádět volání společné rozhraní API knihovny ovládacích prvků prostřednictvím obálkovou třídu CComCtlWrapper (podle afxcomctl32.h).CComCtlWrapperje také odpovědné za nakládku a vykládku souboru Comctl32.dll.Stavu modulu knihovny MFC obsahuje ukazatel na instanci CComCtlWrapper.Přístup pomocí třídy obálky afxComCtlWrapper makra.
Všimněte si, že volání rozhraní API přímo běžné ovládací prvky (bez použití funkce obálky knihovny MFC) z knihovny MFC aplikace nebo uživatel knihovny DLL bude fungovat ve většině případů, protože aplikace knihovny MFC nebo DLL uživatelem je vázán na běžné ovládací prvky knihovny vyžádány v manifestu sestavení).Kód knihovny MFC, sám má však použití obalů, protože kód knihovny MFC může být volána z uživatelské knihovny DLL s různými verzemi knihovny běžné ovládací prvky.