windows-nt/Source/XPSP1/NT/termsrv/license/lrwizapi/progress.cpp
2020-09-26 16:20:57 +08:00

200 lines
5.3 KiB
C++

//Copyright (c) 1998 - 1999 Microsoft Corporation
#include "precomp.h"
#include "commdlg.h"
LRW_DLG_INT CALLBACK
ProgressDlgProc(
IN HWND hwnd,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam
)
{
BOOL bStatus = TRUE;
PageInfo *pi = (PageInfo *)LRW_GETWINDOWLONG( hwnd, LRW_GWL_USERDATA );
switch (uMsg)
{
case WM_INITDIALOG:
{
pi = (PageInfo *)((LPPROPSHEETPAGE)lParam)->lParam;
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, (LRW_LONG_PTR)pi );
//
//Set the Font for the Title Fields
//
SetControlFont( pi->hBigBoldFont, hwnd, IDC_BIGBOLDTITLE);
}
break;
case WM_DESTROY:
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL );
break;
case WM_COMMAND:
if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_NEXTACTION)
{
if (SendDlgItemMessage(hwnd, IDC_NEXTACTION, BM_GETCHECK,
(WPARAM)0,(LPARAM)0) == BST_CHECKED)
{
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT);
}
else
{
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_FINISH);
}
}
break;
case WM_NOTIFY:
{
DWORD dwNextPage = 0;
LPNMHDR pnmh = (LPNMHDR)lParam;
switch( pnmh->code )
{
case PSN_SETACTIVE:
{
DWORD dwRetCode = 0;
DWORD dwErrorCode = 0;
TCHAR szBuf[LR_MAX_MSG_TEXT];
TCHAR szMsg[LR_MAX_MSG_TEXT];
dwRetCode = LRGetLastRetCode();
//
// If everything successful, display the message depending
// on the Mode
//
SendDlgItemMessage(hwnd, IDC_NEXTACTION, BM_SETCHECK,
(WPARAM)BST_UNCHECKED,(LPARAM)0);
ShowWindow(GetDlgItem(hwnd, IDC_NEXTACTION), SW_HIDE);
ShowWindow(GetDlgItem(hwnd, IDC_BTN_PRINT), SW_HIDE);
if (dwRetCode == ERROR_SUCCESS)
{
LoadString(GetInstanceHandle(), IDS_FINALSUCCESSMESSAGE, szBuf,LR_MAX_MSG_TEXT);
SetDlgItemText(hwnd, IDC_MESSAGE, szBuf);
switch (GetGlobalContext()->GetWizAction())
{
case WIZACTION_CONTINUEREGISTERLS:
case WIZACTION_REGISTERLS:
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT);
ShowWindow(GetDlgItem(hwnd, IDC_NEXTACTION), SW_SHOW);
dwRetCode = IDS_MSG_CERT_INSTALLED;
SendDlgItemMessage(hwnd, IDC_NEXTACTION, BM_SETCHECK,
(WPARAM)BST_CHECKED,(LPARAM)0);
SetReFresh(1);
break;
case WIZACTION_DOWNLOADLKP:
case WIZACTION_DOWNLOADLASTLKP:
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_FINISH);
dwRetCode = IDS_MSG_LKP_PROCESSED;
SetReFresh(1);
break;
case WIZACTION_REREGISTERLS:
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_FINISH);
dwRetCode = IDS_MSG_CERT_REISSUED;
SetReFresh(1);
break;
case WIZACTION_UNREGISTERLS:
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_FINISH);
dwRetCode = IDS_MSG_CERT_REVOKED;
SetReFresh(1);
break;
default:
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_FINISH);
break;
}
SetLRState(LRSTATE_NEUTRAL);
LoadString(GetInstanceHandle(),dwRetCode,szMsg,LR_MAX_MSG_TEXT);
}
else //Include the Error code , if any ,in the msg
{
LoadString(GetInstanceHandle(), IDS_FINALFAILMESSAGE, szBuf,LR_MAX_MSG_TEXT);
SetDlgItemText(hwnd, IDC_MESSAGE, szBuf);
LoadString(GetInstanceHandle(),dwRetCode,szBuf,LR_MAX_MSG_TEXT);
dwErrorCode = LRGetLastError();
if( dwErrorCode != 0)
{
_stprintf(szMsg,szBuf,dwErrorCode);
}
else
{
_tcscpy(szMsg,szBuf);
}
//Enable Back button in case of error
// LRPop();
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_BACK);
}
SetDlgItemText(hwnd,IDC_EDIT1,szMsg);
}
break;
case PSN_WIZNEXT:
if (SendDlgItemMessage(hwnd, IDC_NEXTACTION, BM_GETCHECK,
(WPARAM)0,(LPARAM)0) == BST_CHECKED)
{
switch (GetGlobalContext()->GetWizAction())
{
case WIZACTION_REGISTERLS:
case WIZACTION_CONTINUEREGISTERLS:
// Go to Obtain LKPs
// Go to the PIN screen
DWORD dwStatus;
DWORD dwRetCode = GetGlobalContext()->GetLSCertificates(&dwStatus);
// Error Handling $$BM
GetGlobalContext()->ClearWizStack();
dwNextPage = IDD_WELCOME;
if (GetGlobalContext()->GetActivationMethod() == CONNECTION_INTERNET)
{
GetGlobalContext()->SetLRState(LRSTATE_NEUTRAL);
GetGlobalContext()->SetLSStatus(LSERVERSTATUS_REGISTER_INTERNET);
}
else
{
GetGlobalContext()->SetLRState(LRSTATE_NEUTRAL);
GetGlobalContext()->SetLSStatus(LSERVERSTATUS_REGISTER_OTHER);
}
GetGlobalContext()->SetWizAction(WIZACTION_DOWNLOADLKP);
break;
}
LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage);
bStatus = -1;
}
break;
case PSN_WIZBACK:
dwNextPage = LRPop();
LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage);
bStatus = -1;
break;
default:
bStatus = FALSE;
break;
}
}
break;
default:
bStatus = FALSE;
break;
}
return bStatus;
}