ExpandEnvironmentStrings Not Expanding My Variables

Posted by Adam Driscoll on Stack Overflow See other posts from Stack Overflow or by Adam Driscoll
Published on 2010-03-08T19:30:44Z Indexed on 2010/03/08 20:51 UTC
Read the original article Hit count: 151

Filed under:
|
|

I have a process under the Run key in the registry. It is trying to access an environment variable that I have defined in a previous session. I'm using ExpandEnvironmentStrings to expand the variable within a path. The environment variable is a user profile variable. When I run my process on the command line it does not expand as well. If I call 'set' I can see the variable.

Some code...

CString strPath = "\\\\server\\%share%"
TCHAR cOutputPath[32000]; 
DWORD result = ExpandEnvironmentStrings((LPSTR)&strPath, (LPSTR)&cOutputPath,  _tcslen(strPath) + 1);
 if ( !result )
 {
  int lastError = GetLastError();
  pLog->Log(_T( "Failed to expand environment strings. GetLastError=%d"),1, lastError);
 }

When debugging Output path is exactly the same as Path. No error code is returned.

What is goin on?

© Stack Overflow or respective owner

Related posts about winapi

Related posts about c++