2 * Configuration Read/Modify Functions ________________________________________
4 * Temporarily these just modify the local Registry.
5 * In the near future, they will modify the Registry on the
6 * gateway, if a gateway is being used.
18 #include <WINNT\afsreg.h>
20 BOOL Config_ReadString (LPCTSTR pszLHS, LPTSTR pszRHS, size_t cchMax);
23 * REGISTRY ___________________________________________________________________
27 void Config_GetGlobalDriveList (DRIVEMAPLIST *pDriveList)
29 // Read the GlobalAutoMapper registry key
30 TCHAR szDriveToMapTo[5];
37 TCHAR szSubMount[256];
43 memset(pDriveList, 0, sizeof(DRIVEMAPLIST));
45 lstrcpy(szKeyName, TEXT(AFSREG_CLT_SVC_PARAM_SUBKEY));
46 lstrcat(szKeyName, TEXT("\\GlobalAutoMapper"));
48 dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
49 if (dwResult != ERROR_SUCCESS)
52 // Get the drive map list so we can lookup the paths that go with our submounts
53 DRIVEMAPLIST DriveMapList;
54 memset(&DriveMapList, 0, sizeof(DRIVEMAPLIST));
55 QueryDriveMapList (&DriveMapList);
58 dwDriveSize = sizeof(szDriveToMapTo);
59 dwSubMountSize = sizeof(szSubMount);
61 dwResult = RegEnumValue(hKey, dwIndex++, szDriveToMapTo, &dwDriveSize, 0, &dwType, (BYTE*)szSubMount, &dwSubMountSize);
62 if (dwResult != ERROR_SUCCESS)
65 szDriveToMapTo[0] = _totupper(szDriveToMapTo[0]);
67 int nCurDrive = szDriveToMapTo[0] - TEXT('A');
69 pDriveList->aDriveMap[nCurDrive].chDrive = szDriveToMapTo[0];
70 lstrcpy(pDriveList->aDriveMap[nCurDrive].szSubmount, szSubMount);
72 // Find the path that goes with this submount
73 SubmountToPath (&DriveMapList, pDriveList->aDriveMap[nCurDrive].szMapping, szSubMount, FALSE);
76 FreeDriveMapList(&DriveMapList);
81 BOOL Config_ReadGlobalNum (LPCTSTR pszLHS, DWORD *pdwRHS)
84 if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_SVC_PARAM_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
87 DWORD dwSize = sizeof(*pdwRHS);
88 if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pdwRHS, &dwSize) != ERROR_SUCCESS)
99 BOOL Config_ReadGlobalString (LPCTSTR pszLHS, LPTSTR pszRHS, size_t cchMax)
102 if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_SVC_PARAM_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
105 DWORD dwSize = sizeof(TCHAR) * cchMax;
106 if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pszRHS, &dwSize) != ERROR_SUCCESS)
117 void Config_WriteGlobalNum (LPCTSTR pszLHS, DWORD dwRHS)
121 if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_SVC_PARAM_SUBKEY), 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
123 RegSetValueEx (hk, pszLHS, NULL, REG_DWORD, (PBYTE)&dwRHS, sizeof(dwRHS));
129 void Config_WriteGlobalString (LPCTSTR pszLHS, LPCTSTR pszRHS)
133 if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_SVC_PARAM_SUBKEY), 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
135 RegSetValueEx (hk, pszLHS, NULL, REG_SZ, (PBYTE)pszRHS, sizeof(TCHAR) * (1+lstrlen(pszRHS)));
141 BOOL Config_ReadUserNum (LPCTSTR pszLHS, DWORD *pdwRHS)
144 if (RegOpenKeyEx (HKEY_CURRENT_USER, TEXT(AFSREG_USER_OPENAFS_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
145 if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_OPENAFS_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
148 DWORD dwSize = sizeof(*pdwRHS);
149 if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pdwRHS, &dwSize) != ERROR_SUCCESS)
160 BOOL Config_ReadUserString (LPCTSTR pszLHS, LPTSTR pszRHS, size_t cchMax)
163 if (RegOpenKeyEx (HKEY_CURRENT_USER, TEXT(AFSREG_USER_OPENAFS_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
164 if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, TEXT(AFSREG_CLT_OPENAFS_SUBKEY), 0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS)
167 DWORD dwSize = sizeof(TCHAR) * cchMax;
168 if (RegQueryValueEx (hk, pszLHS, NULL, NULL, (PBYTE)pszRHS, &dwSize) != ERROR_SUCCESS)
179 void Config_WriteUserNum (LPCTSTR pszLHS, DWORD dwRHS)
183 if (RegCreateKeyEx (HKEY_CURRENT_USER, TEXT(AFSREG_USER_OPENAFS_SUBKEY), 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
185 RegSetValueEx (hk, pszLHS, NULL, REG_DWORD, (PBYTE)&dwRHS, sizeof(dwRHS));
191 void Config_WriteUserString (LPCTSTR pszLHS, LPCTSTR pszRHS)
195 if (RegCreateKeyEx (HKEY_CURRENT_USER, TEXT(AFSREG_USER_OPENAFS_SUBKEY), 0, TEXT("container"), 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
197 RegSetValueEx (hk, pszLHS, NULL, REG_SZ, (PBYTE)pszRHS, sizeof(TCHAR) * (1+lstrlen(pszRHS)));