CRegKey
수업
이 클래스는 시스템 레지스트리의 항목을 조작하는 메서드를 제공합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
class CRegKey
멤버
공용 생성자
속성 | 설명 |
---|---|
CRegKey::CRegKey |
생성자입니다. |
CRegKey::~CRegKey |
소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CRegKey::Attach |
이 메서드를 호출하여 멤버 핸들을 .로 설정하여 개체에 HKEY CRegKey 를 m_hKey 연결합니다 hKey . |
CRegKey::Close |
이 메서드를 호출하여 멤버 핸들을 m_hKey 해제하고 으로 NULL 설정합니다. |
CRegKey::Create |
지정된 키가 하위 키로 존재하지 않는 경우 이 메서드를 호출하여 지정한 키를 hKeyParent 만듭니다. |
CRegKey::DeleteSubKey |
레지스트리에서 지정된 키를 제거하려면 이 메서드를 호출합니다. |
CRegKey::DeleteValue |
에서 값 필드를 m_hKey 제거하려면 이 메서드를 호출합니다. |
CRegKey::Detach |
개체에서 멤버 핸들을 m_hKey 분리하고 로 설정 m_hKey 하려면 이 메서드를 CRegKey 호출합니다NULL . |
CRegKey::EnumKey |
열려 있는 레지스트리 키의 하위 키를 열거하려면 이 메서드를 호출합니다. |
CRegKey::Flush |
열려 있는 레지스트리 키의 모든 특성을 레지스트리에 쓰려면 이 메서드를 호출합니다. |
CRegKey::GetKeySecurity |
열린 레지스트리 키를 보호하는 보안 설명자의 복사본을 검색하려면 이 메서드를 호출합니다. |
CRegKey::NotifyChangeKeyValue |
이 메서드는 열려 있는 레지스트리 키의 특성 또는 내용에 대한 변경 내용을 호출자에게 알깁니다. |
CRegKey::Open |
이 메서드를 호출하여 지정된 키를 열고 이 키의 핸들로 설정합니다 m_hKey . |
CRegKey::QueryBinaryValue |
이 메서드를 호출하여 지정된 값 이름의 이진 데이터를 검색합니다. |
CRegKey::QueryDWORDValue |
지정된 값 이름의 데이터를 검색 DWORD 하려면 이 메서드를 호출합니다. |
CRegKey::QueryGUIDValue |
지정된 값 이름에 대한 GUID 데이터를 검색하려면 이 메서드를 호출합니다. |
CRegKey::QueryMultiStringValue |
지정된 값 이름에 대한 다중 문자열 데이터를 검색하려면 이 메서드를 호출합니다. |
CRegKey::QueryQWORDValue |
지정된 값 이름의 데이터를 검색 QWORD 하려면 이 메서드를 호출합니다. |
CRegKey::QueryStringValue |
지정된 값 이름의 문자열 데이터를 검색하려면 이 메서드를 호출합니다. |
CRegKey::QueryValue |
지정된 값 필드의 데이터를 검색하려면 이 메서드를 호출합니다 m_hKey . 이 메서드의 이전 버전은 더 이상 지원되지 않으며 로 ATL_DEPRECATED 표시됩니다. |
CRegKey::RecurseDeleteKey |
레지스트리에서 지정된 키를 제거하고 하위 키를 명시적으로 제거하려면 이 메서드를 호출합니다. |
CRegKey::SetBinaryValue |
레지스트리 키의 이진 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetDWORDValue |
레지스트리 키의 DWORD 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetGUIDValue |
레지스트리 키의 GUID 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetKeySecurity |
레지스트리 키의 보안을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetKeyValue |
지정된 키의 지정된 값 필드에 데이터를 저장하려면 이 메서드를 호출합니다. |
CRegKey::SetMultiStringValue |
레지스트리 키의 다중 문자열 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetQWORDValue |
레지스트리 키의 QWORD 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetStringValue |
레지스트리 키의 문자열 값을 설정하려면 이 메서드를 호출합니다. |
CRegKey::SetValue |
지정된 값 필드에 데이터를 저장하려면 이 메서드를 호출합니다 m_hKey . 이 메서드의 이전 버전은 더 이상 지원되지 않으며 로 ATL_DEPRECATED 표시됩니다. |
Public 연산자
속성 | 설명 |
---|---|
CRegKey::operator HKEY |
개체를 CRegKey .로 변환합니다 HKEY . |
CRegKey::operator = |
대입 연산자입니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CRegKey::m_hKey |
개체와 연결된 레지스트리 키의 핸들을 CRegKey 포함합니다. |
CRegKey::m_pTM |
개체에 대한 CAtlTransactionManager 포인터 |
설명
CRegKey
에서는 시스템 레지스트리에서 키와 값을 만들고 삭제하는 메서드를 제공합니다. 레지스트리에는 소프트웨어 버전 번호, 설치된 하드웨어의 논리적-물리적 매핑 및 COM 개체와 같은 시스템 구성 요소에 대한 설치별 정의 집합이 포함되어 있습니다.
CRegKey
는 지정된 컴퓨터의 시스템 레지스트리에 프로그래밍 인터페이스를 제공합니다. 예를 들어 특정 레지스트리 키를 열려면 .를 호출 CRegKey::Open
합니다. 데이터 값을 검색하거나 수정하려면 각각 호출 CRegKey::QueryValue
하거나 CRegKey::SetValue
수정합니다. 키를 닫려면 .를 호출 CRegKey::Close
합니다.
키를 닫으면 해당 레지스트리 데이터가 하드 디스크에 기록(플러시)됩니다. 이 프로세스는 몇 초 정도 걸릴 수 있습니다. 애플리케이션이 명시적으로 레지스트리 데이터를 하드 디스크에 기록해야 하는 경우 Win32 함수를 호출할 RegFlushKey
수 있습니다. 그러나 RegFlushKey
많은 시스템 리소스를 사용하며 반드시 필요한 경우에만 호출해야 합니다.
Important
호출자가 레지스트리 위치를 지정할 수 있도록 허용하는 모든 메서드는 신뢰할 수 없는 데이터를 읽을 수 있습니다. 사용하는 RegQueryValueEx
메서드는 이 함수가 null로 끝나는 문자열을 명시적으로 처리하지 않는다는 점을 고려해야 합니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
요구 사항
머리글: atlbase.h
CRegKey::Attach
이 메서드를 호출하여 멤버 핸들hKey
을 CRegKey
HKEY
.로 설정하여 개체에 m_hKey
연결합니다.
void Attach(HKEY hKey) throw();
매개 변수
hKey
레지스트리 키의 핸들입니다.
설명
Attach
이 아닌 경우 m_hKey
어설션NULL
됩니다.
CRegKey::Close
이 메서드를 호출하여 멤버 핸들을 m_hKey
해제하고 으로 NULL
설정합니다.
LONG Close() throw();
Return Value
성공하면 반환하고 ERROR_SUCCESS
, 그렇지 않으면 오류 값을 반환합니다.
CRegKey::Create
지정된 키가 하위 키로 존재하지 않는 경우 이 메서드를 호출하여 지정한 키를 hKeyParent
만듭니다.
LONG Create(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPTSTR lpszClass = REG_NONE,
DWORD dwOptions = REG_OPTION_NON_VOLATILE,
REGSAM samDesired = KEY_READ | KEY_WRITE,
LPSECURITY_ATTRIBUTES lpSecAttr = NULL,
LPDWORD lpdwDisposition = NULL) throw();
매개 변수
hKeyParent
열린 키의 핸들입니다.
lpszKeyName
만들거나 열 키의 이름을 지정합니다. 이 이름은 .의 hKeyParent
하위 키여야 합니다.
lpszClass
만들거나 열 키의 클래스를 지정합니다. 기본값은 REG_NONE.
dwOptions
키에 대한 옵션입니다. 기본값은 REG_OPTION_NON_VOLATILE
입니다. 가능한 값 및 설명 목록은 Windows SDK를 참조 RegCreateKeyEx
하세요.
samDesired
키에 대한 보안 액세스입니다. 기본값은 KEY_READ | KEY_WRITE
입니다. 가능한 값 및 설명 목록은 다음을 참조하세요 RegCreateKeyEx
.
lpSecAttr
자식 프로세스에서 SECURITY_ATTRIBUTES
키 핸들을 상속할 수 있는지 여부를 나타내는 구조체에 대한 포인터입니다. 기본적으로 이 매개 변수는 NULL
핸들을 상속할 수 없다는 의미입니다.
lpdwDisposition
[out] 키가NULL
아닌 경우(키가 존재하지 않았고 만들어진 경우) 또는 REG_OPENED_EXISTING_KEY
(키가 존재하고 열려 있는 경우) 검색 REG_CREATED_NEW_KEY
합니다.
Return Value
성공하면 키를 반환 ERROR_SUCCESS
하고 엽니다. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
Create
는 멤버를 m_hKey
이 키의 핸들로 설정합니다.
CRegKey::CRegKey
생성자입니다.
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
매개 변수
key
CRegKey
개체에 대한 참조입니다.
hKey
레지스트리 키에 대한 핸들입니다.
pTM
개체에 대한 CAtlTransactionManager
포인터
설명
새 CRegKey
개체를 만듭니다. 개체는 기존 CRegKey
개체 또는 핸들에서 레지스트리 키로 만들 수 있습니다.
CRegKey::~CRegKey
소멸자입니다.
~CRegKey() throw();
설명
소멸자가 해제됩니다.m_hKey
CRegKey::DeleteSubKey
레지스트리에서 지정된 키를 제거하려면 이 메서드를 호출합니다.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
매개 변수
lpszSubKey
삭제할 키의 이름을 지정합니다. 이 이름은 .의 m_hKey
하위 키여야 합니다.
Return Value
성공하면 ERROR_SUCCESS
를 반환합니다. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
DeleteSubKey
는 하위 키가 없는 키만 삭제할 수 있습니다. 키에 하위 키가 있는 경우 대신 호출 RecurseDeleteKey
합니다.
CRegKey::DeleteValue
에서 값 필드를 m_hKey
제거하려면 이 메서드를 호출합니다.
LONG DeleteValue(LPCTSTR lpszValue) throw();
매개 변수
lpszValue
제거할 값 필드를 지정합니다.
Return Value
성공하면 ERROR_SUCCESS
를 반환합니다. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
CRegKey::Detach
개체에서 멤버 핸들을 m_hKey
분리하고 로 설정 m_hKey
하려면 이 메서드를 CRegKey
호출합니다NULL
.
HKEY Detach() throw();
Return Value
개체와 연결된 HKEY입니다 CRegKey
.
CRegKey::EnumKey
열려 있는 레지스트리 키의 하위 키를 열거하려면 이 메서드를 호출합니다.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
매개 변수
iIndex
하위 키 인덱스입니다. 이 매개 변수는 첫 번째 호출에 대해 0이어야 하고 후속 호출에 대해 증가해야 합니다.
pszName
종료 null 문자를 포함하여 하위 키의 이름을 받는 버퍼에 대한 포인터입니다. 하위 키의 이름만 전체 키 계층이 아니라 버퍼에 복사됩니다.
pnNameLength
매개 변수로 지정된 버퍼의 크기(in TCHARs
)를 지정하는 변수에 대한 pszName
포인터입니다. 이 크기에는 종료 null 문자가 포함되어야 합니다. 메서드가 반환될 때 가리키는 pnNameLength
변수에는 버퍼에 저장된 문자 수가 포함됩니다. 반환되는 개수에는 종료 null 문자가 포함되지 않습니다.
pftLastWriteTime
열거된 하위 키가 마지막으로 기록된 시간을 받는 변수에 대한 포인터입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
하위 키를 열거하려면 인덱스 0을 사용하여 호출 CRegKey::EnumKey
합니다. 인덱스 값을 증분하고 메서드가 반환 ERROR_NO_MORE_ITEMS
될 때까지 반복합니다. 자세한 내용은 Windows SDK를 참조 RegEnumKeyEx
하세요.
CRegKey::Flush
열려 있는 레지스트리 키의 모든 특성을 레지스트리에 쓰려면 이 메서드를 호출합니다.
LONG Flush() throw();
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
자세한 내용은 Windows SDK를 참조 RegEnumFlush
하세요.
CRegKey::GetKeySecurity
열린 레지스트리 키를 보호하는 보안 설명자의 복사본을 검색하려면 이 메서드를 호출합니다.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
매개 변수
si
SECURITY_INFORMATION
요청된 보안 정보를 나타내는 값입니다.
psd
요청된 보안 설명자의 복사본을 수신하는 버퍼에 대한 포인터입니다.
pnBytes
로 가리키는 psd
버퍼의 크기(바이트)입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 0이 아닌 오류 코드가 정의됩니다 WINERROR.H
.
설명
자세한 내용은 RegGetKeySecurity
를 참조하세요.
CRegKey::m_hKey
개체와 연결된 레지스트리 키의 핸들을 CRegKey
포함합니다.
HKEY m_hKey;
CRegKey::m_pTM
CAtlTransactionManager
개체에 대한 포인터입니다.
CAtlTransactionManager* m_pTM;
설명
CRegKey::NotifyChangeKeyValue
이 메서드는 열려 있는 레지스트리 키의 특성 또는 내용에 대한 변경 내용을 호출자에게 알깁니다.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
매개 변수
bWatchSubtree
지정된 키와 모든 하위 키의 변경 내용을 보고할지 또는 지정된 키에서만 보고할지를 나타내는 플래그를 지정합니다. 이 매개 변수인 경우 메서드는 TRUE
키와 해당 하위 키의 변경 내용을 보고합니다. 매개 변수인 FALSE
경우 메서드는 키에서만 변경 내용을 보고합니다.
dwNotifyFilter
보고해야 하는 변경 내용을 제어하는 플래그 집합을 지정합니다. 이 매개 변수는 다음 값의 조합일 수 있습니다.
값 | 의미 |
---|---|
REG_NOTIFY_CHANGE_NAME |
하위 키가 추가되거나 삭제되면 호출자에게 알립니다. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
보안 설명자 정보와 같은 키 특성의 변경 내용을 호출자에게 알립니다. |
REG_NOTIFY_CHANGE_LAST_SET |
호출자에게 키 값에 대한 변경 내용을 알립니다. 여기에는 값 추가 또는 삭제 또는 기존 값 변경이 포함될 수 있습니다. |
REG_NOTIFY_CHANGE_SECURITY |
호출자에게 키의 보안 설명자에 대한 변경 내용을 알립니다. |
hEvent
이벤트에 대한 핸들. 매개 변수인 bAsync
경우 메서드가 TRUE
즉시 반환되고 이 이벤트를 신호로 표시하여 변경 내용이 보고됩니다. 이 FALSE
hEvent
면 bAsync
무시됩니다.
bAsync
메서드가 변경 내용을 보고하는 방법을 나타내는 플래그를 지정합니다. 이 매개 변수인 경우 메서드는 TRUE
즉시 반환되고 지정된 이벤트에 신호를 전송하여 변경 내용을 보고합니다. 이 매개 변수인 경우 FALSE
변경이 발생할 때까지 메서드가 반환되지 않습니다. 유효한 이벤트를 지정하지 않으면 hEvent
매개 변수가 bAsync
될 TRUE
수 없습니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
참고 항목
이 메서드는 지정된 키가 삭제된 경우 호출자에게 알리지 않습니다.
자세한 내용 및 샘플 프로그램은 다음을 참조하세요 RegNotifyChangeKeyValue
.
CRegKey::Open
이 메서드를 호출하여 지정된 키를 열고 이 키의 핸들로 설정합니다 m_hKey
.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
매개 변수
hKeyParent
열린 키의 핸들입니다.
lpszKeyName
만들거나 열 키의 이름을 지정합니다. 이 이름은 .의 hKeyParent
하위 키여야 합니다.
samDesired
키에 대한 보안 액세스입니다. 기본값은 KEY_ALL_ACCESS
입니다. 가능한 값 및 설명 목록은 Windows SDK를 참조 RegCreateKeyEx
하세요.
Return Value
성공하면 반환됩니다. ERROR_SUCCESS
그렇지 않으면 0이 아닌 오류 값이 정의됩니다 WINERROR.H
.
설명
매개 변수가 lpszKeyName
빈 문자열 Open
이거나 NULL
가리키는 경우 식별된 hKeyParent
키의 새 핸들을 열지만 이전에 연 핸들은 닫지 않습니다.
달리 CRegKey::Create
지정된 Open
키가 없는 경우 해당 키를 만들지 않습니다.
CRegKey::operator HKEY
개체를 CRegKey
.로 변환합니다 HKEY
.
operator HKEY() const throw();
CRegKey::operator =
대입 연산자입니다.
CRegKey& operator= (CRegKey& key) throw();
매개 변수
key
복사할 키입니다.
Return Value
새 키에 대한 참조를 반환합니다.
설명
이 연산자는 key
현재 개체에서 분리하고 대신 개체에 CRegKey
할당합니다.
CRegKey::QueryBinaryValue
이 메서드를 호출하여 지정된 값 이름의 이진 데이터를 검색합니다.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
pValue
값의 데이터를 받는 버퍼에 대한 포인터입니다.
pnBytes
매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 변수에 대한 pValue
포인터입니다. 메서드가 반환될 때 이 변수에는 버퍼에 복사된 데이터의 크기가 포함됩니다.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 형식 REG_BINARY
ERROR_INVALID_DATA
이 아니면 반환됩니다.
설명
이 메서드는 올바른 형식의 RegQueryValueEx
데이터를 사용하고 반환되었는지 확인합니다. 자세한 내용은 RegQueryValueEx
를 참조하세요.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::QueryDWORDValue
지정된 값 이름의 데이터를 검색 DWORD
하려면 이 메서드를 호출합니다.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
dwValue
를 수신하는 버퍼에 대한 포인터입니다 DWORD
.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 형식 REG_DWORD
ERROR_INVALID_DATA
이 아니면 반환됩니다.
설명
이 메서드는 올바른 형식의 RegQueryValueEx
데이터를 사용하고 반환되었는지 확인합니다. 자세한 내용은 RegQueryValueEx
를 참조하세요.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::QueryGUIDValue
지정된 값 이름에 대한 GUID 데이터를 검색하려면 이 메서드를 호출합니다.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
guidValue
GUID를 받는 변수에 대한 포인터입니다.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 유효한 GUID ERROR_INVALID_DATA
가 아니면 반환됩니다.
설명
이 메서드는 을 사용하여 문자열을 사용하고 CRegKey::QueryStringValue
CLSIDFromString
GUID로 변환합니다.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다.
CRegKey::QueryMultiStringValue
지정된 값 이름에 대한 다중 문자열 데이터를 검색하려면 이 메서드를 호출합니다.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
pszValue
다중 문자열 데이터를 수신하는 버퍼에 대한 포인터입니다. 다중 문자열은 두 개의 null 문자로 종료되는 -terminated 문자열의 NULL
배열입니다.
pnChars
로 가리키는 버퍼의 크기(in TCHARs
)입니다 pszValue
. 메서드가 반환 pnChars
될 때 종료 null 문자를 포함하여 검색된 다중 문자열의 크기(in TCHARs
)를 포함합니다.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 형식 REG_MULTI_SZ
ERROR_INVALID_DATA
이 아니면 반환됩니다.
설명
이 메서드는 올바른 형식의 RegQueryValueEx
데이터를 사용하고 반환되었는지 확인합니다. 자세한 내용은 RegQueryValueEx
를 참조하세요.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::QueryQWORDValue
지정된 값 이름의 데이터를 검색 QWORD
하려면 이 메서드를 호출합니다.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
qwValue
를 수신하는 버퍼에 대한 포인터입니다 QWORD
.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 형식 REG_QWORD
ERROR_INVALID_DATA
이 아니면 반환됩니다.
설명
이 메서드는 올바른 형식의 RegQueryValueEx
데이터를 사용하고 반환되었는지 확인합니다. 자세한 내용은 RegQueryValueEx
를 참조하세요.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::QueryStringValue
지정된 값 이름의 문자열 데이터를 검색하려면 이 메서드를 호출합니다.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다.
pszValue
문자열 데이터를 수신하는 버퍼에 대한 포인터입니다.
pnChars
가 가리키는 pszValue
버퍼의 크기(TCHAR)입니다. 메서드가 반환 pnChars
될 때 종료 null 문자를 포함하여 검색된 문자열의 크기(in TCHARs
)를 포함합니다.
Return Value
메서드가 성공 ERROR_SUCCESS
하면 반환됩니다. 메서드가 값을 읽지 못하면 에 정의된 0이 아닌 오류 코드가 반환됩니다 WINERROR.H
. 참조된 데이터가 형식 REG_SZ
ERROR_INVALID_DATA
이 아니면 반환됩니다. 메서드가 반환 ERROR_MORE_DATA
pnChars
되는 경우 필요한 버퍼 크기(바이트)가 아니라 0과 같습니다.
설명
이 메서드는 올바른 형식의 RegQueryValueEx
데이터를 사용하고 반환되었는지 확인합니다. 자세한 내용은 RegQueryValueEx
를 참조하세요.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::QueryValue
지정된 값 필드의 데이터를 검색하려면 이 메서드를 호출합니다 m_hKey
. 이 메서드의 이전 버전은 더 이상 지원되지 않으며 로 ATL_DEPRECATED
표시됩니다.
LONG QueryValue(
LPCTSTR pszValueName,
DWORD* pdwType,
void* pData,
ULONG* pnBytes) throw();
ATL_DEPRECATED LONG QueryValue(
DWORD& dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG QueryValue(
LPTSTR szValue,
LPCTSTR lpszValueName,
DWORD* pdwCount);
매개 변수
pszValueName
쿼리할 NULL
값의 이름을 포함하는 -terminated 문자열에 대한 포인터입니다. 문자열이거나 NULL
빈 문자열""
인 경우 pszValueName
메서드는 키의 명명되지 않은 값 또는 기본값(있는 경우)에 대한 형식 및 데이터를 검색합니다.
pdwType
지정된 값에 저장된 데이터의 형식을 나타내는 코드를 받는 변수에 대한 포인터입니다. 매개 변수는 pdwType
형식 코드가 필요하지 않은 경우일 NULL
수 있습니다.
pData
값의 데이터를 받는 버퍼에 대한 포인터입니다. 이 매개 변수는 데이터가 필요하지 않은 경우일 NULL
수 있습니다.
pnBytes
매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 변수에 대한 pData
포인터입니다. 메서드가 반환될 때 이 변수에는 복사된 pData
데이터의 크기가 포함됩니다.
dwValue
값 필드의 숫자 데이터입니다.
lpszValueName
쿼리할 값 필드를 지정합니다.
szValue
값 필드의 문자열 데이터입니다.
pdwCount
문자열 데이터의 크기입니다. 해당 값은 처음에 버퍼의 크기로 설정됩니다 szValue
.
Return Value
성공하면 반환하고, 그렇지 않으면 에 정의된 0이 아닌 오류 코드를 반환 ERROR_SUCCESS
합니다 WINERROR.H
.
설명
두 원래 QueryValue
버전은 더 이상 지원되지 않으며 로 ATL_DEPRECATED
표시됩니다. 이러한 양식을 사용하는 경우 컴파일러에서 경고를 실행합니다.
나머지 메서드는 .를 호출합니다 RegQueryValueEx
.
Important
이 메서드를 사용하면 호출자가 신뢰할 수 없는 데이터를 읽을 수 있는 레지스트리 위치를 지정할 수 있습니다. 또한 이 메서드에서 RegQueryValueEx
사용하는 함수는 null로 끝나는 문자열을 명시적으로 처리하지 않습니다. 두 조건 모두 호출 코드에서 확인해야 합니다.
CRegKey::RecurseDeleteKey
레지스트리에서 지정된 키를 제거하고 하위 키를 명시적으로 제거하려면 이 메서드를 호출합니다.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
매개 변수
lpszKey
삭제할 키의 이름을 지정합니다. 이 이름은 .의 m_hKey
하위 키여야 합니다.
Return Value
성공하면 반환됩니다. ERROR_SUCCESS
그렇지 않으면 0이 아닌 오류 값이 정의됩니다 WINERROR.H
.
설명
키에 하위 키가 있는 경우 이 메서드를 호출하여 키를 삭제해야 합니다.
CRegKey::SetBinaryValue
레지스트리 키의 이진 값을 설정하려면 이 메서드를 호출합니다.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
pValue
지정된 값 이름으로 저장할 데이터를 포함하는 버퍼에 대한 포인터입니다.
nBytes
매개 변수가 가리키는 정보의 크기(바이트)를 pValue
지정합니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 레지스트리에 값을 쓰는 데 사용합니다 RegSetValueEx
.
CRegKey::SetDWORDValue
레지스트리 키의 DWORD
값을 설정하려면 이 메서드를 호출합니다.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
dwValue
DWORD
지정된 값 이름으로 저장할 데이터입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 레지스트리에 값을 쓰는 데 사용합니다 RegSetValueEx
.
CRegKey::SetGUIDValue
레지스트리 키의 GUID 값을 설정하려면 이 메서드를 호출합니다.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
guidValue
지정된 값 이름으로 저장할 GUID에 대한 참조입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 GUID를 CRegKey::SetStringValue
사용하여 StringFromGUID2
문자열로 변환합니다.
CRegKey::SetKeyValue
지정된 키의 지정된 값 필드에 데이터를 저장하려면 이 메서드를 호출합니다.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
매개 변수
lpszKeyName
만들거나 열 키의 이름을 지정합니다. 이 이름은 .의 m_hKey
하위 키여야 합니다.
lpszValue
저장할 데이터를 지정합니다. 이 매개 변수는 비NULL
여야 합니다.
lpszValueName
설정할 값 필드를 지정합니다. 이 이름의 값 필드가 키에 아직 없으면 추가됩니다.
Return Value
성공하면 반환하고, 그렇지 않으면 에 정의된 0이 아닌 오류 코드를 반환 ERROR_SUCCESS
합니다 WINERROR.H
.
설명
이 메서드를 호출하여 키를 만들거나 열고 lpszKeyName
값 필드에 데이터를 lpszValueName
저장 lpszValue
합니다.
CRegKey::SetKeySecurity
레지스트리 키의 보안을 설정하려면 이 메서드를 호출합니다.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
매개 변수
si
설정할 보안 설명자의 구성 요소를 지정합니다. 값은 다음 값의 조합일 수 있습니다.
값 | 의미 |
---|---|
DACL_SECURITY_INFORMATION |
키의 DACL(임의 액세스 제어 목록)을 설정합니다. 키에 액세스 권한이 WRITE_DAC 있어야 하거나 호출 프로세스가 개체의 소유자여야 합니다. |
GROUP_SECURITY_INFORMATION |
키의 기본 그룹 SID(보안 식별자)를 설정합니다. 키에 액세스 권한이 WRITE_OWNER 있어야 하거나 호출 프로세스가 개체의 소유자여야 합니다. |
OWNER_SECURITY_INFORMATION |
키의 소유자 SID를 설정합니다. 키에 액세스 권한이 있어야 하거나 WRITE_OWNER 호출 프로세스가 개체의 소유자이거나 사용 권한이 있어야 SE_TAKE_OWNERSHIP_NAME 합니다. |
SACL_SECURITY_INFORMATION |
키의 SACL(시스템 액세스 제어 목록)을 설정합니다. 키에는 액세스 권한이 ACCESS_SYSTEM_SECURITY 있어야 합니다. 이 액세스를 가져오는 적절한 방법은 호출자의 현재 액세스 토큰에서 권한을 사용하도록 설정하고 SE_SECURITY_NAME 액세스에 대한 핸들을 ACCESS_SYSTEM_SECURITY 연 다음 권한을 사용하지 않도록 설정하는 것입니다. |
psd
지정된 키에 SECURITY_DESCRIPTOR
대해 설정할 보안 특성을 지정하는 구조체에 대한 포인터입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
키의 보안 특성을 설정합니다. 자세한 내용은 RegSetKeySecurity
를 참조하세요.
CRegKey::SetMultiStringValue
레지스트리 키의 다중 문자열 값을 설정하려면 이 메서드를 호출합니다.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
pszValue
지정된 값 이름으로 저장할 다중 문자열 데이터에 대한 포인터입니다. 다중 문자열은 두 개의 null 문자로 종료되는 -terminated 문자열의 NULL
배열입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 레지스트리에 값을 쓰는 데 사용합니다 RegSetValueEx
.
CRegKey::SetQWORDValue
레지스트리 키의 QWORD
값을 설정하려면 이 메서드를 호출합니다.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
qwValue
QWORD
지정된 값 이름으로 저장할 데이터입니다.
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 레지스트리에 값을 쓰는 데 사용합니다 RegSetValueEx
.
CRegKey::SetStringValue
레지스트리 키의 문자열 값을 설정하려면 이 메서드를 호출합니다.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 없으면 메서드가 키에 추가합니다.
pszValue
지정된 값 이름으로 저장할 문자열 데이터에 대한 포인터입니다.
dwType
레지스트리 REG_SZ
에 쓸 문자열의 형식입니다(기본값) 또는 REG_EXPAND_SZ
(다중 문자열의 경우).
Return Value
메서드가 성공하면 반환 값은 .입니다 ERROR_SUCCESS
. 메서드가 실패하면 반환 값은 에 정의된 0이 아닌 오류 코드입니다 WINERROR.H
.
설명
이 메서드는 레지스트리에 값을 쓰는 데 사용합니다 RegSetValueEx
.
CRegKey::SetValue
지정된 값 필드에 데이터를 저장하려면 이 메서드를 호출합니다 m_hKey
. 이 메서드의 이전 버전은 더 이상 지원되지 않으며 로 ATL_DEPRECATED
표시됩니다.
LONG SetValue(
LPCTSTR pszValueName,
DWORD dwType,
const void* pValue,
ULONG nBytes) throw();
static LONG WINAPI SetValue(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL);
ATL_DEPRECATED LONG SetValue(
DWORD dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG SetValue(
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL,
bool bMulti = false,
int nValueLen = -1);
매개 변수
pszValueName
설정할 값의 이름을 포함하는 문자열에 대한 포인터입니다. 이 이름의 값이 아직 키에 없는 경우 메서드는 키에 값을 추가합니다. 문자열이거나 NULL
빈 문자열""
인 경우 pszValueName
메서드는 키의 명명되지 않은 값이나 기본값에 대한 형식 및 데이터를 설정합니다.
dwType
매개 변수가 가리키는 pValue
데이터 형식을 나타내는 코드를 지정합니다.
pValue
지정된 값 이름으로 저장할 데이터를 포함하는 버퍼에 대한 포인터입니다.
nBytes
매개 변수가 가리키는 정보의 크기(바이트)를 pValue
지정합니다. 데이터가 형식 REG_SZ
REG_EXPAND_SZ
REG_MULTI_SZ
nBytes
이거나 종료 null 문자의 크기를 포함해야 하는 경우
hKeyParent
열린 키의 핸들입니다.
lpszKeyName
만들거나 열 키의 이름을 지정합니다. 이 이름은 .의 hKeyParent
하위 키여야 합니다.
lpszValue
저장할 데이터를 지정합니다. 이 매개 변수는 비NULL
여야 합니다.
lpszValueName
설정할 값 필드를 지정합니다. 이 이름의 값 필드가 키에 아직 없으면 추가됩니다.
dwValue
저장할 데이터를 지정합니다.
bMulti
false이면 문자열이 형식 REG_SZ
임을 나타냅니다. true이면 문자열이 형식 REG_MULTI_SZ
의 다중 문자열임을 나타냅니다.
nValueLen
true nValueLen
이면 bMulti
문자열의 길이(lpszValue
문자)입니다. false이면 bMulti
값 -1은 메서드가 길이를 자동으로 계산한다는 것을 나타냅니다.
Return Value
성공하면 반환하고, 그렇지 않으면 에 정의된 0이 아닌 오류 코드를 반환 ERROR_SUCCESS
합니다 WINERROR.H
.
설명
두 원래 SetValue
버전이 더 이상 사용되지 않는 것으로 ATL_DEPRECATED
표시되어 있습니다. 이러한 양식을 사용하는 경우 컴파일러에서 경고를 실행합니다.
세 번째 메서드는 .를 호출합니다 RegSetValueEx
.