convert this mess into actual C code

svn path=/trunk/; revision=36345
This commit is contained in:
Christoph von Wittich 2008-09-20 12:58:28 +00:00
parent 056bcda4d1
commit c2060ef1ff

View file

@ -32,24 +32,21 @@ WCHAR Strings [STRING_COUNT][MAX_STRING_LENGHT];
BOOL BOOL
getUninstaller(WCHAR* RegName, WCHAR* Uninstaller) { getUninstaller(WCHAR* RegName, WCHAR* Uninstaller) {
const DWORD ArraySize = 200;
HKEY hKey1; HKEY hKey1;
HKEY hKey2; HKEY hKey2;
DWORD Type = 0; DWORD Type = 0;
DWORD Size = ArraySize; DWORD Size = MAX_PATH;
WCHAR Value[ArraySize]; WCHAR Value[MAX_PATH];
WCHAR KeyName[ArraySize]; WCHAR KeyName[MAX_PATH];
LONG i = 0; LONG i = 0;
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,KEY_READ,&hKey1) == ERROR_SUCCESS) { if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,KEY_READ,&hKey1) == ERROR_SUCCESS) {
while (RegEnumKeyExW(hKey1,i,KeyName,&Size,NULL,NULL,NULL,NULL) == ERROR_SUCCESS) { while (RegEnumKeyExW(hKey1,i,KeyName,&Size,NULL,NULL,NULL,NULL) == ERROR_SUCCESS) {
++i; ++i;
RegOpenKeyExW(hKey1,KeyName,0,KEY_READ,&hKey2); RegOpenKeyExW(hKey1,KeyName,0,KEY_READ,&hKey2);
Size = ArraySize; Size = MAX_PATH;
if (RegQueryValueExW(hKey2,L"DisplayName",0,&Type,(LPBYTE)Value,&Size) == ERROR_SUCCESS) { if (RegQueryValueExW(hKey2,L"DisplayName",0,&Type,(LPBYTE)Value,&Size) == ERROR_SUCCESS) {
Size = ArraySize; Size = MAX_PATH;
if (StrCmpW(Value,RegName) == 0) { if (StrCmpW(Value,RegName) == 0) {
if (RegQueryValueExW(hKey2,L"UninstallString",0,&Type,(LPBYTE)Uninstaller,&Size) == ERROR_SUCCESS) { if (RegQueryValueExW(hKey2,L"UninstallString",0,&Type,(LPBYTE)Uninstaller,&Size) == ERROR_SUCCESS) {
RegCloseKey(hKey2); RegCloseKey(hKey2);
@ -63,7 +60,7 @@ getUninstaller(WCHAR* RegName, WCHAR* Uninstaller) {
} }
} }
RegCloseKey(hKey2); RegCloseKey(hKey2);
Size = ArraySize; Size = MAX_PATH;
} }
RegCloseKey(hKey1); RegCloseKey(hKey1);
} }
@ -107,6 +104,7 @@ CategoryChoosen(HWND hwnd, struct Category* Category)
{ {
struct Application* CurrentApplication; struct Application* CurrentApplication;
TV_INSERTSTRUCTW Insert; TV_INSERTSTRUCTW Insert;
WCHAR Uninstaller[200];
SelectedApplication = NULL; SelectedApplication = NULL;
if(Category->Children && !Category->Apps) if(Category->Children && !Category->Apps)
@ -126,8 +124,6 @@ CategoryChoosen(HWND hwnd, struct Category* Category)
Insert.hParent = TVI_ROOT; Insert.hParent = TVI_ROOT;
CurrentApplication = Category->Apps; CurrentApplication = Category->Apps;
WCHAR Uninstaller[200];
while(CurrentApplication) while(CurrentApplication)
{ {
Insert.item.lParam = (UINT)CurrentApplication; Insert.item.lParam = (UINT)CurrentApplication;
@ -145,10 +141,13 @@ CategoryChoosen(HWND hwnd, struct Category* Category)
BOOL CreateToolTip(HWND hwndTool, HWND hDlg, WCHAR* pText) BOOL CreateToolTip(HWND hwndTool, HWND hDlg, WCHAR* pText)
{ {
HWND hwndTip;
TOOLINFO toolInfo;
if (!hwndTool || !hDlg || !pText) if (!hwndTool || !hDlg || !pText)
return FALSE; return FALSE;
HWND hwndTip = CreateWindowExW(0, TOOLTIPS_CLASS, NULL, hwndTip = CreateWindowExW(0, TOOLTIPS_CLASS, NULL,
WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON, WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
@ -157,7 +156,7 @@ BOOL CreateToolTip(HWND hwndTool, HWND hDlg, WCHAR* pText)
if (!hwndTip) if (!hwndTip)
return FALSE; return FALSE;
TOOLINFO toolInfo = {0}; ZeroMemory(&toolInfo, sizeof(TOOLINFO));
toolInfo.cbSize = sizeof(toolInfo); toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hDlg; toolInfo.hwnd = hDlg;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
@ -176,17 +175,14 @@ SetupControls (HWND hwnd)
HINSTANCE hInstance = GetModuleHandle(NULL); HINSTANCE hInstance = GetModuleHandle(NULL);
WCHAR Cats[MAX_STRING_LENGHT], Apps[MAX_STRING_LENGHT]; WCHAR Cats[MAX_STRING_LENGHT], Apps[MAX_STRING_LENGHT];
WCHAR Tooltip1[MAX_STRING_LENGHT], Tooltip2[MAX_STRING_LENGHT], Tooltip3[MAX_STRING_LENGHT]; WCHAR Tooltip1[MAX_STRING_LENGHT], Tooltip2[MAX_STRING_LENGHT], Tooltip3[MAX_STRING_LENGHT];
TCHAR Buf[MAX_PATH]; char Buf[MAX_PATH];
char Tmp[MAX_PATH];
int i;
// Getting downloader.xml path // Getting downloader.xml path
if(!GetSystemDirectory(Buf,sizeof(Buf)/sizeof(char))) return FALSE; if(!GetSystemDirectoryA(Buf,sizeof(Buf))) return FALSE;
lstrcat((LPTSTR)Buf, L"\\downloader.xml"); strcat(Buf, "\\downloader.xml");
for (i = 0; i < _tcslen(Buf) + 1; i++) Tmp[i] = Buf[i];
// Parse the XML file // Parse the XML file
if (!ProcessXML(Tmp, &Root)) if (!ProcessXML(Buf, &Root))
return FALSE; return FALSE;
LoadStringW(hInstance, IDS_CATS_TITLE, Cats, MAX_STRING_LENGHT); LoadStringW(hInstance, IDS_CATS_TITLE, Cats, MAX_STRING_LENGHT);
@ -394,6 +390,7 @@ SaveSettings(HWND hwnd)
{ {
HKEY hKey; HKEY hKey;
TCHAR szBuf[MAX_PATH]; TCHAR szBuf[MAX_PATH];
DWORD dwValue;
if (RegOpenKey(HKEY_LOCAL_MACHINE, if (RegOpenKey(HKEY_LOCAL_MACHINE,
TEXT("Software\\ReactOS\\Downloader"), TEXT("Software\\ReactOS\\Downloader"),
@ -425,7 +422,6 @@ SaveSettings(HWND hwnd)
(DWORD)(sizeof(szBuf) / sizeof(TCHAR)))) (DWORD)(sizeof(szBuf) / sizeof(TCHAR))))
return FALSE; return FALSE;
DWORD dwValue;
if (SendDlgItemMessage(hwnd, IDC_DELINST_FILES_CHECKBOX, BM_GETCHECK, 0, 0) == BST_CHECKED) if (SendDlgItemMessage(hwnd, IDC_DELINST_FILES_CHECKBOX, BM_GETCHECK, 0, 0) == BST_CHECKED)
dwValue = 0x1; dwValue = 0x1;
else else
@ -449,6 +445,7 @@ InitProfDlg(HWND hwnd)
HKEY hKey; HKEY hKey;
TCHAR Buf[MAX_PATH]; TCHAR Buf[MAX_PATH];
DWORD dwDisp, dwSize; DWORD dwDisp, dwSize;
DWORD dwValue, dwType = REG_DWORD;
if (RegOpenKey(HKEY_LOCAL_MACHINE, if (RegOpenKey(HKEY_LOCAL_MACHINE,
TEXT("Software\\ReactOS\\Downloader"), TEXT("Software\\ReactOS\\Downloader"),
@ -476,10 +473,11 @@ InitProfDlg(HWND hwnd)
} }
else else
{ {
if (!GetWindowsDirectory(Buf, sizeof(Buf) / sizeof(TCHAR))) return FALSE;
TCHAR DPath[256]; TCHAR DPath[256];
int i; int i;
if (!GetWindowsDirectory(Buf, sizeof(Buf) / sizeof(TCHAR))) return FALSE;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (i == 3) if (i == 3)
@ -532,7 +530,6 @@ InitProfDlg(HWND hwnd)
} }
} }
DWORD dwValue, dwType = REG_DWORD;
dwSize = sizeof(DWORD); dwSize = sizeof(DWORD);
if (RegQueryValueEx(hKey, if (RegQueryValueEx(hKey,
L"DeleteInstaller", L"DeleteInstaller",
@ -776,6 +773,8 @@ WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
case WM_NOTIFY: case WM_NOTIFY:
{ {
LPNMHDR data = (LPNMHDR)lParam; LPNMHDR data = (LPNMHDR)lParam;
WCHAR Uninstaller[200];
if(data->code == TVN_SELCHANGED) if(data->code == TVN_SELCHANGED)
{ {
BOOL bShowUninstaller = FALSE; BOOL bShowUninstaller = FALSE;
@ -809,7 +808,6 @@ WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
StrCatW(ApplicationText, L"\n"); StrCatW(ApplicationText, L"\n");
StrCatW(ApplicationText, SelectedApplication->Description); StrCatW(ApplicationText, SelectedApplication->Description);
ShowMessage(SelectedApplication->Name, ApplicationText); ShowMessage(SelectedApplication->Name, ApplicationText);
WCHAR Uninstaller[200];
if(StrCmpW(SelectedApplication->RegName, L"")) { if(StrCmpW(SelectedApplication->RegName, L"")) {
if(getUninstaller(SelectedApplication->RegName, Uninstaller)) { if(getUninstaller(SelectedApplication->RegName, Uninstaller)) {
bShowUninstaller = TRUE; bShowUninstaller = TRUE;
@ -840,10 +838,11 @@ WndProc (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{ {
int Split_Hozizontal = (HIWORD(lParam)-(45+60))/2 + 60; int Split_Hozizontal = (HIWORD(lParam)-(45+60))/2 + 60;
int Split_Vertical = 200; int Split_Vertical = 200;
RECT Rect;
ResizeControl(hCategories, 10, 60, Split_Vertical, HIWORD(lParam)-10); ResizeControl(hCategories, 10, 60, Split_Vertical, HIWORD(lParam)-10);
ResizeControl(hApps, Split_Vertical+5, 60, LOWORD(lParam)-10, Split_Hozizontal); ResizeControl(hApps, Split_Vertical+5, 60, LOWORD(lParam)-10, Split_Hozizontal);
RECT Rect = {Split_Vertical+5, Split_Hozizontal+5, LOWORD(lParam)-10, HIWORD(lParam)-50}; SetRect(&Rect, Split_Vertical+5, Split_Hozizontal+5, LOWORD(lParam)-10, HIWORD(lParam)-50);
DescriptionRect = Rect; DescriptionRect = Rect;
MoveWindow(hHelpButton, LOWORD(lParam)-50, 10, 40, 40, TRUE); MoveWindow(hHelpButton, LOWORD(lParam)-50, 10, 40, 40, TRUE);