Disabling Windows file system redirection on a CFileDialog






4.86/5 (6 votes)
Introduction...
Introduction
Windows on Windows 64-bit (WOW64) provides file system redirection. In a 64-bit version of Windows Server 2003 or of Windows XP, the %WinDir%\System32 folder is reserved for 64-bit applications. When a 32-bit application tries to access the System32 folder, access is redirected to the following folder: %WinDir%\SysWOW64 By default, file system redirection is enabled.Background
You can use the following functions to control file system redirection:Wow64DisableWow64FsRedirection
Wow64EnableWow64FsRedirection
Wow64RevertWow64FsRedirection
CFileDialog
Box to access the System32 folder. I searched on the net and could not find an article, so here goes my first article :)
Using the Code
You should derive a class fromCFileDialog
. And in the constructor, disable the flags and enable it back again in the destructor :)
class CFileDialogEx : public CFileDialog { public: CFileDialogEx(void); ~CFileDialogEx(void); private: PVOID OldValue; }; CFileDialogEx::CFileDialogEx(void):CFileDialog(true) { Wow64DisableWow64FsRedirection(&OldValue); } CFileDialogEx::~CFileDialogEx(void) { Wow64RevertWow64FsRedirection(OldValue); }