次の方法で共有


CRegKey クラス

このクラスは、システム レジストリ内のエントリを操作するためのメソッドを提供します。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class CRegKey

メンバー

パブリック コンストラクター

名前 説明
CRegKey::CRegKey コンストラクター。
CRegKey::~CRegKey デストラクター。

パブリック メソッド

名前 説明
CRegKey::Attach m_hKey メンバー ハンドルを hKey に設定して、CRegKey オブジェクトに HKEY をアタッチするには、このメソッドを呼び出します。
CRegKey::Close m_hKey メンバー ハンドルを解放し、NULL に設定するには、このメソッドを呼び出します。
CRegKey::Create 指定したキーが hKeyParent のサブキーとして存在しない場合は、このメソッドを呼び出して作成します。
CRegKey::DeleteSubKey レジストリから指定したキーを削除するには、このメソッドを呼び出します。
CRegKey::DeleteValue m_hKeyから値フィールドを削除するには、このメソッドを呼び出します。
CRegKey::Detach CRegKey オブジェクトから m_hKey メンバー ハンドルをデタッチし、m_hKeyNULL に設定するには、このメソッドを呼び出します。
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 とマークされます。

パブリック演算子

名前 説明
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 を呼び出します。

キーを閉じると、そのレジストリ データがハード ディスクに書き込まれます (フラッシュされます)。 このプロセスには数分かかる場合があります。 アプリケーションでレジストリ データをハード ディスクに明示的に書き込む必要がある場合は、 RegFlushKey Win32 関数を呼び出すことができます。 ただし、RegFlushKey は多くのシステム リソースを使用するため、本当に必要な場合にのみ呼び出す必要があります。

重要

呼び出し元がレジストリの場所を指定できるようにするメソッドは、信頼できないデータを読み取る可能性があります。 RegQueryValueEx を使用するメソッドでは、この関数が null で終わる文字列を明示的に処理しないことを考慮する必要があります。 呼び出し元のコードで両方の条件を確認する必要があります。

要件

ヘッダー: atlbase.h

CRegKey::Attach

m_hKey メンバー ハンドルを hKey に設定して、CRegKey オブジェクトに HKEY をアタッチするには、このメソッドを呼び出します。

void Attach(HKEY hKey) throw();

パラメーター

hKey
レジストリ キーのハンドル。

解説

m_hKeyNULL 以外の場合は、Attach によってアサートされます。

CRegKey::Close

m_hKey メンバー ハンドルを解放し、NULL に設定するには、このメソッドを呼び出します。

LONG Close() throw();

戻り値

成功した場合は、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
[出力] NULL 以外の場合、REG_CREATED_NEW_KEY (キーが存在せず作成された場合) または REG_OPENED_EXISTING_KEY (キーが存在し開かれた場合) のいずれかを取得します。

戻り値

成功した場合は ERROR_SUCCESS を返し、キーを開きます。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

Createm_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のサブキーである必要があります。

戻り値

正常に終了した場合は、ERROR_SUCCESS を返します。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

DeleteSubKey は、サブキーを持たないキーのみを削除できます。 キーにサブキーがある場合は、代わりに RecurseDeleteKey を呼び出します。

CRegKey::DeleteValue

m_hKeyから値フィールドを削除するには、このメソッドを呼び出します。

LONG DeleteValue(LPCTSTR lpszValue) throw();

パラメーター

lpszValue
削除する値フィールドを指定します。

戻り値

正常に終了した場合は、ERROR_SUCCESS を返します。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

CRegKey::Detach

CRegKey オブジェクトから m_hKey メンバー ハンドルをデタッチし、m_hKeyNULL に設定するには、このメソッドを呼び出します。

HKEY Detach() throw();

戻り値

CRegKey オブジェクトに関連付けられた HKEY。

CRegKey::EnumKey

開いているレジストリ キーのサブキーを列挙するには、このメソッドを呼び出します。

LONG EnumKey(
    DWORD iIndex,
    LPTSTR pszName,
    LPDWORD pnNameLength,
    FILETIME* pftLastWriteTime = NULL) throw();

パラメーター

iIndex
サブキーのインデックス。 最初の呼び出しではこのパラメーターを 0 にし、その後の呼び出しに対してインクリメントする必要があります。

pszName
サブキーの名前を受け取るバッファーへのポインター (終端の null 文字を含む)。 キーの完全階層ではなく、サブキーの名前のみがバッファーにコピーされます。

pnNameLength
pszName パラメーターによって指定されたバッファーのサイズ (TCHARs 単位) を指定する変数へのポインター。 このサイズには、終端の null 文字を含める必要があります。 メソッドから制御が戻るときに、 pnNameLength が指す変数には、バッファーに格納されている文字数が格納されます。 返されるカウントには、終端の null 文字は含まれません。

pftLastWriteTime
列挙されたサブキーが最後に書き込まれた時刻を受け取る変数へのポインター。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

サブキーを列挙するには、CRegKey::EnumKey を 0 のインデックスで呼び出します。 インデックス値をインクリメントし、メソッドが ERROR_NO_MORE_ITEMS を返すまで繰り返します。 詳細については、Windows SDK の RegEnumKeyEx に関する記事を参照してください。

CRegKey::Flush

開いているレジストリ キーのすべての属性をレジストリに書き込むには、このメソッドを呼び出します。

LONG Flush() throw();

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

詳細については、Windows SDK の RegEnumFlush に関する記事を参照してください。

CRegKey::GetKeySecurity

開いているレジストリ キーを保護するセキュリティ記述子のコピーを取得するには、このメソッドを呼び出します。

LONG GetKeySecurity(
    SECURITY_INFORMATION si,
    PSECURITY_DESCRIPTOR psd,
    LPDWORD pnBytes) throw();

パラメーター

si
要求されたセキュリティ情報を示す SECURITY_INFORMATION 値。

psd
要求されたセキュリティ記述子のコピーを受け取るバッファーへのポインター。

pnBytes
psdが指すバッファーのサイズ (バイト単位)。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

詳細については、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 の場合、メソッドがすぐに返され、このイベントを警告することによって変更が報告されます。 bAsyncFALSE の場合、hEvent は無視されます。

bAsync
メソッドが変更を報告する方法を示すフラグを指定します。 このパラメーターが TRUE の場合、メソッドが直ちに返され、指定されたイベントを警告することによって変更を報告します。 このパラメーターが FALSE の場合、メソッドは変更が発生するまで制御が戻りません。 hEventで有効なイベントが指定されていない場合、bAsync パラメーターをTRUEすることはできません。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

Note

指定したキーが削除された場合、このメソッドは呼び出し元に通知しません。

詳細とサンプル プログラムについては、 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 を参照してください。

戻り値

成功した場合は ERROR_SUCCESS を返します。それ以外の場合は、WINERROR.H で定義されている 0 以外のエラー値を返します。

解説

lpszKeyName パラメーターが NULL の場合、または空の文字列を指している場合は、OpenhKeyParent によって識別されるキーの新しいハンドルを開きますが、以前に開いたハンドルは閉じません。

CRegKey::Create とは異なり、Open では、指定したキーが存在しない場合には作成されません。

CRegKey::operator HKEY

CRegKey オブジェクトを HKEY に変換します。

operator HKEY() const throw();

CRegKey::operator =

代入演算子。

CRegKey& operator= (CRegKey& key) throw();

パラメーター

key
コピーするキー。

戻り値

新しいキーへの参照を返します。

解説

この演算子は、現在のオブジェクトから key をデタッチし、代わりに CRegKey オブジェクトに割り当てます。

CRegKey::QueryBinaryValue

指定した値名のバイナリ データを取得するには、このメソッドを呼び出します。

LONG QueryBinaryValue(
    LPCTSTR pszValueName,
    void* pValue,
    ULONG* pnBytes) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

pValue
値のデータを受け取るバッファーへのポインター。

pnBytes
pValue パラメーターが指すバッファーのサイズをバイト単位で指定する変数へのポインター。 メソッドが返された場合、この変数にはバッファーにコピーされるデータのサイズが含まれます。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが型 REG_BINARY でない場合、ERROR_INVALID_DATA が返されます。

解説

このメソッドは RegQueryValueEx を使用し、正しい型のデータが返されていることを確認します。 詳細については、 RegQueryValueEx をご覧ください。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される RegQueryValueEx 関数は、null で終わる文字列を明示的に処理しません。 呼び出し元のコードで両方の条件を確認する必要があります。

CRegKey::QueryDWORDValue

指定した値名の DWORD データを取得するには、このメソッドを呼び出します。

LONG QueryDWORDValue(
    LPCTSTR pszValueName,
    DWORD& dwValue) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

dwValue
DWORD を受け取るバッファーへのポインター。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが型 REG_DWORD でない場合、ERROR_INVALID_DATA が返されます。

解説

このメソッドは RegQueryValueEx を使用し、正しい型のデータが返されていることを確認します。 詳細については、 RegQueryValueEx をご覧ください。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される RegQueryValueEx 関数は、null で終わる文字列を明示的に処理しません。 呼び出し元のコードで両方の条件を確認する必要があります。

CRegKey::QueryGUIDValue

指定した値名の GUID データを取得するには、このメソッドを呼び出します。

LONG QueryGUIDValue(
    LPCTSTR pszValueName,
    GUID& guidValue) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

guidValue
GUID を受け取る変数へのポインター。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが有効な GUID でない場合、ERROR_INVALID_DATA が返されます。

解説

このメソッドは CRegKey::QueryStringValue を使用し、CLSIDFromString を使用して文字列を GUID に変換します。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。

CRegKey::QueryMultiStringValue

指定した値名の複数文字列データを取得するには、このメソッドを呼び出します。

LONG QueryMultiStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

pszValue
複数文字列データを受け取るバッファーへのポインター。 複数文字列とは、2 つの null 文字で終わる NULL 終端文字列の配列です。

pnChars
pszValue で指し示されるバッファーのサイズ (TCHARs 単位)。 メソッドが返されると、pnChars には、取得された複数文字列の TCHARs 単位のサイズ (終端の null 文字を含む) が含まれます。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが型 REG_MULTI_SZ でない場合、ERROR_INVALID_DATA が返されます。

解説

このメソッドは RegQueryValueEx を使用し、正しい型のデータが返されていることを確認します。 詳細については、 RegQueryValueEx をご覧ください。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される RegQueryValueEx 関数は、null で終わる文字列を明示的に処理しません。 呼び出し元のコードで両方の条件を確認する必要があります。

CRegKey::QueryQWORDValue

指定した値名の QWORD データを取得するには、このメソッドを呼び出します。

LONG QueryQWORDValue(
    LPCTSTR pszValueName,
    ULONGLONG& qwValue) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

qwValue
QWORD を受け取るバッファーへのポインター。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが型 REG_QWORD でない場合、ERROR_INVALID_DATA が返されます。

解説

このメソッドは RegQueryValueEx を使用し、正しい型のデータが返されていることを確認します。 詳細については、 RegQueryValueEx をご覧ください。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される RegQueryValueEx 関数は、null で終わる文字列を明示的に処理しません。 呼び出し元のコードで両方の条件を確認する必要があります。

CRegKey::QueryStringValue

指定した値名の文字列データを取得するには、このメソッドを呼び出します。

LONG QueryStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

パラメーター

pszValueName
クエリする値の名前を含む NULL 終端文字列へのポインター。

pszValue
文字列データを受け取るバッファーへのポインター。

pnChars
pszValueが指すバッファーのサイズ (TCHAR 単位)。 メソッドが返されると、pnChars には、取得された文字列の TCHARs 単位のサイズ (終端の null 文字を含む) が含まれます。

戻り値

メソッドが成功した場合は ERROR_SUCCESS が返されます。 メソッドで値の読み取りに失敗した場合は、WINERROR.H で定義されている 0 以外のエラー コードが返されます。 参照されるデータが型 REG_SZ でない場合、ERROR_INVALID_DATA が返されます。 メソッドが ERROR_MORE_DATA を返す場合、pnChars は、必要なバッファー サイズ (バイト単位) ではなく、0 に等しくなります。

解説

このメソッドは RegQueryValueEx を使用し、正しい型のデータが返されていることを確認します。 詳細については、 RegQueryValueEx をご覧ください。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される 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 終端文字列へのポインター。 pszValueNameNULL または空の文字列 "" の場合、メソッドはキーの名前のない値または既定値 (該当する場合) の型とデータを取得します。

pdwType
指定した値に格納されているデータの型を示すコードを受け取る変数へのポインター。 型のコードが不要な場合は、pdwType パラメーターを NULL にできます。

pData
値のデータを受け取るバッファーへのポインター。 このパラメーターは、データが必須でない場合、NULL にできます。

pnBytes
pData パラメーターが指すバッファーのサイズをバイト単位で指定する変数へのポインター。 メソッドが返された場合、この変数には pData にコピーされるデータのサイズが含まれます。

dwValue
値フィールドの数値データ。

lpszValueName
クエリする値フィールドを指定します。

szValue
値フィールドの文字列データ。

pdwCount
文字列データのサイズ。 その値は、最初は szValue バッファーのサイズに設定されます。

戻り値

成功した場合は ERROR_SUCCESS を返します。それ以外の場合は、WINERROR.H で定義されている 0 以外のエラー コードを返します。

解説

QueryValue の 2 つの元のバージョンはサポートされなくなり、ATL_DEPRECATED とマークされます。 これらの形式が使用されている場合、コンパイラにより警告が発行されます。

残りのメソッドは RegQueryValueEx を呼び出します。

重要

このメソッドを使用すると、呼び出し元はレジストリの場所を指定でき、信頼できないデータを読み取る可能性があります。 また、このメソッドで使用される RegQueryValueEx 関数は、null で終わる文字列を明示的に処理しません。 呼び出し元のコードで両方の条件を確認する必要があります。

CRegKey::RecurseDeleteKey

指定したキーをレジストリから削除し、サブキーを明示的に削除するには、このメソッドを呼び出します。

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

パラメーター

lpszKey
削除するキーの名前を指定します。 この名前は、 m_hKeyのサブキーである必要があります。

戻り値

成功した場合は ERROR_SUCCESS を返します。それ以外の場合は、WINERROR.H で定義されている 0 以外のエラー値を返します。

解説

キーにサブキーがある場合は、このメソッドを呼び出してキーを削除する必要があります。

CRegKey::SetBinaryValue

レジストリ キーのバイナリ値を設定するには、このメソッドを呼び出します。

LONG SetBinaryValue(
    LPCTSTR pszValueName,
    const void* pValue,
    ULONG nBytes) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

pValue
指定した値名で格納されるデータを含むバッファーへのポインター。

nBytes
pValue パラメーターが指す情報のサイズをバイト単位で指定します。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドでは、 RegSetValueEx を使用してレジストリに値を書き込みます。

CRegKey::SetDWORDValue

レジストリ キーの DWORD 値を設定するには、このメソッドを呼び出します。

LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

dwValue
指定した値名で格納される DWORD データ。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドでは、 RegSetValueEx を使用してレジストリに値を書き込みます。

CRegKey::SetGUIDValue

レジストリ キーの GUID 値を設定するには、このメソッドを呼び出します。

LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

guidValue
指定した値名で格納される GUID への参照。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドは CRegKey::SetStringValue を使用し、StringFromGUID2 を使用して GUID を文字列に変換します。

CRegKey::SetKeyValue

指定したキーの指定した値フィールドにデータを格納するには、このメソッドを呼び出します。

LONG SetKeyValue(
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL) throw();

パラメーター

lpszKeyName
作成または開くキーの名前を指定します。 この名前は、 m_hKeyのサブキーである必要があります。

lpszValue
格納するデータを指定します。 このパラメーターは、NULL 以外にする必要があります。

lpszValueName
設定する値フィールドを指定します。 この名前の値フィールドがキーにまだ存在しない場合は、追加されます。

戻り値

成功した場合は ERROR_SUCCESS を返します。それ以外の場合は、WINERROR.H で定義されている 0 以外のエラー コードを返します。

解説

このメソッドを呼び出して、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 privilege を有効にし、 ACCESS_SYSTEM_SECURITY アクセスのハンドルを開き、特権を無効にすることです。

psd
指定したキーに設定するセキュリティ属性を指定する SECURITY_DESCRIPTOR 構造体へのポインター。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

キーのセキュリティ属性を設定します。 詳細については、 RegSetKeySecurity をご覧ください。

CRegKey::SetMultiStringValue

レジストリ キーの複数文字列値を設定するには、このメソッドを呼び出します。

LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

pszValue
指定された値名で格納される複数文字列データへのポインター。 複数文字列とは、2 つの null 文字で終わる NULL 終端文字列の配列です。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドでは、 RegSetValueEx を使用してレジストリに値を書き込みます。

CRegKey::SetQWORDValue

レジストリ キーの QWORD 値を設定するには、このメソッドを呼び出します。

LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

qwValue
指定した値名で格納される QWORD データ。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドでは、 RegSetValueEx を使用してレジストリに値を書き込みます。

CRegKey::SetStringValue

レジストリ キーの文字列値を設定します。

LONG SetStringValue(
    LPCTSTR pszValueName,
    LPCTSTR pszValue,
    DWORD dwType = REG_SZ) throw();

パラメーター

pszValueName
設定する値の名前を格納する文字列へのポインター。 この名前の値がまだ存在しない場合は、メソッドによりキーに追加されます。

pszValue
指定された値名で格納される文字列データへのポインター。

dwType
レジストリに書き込む文字列の型。REG_SZ (既定値) または REG_EXPAND_SZ (複数文字列の場合)。

戻り値

成功した場合は、戻り値は ERROR_SUCCESS です。 メソッドが失敗した場合は、戻り値は WINERROR.H で定義されている 0 以外のエラー コードです。

解説

このメソッドでは、 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
設定する値の名前を格納する文字列へのポインター。 この名前の値がキーにまだ存在しない場合は、メソッドによりキーに追加されます。 pszValueNameNULL または空の文字列 "" の場合、メソッドはキーの名前のない値または既定値の型とデータを設定します。

dwType
pValue パラメーターが指すデータの種類を示すコードを指定します。

pValue
指定した値名で格納されるデータを含むバッファーへのポインター。

nBytes
pValue パラメーターが指す情報のサイズをバイト単位で指定します。 データの型が REG_SZREG_EXPAND_SZ、または REG_MULTI_SZ の場合、nBytes には終端の null 文字のサイズを含める必要があります。

hKeyParent
開いているキーのハンドル。

lpszKeyName
作成または開くキーの名前を指定します。 この名前は、 hKeyParentのサブキーである必要があります。

lpszValue
格納するデータを指定します。 このパラメーターは、NULL 以外にする必要があります。

lpszValueName
設定する値フィールドを指定します。 この名前の値フィールドがキーにまだ存在しない場合は、追加されます。

dwValue
格納するデータを指定します。

bMulti
false の場合、文字列の型が REG_SZ であることを示します。 true の場合は、文字列の型が REG_MULTI_SZ の複数文字列であることを示します。

nValueLen
bMultiが true の場合、nValueLenlpszValue文字列の長さ (文字数) です。 bMultiが false の場合、値 -1 は、メソッドが長さを自動的に計算することを示します。

戻り値

成功した場合は ERROR_SUCCESS を返します。それ以外の場合は、WINERROR.H で定義されている 0 以外のエラー コードを返します。

解説

SetValue の 2 つの元のバージョンは ATL_DEPRECATED とマークされ、使用できなくなります。 これらの形式が使用されている場合、コンパイラにより警告が発行されます。

3 番目のメソッドは RegSetValueExを呼び出します。

関連項目

DCOM サンプル
クラスの概要