windows-nt/Source/XPSP1/NT/printscan/fax/admin/faxclient/cfg/cpl.c

172 lines
3.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#include <windows.h>
#include <windowsx.h>
#include <winspool.h>
#include "faxutil.h"
#include "faxreg.h"
#include "faxcfgrs.h"
#include "faxhelp.h"
#include "faxcfg.h"
#include "devmode.h"
VOID
LimitTextFields(
HWND hDlg,
INT *pLimitInfo
)
/*++
Routine Description:
Limit the maximum length for a number of text fields
Arguments:
hDlg - Specifies the handle to the dialog window
pLimitInfo - Array of text field control IDs and their maximum length
ID for the 1st text field, maximum length for the 1st text field
ID for the 2nd text field, maximum length for the 2nd text field
...
0
Note: The maximum length counts the NUL-terminator.
Return Value:
NONE
--*/
{
while (*pLimitInfo != 0) {
SendDlgItemMessage(hDlg, pLimitInfo[0], EM_SETLIMITTEXT, pLimitInfo[1]-1, 0);
pLimitInfo += 2;
}
}
PVOID
MyGetPrinter(
HANDLE hPrinter,
DWORD level
)
/*++
Routine Description:
Wrapper function for GetPrinter spooler API
Arguments:
hPrinter - Identifies the printer in question
level - Specifies the level of PRINTER_INFO_x structure requested
Return Value:
Pointer to a PRINTER_INFO_x structure, NULL if there is an error
--*/
{
PBYTE pPrinterInfo = NULL;
DWORD cbNeeded;
if (!GetPrinter(hPrinter, level, NULL, 0, &cbNeeded) &&
GetLastError() == ERROR_INSUFFICIENT_BUFFER &&
(pPrinterInfo = MemAlloc(cbNeeded)) &&
GetPrinter(hPrinter, level, pPrinterInfo, cbNeeded, &cbNeeded))
{
return pPrinterInfo;
}
DebugPrint((TEXT("GetPrinter failed: %d\n"), GetLastError()));
MemFree(pPrinterInfo);
return NULL;
}
INT
DisplayMessageDialog(
HWND hwndParent,
UINT type,
INT titleStrId,
INT formatStrId,
...
)
/*++
Routine Description:
Display a message dialog box
Arguments:
hwndParent - Specifies a parent window for the error message dialog
type - Specifies the type of message box to be displayed
titleStrId - Title string (could be a string resource ID)
formatStrId - Message format string (could be a string resource ID)
...
Return Value:
Same as the return value from MessageBox
--*/
{
LPTSTR pTitle, pFormat, pMessage;
INT result;
va_list ap;
pTitle = pFormat = pMessage = NULL;
if ((pTitle = AllocStringZ(MAX_TITLE_LEN)) &&
(pFormat = AllocStringZ(MAX_STRING_LEN)) &&
(pMessage = AllocStringZ(MAX_MESSAGE_LEN)))
{
//
// Load dialog box title string resource
//
if (titleStrId == 0)
titleStrId = IDS_ERROR_CFGDLGTITLE;
LoadString(ghInstance, titleStrId, pTitle, MAX_TITLE_LEN);
//
// Load message format string resource
//
LoadString(ghInstance, formatStrId, pFormat, MAX_STRING_LEN);
//
// Compose the message string
//
va_start(ap, formatStrId);
wvsprintf(pMessage, pFormat, ap);
va_end(ap);
//
// Display the message box
//
if (type == 0)
type = MB_OK | MB_ICONERROR;
result = MessageBox(hwndParent, pMessage, pTitle, type);
} else {
MessageBeep(MB_ICONHAND);
result = 0;
}
MemFree(pTitle);
MemFree(pFormat);
MemFree(pMessage);
return result;
}