windows-nt/Source/XPSP1/NT/printscan/fax/samples/ncfsp/config.cpp
2020-09-26 16:20:57 +08:00

111 lines
2.8 KiB
C++

#include "nc.h"
#pragma hdrstop
BOOL
CreateNewAccount(
HWND hDlg
);
extern "C"
LRESULT CALLBACK
FaxDevDlgProc(
HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam
)
{
static BOOL IgnoreChange = FALSE;
LPNMHDR pNMHdr;
WCHAR Buffer[4096];
switch( message ) {
case WM_INITDIALOG:
break;
case WM_COMMAND:
if (HIWORD(wParam) == EN_CHANGE && !IgnoreChange) {
PropSheet_Changed( GetParent(hwnd), hwnd );
}
if (HIWORD(wParam) == BN_CLICKED) {
CreateNewAccount( hwnd );
}
break;
case WM_NOTIFY:
pNMHdr = (LPNMHDR) lParam;
switch (pNMHdr->code) {
case PSN_SETACTIVE:
IgnoreChange = TRUE;
SetDlgItemText( hwnd, IDC_SERVER, ConfigData.ServerName );
SetDlgItemText( hwnd, IDC_USERNAME, ConfigData.UserName );
SetDlgItemText( hwnd, IDC_PASSWORD, ConfigData.Password );
IgnoreChange = FALSE;
break;
case PSN_APPLY:
GetDlgItemText( hwnd, IDC_SERVER, Buffer, sizeof(Buffer)/sizeof(WCHAR) );
MemFree( ConfigData.ServerName );
ConfigData.ServerName = StringDup( Buffer );
GetDlgItemText( hwnd, IDC_USERNAME, Buffer, sizeof(Buffer)/sizeof(WCHAR) );
MemFree( ConfigData.UserName );
ConfigData.UserName = StringDup( Buffer );
GetDlgItemText( hwnd, IDC_PASSWORD, Buffer, sizeof(Buffer)/sizeof(WCHAR) );
MemFree( ConfigData.Password );
ConfigData.Password = StringDup( Buffer );
SetNcConfig( &ConfigData );
PropSheet_UnChanged( GetParent(hwnd), hwnd );
break;
}
break;
case WM_HELP:
case WM_CONTEXTMENU:
break;
}
return FALSE;
}
BOOL WINAPI
FaxDevConfigure(
OUT HPROPSHEETPAGE *PropSheetPage
)
{
PROPSHEETPAGE psp;
if (MyHeapHandle == NULL) {
MyHeapHandle = GetProcessHeap();
HeapInitialize( MyHeapHandle, NULL, NULL, 0 );
InitCommonControls();
InitializeStringTable();
GetNcConfig( &ConfigData );
}
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.dwFlags = PSP_DEFAULT;
psp.hInstance = MyhInstance;
psp.pszTemplate = MAKEINTRESOURCE( IDD_CONFIG );
psp.hIcon = NULL;
psp.pszTitle = NULL;
psp.pfnDlgProc = (DLGPROC) FaxDevDlgProc;
psp.lParam = 0;
psp.pfnCallback = NULL;
psp.pcRefParent = NULL;
*PropSheetPage = CreatePropertySheetPage( &psp );
return *PropSheetPage != NULL;
}