windows-nt/Source/XPSP1/NT/printscan/ui/printui/forms.hxx
2020-09-26 16:20:57 +08:00

289 lines
4.8 KiB
C++

/*++
Copyright (C) Microsoft Corporation, 1995 - 1998
All rights reserved.
Module Name:
forms.hxx
Abstract:
Printer Forms
Author:
Steve Kiraly (SteveKi) 11/20/95
Lazar Ivanov (LazarI) Jun-2000 (major changes)
Revision History:
--*/
#ifndef _FORMS_HXX
#define _FORMS_HXX
#define HANDLE_FIXED_NEW_HANDLE_RETURNED 0
#define HANDLE_NEEDS_FIXING_NO_PRINTERS_FOUND 1
#define HANDLE_FIX_NOT_NEEDED 2
#define HANDLE_FIXED_NEW_HANDLE_RETURNED_ACCESS_CHANGED 3
#define FORMS_NAME_MAX (CCHFORMNAME-1)
#define FORMS_PARAM_MAX 32
#define MAX_INPUT_CONTROLS 6
#define CCH_MAX_UNITS 16
#define SETUNITS( hwnd, fMetric ) \
CheckRadioButton( hwnd, IDD_FM_RB_METRIC, IDD_FM_RB_ENGLISH, \
( (fMetric) ? IDD_FM_RB_METRIC : IDD_FM_RB_ENGLISH ) )
#define GETUNITS( hwnd ) \
IsDlgButtonChecked( hwnd, IDD_FM_RB_METRIC )
typedef struct _FORMS_DLG_DATA
{
DWORD AccessGranted;
LPTSTR pServerName;
HANDLE hPrinter;
PFORM_INFO_1 pFormInfo;
DWORD cForms;
BOOL Units; // TRUE == metric
BOOL bNeedClose;
LPCTSTR pszComputerName;
UINT uMetricMeasurement;
TCHAR szDecimalPoint[2];
// use this when in prop sheet to know when to
// convert "Cancel" to "Close" and when to hold
// closing the property sheet in case of an error.
BOOL bFormChanged;
DWORD dwLastError;
} FORMS_DLG_DATA, *PFORMS_DLG_DATA;
BOOL
FormsInitDialog(
HWND hwnd,
PFORMS_DLG_DATA pFormsDlgData
);
BOOL
FormsCommandOK(
HWND hwnd
);
BOOL
FormsCommandCancel(
HWND hwnd
);
BOOL
FormsCommandAddForm(
HWND hwnd
);
BOOL
FormsCommandDelForm(
HWND hwnd
);
BOOL
FormsCommandFormsSelChange(
HWND hwnd
);
BOOL
FormsCommandUnits(
HWND hwnd
);
VOID
InitializeFormsData(
HWND hwnd,
PFORMS_DLG_DATA
pFormsDlgData,
BOOL ResetList
);
LPFORM_INFO_1
GetFormsList(
HANDLE hPrinter,
PDWORD pNumberOfForms
);
INT _cdecl
CompareFormNames(
const VOID *p1,
const VOID *p2 );
VOID
SetFormsComputerName(
HWND hwnd,
PFORMS_DLG_DATA pFormsDlgData
);
VOID
SetFormDescription(
HWND hwnd,
LPFORM_INFO_1 pFormInfo,
BOOL Metric
);
BOOL
GetFormDescription(
IN HWND hwnd,
OUT LPFORM_INFO_1 pFormInfo,
IN BOOL bDefaultMetric,
OUT PUINT puIDFailed
);
INT
GetFormIndex(
LPTSTR pFormName,
LPFORM_INFO_1 pFormInfo,
DWORD cForms );
LPTSTR
GetFormName(
HWND hwnd
);
BOOL
SetValue(
HWND hwnd,
DWORD uID,
LONG lValueInPoint001mm,
BOOL bMetric
);
BOOL
GetValue(
HWND hwnd,
DWORD uID,
LONG lCurrentValueInPoint001mm,
BOOL bDefaultMetric,
PLONG plValueInPoint001mm
);
VOID
SetDlgItemTextFromResID(
HWND hwnd,
INT idCtl,
INT idRes
);
VOID
EnableDialogFields(
HWND hwnd,
PFORMS_DLG_DATA pFormsDlgData
);
LPTSTR
AllocStr(
LPCTSTR pszStr
);
VOID
FreeStr(
LPTSTR pszStr
);
LONG FrameCommandForms(
IN HWND hWnd,
IN LPCTSTR pszServerName
);
BOOL APIENTRY
FormsDlg(
HWND hwnd,
UINT msg,
WPARAM wparam,
LPARAM lparam
);
PVOID
FormsInit(
IN LPCTSTR pszServerName,
IN HANDLE hPrintserver,
IN BOOL bAdministrator,
IN LPCTSTR pszComputerName
);
VOID
FormsFini(
IN PVOID p
);
BOOL
bEnumForms(
IN HANDLE hPrinter,
IN DWORD dwLevel,
IN PBYTE *ppBuff,
IN PDWORD pcReturned
);
BOOL
FormsNewForms(
IN HWND hWnd
);
VOID
vFormsEnableEditFields(
IN HWND hWnd,
IN BOOL bState
);
BOOL
FormsCommandNameChange(
IN HWND hWnd,
IN WPARAM wParam,
IN LPARAM lParam
);
UINT
sFormsFixServerHandle(
IN HANDLE hPrintServer,
IN LPCTSTR pszServerName,
IN BOOL bAdministrator,
IN HANDLE *phPrinter
);
BOOL
String2Value(
IN PFORMS_DLG_DATA pFormsDlgData,
IN LPCTSTR pszValue,
IN BOOL bDefaultMetric,
IN LONG lCurrentValueInPoint001mm,
OUT PLONG plValueInPoint001mm
);
BOOL
Value2String(
IN PFORMS_DLG_DATA pFormsDlgData,
IN LONG lValueInPoint001mm,
IN BOOL bMetric,
IN BOOL bAppendMetric,
IN UINT cchMaxChars,
OUT LPTSTR szOutBuffer
);
VOID
FormChanged(
IN OUT PFORMS_DLG_DATA pFormsDlgData
);
BOOL
Forms_IsThereCommitedChanges(
IN PVOID pFormsData
);
DWORD
Forms_GetLastError(
IN PVOID pFormsData
);
#endif