인터넷/IT/프로그래밍

REG_EXPAND_SZ 타입에 대해서

coffee94 2015. 6. 18. 17:58

REG_EXPAND_SZ 는 REG_SZ랑 비슷하지만 추가로 %SystemRoot% 와 같은 Expand 문자열이 포함됩니다.


레지스트리 편집기에서 Source라는 이름의 데이터 값이 %SystemRoot% 로 저장되어 있다면..


다음과 같은 코드는..

WCHAR value[MAX_PATH];

DWORD length;

if ((lresult = ::RegGetValue(hkey, nullptr,

L"Source",

REG_EXPAND_SZ,

nullptr,

value,

&length)) == ERROR_SUCCESS)


C:\Windows 형태로 값을 가져오게 되며,


만약 레지스트리 편집기로 가져오는 값 그대로 가져오려면 아래처럼 가져와야 합니다.


WCHAR value[MAX_PATH];

DWORD length;

if ((lresult = ::RegGetValue(hkey, nullptr,

L"Source",

REG_EXPAND_SZ | RRF_NOEXPAND,

nullptr,

value,

&length)) == ERROR_SUCCESS)


위의 코드는 %SystemRoot% 형태로 값을 가져옵니다.