ExpandEnvironmentStr

Функция FSF.ExpandEnvironmentStr заменяет в строке ссылки на переменные окружения на их значения.
DWORD WINAPI ExpandEnvironmentStr(
  const char *Src,
  char *Dest,
  size_t Size
);

Параметры

Src
Указатель на оканчивающуюся нулем строку, которая может содержать ссылки на переменные окружения в виде %VariableName%.

Для каждой такой ссылки, подстрока %VariableName% заменяется текущим значением соответствующей переменной окружения. Замена производится по тем же правилам, которые использует интерпретатор командной строки (command.com или cmd.exe). Регистр названий переменных окружения игнорируется. Если переменной окружения с таким названием не найдено, строка %VariableName% сохраняется без изменений.

Dest
Указатель на буфер, в который будет записан результат. Может указывать на Src.
Size
Указывает максимально количество символов, которые могут быть записаны в буфер (Dest), включая заключительный нулевой символ.

Возвращаемое значение

Функция возвращает количество символов, которые были записаны в буфер. В случае неудачи расширения переменных среды, в Dest будет скопировано до (Size-1) символов из Src.

Примечание

  1. Данная функция является "оберткой" для функции ExpandEnvironmentStrings из win32 api, поэтому подробности смотрите там.
  2. В отличие от ExpandEnvironmentStrings функция FSF.ExpandEnvironmentStr всегда заполняет буфер Dest.
  3. Функция манипулирует строками (Src и Dest) в OEM-кодировке.