mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
convert this mess into actual C code
svn path=/trunk/; revision=36345
This commit is contained in:
parent
056bcda4d1
commit
c2060ef1ff
1 changed files with 26 additions and 27 deletions
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue