/****************************************************************************\ * * gendlg.cpp * * Created: William Taylor (wtaylor) 01/22/01 * * MS Ratings General Property Page * \****************************************************************************/ #include "msrating.h" #include "mslubase.h" #include "gendlg.h" // CGeneralDialog #include "debug.h" // TraceMsg() #include "chngdlg.h" // CChangePasswordDialog #include // Help Context ID's #include // SHWinHelpOnDemandWrap() and MLLoadStringA() DWORD CGeneralDialog::aIds[] = { IDC_STATIC7, IDH_IGNORE, IDC_STATIC1, IDH_RATINGS_CHANGE_PASSWORD_BUTTON, IDC_STATIC2, IDH_RATINGS_CHANGE_PASSWORD_BUTTON, IDC_STATIC3, IDH_RATINGS_CHANGE_PASSWORD_BUTTON, IDC_FINDRATINGS, IDH_FIND_RATING_SYSTEM_BUTTON, IDC_PROVIDER, IDH_RATINGS_RATING_SYSTEM_BUTTON, IDC_UNRATED, IDH_RATINGS_UNRATED_CHECKBOX, IDC_PLEASE_MOMMY, IDH_RATINGS_OVERRIDE_CHECKBOX, IDC_STATIC4, IDH_RATINGS_RATING_SYSTEM_TEXT, IDC_STATIC5, IDH_RATINGS_RATING_SYSTEM_TEXT, IDC_STATIC6, IDH_RATINGS_RATING_SYSTEM_TEXT, IDC_CHANGE_PASSWORD, IDH_RATINGS_CHANGE_PASSWORD_BUTTON, 0,0 }; CGeneralDialog::CGeneralDialog( PRSD * p_pPRSD ) { ASSERT( p_pPRSD ); m_pPRSD = p_pPRSD; } LRESULT CGeneralDialog::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { PRSD * pPRSD = m_pPRSD; ASSERT( pPRSD ); if ( ! pPRSD ) { TraceMsg( TF_ERROR, "CApprovedSitesDialog::OnInitDialog() - pPRSD is NULL!" ); return 0L; } if (pPRSD->pPU != NULL) { CheckDlgButton( IDC_UNRATED, pPRSD->pPU->fAllowUnknowns?BST_CHECKED:BST_UNCHECKED); CheckDlgButton( IDC_PLEASE_MOMMY, pPRSD->pPU->fPleaseMom?BST_CHECKED:BST_UNCHECKED); } SetButtonText(); PostMessage( WM_USER,(WPARAM) 0,(LPARAM) 0); bHandled = FALSE; return 1L; // Let the system set the focus } LRESULT CGeneralDialog::OnUser(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if (gPRSI->lpszFileName!=NULL) { ::SetFocus(GetDlgItem(IDC_PROVIDER)); DoProviderDialog( m_hWnd,gPRSI ); gPRSI->lpszFileName=NULL; } return 0L; } LRESULT CGeneralDialog::OnProvider(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { PRSD * pPRSD = m_pPRSD; ASSERT( pPRSD ); if ( ! pPRSD ) { TraceMsg( TF_ERROR, "CGeneralDialog::OnProvider() - pPRSD is NULL!" ); return 0L; } if ( DoProviderDialog( m_hWnd, pPRSD->pPRSI ) ) { pPRSD->fNewProviders = TRUE; MarkChanged(); // $BUG - $BUG - The Bureau List is on the Advanced Dialog so this seems incorrect!! // FillBureauList(hDlg, pPRSD->pPRSI); } return 1L; } LRESULT CGeneralDialog::OnFindRatings(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { BOOL fSuccess=FALSE; HINSTANCE hShell32=::LoadLibrary(::szShell32); if(hShell32!=NULL) { PFNSHELLEXECUTE pfnShellExecute=(PFNSHELLEXECUTE)::GetProcAddress(hShell32,::szShellExecute); if(pfnShellExecute!=NULL) { fSuccess=(*pfnShellExecute)(m_hWnd,NULL,(char *) &szFINDSYSTEM,NULL,NULL,SW_SHOW)!=NULL; } ::FreeLibrary(hShell32); } if (!fSuccess) { NLS_STR nlsMessage(MAX_RES_STR_LEN); //Check for NULL; Otherwise, nlsMessage.QueryPch() will fault later. if(nlsMessage) { NLS_STR nlsTemp(STR_OWNERALLOC,(char *) &szFINDSYSTEM); const NLS_STR *apnls[] = { &nlsTemp, NULL }; if ( WN_SUCCESS == (nlsMessage.LoadString(IDS_CANT_LAUNCH, apnls)) ) { MyMessageBox(m_hWnd,nlsMessage.QueryPch(),IDS_GENERIC,MB_OK|MB_ICONSTOP); } } } return 1L; } LRESULT CGeneralDialog::OnMarkChanged(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { MarkChanged(); return 1L; } LRESULT CGeneralDialog::OnChangePassword(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { int idsMessage = 0; if ( SUCCEEDED( VerifySupervisorPassword() ) ) { CChangePasswordDialog changePasswordDlg; if ( changePasswordDlg.DoModal( m_hWnd ) ) { idsMessage = IDS_PASSWORD_CHANGED; } } else { CChangePasswordDialog createPassDlg; if ( createPassDlg.DoModal( m_hWnd ) ) { SetButtonText(); idsMessage = IDS_PASSWORD_CREATED; } } if ( idsMessage ) { MyMessageBox( m_hWnd, idsMessage, IDS_GENERIC, MB_OK | MB_ICONINFORMATION); MarkChanged(); } return 1L; } LRESULT CGeneralDialog::OnApply(int idCtrl, LPNMHDR pnmh, BOOL& bHandled) { LPPSHNOTIFY lpPSHNotify = (LPPSHNOTIFY) pnmh; /*do apply stuff*/ PRSD * pPRSD = m_pPRSD; ASSERT( pPRSD ); if ( ! pPRSD ) { TraceMsg( TF_ERROR, "CGeneralDialog::OnApply() - pPRSD is NULL!" ); return 0L; } if (pPRSD->pPU != NULL) { pPRSD->pPU->fAllowUnknowns = (IsDlgButtonChecked(IDC_UNRATED) & BST_CHECKED) ? TRUE: FALSE; pPRSD->pPU->fPleaseMom = (IsDlgButtonChecked(IDC_PLEASE_MOMMY) & BST_CHECKED) ? TRUE: FALSE; } return PSNRET_NOERROR; } LRESULT CGeneralDialog::OnReset(int idCtrl, LPNMHDR pnmh, BOOL& bHandled) { return 0L; } LRESULT CGeneralDialog::OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { SHWinHelpOnDemandWrap((HWND)((LPHELPINFO)lParam)->hItemHandle, ::szHelpFile, HELP_WM_HELP, (DWORD_PTR)(LPSTR)aIds); return 0L; } LRESULT CGeneralDialog::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { SHWinHelpOnDemandWrap((HWND)wParam, ::szHelpFile, HELP_CONTEXTMENU, (DWORD_PTR)(LPVOID)aIds); return 0L; } void CGeneralDialog::SetButtonText( void ) { int idsButton; if ( SUCCEEDED( VerifySupervisorPassword() ) ) { idsButton = IDS_CHANGE_PASSWORD; } else { idsButton = IDS_CREATE_PASSWORD; } HWND hwndControl = GetDlgItem( IDC_CHANGE_PASSWORD ); ASSERT( hwndControl ); if ( hwndControl != NULL ) { CString strButtonText; strButtonText.LoadString( idsButton ); ::SetWindowText( hwndControl, strButtonText ); } }