in src/native/windows/apps/prunmgr/prunmgr.c [1129:1268]
INT_PTR CALLBACK __jvmProperty(HWND hDlg,
UINT uMessage,
WPARAM wParam,
LPARAM lParam)
{
LPPSHNOTIFY lpShn;
LPWSTR lpBuf, b;
DWORD v;
CHAR bn[32];
switch (uMessage) {
case WM_INITDIALOG:
{
startPage = 3;
if (!bpropCentered)
apxCenterWindow(GetParent(hDlg), NULL);
bpropCentered = TRUE;
if ((lpBuf = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"Jvm")) != NULL) {
if (!lstrcmpiW(lpBuf, L"auto")) {
CheckDlgButton(hDlg, IDC_PPJAUTO, BST_CHECKED);
apxFree(lpBuf);
lpBuf = apxGetJavaSoftRuntimeLib(hPool);
EnableWindow(GetDlgItem(hDlg, IDC_PPJJVM), FALSE);
EnableWindow(GetDlgItem(hDlg, IDC_PPJBJVM), FALSE);
}
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPJJVM, lpBuf);
apxFree(lpBuf);
}
}
if ((lpBuf = apxRegistryGetStringW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"Classpath")) != NULL) {
SetDlgItemTextW(hDlg, IDC_PPJCLASSPATH, lpBuf);
apxFree(lpBuf);
}
if ((lpBuf = apxRegistryGetMzStrW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"Options", NULL, NULL)) != NULL) {
LPWSTR p = apxMszToCRLFW(hPool, lpBuf);
SetDlgItemTextW(hDlg, IDC_PPJOPTIONS, p);
apxFree(lpBuf);
apxFree(p);
}
if ((lpBuf = apxRegistryGetMzStrW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"Options9", NULL, NULL)) != NULL) {
LPWSTR p = apxMszToCRLFW(hPool, lpBuf);
SetDlgItemTextW(hDlg, IDC_PPJOPTIONS9, p);
apxFree(lpBuf);
apxFree(p);
}
v = apxRegistryGetNumberW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"JvmMs");
if (v && v != 0xFFFFFFFF) {
wsprintfA(bn, "%d", v);
SetDlgItemTextA(hDlg, IDC_PPJMS, bn);
}
v = apxRegistryGetNumberW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"JvmMx");
if (v && v != 0xFFFFFFFF) {
wsprintfA(bn, "%d", v);
SetDlgItemTextA(hDlg, IDC_PPJMX, bn);
}
v = apxRegistryGetNumberW(hRegserv, APXREG_PARAMSOFTWARE,
_s_java, L"JvmSs");
if (v && v != 0xFFFFFFFF) {
wsprintfA(bn, "%d", v);
SetDlgItemTextA(hDlg, IDC_PPJSS, bn);
}
}
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_PPJBJVM:
b = apxGetJavaSoftHome(hPool, TRUE);
lpBuf = apxGetFileNameW(hDlg, apxLoadResourceW(IDS_PPJBJVM, 0),
apxLoadResourceW(IDS_DLLFILES, 1), NULL,
b,
TRUE, NULL);
apxFree(b);
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPJJVM, lpBuf);
apxFree(lpBuf);
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 4);
}
break;
case IDC_PPJAUTO:
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 4);
if (IsDlgButtonChecked(hDlg, IDC_PPJAUTO)) {
EnableWindow(GetDlgItem(hDlg, IDC_PPJJVM), FALSE);
EnableWindow(GetDlgItem(hDlg, IDC_PPJBJVM), FALSE);
lpBuf = apxGetJavaSoftRuntimeLib(hPool);
if (lpBuf) {
SetDlgItemTextW(hDlg, IDC_PPJJVM, lpBuf);
apxFree(lpBuf);
}
}
else {
EnableWindow(GetDlgItem(hDlg, IDC_PPJJVM), TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_PPJBJVM), TRUE);
}
break;
case IDC_PPJJVM:
case IDC_PPJCLASSPATH:
case IDC_PPJOPTIONS:
case IDC_PPJOPTIONS9:
case IDC_PPJMX:
case IDC_PPJMS:
case IDC_PPJSS:
if (HIWORD(wParam) == EN_CHANGE) {
PropSheet_Changed(GetParent(hDlg), hDlg);
SET_BIT_FLAG(_propertyChanged, 4);
}
break;
}
break;
case WM_NOTIFY:
lpShn = (LPPSHNOTIFY )lParam;
switch (lpShn->hdr.code) {
case PSN_APPLY: /* sent when OK or Apply button pressed */
if (__generalJvmSave(hDlg))
PropSheet_UnChanged(GetParent(hDlg), hDlg);
else {
SET_BIT_FLAG(_propertyChanged, 4);
SetWindowLong(hDlg, DWLP_MSGRESULT,
PSNRET_INVALID_NOCHANGEPAGE);
return TRUE;
}
break;
}
break;
default:
break;
}
return FALSE;
}