PRSHTDLG.CPP

/////////////////////////////////////////////////////////////////////////////// 
//
// File Name
// PRSHTDLG.CPP
//
// Description
// This file contains the dialogproc that handles messages for
// the property page extended onto the Tools Options Property Sheet
//
// Revision: 1.00
//
// Copyright (c) 1992-1995 Microsoft Corporation. All rights reserved.
//

#include "EVNTEXT.H"


///////////////////////////////////////////////////////////////////////////////
// FUNCTION SignatureOptionsDlgProc
//
// Parameters
// hDlg - handle to modeless dialog, the property page
// uMsg - message
// wParam - wParam of wndproc, not used
// lParam - lParam of wndproc, points to NMHDR for notifications
//
// Purpose
// Handles the notifications sent for managing a custom property page
// to allow user to turn Signtures on or off.
//
// Return Value
// Appropriate return values are set in the DWL_MSGRESULT longword
// of the dialog handle. See Win95 Common Controls documentation on
// Property Sheets for more information.
//

BOOL CALLBACK SignatureOptionsDlgProc(HWND hDlg, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
BOOL bMsgResult;
static HBRUSH hBrush;
static COLORREF GrayColor;
static LPNMHDR pnmhdr;
static HWND hWndPage;

switch (uMsg)
{

case WM_INITDIALOG:
{
LOGBRUSH lb;

GrayColor = (COLORREF)GetSysColor(COLOR_BTNFACE);

memset(&lb, 0, sizeof(LOGBRUSH));
lb.lbStyle = BS_SOLID;
lb.lbColor = GrayColor;
hBrush = CreateBrushIndirect(&lb);

return TRUE;
}
break;

case WM_CTLCOLORDLG:
case WM_CTLCOLORBTN:
case WM_CTLCOLORSTATIC:

if (hBrush != NULL)
{
SetBkColor((HDC)wParam, GrayColor);

return (BOOL)hBrush;
}

break;

case WM_DESTROY:
{
if (hBrush != NULL)
DeleteObject(hBrush);


return TRUE;
}

case WM_COMMAND:
{
if (LOWORD(wParam) == IDC_ENABLESGN)
{
SendMessage(GetParent(hDlg), PSM_CHANGED, (WPARAM)hDlg, 0L);
bSignatureOn = SendDlgItemMessage(hDlg, IDC_ENABLESGN, BM_GETCHECK, 0, 0L);
bMsgResult = FALSE;
}
}
break;

case WM_NOTIFY:
{
pnmhdr = ((LPNMHDR) lParam);

switch ( pnmhdr->code)
{
case PSN_KILLACTIVE:
bMsgResult = FALSE; // allow this page to receive PSN_APPLY
break;

case PSN_SETACTIVE:

// initialize controls
if (bSignatureOn)
SendDlgItemMessage(hDlg, IDC_ENABLESGN, BM_SETCHECK, 1, 0L);
else
SendDlgItemMessage(hDlg, IDC_ENABLESGN, BM_SETCHECK, 0, 0L);

hWndPage = pnmhdr->hwndFrom; // to be used in WM_COMMAND

bMsgResult = FALSE; // accepts activation
break;

case PSN_APPLY:

// get user input
bSignatureOn = SendDlgItemMessage(hDlg, IDC_ENABLESGN, BM_GETCHECK, 0, 0L);

bMsgResult = PSNRET_NOERROR;
break;

case PSN_HELP:
MessageBox( pnmhdr->hwndFrom,
"Microsoft Exchange Client\n"
"Message Event Extension Sample\n"
"Microsoft (c) Corporation, 1995",
"About",
MB_OK);
bMsgResult = TRUE; // doesn't matter on this notification
break;


default:
bMsgResult = FALSE;
break;
} // switch

SetWindowLong( hDlg, DWL_MSGRESULT, bMsgResult);
break;

} // case WM_NOTIFY

default:
bMsgResult = FALSE;
break;

} // switch


return bMsgResult;
}