When trying to return the path to system32 so I can launch notepad from an application I am developing, I do the following:
if (SHGetSpecialFolderPath(
GetSafeHwnd(),
lSystemPath,
CSIDL_SYSTEM,
TRUE ) )
{
lSystemPathCString = lSystemPath;
if (lSystemPathCString.ReverseFind('\\') != lSystemPathCString.GetLength() - 1)
lSystemPathCString += "\\";
}
However…. in SHGetSpecialFolderPath(), using CSIDL_SYSTEM ends up setting lSystemPath to C:\Windows\system32, whereas using CIDSL_SYSTEMX86 sets lSystemPath to C:\Windows\SysWOW64. Is this the correct behavior? It seems like those identifiers are switched, and I want to make sure that this is not merely strange behavior on my system.
Thanks in advance for any help in clearing this up.
C:\Windows\SysWOW64contains 32-bit binaries (even though it has64in its name): this is correct behaviour.WOW64 stands for Windows 32-bit on Windows 64-bit.