249 lines
6.5 KiB
C++
249 lines
6.5 KiB
C++
|
/****************************************************************************\
|
||
|
*
|
||
|
* 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 <contxids.h> // Help Context ID's
|
||
|
#include <mluisupp.h> // 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<IDD_CHANGE_PASSWORD> changePasswordDlg;
|
||
|
|
||
|
if ( changePasswordDlg.DoModal( m_hWnd ) )
|
||
|
{
|
||
|
idsMessage = IDS_PASSWORD_CHANGED;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
CChangePasswordDialog<IDD_CREATE_PASSWORD> 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 );
|
||
|
}
|
||
|
}
|