Note this post is on Visual Studio 11 Beta, you can download it from http://www.microsoft.com/visualstudio/11/en-us/downloads
Since Sinofsky posted about no desktop apps on Windows on ARM (WOA), it looks like MFC and ATL are going to support metro-style apps, although most ATL classes are not going to be compatible with metro style apps.
#if !defined(_M_IX86) && !defined(_M_AMD64) && !defined(_M_ARM)
#error Compiling for unsupported platform. Only x86, x64 and ARM platforms are supported by MFC.
#endif
DAO support for ARM is missing, just like the lack of DAO support for 64 bit apps. Jet was deprecated a while ago, no surprise here.
You can now decide whether you want MFC’s feature pack code when static linking.
Added support for RichEdit 4.1. About time.
MFC now introduces dependency on uxtheme.dll and dwmapi.dll. Not sure why applications need to check MFC for DWM status.
Lots of defensive programming added to OLE and ActiveX document support. MFC developers have too much free time? I thought ActiveX document was dead. Or maybe someone else is pushing those changes, like Adobe or the Office team. Or Microsoft’s security police. Lots of function prototype changes, probably because MFC headers need to pass static code analysis. Some other security improvements, like loading known Dlls only from system path, skipping DLL search paths. CDatabase now stores the connection string in memory in encrypted form.
Some new OS API exposure like CFile gets a lot more NTFS-specific attributes. CFileDialog gets a pick non-system folder mode.
Some design changes are head-scratching, CPropertyPage gets a GetParentSheet function. Looks like the parent of the page may no longer be a property sheet.
In summary, there isn’t much code change in MFC. The demands I see from community forums are mostly on C++11, which is not surprisingly the focus of the Visual C++ team in this release and probably will continue for a while.
Leave a Reply