mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
Updater:
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@4648 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
@@ -520,9 +520,7 @@ VOID ShowUpdateTaskDialog(VOID)
|
||||
UpdateAvailablePage.pszMainInstruction = L"Checking for Updates...";
|
||||
UpdateAvailablePage.pfCallback = TaskDlgWndProc;
|
||||
|
||||
hr = TaskDialogIndirect(&UpdateAvailablePage, &nButton, &nRadioButton, &fVerificationFlagChecked);
|
||||
|
||||
if (!SUCCEEDED(hr))
|
||||
if (!SUCCEEDED(TaskDialogIndirect_I(&UpdateAvailablePage, &nButton, &nRadioButton, &fVerificationFlagChecked)))
|
||||
{
|
||||
// some error occurred...check hr to see what it is
|
||||
}
|
||||
@@ -532,7 +530,7 @@ VOID ShowUpdateTaskDialog(VOID)
|
||||
DisposeFileHandles();
|
||||
}
|
||||
|
||||
HRESULT CALLBACK TaskDlgWndProc(
|
||||
HRESULT CALLBACK TaskDlgUpdateAvailableWndProc(
|
||||
__in HWND hwndDlg,
|
||||
__in UINT uMsg,
|
||||
__in WPARAM wParam,
|
||||
@@ -601,6 +599,153 @@ HRESULT CALLBACK TaskDlgWndProc(
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CALLBACK TaskDlgWndProc(
|
||||
__in HWND hwndDlg,
|
||||
__in UINT uMsg,
|
||||
__in WPARAM wParam,
|
||||
__in LPARAM lParam,
|
||||
__in LONG_PTR lpRefData
|
||||
)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case TDN_CREATED:
|
||||
{
|
||||
SetProgressBarMarquee(hwndDlg, TRUE, 100);
|
||||
_beginthread(VistaWorkerThreadStart, 0, hwndDlg);
|
||||
}
|
||||
break;
|
||||
case TDN_DESTROYED:
|
||||
{
|
||||
DisposeConnection();
|
||||
DisposeStrings();
|
||||
DisposeFileHandles();
|
||||
}
|
||||
break;
|
||||
case TDN_BUTTON_CLICKED:
|
||||
{
|
||||
switch(wParam)
|
||||
{
|
||||
case 1005:
|
||||
{
|
||||
TASKDIALOGCONFIG tc = { 0 };
|
||||
tc.cbSize = sizeof(tc);
|
||||
tc.hMainIcon = MAKEINTRESOURCEW(101);
|
||||
tc.hwndParent = PhMainWndHandle;
|
||||
tc.hInstance = PhLibImageBase;
|
||||
tc.dwFlags = TDF_ALLOW_DIALOG_CANCELLATION | TDF_USE_COMMAND_LINKS | TDF_POSITION_RELATIVE_TO_WINDOW | TDF_SHOW_PROGRESS_BAR;
|
||||
tc.pszWindowTitle = L"Process Hacker Updater";
|
||||
tc.pszMainInstruction = L"Downloading Update...";
|
||||
tc.pszContent = L"Initializing...\r\n\r\n";
|
||||
tc.dwCommonButtons = TDCBF_CLOSE_BUTTON;
|
||||
tc.pfCallback = TaskDlgWndProc;
|
||||
|
||||
_beginthread(VistaDownloadWorkerThreadStart, 0, hwndDlg);
|
||||
|
||||
// Natigate to new page.
|
||||
SendMessage(hwndDlg, TDM_NAVIGATE_PAGE, 0, (LPARAM)&tc);
|
||||
|
||||
return S_FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TDN_NAVIGATED:
|
||||
{
|
||||
//return S_FALSE;
|
||||
}
|
||||
break;
|
||||
case TDN_HYPERLINK_CLICKED:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CALLBACK TaskDlgCheckingPageWndProc(
|
||||
__in HWND hwndDlg,
|
||||
__in UINT uMsg,
|
||||
__in WPARAM wParam,
|
||||
__in LPARAM lParam,
|
||||
__in LONG_PTR lpRefData
|
||||
)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case TDN_CREATED:
|
||||
{
|
||||
SetProgressBarMarquee(hwndDlg, TRUE, 100);
|
||||
|
||||
_beginthread(VistaWorkerThreadStart, 0, hwndDlg);
|
||||
}
|
||||
break;
|
||||
case TDN_DESTROYED:
|
||||
{
|
||||
DisposeConnection();
|
||||
DisposeStrings();
|
||||
DisposeFileHandles();
|
||||
}
|
||||
break;
|
||||
case TDN_BUTTON_CLICKED:
|
||||
{
|
||||
switch(wParam)
|
||||
{
|
||||
case 1005:
|
||||
{
|
||||
TASKDIALOGCONFIG tc = { 0 };
|
||||
INT nButton;
|
||||
|
||||
tc.cbSize = sizeof(tc);
|
||||
tc.hwndParent = PhMainWndHandle;
|
||||
tc.hInstance = PhLibImageBase;
|
||||
tc.dwFlags = TDF_ALLOW_DIALOG_CANCELLATION | TDF_USE_COMMAND_LINKS | TDF_POSITION_RELATIVE_TO_WINDOW | TDF_SHOW_PROGRESS_BAR;
|
||||
tc.pszWindowTitle = L"Process Hacker Updater";
|
||||
tc.pszMainInstruction = L"Downloading Update...";
|
||||
tc.pszContent = L"Initializing...\r\n\r\n";
|
||||
tc.dwCommonButtons = TDCBF_CLOSE_BUTTON;
|
||||
tc.pfCallback = TaskDlgWndProc;
|
||||
|
||||
_beginthread(VistaDownloadWorkerThreadStart, 0, hwndDlg);
|
||||
|
||||
// Natigate to new page.
|
||||
SendMessage(hwndDlg, TDM_NAVIGATE_PAGE, 0, (LPARAM)&tc);
|
||||
|
||||
return S_FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TDN_NAVIGATED:
|
||||
{
|
||||
//return S_FALSE;
|
||||
}
|
||||
break;
|
||||
case TDN_HYPERLINK_CLICKED:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static BOOL InitializeConnection(
|
||||
__in PCWSTR host,
|
||||
__in PCWSTR path
|
||||
|
||||
@@ -90,7 +90,7 @@ VOID NTAPI LoadCallback(
|
||||
__in_opt PVOID Context
|
||||
)
|
||||
{
|
||||
|
||||
TaskDialogIndirect_I = PhGetProcAddress(L"comctl32.dll", "TaskDialogIndirect");
|
||||
}
|
||||
|
||||
VOID NTAPI MainWindowShowingCallback(
|
||||
|
||||
@@ -48,8 +48,8 @@ typedef enum _PH_UPDATER_STATE
|
||||
#define UPDATE_URL L"processhacker.sourceforge.net"
|
||||
#define UPDATE_FILE L"/update.php"
|
||||
|
||||
#define DOWNLOAD_SERVER L"sourceforge.net"
|
||||
#define DOWNLOAD_PATH L"/projects/processhacker/files/processhacker2/%s/download" /* ?use_mirror=waix" */
|
||||
#define DOWNLOAD_SERVER L"mirror.eftel.com" //"sourceforge.net"
|
||||
#define DOWNLOAD_PATH L"/ubuntu-dvd/oneiric/beta-1/ubuntu-11.10-beta1-dvd-i386.iso"// L"/projects/processhacker/files/processhacker2/%s/download" /* ?use_mirror=waix" */
|
||||
|
||||
#define BUFFER_LEN 512
|
||||
#define UPDATE_MENUITEM 1
|
||||
@@ -184,4 +184,14 @@ INT_PTR CALLBACK OptionsDlgProc(
|
||||
__in LPARAM lParam
|
||||
);
|
||||
|
||||
|
||||
typedef HRESULT (WINAPI *_TaskDialogIndirect)(
|
||||
__in const TASKDIALOGCONFIG *pTaskConfig,
|
||||
__in int *pnButton,
|
||||
__in int *pnRadioButton,
|
||||
__in BOOL *pfVerificationFlagChecked
|
||||
);
|
||||
|
||||
_TaskDialogIndirect TaskDialogIndirect_I;
|
||||
|
||||
#pragma endregion
|
||||
Reference in New Issue
Block a user