TNB Library
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CRegistryAccessor クラス

レジストリアクセスクラス [詳解]

#include <TnbRegistryAccessor.h>

+ CRegistryAccessor の継承関係図

公開型

typedef CMapT< CStr, CValue, LPCTSTR > CKeyMap
 キーと値のマップ型宣言 [詳解]
 
typedef CTreeT< CStr, CValue, LPCTSTR > CKeyTree
 キーと値のツリー型宣言 [詳解]
 
enum  EKind {
  EK_Nothing = 'n' , EK_String = 's' , EK_PluralStrings = 'p' , EK_Binary = 'b' ,
  EK_Dword = 'd' , EK_Longlong = 'i'
}
 値型の種類. [詳解]
 

公開メンバ関数

 CRegistryAccessor (const CRegKeyHandle &hhParentKey, LPCTSTR lpszSectionName, REGSAM dwRegSam=KEY_ALL_ACCESS)
 コンストラクタ [詳解]
 
 CRegistryAccessor (const CRegKeyHandle &hhParentKey, REGSAM dwRegSam=KEY_ALL_ACCESS)
 コンストラクタ [詳解]
 
bool DeleteAllSection (void)
 [削除] 全セクション削除 [詳解]
 
virtual bool DeleteSection (LPCTSTR lpszSectionName)
 [削除] 指定セクション削除 [詳解]
 
virtual CStrVector EnumKeyNames (LPCTSTR lpszSectionName) const
 [取得] 名前一覧取得 [詳解]
 
virtual CStrVector EnumSectionNames (LPCTSTR lpszSectionName=NULL) const
 [取得] セクション名一覧取得 [詳解]
 
virtual bool Flush (void)
 [操作] フラッシュ. [詳解]
 
const CRegKeyHandleGetBase (void) const
 [取得] 親ハンドル取得 [詳解]
 
const CRegKeyHandleGetHandle (LPCTSTR lpszSectionName) const
 [取得] 対象ハンドル取得 [詳解]
 
virtual EKind GetKeyKind (LPCTSTR lpszSectionName, LPCTSTR lpszKey) const
 [取得] 情報取種取得 [詳解]
 
void GetKeyTree (CKeyTree &_tree) const
 [取得] 全値取得 [詳解]
 
void GetKeyTree (CStrsTree &_tree) const
 [取得] 全値取得 [詳解]
 
virtual CStr GetTypeName (void) const
 [取得] タイプ名取得 [詳解]
 
bool IsValid (void) const
 [取得] 有効確認. [詳解]
 
CSection operator[] (LPCTSTR lpszSectionName)
 [取得] CSection取得 [詳解]
 
const CSection operator[] (LPCTSTR lpszSectionName) const
 [取得] CSection取得 [詳解]
 
virtual CValue QueryValue (LPCTSTR lpszSectionName, LPCTSTR lpszKey) const
 [取得] 情報取得 [詳解]
 
void SetBase (const CRegKeyHandle &hhParentKey)
 [設定] ベース指定 [詳解]
 
virtual bool WriteValue (LPCTSTR lpszSectionName, LPCTSTR lpszKey, const IAccessor::CValue &value)
 [設定] 情報設定 [詳解]
 
virtual ~CRegistryAccessor (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static CStr MakeDefineFilePath (void)
 [作成] 定義ファイル名作成. [詳解]
 
template<typename TYP >
static CVectorT< IAccessor::CValueToValueVector (const CVectorT< TYP > &vt)
 [変換] 配列変換. [詳解]
 

詳解

レジストリアクセスクラス

レジストリを読み書きするためのクラスです。

本クラスでは、サブキーを「セクション」と呼んでいます。

コンストラクタや SetBase() で情報のベースを指定し、
operator[]() で セクション情報アクセスクラス({@link IAccessor::CSection CSection})を取得し、
Query〜() 、 Write〜() などでキー情報にアクセスします。
覚え書き
本インターフェースにも QueryValue() , WriteValue() など、 セクションを指定しキー情報を操作するメソッドもありますが、 基本的に CSection を使用してください。
参照
IAccessor を実装しています。
必要ファイル
TnbRegistryAccessor.h
日付
06/05/20 新規作成
06/06/08 メンバ名変更。
06/10/31 IInformation の改修に対応。
07/05/10 クラス名変更。
08/04/15 書き込み系修正。
08/10/15 SHLWAPI.dll(SHDeleteKey()) を使わないように変更。
09/12/01 IsValid() 新規。構成整理。

TnbRegistryAccessor.h84 行目に定義があります。

型定義メンバ詳解

◆ CKeyMap

typedef CMapT<CStr, CValue, LPCTSTR> CKeyMap
inherited

キーと値のマップ型宣言

TnbAccessor.h266 行目に定義があります。

◆ CKeyTree

typedef CTreeT<CStr, CValue, LPCTSTR> CKeyTree
inherited

キーと値のツリー型宣言

TnbAccessor.h269 行目に定義があります。

列挙型メンバ詳解

◆ EKind

enum EKind
inherited

値型の種類.

IAccessorIAccessor::CValue で使う型の種類です。

列挙値
EK_Nothing 

存在しない

EK_String 

文字列

EK_PluralStrings 

複数の文字列群

EK_Binary 

バイナリ

EK_Dword 

32Bit Unsigned Integer

EK_Longlong 

64Bit Signed Integer

TnbAccessor.h79 行目に定義があります。

構築子と解体子

◆ CRegistryAccessor() [1/2]

CRegistryAccessor ( const CRegKeyHandle hhParentKey,
REGSAM  dwRegSam = KEY_ALL_ACCESS 
)
explicit

コンストラクタ

引数
hhParentKey対象の親ハンドル。通常、HKEY_LOCAL_MACHINEなどのシンボルを指定します。
dwRegSamアクセス権。省略すると KEY_ALL_ACCESS になります。 他、 KEY_READ などがあります。

TnbRegistryAccessor.h94 行目に定義があります。

◆ CRegistryAccessor() [2/2]

CRegistryAccessor ( const CRegKeyHandle hhParentKey,
LPCTSTR  lpszSectionName,
REGSAM  dwRegSam = KEY_ALL_ACCESS 
)

コンストラクタ

引数
hhParentKey対象の親ハンドル。通常、HKEY_LOCAL_MACHINEなどのシンボルを指定します。
lpszSectionNameセクション名。
dwRegSamアクセス権。省略すると KEY_ALL_ACCESS になります。 他、 KEY_READ などがあります。

TnbRegistryAccessor.h105 行目に定義があります。

◆ ~CRegistryAccessor()

virtual ~CRegistryAccessor ( void  )
virtual

デストラクタ

TnbRegistryAccessor.h115 行目に定義があります。

関数詳解

◆ DeleteAllSection()

bool DeleteAllSection ( void  )
inherited

[削除] 全セクション削除

戻り値
true成功
false失敗

TnbAccessor.h1006 行目に定義があります。

◆ DeleteSection()

virtual bool DeleteSection ( LPCTSTR  lpszSectionName)
virtual

[削除] 指定セクション削除

引数
lpszSectionNameセクション名。
戻り値
true成功
false失敗

IAccessorを実装しています。

TnbRegistryAccessor.h213 行目に定義があります。

◆ EnumKeyNames()

virtual CStrVector EnumKeyNames ( LPCTSTR  lpszSectionName) const
virtual

[取得] 名前一覧取得

覚え書き
本クラスでは pure関数です。
引数
lpszSectionNameセクション名
戻り値
名前一覧。無効状態なら未対応。

IAccessorを実装しています。

TnbRegistryAccessor.h227 行目に定義があります。

◆ EnumSectionNames()

virtual CStrVector EnumSectionNames ( LPCTSTR  lpszSectionName = NULL) const
virtual

[取得] セクション名一覧取得

引数
lpszSectionNameセクション名。 NULLを指定すると、ROOTのセクション一覧が得られます。
戻り値
セクション名一覧

IAccessorを実装しています。

TnbRegistryAccessor.h193 行目に定義があります。

◆ Flush()

virtual bool Flush ( void  )
virtual

[操作] フラッシュ.

覚え書き
メモリ上にキャッシュがあれば書き出します。
戻り値
true成功
false失敗

CAbstractAccessorを再実装しています。

TnbRegistryAccessor.h179 行目に定義があります。

◆ GetBase()

const CRegKeyHandle & GetBase ( void  ) const

[取得] 親ハンドル取得

戻り値
対象ハンドル

TnbRegistryAccessor.h136 行目に定義があります。

◆ GetHandle()

const CRegKeyHandle & GetHandle ( LPCTSTR  lpszSectionName) const

[取得] 対象ハンドル取得

引数
lpszSectionNameセクション名
戻り値
対象ハンドル

TnbRegistryAccessor.h157 行目に定義があります。

◆ GetKeyKind()

virtual EKind GetKeyKind ( LPCTSTR  lpszSectionName,
LPCTSTR  lpszKey 
) const
virtual

[取得] 情報取種取得

引数
lpszSectionNameセクション名
lpszKeyキー名
戻り値
情報種。ない場合、EK_Nothing になります。

IAccessorを実装しています。

TnbRegistryAccessor.h275 行目に定義があります。

◆ GetKeyTree() [1/2]

void GetKeyTree ( CKeyTree _tree) const
inherited

[取得] 全値取得

覚え書き
全キーと値、さらにサブセクション以下もTreeに格納します。
引数
[out]_treeツリー

TnbAccessor.h1024 行目に定義があります。

◆ GetKeyTree() [2/2]

void GetKeyTree ( CStrsTree _tree) const
inherited

[取得] 全値取得

覚え書き
全キーと値、さらにサブセクション以下もTreeに格納します。 値はすべて文字列情報に変換します。
引数
[out]_treeツリー

TnbAccessor.h1040 行目に定義があります。

◆ GetTypeName()

virtual CStr GetTypeName ( void  ) const
virtual

[取得] タイプ名取得

戻り値
タイプ名

IAccessorを実装しています。

TnbRegistryAccessor.h168 行目に定義があります。

◆ IsValid()

bool IsValid ( void  ) const

[取得] 有効確認.

戻り値
true有効。
false無効。

TnbRegistryAccessor.h146 行目に定義があります。

◆ MakeDefineFilePath()

static CStr MakeDefineFilePath ( void  )
staticinherited

[作成] 定義ファイル名作成.

実行ファイル名の .exeを省いたフルパスを返します。。

戻り値
フルパス

TnbAccessor.h1057 行目に定義があります。

◆ operator[]() [1/2]

CSection operator[] ( LPCTSTR  lpszSectionName)
inherited

[取得] CSection取得

引数
lpszSectionNameセクション名
戻り値
指定のセクションをアクセスする CSection

TnbAccessor.h976 行目に定義があります。

◆ operator[]() [2/2]

const CSection operator[] ( LPCTSTR  lpszSectionName) const
inherited

[取得] CSection取得

引数
lpszSectionNameセクション名
戻り値
指定のセクションをアクセスする CSection

TnbAccessor.h986 行目に定義があります。

◆ QueryValue()

virtual CValue QueryValue ( LPCTSTR  lpszSectionName,
LPCTSTR  lpszKey 
) const
virtual

[取得] 情報取得

引数
lpszSectionNameセクション名
lpszKeyキー名
戻り値
キーの値

IAccessorを実装しています。

TnbRegistryAccessor.h326 行目に定義があります。

◆ SetBase()

void SetBase ( const CRegKeyHandle hhParentKey)

[設定] ベース指定

対象
全体
引数
hhParentKey対象の親ハンドル。通常、HKEY_LOCAL_MACHINEなどのシンボルを指定します。

TnbRegistryAccessor.h125 行目に定義があります。

◆ ToValueVector()

static CVectorT< IAccessor::CValue > ToValueVector ( const CVectorT< TYP > &  vt)
staticinherited

[変換] 配列変換.

IAccessor::CValue の配列に変換します。

引数
vt配列
戻り値
IAccessor::CValue の配列

TnbAccessor.h940 行目に定義があります。

◆ WriteValue()

virtual bool WriteValue ( LPCTSTR  lpszSectionName,
LPCTSTR  lpszKey,
const IAccessor::CValue value 
)
virtual

[設定] 情報設定

引数
lpszSectionNameセクション名
lpszKeyキー名
value設定する値。EK_Nothing の場合、キーを削除します。
戻り値
true成功
false失敗

IAccessorを実装しています。

TnbRegistryAccessor.h404 行目に定義があります。