in src/native/windows/apps/prunmgr/prunmgr.c [969:1127]
INT_PTR CALLBACK __loggingProperty(HWND hDlg,
UINT uMessage,
WPARAM wParam,
LPARAM lParam)
{
LPPSHNOTIFY lpShn;
LPWSTR lpBuf;
switch (uMessage) {
case WM_INITDIALOG:
{
LPWSTR b;
startPage = 2;
if (!bpropCentered)
apxCenterWindow(GetParent(hDlg), NULL);
bpropCentered = TRUE;
ComboBox_AddStringW(GetDlgItem(hDlg, IDC_PPLGLEVEL), LOGL_ERROR);
ComboBox_AddStringW(GetDlgItem(hDlg, IDC_PPLGLEVEL), LOGL_WARN);
ComboBox_AddStringW(GetDlgItem(hDlg, IDC_PPLGLEVEL), LOGL_INFO);
ComboBox_AddStringW(GetDlgItem(hDlg, IDC_PPLGLEVEL), LOGL_DEBUG);
ComboBox_AddStringW(GetDlgItem(hDlg, IDC_PPLGLEVEL), LOGL_TRACE);
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"Level")) != NULL) {
if (!lstrcmpiW(b, LOGL_ERROR))
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 0);
else if (!lstrcmpiW(b, LOGL_WARN))
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 1);
else if (!lstrcmpiW(b, LOGL_INFO))
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 2);
else if (!lstrcmpiW(b, LOGL_DEBUG))
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 3);
else
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 4);
apxFree(b);
}
else
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_PPLGLEVEL), 2);
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"Path")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPLGPATH, b);
apxFree(b);
}
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"Prefix")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPLGPREFIX, b);
apxFree(b);
}
else
SetDlgItemTextW(hDlg, IDC_PPLGPREFIX, L"commons-daemon");
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"PidFile")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPLGPIDFILE, b);
apxFree(b);
}
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"StdOutput")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPLGSTDOUT, b);
apxFree(b);
}
if ((b = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_log, L"StdError")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPLGSTDERR, b);
apxFree(b);
}
}
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_PPLGLEVEL:
if (HIWORD(wParam) == CBN_SELCHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGPATH:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGPREFIX:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGPIDFILE:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGSTDERR:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGSTDOUT:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGBPATH:
lpBuf = apxBrowseForFolderW(hDlg, apxLoadResourceW(IDS_LGPATHTITLE, 0));
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPLGPATH, lpBuf);
apxFree(lpBuf);
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGBSTDOUT:
lpBuf = apxGetFileNameW(hDlg, apxLoadResourceW(IDS_LGSTDOUT, 0),
apxLoadResourceW(IDS_ALLFILES, 1), NULL,
NULL, FALSE, NULL);
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPLGSTDOUT, lpBuf);
apxFree(lpBuf);
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
case IDC_PPLGBSTDERR:
lpBuf = apxGetFileNameW(hDlg, apxLoadResourceW(IDS_LGSTDERR, 0),
apxLoadResourceW(IDS_ALLFILES, 1), NULL,
NULL, FALSE, NULL);
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPLGSTDERR, lpBuf);
apxFree(lpBuf);
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 3);
}
break;
}
break;
case WM_NOTIFY:
lpShn = (LPPSHNOTIFY )lParam;
switch (lpShn->hdr.code) {
case PSN_APPLY: /* sent when OK or Apply button pressed */
if (__generalLoggingSave(hDlg))
PropSheet_UnChanged(GetParent(hDlg), hDlg);
else {
SET_BIT_FLAG(_propertyChanged, 3);
SetWindowLong(hDlg, DWLP_MSGRESULT,
PSNRET_INVALID_NOCHANGEPAGE);
return TRUE;
}
break;
}
break;
default:
break;
}
return FALSE;
}