Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

391 lines
6.6 KiB

#include <windows.h>
#include <winspool.h>
#include <stdlib.h>
#include "spltypes.h"
#include "local.h"
#include "dialogs.h"
WCHAR szWindows[] = L"windows";
WCHAR szINIKey_DeviceNotSelectedTimeout[] = L"DeviceNotSelectedTimeout";
WCHAR szINIKey_TransmissionRetryTimeout[] = L"TransmissionRetryTimeout";
/* Local functions:
*/
BOOL
PortNameInitDialog(
HWND hwnd,
LPWSTR *ppPortName
);
BOOL
PortNameCommandOK(
HWND hwnd
);
BOOL
PortNameCommandCancel(
HWND hwnd
);
BOOL
PortIsValid(
LPWSTR pPortName
);
BOOL
ConfigureLPTPortInitDialog(
HWND hwnd
);
BOOL
ConfigureLPTPortCommandOK(
HWND hwnd
);
BOOL
ConfigureLPTPortCommandCancel(
HWND hwnd
);
BOOL
PrintToFileInitDialog(
HWND hwnd,
LPWSTR *ppFileName
);
BOOL
PrintToFileCommandOK(
HWND hwnd
);
BOOL
PrintToFileCommandCancel(
HWND hwnd
);
/*
*
*/
BOOL APIENTRY
PortNameDlg(
HWND hwnd,
WORD msg,
WPARAM wparam,
LPARAM lparam
)
{
switch(msg)
{
case WM_INITDIALOG:
return PortNameInitDialog(hwnd, (LPWSTR *)lparam);
case WM_COMMAND:
switch (LOWORD(wparam))
{
case IDOK:
return PortNameCommandOK(hwnd);
case IDCANCEL:
return PortNameCommandCancel(hwnd);
}
}
return FALSE;
}
/*
*
*/
BOOL
PortNameInitDialog(
HWND hwnd,
LPWSTR *ppPortName
)
{
SetWindowLong (hwnd, GWL_USERDATA, (LONG)ppPortName);
SendDlgItemMessage (hwnd, IDD_PN_EF_PORTNAME, EM_LIMITTEXT, MAX_PATH, 0);
return TRUE;
}
/*
*
*/
BOOL
PortNameCommandOK(
HWND hwnd
)
{
LPWSTR *ppPortName;
WCHAR string[MAX_PATH];
ppPortName = (LPWSTR *)GetWindowLong( hwnd, GWL_USERDATA );
GetDlgItemText( hwnd, IDD_PN_EF_PORTNAME, string, sizeof string );
if( PortIsValid( string ) )
{
*ppPortName = AllocSplStr( string );
EndDialog( hwnd, TRUE );
}
else
Message( hwnd, MSG_ERROR, IDS_ERROR, IDS_INVALID_PORT_NAME_S, *ppPortName );
return TRUE;
}
/*
*
*/
BOOL
PortNameCommandCancel(
HWND hwnd
)
{
EndDialog( hwnd, FALSE );
return TRUE;
}
/* PortIsValid
*
* Validate the port by attempting to create/open it.
*/
BOOL
PortIsValid(
LPWSTR pPortName
)
{
HANDLE hFile;
BOOL Valid;
hFile = CreateFile( pPortName, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL );
if( hFile != (HANDLE)-1 )
{
CloseHandle( hFile );
Valid = TRUE;
}
else
Valid = FALSE;
return Valid;
}
/*
*
*/
BOOL APIENTRY
ConfigureLPTPortDlg(
HWND hwnd,
WORD msg,
WPARAM wparam,
LPARAM lparam
)
{
switch(msg)
{
case WM_INITDIALOG:
return ConfigureLPTPortInitDialog(hwnd);
case WM_COMMAND:
switch (LOWORD(wparam))
{
case IDOK:
return ConfigureLPTPortCommandOK(hwnd);
case IDCANCEL:
return ConfigureLPTPortCommandCancel(hwnd);
}
}
return FALSE;
}
/*
*
*/
BOOL
ConfigureLPTPortInitDialog(
HWND hwnd
)
{
DWORD DeviceNotSelectedTimeout;
DWORD TransmissionRetryTimeout;
SendDlgItemMessage( hwnd, IDD_CL_EF_DEVICENOTSELECTED,
EM_LIMITTEXT, TIMEOUT_STRING_MAX, 0 );
SendDlgItemMessage( hwnd, IDD_CL_EF_TRANSMISSIONRETRY,
EM_LIMITTEXT, TIMEOUT_STRING_MAX, 0 );
DeviceNotSelectedTimeout = GetProfileInt( szWindows,
szINIKey_DeviceNotSelectedTimeout,
15 );
SetDlgItemInt( hwnd, IDD_CL_EF_DEVICENOTSELECTED,
DeviceNotSelectedTimeout, FALSE );
TransmissionRetryTimeout = GetProfileInt( szWindows,
szINIKey_TransmissionRetryTimeout,
45 );
SetDlgItemInt( hwnd, IDD_CL_EF_TRANSMISSIONRETRY,
TransmissionRetryTimeout, FALSE );
return TRUE;
}
/*
*
*/
BOOL
ConfigureLPTPortCommandOK(
HWND hwnd
)
{
WCHAR strDeviceNotSelectedTimeout[TIMEOUT_STRING_MAX+1];
WCHAR strTransmissionRetryTimeout[TIMEOUT_STRING_MAX+1];
DWORD DeviceNotSelectedTimeout;
DWORD TransmissionRetryTimeout;
GetDlgItemText( hwnd, IDD_CL_EF_DEVICENOTSELECTED,
strDeviceNotSelectedTimeout,
sizeof strDeviceNotSelectedTimeout );
DeviceNotSelectedTimeout = (DWORD)atoi( strDeviceNotSelectedTimeout );
GetDlgItemText( hwnd, IDD_CL_EF_TRANSMISSIONRETRY,
strTransmissionRetryTimeout,
sizeof strTransmissionRetryTimeout );
TransmissionRetryTimeout = (DWORD)atoi( strTransmissionRetryTimeout );
if( WITHINRANGE( DeviceNotSelectedTimeout, TIMEOUT_MIN, TIMEOUT_MAX )
&& WITHINRANGE( TransmissionRetryTimeout, TIMEOUT_MIN, TIMEOUT_MAX ) )
{
WriteProfileString( szWindows, szINIKey_DeviceNotSelectedTimeout,
strDeviceNotSelectedTimeout );
WriteProfileString( szWindows, szINIKey_TransmissionRetryTimeout,
strTransmissionRetryTimeout );
EndDialog( hwnd, TRUE );
}
return TRUE;
}
/*
*
*/
BOOL
ConfigureLPTPortCommandCancel(
HWND hwnd
)
{
EndDialog(hwnd, FALSE);
return TRUE;
}
/*
*
*/
BOOL APIENTRY
PrintToFileDlg(
HWND hwnd,
WORD msg,
WPARAM wparam,
LPARAM lparam
)
{
switch(msg)
{
case WM_INITDIALOG:
return PrintToFileInitDialog(hwnd, (LPWSTR *)lparam);
case WM_COMMAND:
switch (LOWORD(wparam))
{
case IDOK:
return PrintToFileCommandOK(hwnd);
case IDCANCEL:
return PrintToFileCommandCancel(hwnd);
}
}
return FALSE;
}
/*
*
*/
BOOL
PrintToFileInitDialog(
HWND hwnd,
LPWSTR *ppFileName
)
{
SetWindowLong( hwnd, GWL_USERDATA, (LONG)ppFileName );
SendDlgItemMessage( hwnd, IDD_PF_EF_OUTPUTFILENAME, EM_LIMITTEXT, MAX_PATH, 0);
// EnableWindow( GetDlgItem( hwnd, IDOK ), FALSE );
return TRUE;
}
/*
*
*/
BOOL
PrintToFileCommandOK(
HWND hwnd
)
{
WCHAR strOutputFileName[MAX_PATH+1];
LPWSTR *ppFileName;
GetDlgItemText( hwnd, IDD_PF_EF_OUTPUTFILENAME,
strOutputFileName,
sizeof strOutputFileName );
if( *strOutputFileName )
{
ppFileName = (LPWSTR *)GetWindowLong( hwnd, GWL_USERDATA );
*ppFileName = AllocSplStr( strOutputFileName );
EndDialog( hwnd, (BOOL)*ppFileName );
}
else
EndDialog( hwnd, FALSE );
return TRUE;
}
/*
*
*/
BOOL
PrintToFileCommandCancel(
HWND hwnd
)
{
EndDialog(hwnd, FALSE);
return TRUE;
}