| 
 | 
 | 
发新文章 | 
 | 
  | 
			
					
	
	
		
			 HKEY hKey;      RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\ODBC\\ODBC.INI",0,KEY_READ,&hKey);
      
      DWORD dwSubKeyCount,dwMaxSubKeyNameLength;
      RegQueryInfoKey(hKey,NULL,NULL,NULL,&dwSubKeyCount,&dwMaxSubKeyNameLength,NULL,NULL,NULL,NULL,NULL,NULL);
      
      long index = 0;
  
      char* szSubKeyName = new char[dwMaxSubKeyNameLength+1];
      DWORD dwSubKeyName;
      for (index=0;index<(long)dwSubKeyCount;index++)
        {
          RegEnumKeyEx(hKey,index,szSubKeyName,&dwSubKeyName,NULL,NULL,NULL,NULL);
      }
      RegCloseKey(hKey);
  
      RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources",0,KEY_READ,&hKey);
      
      DWORD dwValueCount,dwMaxValueNameLength;
      RegQueryInfoKey(hKey,NULL,NULL,NULL,NULL,NULL,NULL,&dwValueCount,&dwMaxValueNameLength,NULL,NULL,NULL);    
      
      char* szValueName = new char[dwMaxValueNameLength+1];
      DWORD dwValueName;
  
      for (index=0;index<(long)dwValueCount;index++)
        {
          RegEnumValue(hKey,index,szValueName,&dwValueName,NULL,NULL,NULL,NULL);
      }
  
      RegCloseKey(hKey);
     hKey 
      当前打开键的句柄或下列预定义保留的句柄值: 
      HKEY_CLASSES_ROOT
      HKEY_CURRENT_CONFIG
      HKEY_CURRENT_USER
      HKEY_LOCAL_MACHINE
      HKEY_USERS
  
      samDesired 
      制定一个访问标记以描述访问新键的安全性
      此参数可以是下列值的一个联合 
      KEY_ALL_ACCESS
      KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, 和 KEY_SET_VALUE 访问的联合. 
      KEY_CREATE_LINK
      允许创建严格符号的链接. 
      KEY_CREATE_SUB_KEY
      允许创建子键. 
      KEY_ENUMERATE_SUB_KEYS
      允许枚举子键. 
      KEY_EXECUTE
      允许读访问. 
      KEY_NOTIFY
      允许改变通知. 
      KEY_QUERY_VALUE
      允许查询子键的数据. 
      KEY_READ
      KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, 和 KEY_NOTIFY 访问的联合. 
      KEY_SET_VALUE
      允许设置子键的数据. 
      KEY_WRITE
      KEY_SET_VALUE 和 KEY_CREATE_SUB_KEY 访问的联合. 
  
  
      LONG RegOpenKeyEx(
      HKEY hKey,                        // 待打开的键的句柄
      LPCTSTR lpSubKey,                // 待打开的子键名称的地址
      DWORD ulOptions,                // 保留的,必须为0. 
      REGSAM samDesired,                // 安全访问标记
      PHKEY phkResult                    // 待打开的键的句柄的地址
      );
  
      LONG RegQueryInfoKey(
      HKEY hKey,                        // 待查询的键的句柄
      LPTSTR lpClass,                    // 类字符串缓冲器地址
      LPDWORD lpcbClass,                // 类字符串缓冲器大小的地址
      LPDWORD lpReserved,                // 保留的,必须为 NULL.
      LPDWORD lpcSubKeys,                // 子键数目缓冲器的地址
      LPDWORD lpcbMaxSubKeyLen,        // 最长的子键名称长度缓冲器的地址
      LPDWORD lpcbMaxClassLen,        // 最长的类字符串长度缓冲器的地址
      LPDWORD lpcValues,                // 值项数目缓冲器的地址
      LPDWORD lpcbMaxValueNameLen,    // 最长的值名称长度缓冲器的地址
      LPDWORD lpcbMaxValueLen,        // 最长的值数据长度缓冲器的地址
      LPDWORD lpcbSecurityDescriptor,    // 安全描述符长度缓冲器的地址
      PFILETIME lpftLastWriteTime        // 最近写入时间缓冲器的地址
      );
  
      LONG RegEnumKeyEx(
      HKEY hKey,                        // 待枚举的键的句柄
      DWORD dwIndex,                    // 待枚举的子键的索引
      LPTSTR lpName,                    // 子键名称缓冲器的地址
      LPDWORD lpcbName,                // 子键缓冲器大小的地址
      LPDWORD lpReserved,                // 保留的,必须为 NULL.
      LPTSTR lpClass,                    // 类字符串缓冲器的地址
      LPDWORD lpcbClass,                // 类缓冲器大小的地址
      PFILETIME lpftLastWriteTime        // 键的最近写入时间的地址
      ); 
		 
		
	 
	  
	 
	
	    
    
 
				
			  |