Author: gedmurphy
Date: Thu Nov 8 17:34:13 2007
New Revision: 30273
URL:
http://svn.reactos.org/svn/reactos?rev=30273&view=rev
Log:
rename rdpfile.c to settings.c
Added:
trunk/reactos/base/applications/mstsc/settings.c
- copied unchanged from r30271, trunk/reactos/base/applications/mstsc/rdpfile.c
Removed:
trunk/reactos/base/applications/mstsc/rdpfile.c
Removed: trunk/reactos/base/applications/mstsc/rdpfile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/rd…
==============================================================================
--- trunk/reactos/base/applications/mstsc/rdpfile.c (original)
+++ trunk/reactos/base/applications/mstsc/rdpfile.c (removed)
@@ -1,442 +1,0 @@
-
-#include <precomp.h>
-
-#define NUM_SETTINGS 6
-LPWSTR lpSettings[NUM_SETTINGS] =
-{
- L"screen mode id",
- L"desktopwidth",
- L"desktopheight",
- L"session bpp",
- L"full address",
- L"compression",
-};
-
-
-
-BOOL
-SetIntegerToSettings(PRDPSETTINGS pRdpSettings,
- LPWSTR lpKey,
- INT Value)
-{
- BOOL bRet = FALSE;
-
- if (pRdpSettings)
- {
- INT i;
-
- for (i = 0; i < pRdpSettings->NumSettings; i++)
- {
- if (wcscmp(pRdpSettings->pSettings[i].Key, lpKey) == 0)
- {
- if (pRdpSettings->pSettings[i].Type == L'i')
- {
- pRdpSettings->pSettings[i].Value.i = Value;
- bRet = TRUE;
- break;
- }
- }
- }
- }
-
- return bRet;
-}
-
-
-BOOL
-SetStringToSettings(PRDPSETTINGS pRdpSettings,
- LPWSTR lpKey,
- LPWSTR lpValue)
-{
- BOOL bRet = FALSE;
-
- if (pRdpSettings)
- {
- INT i;
-
- for (i = 0; i < pRdpSettings->NumSettings; i++)
- {
- if (wcscmp(pRdpSettings->pSettings[i].Key, lpKey) == 0)
- {
- if (pRdpSettings->pSettings[i].Type == L's')
- {
- wcscpy(pRdpSettings->pSettings[i].Value.s, lpValue);
- bRet = TRUE;
- break;
- }
- }
- }
- }
-
- return bRet;
-}
-
-
-INT
-GetIntegerFromSettings(PRDPSETTINGS pRdpSettings,
- LPWSTR lpKey)
-{
- INT Value = -1;
-
- if (pRdpSettings)
- {
- INT i;
-
- for (i = 0; i < pRdpSettings->NumSettings; i++)
- {
- if (wcscmp(pRdpSettings->pSettings[i].Key, lpKey) == 0)
- {
- if (pRdpSettings->pSettings[i].Type == L'i')
- {
- Value = pRdpSettings->pSettings[i].Value.i;
- break;
- }
- }
- }
- }
-
- return Value;
-}
-
-
-LPWSTR
-GetStringFromSettings(PRDPSETTINGS pRdpSettings,
- LPWSTR lpKey)
-{
- LPWSTR lpValue = NULL;
-
- if (pRdpSettings)
- {
- INT i;
-
- for (i = 0; i < pRdpSettings->NumSettings; i++)
- {
- if (wcscmp(pRdpSettings->pSettings[i].Key, lpKey) == 0)
- {
- if (pRdpSettings->pSettings[i].Type == L's')
- {
- lpValue = pRdpSettings->pSettings[i].Value.s;
- break;
- }
- }
- }
- }
-
- return lpValue;
-}
-
-
-static BOOL
-WriteRdpFile(HANDLE hFile,
- PRDPSETTINGS pRdpSettings)
-{
- WCHAR line[MAXKEY + MAXVALUE + 4];
- DWORD BytesToWrite, BytesWritten;
- BOOL bRet;
- INT i, k;
-
- for (i = 0; i < pRdpSettings->NumSettings; i++)
- {
- /* only write out values in the lpSettings struct */
- for (k = 0; k < NUM_SETTINGS; k++)
- {
- if (wcscmp(lpSettings[k], pRdpSettings->pSettings[i].Key) == 0)
- {
- if (pRdpSettings->pSettings[i].Type == L'i')
- {
- _snwprintf(line, MAXKEY + MAXVALUE + 4, L"%s:i:%d\r\n",
- pRdpSettings->pSettings[i].Key,
- pRdpSettings->pSettings[i].Value.i);
- }
- else
- {
- _snwprintf(line, MAXKEY + MAXVALUE + 4, L"%s:s:%s\r\n",
- pRdpSettings->pSettings[i].Key,
- pRdpSettings->pSettings[i].Value.s);
- }
-
- BytesToWrite = wcslen(line) * sizeof(WCHAR);
-
- bRet = WriteFile(hFile,
- line,
- BytesToWrite,
- &BytesWritten,
- NULL);
- if (!bRet || BytesWritten == 0)
- return FALSE;
- }
- }
- }
-
- return TRUE;
-}
-
-
-static VOID
-ParseSettings(PRDPSETTINGS pRdpSettings,
- LPWSTR lpBuffer)
-{
- LPWSTR lpStr = lpBuffer;
- WCHAR lpKey[MAXKEY];
- WCHAR lpValue[MAXVALUE];
- INT NumSettings = 0;
- INT s;
-
- if (lpStr)
- {
- /* get number of settings */
- while (*lpStr)
- {
- if (*lpStr == L'\n')
- NumSettings++;
- lpStr++;
- }
- lpStr = lpBuffer;
-
- if (NumSettings == 0)
- return;
-
- /* move past unicode byte order */
- if (lpStr[0] == 0xFEFF || lpStr[0] == 0xFFFE)
- lpStr += 1;
-
- pRdpSettings->pSettings = HeapAlloc(GetProcessHeap(),
- 0,
- sizeof(SETTINGS) * NumSettings);
- if (pRdpSettings->pSettings)
- {
- pRdpSettings->NumSettings = NumSettings;
-
- for (s = 0; s < NumSettings; s++)
- {
- INT i = 0, k;
-
- /* get a key */
- while (*lpStr != L':')
- {
- lpKey[i++] = *lpStr++;
- }
- lpKey[i] = 0;
-
- for (k = 0; k < NUM_SETTINGS; k++)
- {
- if (wcscmp(lpSettings[k], lpKey) == 0)
- {
- wcscpy(pRdpSettings->pSettings[s].Key, lpKey);
-
- /* get the type */
- lpStr++;
- if (*lpStr == L'i' || *lpStr == L's')
- pRdpSettings->pSettings[s].Type = *lpStr;
-
- lpStr += 2;
-
- /* get a value */
- i = 0;
- while (*lpStr != L'\r')
- {
- lpValue[i++] = *lpStr++;
- }
- lpValue[i] = 0;
-
- if (pRdpSettings->pSettings[s].Type == L'i')
- {
- pRdpSettings->pSettings[s].Value.i = _wtoi(lpValue);
- }
- else if (pRdpSettings->pSettings[s].Type == L's')
- {
- wcscpy(pRdpSettings->pSettings[s].Value.s, lpValue);
- }
- else
- pRdpSettings->pSettings[s].Type = 0;
- }
- }
-
- /* move onto next setting */
- while (*lpStr != L'\n')
- {
- lpStr++;
- }
- lpStr++;
- }
- }
- }
-}
-
-
-static LPWSTR
-ReadRdpFile(HANDLE hFile)
-{
- LPWSTR lpBuffer = NULL;
- DWORD BytesToRead, BytesRead;
- BOOL bRes;
-
- if (hFile)
- {
- BytesToRead = GetFileSize(hFile, NULL);
- if (BytesToRead)
- {
- lpBuffer = HeapAlloc(GetProcessHeap(),
- 0,
- BytesToRead + 2);
- if (lpBuffer)
- {
- bRes = ReadFile(hFile,
- lpBuffer,
- BytesToRead,
- &BytesRead,
- NULL);
- if (bRes)
- {
- lpBuffer[BytesRead / 2] = 0;
- }
- else
- {
- HeapFree(GetProcessHeap(),
- 0,
- lpBuffer);
-
- lpBuffer = NULL;
- }
- }
- }
- }
-
- return lpBuffer;
-}
-
-
-static HANDLE
-OpenRdpFile(LPWSTR path, BOOL bWrite)
-{
- HANDLE hFile = NULL;
-
- if (path)
- {
- hFile = CreateFileW(path,
- bWrite ? GENERIC_WRITE : GENERIC_READ,
- 0,
- NULL,
- bWrite ? CREATE_ALWAYS : OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
- }
-
- return hFile;
-}
-
-
-static VOID
-CloseRdpFile(HANDLE hFile)
-{
- if (hFile)
- CloseHandle(hFile);
-}
-
-
-BOOL
-SaveRdpSettingsToFile(LPWSTR lpFile,
- PRDPSETTINGS pRdpSettings)
-{
- WCHAR pszPath[MAX_PATH];
- HANDLE hFile;
- BOOL bRet = FALSE;
-
- /* use default file */
- if (lpFile == NULL)
- {
- HRESULT hr;
- LPITEMIDLIST lpidl= NULL;
-
- hr = SHGetFolderLocation(NULL,
- CSIDL_PERSONAL,
- NULL,
- 0,
- &lpidl);
- if (hr == S_OK)
- {
- if (SHGetPathFromIDListW(lpidl, pszPath))
- {
- wcscat(pszPath, L"\\Default.rdp");
- lpFile = pszPath;
- CoTaskMemFree(lpidl);
- }
- }
- }
-
- if (lpFile)
- {
- hFile = OpenRdpFile(lpFile, TRUE);
- if (hFile)
- {
- if (WriteRdpFile(hFile, pRdpSettings))
- {
- bRet = TRUE;
- }
-
- CloseRdpFile(hFile);
- }
- }
-
- return bRet;
-}
-
-
-PRDPSETTINGS
-LoadRdpSettingsFromFile(LPWSTR lpFile)
-{
- PRDPSETTINGS pRdpSettings = NULL;
- WCHAR pszPath[MAX_PATH];
- HANDLE hFile;
-
- /* use default file */
- if (lpFile == NULL)
- {
- HRESULT hr;
- LPITEMIDLIST lpidl= NULL;
-
- hr = SHGetFolderLocation(NULL,
- CSIDL_PERSONAL,
- NULL,
- 0,
- &lpidl);
- if (hr == S_OK)
- {
- if (SHGetPathFromIDListW(lpidl, pszPath))
- {
- wcscat(pszPath, L"\\Default.rdp");
- lpFile = pszPath;
- CoTaskMemFree(lpidl);
- }
- }
- }
-
- if (lpFile)
- {
- LPWSTR lpBuffer = NULL;
-
- pRdpSettings = HeapAlloc(GetProcessHeap(),
- 0,
- sizeof(RDPSETTINGS));
- if (pRdpSettings)
- {
- hFile = OpenRdpFile(lpFile, FALSE);
- if (hFile)
- {
- lpBuffer = ReadRdpFile(hFile);
- if (lpBuffer)
- {
- ParseSettings(pRdpSettings, lpBuffer);
-
- HeapFree(GetProcessHeap(),
- 0,
- lpBuffer);
- }
-
- CloseRdpFile(hFile);
- }
- }
- }
-
- return pRdpSettings;
-}