title: CSIDL_SYSTEMX86 and CSIDL_SYSTEM (C++)
body: <p>When trying to return the path to system32 so I can launch notepad from an application I am developing, I do the following:</p>
  
  <pre><code>if (SHGetSpecialFolderPath(
          GetSafeHwnd(),
          lSystemPath,
          CSIDL_SYSTEM,
          TRUE ) )
      {
          lSystemPathCString = lSystemPath;
          if (lSystemPathCString.ReverseFind('\\') != lSystemPathCString.GetLength() - 1)
              lSystemPathCString += "\\";
      }
  </code></pre>
  
  <p>However.... in <code>SHGetSpecialFolderPath()</code>, using <code>CSIDL_SYSTEM</code> ends up setting <code>lSystemPath</code> to C:\Windows\system32, whereas using <code>CIDSL_SYSTEMX86</code> sets <code>lSystemPath</code> 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.</p>
  
  <p>Thanks in advance for any help in clearing this up.</p>