-
Notifications
You must be signed in to change notification settings - Fork 147
/
CustomInstaller.h
48 lines (37 loc) · 1.29 KB
/
CustomInstaller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#pragma once
#include "../../../svn/win32/installer/ssibase/ssibase.h"
#include <bzscore/thread.h>
class CustomInstaller : public CInstallationPacketInstaller
{
private:
BazisLib::FunctionThread m_InstallThread;
HWND m_hWnd;
bool m_bExtOptionsVisible;
bool m_bUnattended;
public:
virtual bool PerformInstallation(const char *ComponentOverrideString = 0, bool Unattended = false);
CustomInstaller(HINSTANCE hInst, char *pszSourceFile, ULONGLONG InitialOffset)
: CInstallationPacketInstaller(hInst, pszSourceFile, InitialOffset)
, m_InstallThread(&InstallationThread, this)
, m_bExtOptionsVisible(true)
, m_bUnattended(false)
{
}
enum {WMX_DONE = WM_USER + 67}; //wParam = bSuccessful
protected:
virtual bool OnPartialCompletion(int FileIndex,
ULONGLONG FileSize,
ULONGLONG BytesDone,
ULONGLONG TotalSize,
ULONGLONG TotalDone);
virtual bool OnNextFile(char *pszFileName);
private:
static BOOL CALLBACK sInstallerDialogProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
BOOL InstallerDialogProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
static int InstallationThread(LPVOID lpParam);
void UpdateInstallationState(bool running);
virtual void OnPostInstallCommand(PCOMMAND pCommand);
void ShowExtendedOptions(bool bShow);
private:
void ApplyCustomSettings();
};