windows-nt/Source/XPSP1/NT/com/mobile/syncmgr/dll/nameit.cxx
2020-09-26 16:20:57 +08:00

248 lines
5.5 KiB
C++

//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994 - 1996.
//
// File: nameit.cxx
//
// Contents: Task wizard naming property page implementation.
//
// Classes: CNameItPage
//
// History: 11-21-1997 SusiA
//
//---------------------------------------------------------------------------
#include "precomp.h"
extern OSVERSIONINFOA g_OSVersionInfo; // osVersionInfo,
extern LANGID g_LangIdSystem; // LangId of system we are running on.
CNameItPage *g_pNameItPage = NULL;
extern CSelectDailyPage *g_pDailyPage;
//+-------------------------------------------------------------------------------
// FUNCTION: SchedWizardNameItDlgProc(HWND, UINT, WPARAM, LPARAM)
//
// PURPOSE: Callback dialog procedure for the property page
//
// PARAMETERS:
// hDlg - Dialog box window handle
// uMessage - current message
// wParam - depends on message
// lParam - depends on message
//
// RETURN VALUE:
//
// Depends on message. In general, return TRUE if we process it.
//
// COMMENTS:
//
//+-------------------------------------------------------------------------------
BOOL CALLBACK SchedWizardNameItDlgProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
switch (uMessage)
{
case WM_INITDIALOG:
{
if (g_pNameItPage)
g_pNameItPage->Initialize(hDlg);
//This handles the 256 color processing init
//for the .bmp
InitPage(hDlg,lParam);
}
break;
case WM_PAINT:
WmPaint(hDlg, uMessage, wParam, lParam);
break;
case WM_PALETTECHANGED:
WmPaletteChanged(hDlg, wParam);
break;
case WM_QUERYNEWPALETTE:
return( WmQueryNewPalette(hDlg) );
break;
case WM_ACTIVATE:
return( WmActivate(hDlg, wParam, lParam) );
break;
case WM_DESTROY:
{
Unload256ColorBitmap();
}
break;
case WM_NOTIFY:
switch (((NMHDR FAR *) lParam)->code)
{
case PSN_KILLACTIVE:
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
return 1;
break;
case PSN_RESET:
// reset to the original values
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
break;
case PSN_SETACTIVE:
PropSheet_SetWizButtons(GetParent(hDlg), PSWIZB_BACK | PSWIZB_NEXT);
break;
case PSN_WIZNEXT:
if (g_pNameItPage)
{
if (!g_pNameItPage->SetScheduleName())
{
SchedUIErrorDialog(hDlg, IERR_INVALIDSCHEDNAME);
// reset to the original values
SetWindowLongPtr(hDlg, DWLP_MSGRESULT, -1);
break;
}
}
if (g_pDailyPage)
{
g_pDailyPage->SetITrigger();
}
break;
default:
return FALSE;
}
break;
default:
return FALSE;
}
return TRUE;
}
//+--------------------------------------------------------------------------
//
// Member: CNameItPage::CNameItPage
//
// Synopsis: ctor
//
// [phPSP] - filled with prop page handle
//
// History: 11-21-1997 SusiA Stole from Task Scheduler wizard
//
//---------------------------------------------------------------------------
CNameItPage::CNameItPage(
HINSTANCE hinst,
ISyncSchedule *pISyncSched,
HPROPSHEETPAGE *phPSP)
{
ZeroMemory(&m_psp, sizeof(PROPSHEETPAGE));
g_pNameItPage = this;
m_psp.dwSize = sizeof (PROPSHEETPAGE);
m_psp.hInstance = hinst;
m_psp.dwFlags = PSP_DEFAULT;
m_psp.pszTemplate = MAKEINTRESOURCE(IDD_SCHEDWIZ_NAMEIT);
m_psp.pszIcon = NULL;
m_psp.pfnDlgProc = (DLGPROC) SchedWizardNameItDlgProc;
m_psp.lParam = 0;
m_pISyncSched = pISyncSched;
m_pISyncSched->AddRef();
#ifdef WIZARD97
m_psp.dwFlags |= PSP_HIDEHEADER;
#endif // WIZARD97
*phPSP = CreatePropertySheetPage(&m_psp);
}
//+--------------------------------------------------------------------------
//
// Member: CNameItPage::Initialize(HWND hwnd)
//
// Synopsis: initialize the name it page and set the task name to a unique
// new onestop name
//
// History: 11-21-1997 SusiA
//
//---------------------------------------------------------------------------
BOOL CNameItPage::Initialize(HWND hwnd)
{
WCHAR pwszNewName[MAX_PATH+1];
#ifndef _UNICODE
TCHAR ptszNewName[MAX_PATH+1];
#else
TCHAR *ptszNewName;
#endif // _UNICODE
DWORD dwSize = MAX_PATH;
m_hwnd = hwnd;
m_pISyncSched->GetScheduleName(&dwSize, pwszNewName);
#ifndef _UNICODE
ConvertString(ptszNewName, pwszNewName, MAX_PATH);
#else
ptszNewName = pwszNewName;
#endif
HWND hwndEdit = GetDlgItem(m_hwnd, IDC_NAMEIT);
// IE5 doesn't setup edit controls properly, review
SetCtrlFont(hwndEdit,g_OSVersionInfo.dwPlatformId,g_LangIdSystem);
// set the limit on the edit box for entering the name
SendMessage(hwndEdit,EM_SETLIMITTEXT,MAX_PATH,0);
Edit_SetText(hwndEdit, ptszNewName);
return TRUE;
}
//+--------------------------------------------------------------------------
//
// Member: BOOL CNameItPage::SetScheduleName()
//
// Synopsis: create a new schedule
//
// History: 11-21-1997 SusiA
//
//---------------------------------------------------------------------------
BOOL CNameItPage::SetScheduleName()
{
WCHAR pwszNewName[MAX_PATH+1];
HWND hwndEdit = GetDlgItem(m_hwnd, IDC_NAMEIT);
Edit_GetText(hwndEdit, pwszNewName, MAX_PATH);
if (S_OK == m_pISyncSched->SetScheduleName(pwszNewName))
{
return TRUE;
}
return FALSE;
}