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 
    當(dāng)前打開鍵的句柄或下列預(yù)定義保留的句柄值: 
    HKEY_CLASSES_ROOT
    HKEY_CURRENT_CONFIG
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS

    samDesired 
    制定一個訪問標(biāo)記以描述訪問新鍵的安全性
    此參數(shù)可以是下列值的一個聯(lián)合 
    KEY_ALL_ACCESS
    KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, 和 KEY_SET_VALUE 訪問的聯(lián)合. 
    KEY_CREATE_LINK
    允許創(chuàng)建嚴(yán)格符號的鏈接. 
    KEY_CREATE_SUB_KEY
    允許創(chuàng)建子鍵. 
    KEY_ENUMERATE_SUB_KEYS
    允許枚舉子鍵. 
    KEY_EXECUTE
    允許讀訪問. 
    KEY_NOTIFY
    允許改變通知. 
    KEY_QUERY_VALUE
    允許查詢子鍵的數(shù)據(jù). 
    KEY_READ
    KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, 和 KEY_NOTIFY 訪問的聯(lián)合. 
    KEY_SET_VALUE
    允許設(shè)置子鍵的數(shù)據(jù). 
    KEY_WRITE
    KEY_SET_VALUE 和 KEY_CREATE_SUB_KEY 訪問的聯(lián)合. 


    LONG RegOpenKeyEx(
    HKEY hKey,                        
// 待打開的鍵的句柄
    LPCTSTR lpSubKey,                // 待打開的子鍵名稱的地址
    DWORD ulOptions,                // 保留的,必須為0. 
    REGSAM samDesired,                // 安全訪問標(biāo)記
    PHKEY phkResult                    // 待打開的鍵的句柄的地址
    );

    LONG RegQueryInfoKey(
    HKEY hKey,                        
// 待查詢的鍵的句柄
    LPTSTR lpClass,                    // 類字符串緩沖器地址
    LPDWORD lpcbClass,                // 類字符串緩沖器大小的地址
    LPDWORD lpReserved,                // 保留的,必須為 NULL.
    LPDWORD lpcSubKeys,                // 子鍵數(shù)目緩沖器的地址
    LPDWORD lpcbMaxSubKeyLen,        // 最長的子鍵名稱長度緩沖器的地址
    LPDWORD lpcbMaxClassLen,        // 最長的類字符串長度緩沖器的地址
    LPDWORD lpcValues,                // 值項數(shù)目緩沖器的地址
    LPDWORD lpcbMaxValueNameLen,    // 最長的值名稱長度緩沖器的地址
    LPDWORD lpcbMaxValueLen,        // 最長的值數(shù)據(jù)長度緩沖器的地址
    LPDWORD lpcbSecurityDescriptor,    // 安全描述符長度緩沖器的地址
    PFILETIME lpftLastWriteTime        // 最近寫入時間緩沖器的地址
    );

    LONG RegEnumKeyEx(
    HKEY hKey,                        
// 待枚舉的鍵的句柄
    DWORD dwIndex,                    // 待枚舉的子鍵的索引
    LPTSTR lpName,                    // 子鍵名稱緩沖器的地址
    LPDWORD lpcbName,                // 子鍵緩沖器大小的地址
    LPDWORD lpReserved,                // 保留的,必須為 NULL.
    LPTSTR lpClass,                    // 類字符串緩沖器的地址
    LPDWORD lpcbClass,                // 類緩沖器大小的地址
    PFILETIME lpftLastWriteTime        // 鍵的最近寫入時間的地址
    );