관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

RegSetValueEx(A) 본문

API 관련/Win32 API 함수

RegSetValueEx(A)

님투 2007. 11. 8. 23:21
반응형

RegSetValueEx(A)

레지스트리 키아래로 지정된 값의 데이터와 형태를 설정합니다.

LONG RegSetValueExA(
    HKEY    hKey,        // 키의 핸들
    PCTSTR  pValueName,  // 값의 이름
    DWORD   Reserved,    // 예약(0(을)를 지정)
    DWORD   dwType,      // 데이터의 타입
    CONST BYTE *pData,   // 데이터 버퍼의 주소
    DWORD   cbData       // 데이터 사이즈
);

ADVAPI32.DLL

인수

hKey

현재 오픈되고 있는 키의 핸들을 지정합니다.이 핸들은 KEY_SET_VALUE 액세스를 가지고 있지 않으면 안됩니다.

다음의 정의가 끝난 키를 지정할 수도 있습니다.

정의가 끝난 키
0x80000000 HKEY_CLASSES_ROOT
0x80000001 HKEY_CURRENT_USER
0x80000002 HKEY_LOCAL_MACHINE
0x80000003 HKEY_USERS
0x80000004 Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
0x80000005 HKEY_CURRENT_CONFIG
0x80000006 Windows 95/98/Me: HKEY_DYN_DATA
pValueName

값의 이름을 나타내는 문자열의 주소를 지정합니다.키로 지정된 이름의 값이 존재하지 않는 경우는, 이 이름의 값을 추가합니다.

하늘의 문자열("")의 주소 또는 0 (NULL) (을)를 지정했을 경우에는, 키의 이름 없음의 값 또는 디폴트의 값을 설정합니다.

Windows 95/98/Me: Windows 95 그럼, 키의 디폴트의 값의 데이터형은 항상 REG_SZ 이므로, 디폴트의 값으로는 dwType 파라미터에는 REG_SZ (을)를 지정하지 않으면 안됩니다. Windows 98/Me 그럼, 디폴트의 값의 형태는 초기 상태에서는 REG_SZ 그렇지만, RegSetValueEx 함수에는 어느 데이터형에서도 지정할 수 있습니다.

Windows NT/2000/XP: 초기 상태에서는 이름 없음의 값 또는 디폴트의 값을 가지지 않습니다.이름 없음의 값에는 어느 데이터형에서도 지정할 수 있습니다.

Reserved

예약되고 있습니다. 0 (을)를 지정하지 않으면 안됩니다.

dwType

격납한다 값의 데이터의 형태(을)를 지정합니다.

pData

격납하는 데이터가 격납된 버퍼의 주소를 지정합니다.

cbData

pData 파라미터가 나타내 보이는 정보의 사이즈를, 아르바이트 단위로 지정합니다.데이터의 종류가 REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ 의 몇개의 때는, 종단 눌 문자의 사이즈도 포함하지 않으면 안됩니다.

반환값

성공하면 0 (ERROR_SUCCESS) 하지만 돌아갑니다.

실패하면 0 이외의 에러 코드가 돌아갑니다.이 에러 코드와 FORMAT_MESSAGE_FROM_SYSTEM 플래그를 지정해 FormatMessage 함수를 호출하는 것으로, 에러 메세지를 취득할 수 있습니다.

해설

값의 데이터의 길이는, 이용 가능한 메모리에 의해서 제한됩니다. 2048 아르바이트를 넘는 긴 값의 데이터의 경우는, 데이터는 파일로서 격납해, 그 파일명을 레지스트리에 격납하도록(듯이) 해야 합니다.아이콘이나 비트 맵, 실행 가능 파일등의 어플리케이션의 요소는, 파일로서 격납되어야 하는 것으로, 레지스트리에 두어야 하는 것이 아닙니다.

문자열 데이터는 레지스트리중에 Unicode 문자열의 형태로 격납됩니다.어플리케이션이 dwType 파라미터에 REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ 의 어느쪽이든을 지정해 ANSI 판의 함수(RegSetValueExA 함수)를 호출하면, pData 파라미터가 지시한다 ANSI 문자열이 Unicode 문자열에 변환되고 나서 레지스트리에 격납됩니다.

Windows 95/98/Me: 레지스트리의1개의 값의 사이즈는 16,300 아르바이트에 제한됩니다.이 사이즈에는, 데이터 사이즈(cbData 파라미터) 및 값의 이름(pValueName 파라미터)에 대한 정보의 사이즈도 포함됩니다.또,1개의 키가 가지는 모든 값의 총사이즈는 64 킬로바이트에 제한됩니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

ReleaseMutex  (0) 2007.11.08
ReleaseDC  (0) 2007.11.08
RegQueryValueEx(A)  (0) 2007.11.08
RegOpenKeyEx(A)  (0) 2007.11.08
RegFlushKey  (0) 2007.11.08
Comments