00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef INCLUDE_REGISTRY_H
00024 #define INCLUDE_REGISTRY_H
00025
00026 #include "MyString.h"
00027 #include "MyList.h"
00028 #pragma comment(lib, "advapi32.lib")
00029
00077 class MyRegistry
00078 {
00079 public:
00080 MyRegistry (BOOL autoCreate=FALSE);
00081 BOOL operator= (char *nameKey) { return Open(nameKey); }
00082 BOOL Open(char *nameKey);
00083
00084 void GetKeyName(MyString &result);
00085 BOOL Create(char *nameKey);
00086
00087 void SetAutoCreate(BOOL autoCreate);
00088 BOOL IsAutoCreate();
00089
00090 int GetValueType(char *param);
00091 int GetValueSize(char *param);
00092
00093
00094 BOOL GetValue(char *param , char *result , char *defValue=NULL);
00095
00096 BOOL GetValue(char *param, MyString &result , char *defValue=NULL);
00097
00098 BOOL GetValueMulti(char *param, MyList<MyString> &result , char *defValue=NULL);
00099
00100 BOOL GetValueExpand(char *param, char *result , char *defValue=NULL);
00101
00102 BOOL GetValueExpand(char *param, MyString &result , char *defValue=NULL);
00103
00104 BOOL GetValue(char *param,int *result,int defValue=0);
00105
00106 BOOL GetValue(char *param,DWORD *result,DWORD defValue=0);
00107
00108 BOOL GetValue(char *param,LONGLONG *result,LONGLONG defValue=0);
00109
00110 LPBYTE GetValue(char *param);
00111
00112 BOOL GetValue(char *param,float *result,float defValue=0);
00113 BOOL GetValue(char *param,double *result,double defValue=0);
00114
00115 BOOL SetValue(char *param);
00116 BOOL SetValue(char *param,int value);
00117 BOOL SetValue(char *param,DWORD value);
00118 BOOL SetValueLittleEndian(char *param,DWORD value);
00119 BOOL SetValueBigEndian(char *param,DWORD value);
00120 BOOL SetValue(char *param,LONGLONG value);
00121 BOOL SetValueLittleEndian(char *param,LONGLONG value);
00122 BOOL SetValue(char *param,char *value);
00123 BOOL SetValueExpand(char *param,char *value);
00124 BOOL SetValueMulti(char *param,MyList<MyString> &lString);
00125 BOOL SetValueMulti(char *param,char *value);
00126 BOOL SetValue(char *param,LPBYTE data,int size);
00127 BOOL SetValue(char *param,float result);
00128 BOOL SetValue(char *param,double result);
00129
00130 BOOL DeleteValue(char *param);
00131 BOOL DeleteKey(char *nameKey=NULL);
00132
00133 BOOL TestValue(char *param);
00134 BOOL TestKey();
00135 int GetLastError() { return m_lastError; }
00136
00137 void BeginEnumKey() { m_numEnumKey = 0; }
00138 BOOL NextEnumKey(char *result);
00139 BOOL NextEnumKey(MyString &result);
00140
00141 void BeginEnumValue() { m_numEnumValue = 0; }
00142 BOOL NextEnumValue (char *result);
00143 BOOL NextEnumValue (MyString &result);
00144
00145
00146
00147 private:
00148 BOOL SetPrefixAndPostfix(char *nameKey);
00149 BOOL SetKeyName(char *nameKey);
00150 void HKeyToString (MyString &result);
00151 LPBYTE GetValue(char *param ,DWORD uTypeResult);
00152 BOOL SetValue(char *param,LPBYTE source,ULONG uTypeSource,ULONG sizeSource);
00153
00154
00155 private:
00156 HKEY m_hKey;
00157 MyString m_postFixKey;
00158 BOOL m_lastError;
00159
00160 int m_numEnumValue;
00161 int m_numEnumKey;
00162
00163 BOOL m_isAutoCreate;
00164 };
00165
00166 BOOL NextSubKey(MyString &key,MyString &subKey,MyString &suite);
00167
00168 #endif