Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 179


FillBrauclUi. dwSubKeys, hTrceWnd, liNewParcntltcm);

void FillBranch(ULONG i, DWORD dwSubKeys, IIWND hTrceWnd, HTREEITEM hNewParentltem)

int j;

DWORD dwClassNameSizc = 80;

char cChissName[80] - "";

if (dwSubKeys ^= 0)

return; else

for(j = 0, j < dwSubKeys; j—)

215

RegEnumKey((HKEY) i, (DWORD) j, cClassName. dwClassNameSize);

dwClassNameSize = 80;

FillSubBranch((HKEY) i, cClassName, hTreeWnd, hNewParentltem);

I

void FillSubBranch(HKEY hKcy, char* cClassName, HWND hTreeWnd, HTREEITEM hParentltem)

)

HKEY hNewKey; char cClass[80], cNewCIass[80]; DWORD dwClassSize = 80, dwSK, j; TVJTEM Item;

TVJNSERTSTRUCT InscrtStruct; HTREEITEM hNewParentltem;

Item.mask = TVIFJTEXT;

Item.pszText = cClassName;

InsertStruct.hParent = hParentltem;

InsertStruct.hlnsertAfter = TVI_SORT;

InsertStruct.item = Item;

hNewParentitem = TreeView_InsertItem(hTreeWnd, &InsertStruct);

RegOpenKey(hKey, cClassName, &hNewKey);

RegQueryIntbKey(hNewKey, cClass, &dwClassSize, NULL, &dwSK, NULL,

NULL, NULL, NULL, NULL, NULL, NULL); dwClassSize = 80; if(dwSK != 0)

for(j = 0; j < dwSK; j+

RegEnumKey(hNewKey, j, cNewClass, dwClassSize); FillSubBranch(hNewKey, cNewClass, hTreeWnd, hNewParentltem);

} RegCloseKey(hNewKey);

Вид, создаваемого программой окна, показан на рис. 20.

Я не большой специалист в рисовании ( © ), поэтому подключение изображений, как всегда, оставляю на долю читателя.

Эта программа просто перебирает ключи и позволяет просмотреть все «дерево» реестра. Обращаю внимание читателя на тот факт, что предо­пределенные ключи (их имена начинаются с HKEY_) всегда открыты. Открывать следует только ключи, находящиеся ниже предопределенных в иерархии. Если читатель будет разрабатывать программу, храпящую конфигурационные данные на диске, я настоятельно рекомендую исполь­зовать реестр, а не пользоваться произвольными файлами.

216

Ш Registry Demo Program

Й- HKEY_CLU.SSES_ROOT Ш HKEY_CURRENT_USER Ш HKEY_LOCAL_MACHINE Й- HKEY_USERS

В- .Default i       Ep AppE vents




Начало  Назад  Вперед



Книжный магазин