-
Notifications
You must be signed in to change notification settings - Fork 1
/
logging.cpp
105 lines (94 loc) · 3.09 KB
/
logging.cpp
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "logging.h"
void VConLog(LPCSTR fmt, va_list va_args) {
int len = MultiByteToWideChar(CP_UTF8, 0, fmt, -1, NULL, 0);
LPWSTR wfmt = (LPWSTR)malloc((len + 2) * sizeof(WCHAR));
if (!wfmt) {
return;
}
memset(wfmt, 0, len);
MultiByteToWideChar(CP_UTF8, 0, fmt, -1, wfmt, len);
wfmt[len - 1] = L'\n';
wfmt[len] = L'\0';
vwprintf((LPCWSTR)wfmt, va_args);
free(wfmt);
}
void ConLog(LPCSTR fmt, ...) {
va_list va_args;
va_start(va_args, fmt);
VConLog(fmt, va_args);
va_end(va_args);
}
HRESULT WdsLog(WdsLogSource source, WdsLogLevel level, LPCSTR fmt, ...) {
va_list va_args;
HRESULT result;
va_start(va_args, fmt);
VConLog(fmt, va_args);
LPVOID partMsg = ConstructPartialMsgVW(level, fmt, va_args);
result = WdsSetupLogMessageW(partMsg, source, L"D", 0, 1, __FILEW__, __FUNCTIONW__, CurrentIP(), 0, NULL, 0);
va_end(va_args);
return result;
}
LPCWSTR PkgStateAsStr(CbsInstallState state) {
switch (state) {
case CbsInstallState::Absent:
return L"Uninstalled";
case CbsInstallState::UninstallRequested:
return L"Uninstall Requested";
case CbsInstallState::Installed:
return L"Installed";
case CbsInstallState::PartiallyInstalled:
return L"Partially Installed";
case CbsInstallState::InstallRequested:
return L"Install Requested";
case CbsInstallState::Staging:
return L"Staging";
case CbsInstallState::Resolved:
return L"Resolved";
case CbsInstallState::Resolving:
return L"Resolving";
case CbsInstallState::Staged:
return L"Staged";
case CbsInstallState::Superseded:
return L"Superseded";
case CbsInstallState::Permanent:
return L"Permanent";
case CbsInstallState::Invalid_Permanent:
return L"Invalid Permanent";
case CbsInstallState::Cancel:
return L"Cancel";
case CbsInstallState::Default:
return L"Default";
case CbsInstallState::Invalid:
return L"Invalid";
case CbsInstallState::Invalid_Installed:
return L"Invalid Installed";
case CbsInstallState::Invalid_Staged:
return L"Invalid Staged";
case CbsInstallState::Unknown:
default:
return L"Unknown";
}
}
LPCWSTR CbsOpStageAsStr(CbsOperationStage stage) {
switch (stage) {
case CbsOperationStage::Waiting:
return L"Waiting";
case CbsOperationStage::Planning:
return L"Planning";
case CbsOperationStage::Downloading:
return L"Downloading";
case CbsOperationStage::Extracting:
return L"Extracting";
case CbsOperationStage::Resolving:
return L"Extracting";
case CbsOperationStage::Staging:
return L"Staging";
case CbsOperationStage::Installing:
case CbsOperationStage::InstallingEx:
return L"Installing";
case CbsOperationStage::ReservicingLCU:
return L"Reservicing LCU";
default:
return L"Unknown";
}
}