Составители:
доступной сразу после входа данного пользователя в систему. Функция
RegCreateKey открывает раздел, если он уже существует, или создает его, если
раздела еще нет, и возвращает дескриптор в переменную m_hRegKey
соответствующего раздела. Поскольку эта переменная является переменной-
членом (тип HKEY),
она доступна и для других функций приложения. Если
предполагается, что доступ к разделу будет происходить часто и этот раздел
будет одновременно использоваться различными приложениями, удобно один
раз открыть дескриптор раздела и использовать его в дальнейшем для доступа к
подразделам. В других случаях, когда доступ к разделу будет происходить
лишь изредка, можно не торопиться и открывать этот раздел только при
необходимости.
3. Рассмотреть режим чтения данных из разделов реестра.
С помощью
переменной m_hRegKey программа инициализирует содержимое списка, читая
записи из подразделов реестра (см. файл Reg_OpsDlg.CPP).
BOOL CReg_OpsDlg::InitializeListBox()
{
DWORD dwName, dwSubkeys, dwIndex = 0;
long lResult;
TCHAR szBuff[MAX_PATH+l] ;
CString csBuff;
EnableButtons ( FALSE );
lResult = RegQueryInfoKey( m_hRegKey, NULL, NULL, NULL,
&dwSubkeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) ;
if( lResult == ERROR_SUCCESS )
dwIndex = dwSubkeys;
else
ReportError( lResult );
Прежде чем приступить к чтению содержимого подразделов используется
API-функция RegQueryInfoKey, которая определяет, сколько подразделов
содержит раздел HKEY_LOCAL_MACHINE\SOFTWARE\Registry Demo.
Функция RegQueryInfoKey имеет несколько аргументов, но всем ненужным
аргументам можно просто присвоить значение NULL,
как это сделано в
приведенном выше фрагменте. Такой подход дает возможность запросить
только одно значение, не заботясь о параметрах, которые не интересуют.
Если для инициализации реестра будут использованы данные, которые
содержатся в файле Special.REG, функция RegQueryInfoKey сообщит о наличии
пяти подразделов.
Теперь, зная, сколько подразделов содержится в выбранном разделе, для
переменной dwName следует задать размер, равный размеру массива szBuff.
Поскольку величина szBuff не должна изменяться, эта операция будет
выполнена только один раз, и значение dwName сохранится неизменным.
27
доступной сразу после входа данного пользователя в систему. Функция RegCreateKey открывает раздел, если он уже существует, или создает его, если раздела еще нет, и возвращает дескриптор в переменную m_hRegKey соответствующего раздела. Поскольку эта переменная является переменной- членом (тип HKEY), она доступна и для других функций приложения. Если предполагается, что доступ к разделу будет происходить часто и этот раздел будет одновременно использоваться различными приложениями, удобно один раз открыть дескриптор раздела и использовать его в дальнейшем для доступа к подразделам. В других случаях, когда доступ к разделу будет происходить лишь изредка, можно не торопиться и открывать этот раздел только при необходимости. 3. Рассмотреть режим чтения данных из разделов реестра. С помощью переменной m_hRegKey программа инициализирует содержимое списка, читая записи из подразделов реестра (см. файл Reg_OpsDlg.CPP). BOOL CReg_OpsDlg::InitializeListBox() { DWORD dwName, dwSubkeys, dwIndex = 0; long lResult; TCHAR szBuff[MAX_PATH+l] ; CString csBuff; EnableButtons ( FALSE ); lResult = RegQueryInfoKey( m_hRegKey, NULL, NULL, NULL, &dwSubkeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) ; if( lResult == ERROR_SUCCESS ) dwIndex = dwSubkeys; else ReportError( lResult ); Прежде чем приступить к чтению содержимого подразделов используется API-функция RegQueryInfoKey, которая определяет, сколько подразделов содержит раздел HKEY_LOCAL_MACHINE\SOFTWARE\Registry Demo. Функция RegQueryInfoKey имеет несколько аргументов, но всем ненужным аргументам можно просто присвоить значение NULL, как это сделано в приведенном выше фрагменте. Такой подход дает возможность запросить только одно значение, не заботясь о параметрах, которые не интересуют. Если для инициализации реестра будут использованы данные, которые содержатся в файле Special.REG, функция RegQueryInfoKey сообщит о наличии пяти подразделов. Теперь, зная, сколько подразделов содержится в выбранном разделе, для переменной dwName следует задать размер, равный размеру массива szBuff. Поскольку величина szBuff не должна изменяться, эта операция будет выполнена только один раз, и значение dwName сохранится неизменным. 27
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »