mirror of https://github.com/lianthony/NT4.0
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.
1922 lines
88 KiB
1922 lines
88 KiB
/***************************************************************************
|
|
*
|
|
* File Name: HPECLUI.C
|
|
*
|
|
* Copyright (C) 1993-1996 Hewlett-Packard Company.
|
|
* All rights reserved.
|
|
*
|
|
* 11311 Chinden Blvd.
|
|
* Boise, Idaho 83714
|
|
*
|
|
* This is a part of the HP JetAdmin Printer Utility
|
|
*
|
|
* This source code is only intended as a supplement for support and
|
|
* localization of HP JetAdmin by 3rd party Operating System vendors.
|
|
* Modification of source code cannot be made without the express written
|
|
* consent of Hewlett-Packard.
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
* Author: Name
|
|
*
|
|
*
|
|
* Modification history:
|
|
* $Log: /LaserJet 5Si/hpeclui/HPECLUI.C $
|
|
*
|
|
* 52 9/26/96 11:43a Sschimpf
|
|
* Mods to fix setting the paper type for localized versions.
|
|
*
|
|
* 51 9/25/96 11:07a Sschimpf
|
|
* Comment out support for Toolbox tabs in WinNT
|
|
*
|
|
* date initials change description
|
|
*
|
|
* mm-dd-yy MJB
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
***************************************************************************/
|
|
#include <assert.h>
|
|
#include <pch_c.h>
|
|
#include <macros.h>
|
|
#include <nolocal.h>
|
|
#include <trace.h>
|
|
#include "..\help\hpprecl.hh"
|
|
#include <memory.h>
|
|
#include <string.h>
|
|
#include <applet.h>
|
|
#include "resource.h"
|
|
#include "hpeclui.h"
|
|
#include "media.h"
|
|
#include "trays.h"
|
|
#include "traylevl.h"
|
|
#include "cpanel.h"
|
|
#include "miopanel.h"
|
|
#include "alerts.h"
|
|
#include "utils.h"
|
|
#include "tips.h"
|
|
|
|
|
|
//#ifndef WIN32
|
|
//#include "ver.h"
|
|
//#endif
|
|
|
|
#define ECL_ONLY 0
|
|
#define ECL_HCI 1
|
|
#define ECL_HCO 2
|
|
#define ECL_STAPLER 3
|
|
|
|
#define MAX_CONFIGS 4
|
|
|
|
HINSTANCE hInstance = NULL;
|
|
LPHOTSPOT lpHotspot = NULL;
|
|
HFONT hFontDialog = NULL;
|
|
HPERIPHERAL hPeriph = NULL;
|
|
HCOMPONENT hCompEnvl = NULL;
|
|
HCOMPONENT hCompHCI = NULL;
|
|
BOOL bChangedEnable = FALSE;
|
|
|
|
//--------------------------------------------------------------------
|
|
// Graphics associated with various status messages - see cola.sdk
|
|
// pal_obj.h for the status messages...
|
|
//--------------------------------------------------------------------
|
|
UINT modelResList[MAX_ASYNCH_STATUS][MAX_CONFIGS] = {
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 0 ASYNCH_PRINTER_ERROR
|
|
{IDB_ECL_BASE_DOOR_OPEN, IDB_ECL_HCI_DOOR_OPEN, IDB_ECL_HCO_DOOR_OPEN, IDB_ECL_STAPLER_DOOR_OPEN, }, // 1 ASYNCH_DOOR_OPEN
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 2 ASYNCH_WARMUP
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 3 ASYNCH_RESET
|
|
{IDB_ECL_BASE_OUTBIN_FULL, IDB_ECL_HCI_OUTBIN_FULL, IDB_ECL_HCO_OUTBIN_FULL, IDB_ECL_STAPLER_OUTBIN_FULL, }, // 4 ASYNCH_OUTPUT_BIN_FULL
|
|
{IDB_ECL_BASE_PAPER_JAM, IDB_ECL_HCI_PAPER_JAM, IDB_ECL_HCO_PAPER_JAM, IDB_ECL_STAPLER_PAPER_JAM, }, // 5 ASYNCH_PAPER_JAM
|
|
{IDB_ECL_BASE_TONER_PROB, IDB_ECL_HCI_TONER_PROB, IDB_ECL_HCO_TONER_PROB, IDB_ECL_STAPLER_TONER_PROB, }, // 6 ASYNCH_TONER_GONE
|
|
{IDB_ECL_BASE_MANUAL_FEED, IDB_ECL_HCI_MANUAL_FEED, IDB_ECL_HCO_MANUAL_FEED, IDB_ECL_STAPLER_MANUAL_FEED, }, // 7 ASYNCH_MANUAL_FEED
|
|
{IDB_ECL_BASE_MANUAL_FEED, IDB_ECL_HCI_MANUAL_FEED, IDB_ECL_HCO_MANUAL_FEED, IDB_ECL_STAPLER_MANUAL_FEED, }, // 8 ASYNCH_PAPER_OUT (kludge - see DMS 35881)
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 9 ASYNCH_PAGE_PUNT
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 10 ASYNCH_MEMORY_OUT
|
|
{IDB_ECL_BASE_OFFLINE, IDB_ECL_HCI_OFFLINE, IDB_ECL_HCO_OFFLINE, IDB_ECL_STAPLER_OFFLINE, }, // 11 ASYNCH_OFFLINE
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 12 ASYNCH_INTERVENTION
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 13 ASYNCH_INITIALIZING
|
|
{IDB_ECL_BASE_TONER_PROB, IDB_ECL_HCI_TONER_PROB, IDB_ECL_HCO_TONER_PROB, IDB_ECL_STAPLER_TONER_PROB, }, // 14 ASYNCH_TONER_LOW
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 15 ASYNCH_PRINTING_TEST_PAGE
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 16 ASYNCH_PRINTING
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 17 ASYNCH_ONLINE
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 18 ASYNCH_BUSY
|
|
{IDB_ECL_BASE_NETWORK_ERR, IDB_ECL_HCI_NETWORK_ERR, IDB_ECL_HCO_NETWORK_ERR, IDB_ECL_STAPLER_NETWORK_ERR, }, // 19 ASYNCH_NOT_CONNECTED
|
|
{IDB_ECL_BASE_GEN_ERR, IDB_ECL_HCI_GEN_ERR, IDB_ECL_HCO_GEN_ERR, IDB_ECL_STAPLER_GEN_ERR, }, // 20 ASYNCH_STATUS_UNAVAILABLE
|
|
{IDB_ECL_BASE_NETWORK_ERR, IDB_ECL_HCI_NETWORK_ERR, IDB_ECL_HCO_NETWORK_ERR, IDB_ECL_STAPLER_NETWORK_ERR, }, // 21 ASYNCH_NETWORK_ERROR
|
|
{IDB_ECL_BASE_NETWORK_ERR, IDB_ECL_HCI_NETWORK_ERR, IDB_ECL_HCO_NETWORK_ERR, IDB_ECL_STAPLER_NETWORK_ERR, }, // 22 ASYNCH_COMM_ERROR
|
|
{0, 0, 0, 0, }, // 23 ASYNCH_BLACK_AGENT_EMPTY
|
|
{0, 0, 0, 0, }, // 24 ASYNCH_MAGENTA_AGENT_EMPTY
|
|
{0, 0, 0, 0, }, // 25 ASYNCH_CYAN_AGENT_EMPTY
|
|
{0, 0, 0, 0, }, // 26 ASYNCH_YELLOW_AGENT_EMPTY
|
|
{0, 0, 0, 0, }, // 27 ASYNCH_BLACK_AGENT_MISSING
|
|
{0, 0, 0, 0, }, // 28 ASYNCH_MAGENTA_AGENT_MISSING
|
|
{0, 0, 0, 0, }, // 29 ASYNCH_CYAN_AGENT_MISSING
|
|
{0, 0, 0, 0, }, // 30 ASYNCH_YELLOW_AGENT_MISSING
|
|
{IDB_ECL_BASE_TRAY1_EMPTY, IDB_ECL_HCI_TRAY1_EMPTY, IDB_ECL_HCO_TRAY1_EMPTY, IDB_ECL_STAPLER_TRAY1_EMPTY, }, // 31 ASYNCH_TRAY1_EMPTY
|
|
{IDB_ECL_BASE_TRAY2_EMPTY, IDB_ECL_HCI_TRAY2_EMPTY, IDB_ECL_HCO_TRAY2_EMPTY, IDB_ECL_STAPLER_TRAY2_EMPTY, }, // 32 ASYNCH_TRAY2_EMPTY
|
|
{IDB_ECL_BASE_TRAY3_EMPTY, IDB_ECL_HCI_TRAY3_EMPTY, IDB_ECL_HCO_TRAY3_EMPTY, IDB_ECL_STAPLER_TRAY3_EMPTY, }, // 33 ASYNCH_TRAY3_EMPTY
|
|
{IDB_ECL_BASE_PAPER_JAM, IDB_ECL_HCI_PAPER_JAM, IDB_ECL_HCO_PAPER_JAM, IDB_ECL_STAPLER_PAPER_JAM, }, // 34 ASYNCH_TRAY1_JAM
|
|
{IDB_ECL_BASE_PAPER_JAM, IDB_ECL_HCI_PAPER_JAM, IDB_ECL_HCO_PAPER_JAM, IDB_ECL_STAPLER_PAPER_JAM, }, // 35 ASYNCH_TRAY2_JAM
|
|
{IDB_ECL_BASE_PAPER_JAM, IDB_ECL_HCI_PAPER_JAM, IDB_ECL_HCO_PAPER_JAM, IDB_ECL_STAPLER_PAPER_JAM, }, // 36 ASYNCH_TRAY3_JAM
|
|
{IDB_ECL_BASE_OK, IDB_ECL_HCI_OK, IDB_ECL_HCO_OK, IDB_ECL_STAPLER_OK, }, // 37 ASYNCH_POWERSAVE_MODE
|
|
{IDB_ECL_BASE_ENVL_ERR, IDB_ECL_HCI_ENVL_ERR, IDB_ECL_HCO_ENVL_ERR, IDB_ECL_STAPLER_ENVL_ERR, }, // 38 ASYNCH_ENVL_ERROR
|
|
{0, IDB_ECL_HCI_ERR, IDB_ECL_HCO_HCI_ERR, IDB_ECL_STAPLER_HCI_ERR, }, // 39 ASYNCH_HCI_ERROR
|
|
{0, 0, IDB_ECL_HCO_HCO_ERR, IDB_ECL_STAPLER_HCO_ERR, }, // 40 ASYNCH_HCO_ERROR
|
|
{0, IDB_ECL_HCI_TRAY4_EMPTY, IDB_ECL_HCO_TRAY4_EMPTY, IDB_ECL_STAPLER_TRAY4_EMPTY, }, // 41 ASYNCH_HCI_EMPTY
|
|
{0, IDB_ECL_HCI_PAPER_JAM, IDB_ECL_HCO_PAPER_JAM, IDB_ECL_STAPLER_PAPER_JAM, }, // 42 ASYNCH_HCI_JAM
|
|
{IDB_ECL_BASE_TRAY1_ADD, IDB_ECL_HCI_TRAY1_ADD, IDB_ECL_HCO_TRAY1_ADD, IDB_ECL_STAPLER_TRAY1_ADD, }, // 43 ASYNCH_TRAY1_ADD
|
|
{IDB_ECL_BASE_TRAY2_ADD, IDB_ECL_HCI_TRAY2_ADD, IDB_ECL_HCO_TRAY2_ADD, IDB_ECL_STAPLER_TRAY2_ADD, }, // 44 ASYNCH_TRAY2_ADD
|
|
{IDB_ECL_BASE_TRAY3_ADD, IDB_ECL_HCI_TRAY3_ADD, IDB_ECL_HCO_TRAY3_ADD, IDB_ECL_STAPLER_TRAY3_ADD, }, // 45 ASYNCH_TRAY3_ADD
|
|
{0, IDB_ECL_HCI_TRAY4_ADD, IDB_ECL_HCO_TRAY4_ADD, IDB_ECL_STAPLER_TRAY4_ADD, }, // 46 ASYNCH_HCI_ADD
|
|
{IDB_ECL_BASE_TRAY1_EMPTY, IDB_ECL_HCI_TRAY1_EMPTY, IDB_ECL_HCO_TRAY1_EMPTY, IDB_ECL_STAPLER_TRAY1_EMPTY, }, // 47 ASYNCH_TRAY1_UNKNOWN_MEDIA
|
|
{IDB_ECL_BASE_OUTBIN_FULL, IDB_ECL_HCI_OUTBIN_FULL, IDB_ECL_HCO_OUTBIN_FULL, IDB_ECL_STAPLER_OUTBIN_FULL, }, // 48 ASYNCH_CLEAR_OUTPUT_BIN
|
|
{0, 0, 0, 0, }, // 49 CARRIAGE_STALL
|
|
{0, 0, 0, 0, }, // 50 COLOR_AGENT_EMPTY
|
|
{0, 0, 0, 0, }, // 51 COLOR_AGENT_MISSING
|
|
{0, 0, 0, 0, }, // 52 BLACK_AGENT_INCORRECT
|
|
{0, 0, 0, 0, }, // 53 MAGENTA_AGENT_INCORRECT
|
|
{0, 0, 0, 0, }, // 54 CYAN_AGENT_INCORRECT
|
|
{0, 0, 0, 0, }, // 55 YELLOW_AGENT_INCORRECT
|
|
{0, 0, 0, 0, }, // 56 COLOR_AGENT_INCORRECT
|
|
{0, 0, 0, 0, }, // 57 BLACK_AGENT_INCORRECT_INSTALL
|
|
{0, 0, 0, 0, }, // 58 MAGENTA_AGENT_INCORRECT_INSTALL
|
|
{0, 0, 0, 0, }, // 59 CYAN_AGENT_INCORRECT_INSTALL
|
|
{0, 0, 0, 0, }, // 60 YELLOW_AGENT_INCORRECT_INSTALL
|
|
{0, 0, 0, 0, }, // 61 COLOR_AGENT_INCORRECT_INSTALL
|
|
{0, 0, 0, 0, }, // 62 BLACK_AGENT_FAILURE
|
|
{0, 0, 0, 0, }, // 63 MAGENTA_AGENT_FAILURE
|
|
{0, 0, 0, 0, }, // 64 CYAN_AGENT_FAILURE
|
|
{0, 0, 0, 0, }, // 65 YELLOW_AGENT_FAILURE
|
|
{0, 0, 0, 0, }, // 66 COLOR_AGENT_FAILURE
|
|
{IDB_ECL_BASE_TRAY1_EMPTY, IDB_ECL_HCI_TRAY1_EMPTY, IDB_ECL_HCO_TRAY1_EMPTY, IDB_ECL_STAPLER_TRAY1_EMPTY, }, // 67 TRAY1_MISSING
|
|
{IDB_ECL_BASE_TRAY2_EMPTY, IDB_ECL_HCI_TRAY2_EMPTY, IDB_ECL_HCO_TRAY2_EMPTY, IDB_ECL_STAPLER_TRAY2_EMPTY, }, // 68 TRAY2_MISSING
|
|
{IDB_ECL_BASE_TRAY3_EMPTY, IDB_ECL_HCI_TRAY3_EMPTY, IDB_ECL_HCO_TRAY3_EMPTY, IDB_ECL_STAPLER_TRAY3_EMPTY, }, // 69 TRAY3_MISSING
|
|
{0, 0, 0, IDB_ECL_STAPLER_ADD_STAPLES, }, // 70 ASYNCH_STAPLER_EMPTY
|
|
{0, 0, 0, IDB_ECL_STAPLER_GEN_STAPLER_ERR, }, // 71 ASYNCH_STAPLER_JAM
|
|
{0, 0, 0, IDB_ECL_STAPLER_GEN_STAPLER_ERR, }, // 72 ASYNCH_STAPLER_MALFUNCTION
|
|
{0, 0, 0, IDB_ECL_STAPLER_GEN_STAPLER_ERR, }, // 73 ASYNCH_STAPLER_ALIGNMENT_ERROR
|
|
{0, 0, 0, IDB_ECL_STAPLER_GEN_STAPLER_ERR, }, // 74 ASYNCH_STAPLER_LIMIT
|
|
{0, 0, 0, 0, }, // 75 ASYNCH_DEVICE_SPECIFIC
|
|
};
|
|
|
|
#define HOTSPOT_ECL_BASE 0x01
|
|
//#define HOTSPOT_ECL_HCI 0x02
|
|
//#define HOTSPOT_ECL_HCO 0x04
|
|
|
|
#define HOTSPOT_EOL 0
|
|
#define HOTSPOT_CPANEL 1
|
|
//#define HOTSPOT_INPUTTRAY 2
|
|
//#define HOTSPOT_OUTPUTBIN 3
|
|
//#define HOTSPOT_HCI 4
|
|
//#define HOTSPOT_HCO 5
|
|
#define HOTSPOT_MIO1 6
|
|
#define HOTSPOT_MIO2 7
|
|
|
|
static HOTSPOTDATA lpHotspotFrontData[] =
|
|
{
|
|
{ 1, HOTSPOT_ECL_BASE, HOTSPOT_CPANEL, { 55, 41, 81, 63 }, }, // Control Panel
|
|
// { 1, HOTSPOT_ECL_BASE, HOTSPOT_INPUTTRAY, { 68, 91, 98, 119 }, }, // Input Tray 1 or 2
|
|
// { 1, HOTSPOT_ECL_BASE, HOTSPOT_INPUTTRAY, { 98, 98, 130, 126 }, }, // Input Tray 1 or 2
|
|
// { 1, HOTSPOT_ECL_BASE, HOTSPOT_OUTPUTBIN, { 81, 27, 161, 63 }, }, // Upper Output Bin
|
|
// { 1, HOTSPOT_ECL_HCI, HOTSPOT_HCI, { 68, 113, 98, 165 }, }, // HCI
|
|
// { 1, HOTSPOT_ECL_HCI, HOTSPOT_HCI, { 98, 120, 130, 172 }, }, // HCI
|
|
// { 1, HOTSPOT_ECL_HCO, HOTSPOT_HCO, { 0, 7, 67, 162 }, }, // HCO
|
|
{ 1, HOTSPOT_ECL_BASE, HOTSPOT_EOL, { -1, -1, -1, -1 }, }, // End Of List
|
|
};
|
|
|
|
static HOTSPOTDATA lpHotspotBackData[] =
|
|
{
|
|
{ 1, HOTSPOT_ECL_BASE, HOTSPOT_MIO1, { 73, 36, 83, 79 }, }, // JetDirect Card 1
|
|
{ 1, HOTSPOT_ECL_BASE, HOTSPOT_MIO2, { 73, 80, 83, 126 }, }, // JetDirect Card 2
|
|
{ 1, HOTSPOT_ECL_BASE, HOTSPOT_EOL, { -1, -1, -1, -1 }, }, // End Of List
|
|
};
|
|
|
|
MEDIA_TRAY media_tray[MEDIA_TRAY_MAX_NUMBER] =
|
|
{
|
|
// uLevel -2 == unknown, uMediaSizeID, uMediaSizeIconID uMediaTypeID, installed, changedsize, changedtype
|
|
{ (unsigned short) -2, IDS_MEDIA_SIZE_LETTER, IDI_MEDIA_SIZE_LETTER, IDS_MEDIA_TYPE_PLAIN, TRUE, FALSE, FALSE},
|
|
{ (unsigned short) -2, IDS_MEDIA_SIZE_LETTER, IDI_MEDIA_SIZE_LETTER, IDS_MEDIA_TYPE_PLAIN, TRUE, FALSE, FALSE},
|
|
{ (unsigned short) -2, IDS_MEDIA_SIZE_LETTER, IDI_MEDIA_SIZE_LETTER, IDS_MEDIA_TYPE_PLAIN, TRUE, FALSE, FALSE},
|
|
{ (unsigned short) -2, IDS_MEDIA_SIZE_LETTER, IDI_MEDIA_SIZE_LETTER, IDS_MEDIA_TYPE_PLAIN, TRUE, FALSE, FALSE},
|
|
{ (unsigned short) -2, IDS_MEDIA_SIZE_COM10, IDI_MEDIA_SIZE_COM10, IDS_MEDIA_TYPE_PLAIN, TRUE, FALSE, FALSE},
|
|
};
|
|
|
|
MEDIA_SIZE media_size[MEDIA_SIZE_MAX_NUMBER] =
|
|
{
|
|
// uMediaSizeID uMediaSizeIconID dwValidInTray bDefault
|
|
{ IDS_MEDIA_SIZE_LETTER, IDI_MEDIA_SIZE_LETTER, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY0, TRUE, },
|
|
{ IDS_MEDIA_SIZE_LEGAL, IDI_MEDIA_SIZE_LEGAL, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_A4ISO, IDI_MEDIA_SIZE_A4ISO, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_A3ISO, IDI_MEDIA_SIZE_A3ISO, TRAY1 | TRAY0 | TRAY3 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_11x17, IDI_MEDIA_SIZE_11x17, TRAY1 | TRAY0 | TRAY3 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_B4JIS, IDI_MEDIA_SIZE_B4JIS, TRAY1 | TRAY0 | TRAY3 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_B5JIS, IDI_MEDIA_SIZE_B5JIS, TRAY1 | TRAY0 | TRAY0 | TRAY4 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_EXEC, IDI_MEDIA_SIZE_EXEC, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_CUSTOM, IDI_MEDIA_SIZE_CUSTOM, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY0, FALSE, },
|
|
{ IDS_MEDIA_SIZE_2XPC, IDI_MEDIA_SIZE_2XPC, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, FALSE, },
|
|
{ IDS_MEDIA_SIZE_B5ISO, IDI_MEDIA_SIZE_B5ISO, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, FALSE, },
|
|
{ IDS_MEDIA_SIZE_COM10, IDI_MEDIA_SIZE_COM10, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, TRUE, },
|
|
{ IDS_MEDIA_SIZE_C5, IDI_MEDIA_SIZE_C5, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, FALSE, },
|
|
{ IDS_MEDIA_SIZE_DL, IDI_MEDIA_SIZE_DL, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, FALSE, },
|
|
{ IDS_MEDIA_SIZE_MONARCH, IDI_MEDIA_SIZE_MONARCH, TRAY1 | TRAY0 | TRAY0 | TRAY0 | TRAY5, FALSE, },
|
|
};
|
|
|
|
MEDIA_TYPE media_type[MEDIA_TYPE_MAX_NUMBER] =
|
|
{
|
|
// uMediaTypeID uMediaPanelID uMediaTypeIconID dwValidInTray bDefault bEnabled bUserCanChange bUserHasChanged bChangedName szMediaTypePrinter
|
|
{ IDS_MEDIA_TYPE_PLAIN, IDS_MEDIA_PANEL_PLAIN, IDI_MEDIA_TYPE_PLAIN, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, TRUE, TRUE, FALSE, FALSE, FALSE, "Plain", },
|
|
{ IDS_MEDIA_TYPE_PREPRNT, IDS_MEDIA_PANEL_PREPRNT, IDI_MEDIA_TYPE_PREPRNT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Preprinted", },
|
|
{ IDS_MEDIA_TYPE_LTRHEAD, IDS_MEDIA_PANEL_LTRHEAD, IDI_MEDIA_TYPE_LTRHEAD, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Letterhead", },
|
|
{ IDS_MEDIA_TYPE_TRANS, IDS_MEDIA_PANEL_TRANS, IDI_MEDIA_TYPE_TRANS, TRAY1 , FALSE, TRUE, FALSE, FALSE, FALSE, "Transparency", },
|
|
{ IDS_MEDIA_TYPE_PREPNCH, IDS_MEDIA_PANEL_PREPNCH, IDI_MEDIA_TYPE_PREPNCH, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Prepunched", },
|
|
{ IDS_MEDIA_TYPE_LABELS, IDS_MEDIA_PANEL_LABELS, IDI_MEDIA_TYPE_LABELS, TRAY1 , FALSE, TRUE, FALSE, FALSE, FALSE, "Labels", },
|
|
{ IDS_MEDIA_TYPE_BOND, IDS_MEDIA_PANEL_BOND, IDI_MEDIA_TYPE_BOND, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Bond", },
|
|
{ IDS_MEDIA_TYPE_RECYCLE, IDS_MEDIA_PANEL_RECYCLE, IDI_MEDIA_TYPE_RECYCLE, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Recycled", },
|
|
{ IDS_MEDIA_TYPE_COLORED, IDS_MEDIA_PANEL_COLORED, IDI_MEDIA_TYPE_COLORED, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, TRUE, FALSE, FALSE, FALSE, "Color", },
|
|
{ IDS_MEDIA_TYPE_CRDSTCK, IDS_MEDIA_PANEL_CRDSTCK, IDI_MEDIA_TYPE_CRDSTCK, TRAY1 , FALSE, TRUE, FALSE, FALSE, FALSE, "Card Stock", },
|
|
{ IDS_MEDIA_TYPE_UT1, IDS_MEDIA_PANEL_UT1, IDI_MEDIA_TYPE_UT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, FALSE, TRUE, FALSE, FALSE, "", },
|
|
{ IDS_MEDIA_TYPE_UT2, IDS_MEDIA_PANEL_UT2, IDI_MEDIA_TYPE_UT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, FALSE, TRUE, FALSE, FALSE, "", },
|
|
{ IDS_MEDIA_TYPE_UT3, IDS_MEDIA_PANEL_UT3, IDI_MEDIA_TYPE_UT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, FALSE, TRUE, FALSE, FALSE, "", },
|
|
{ IDS_MEDIA_TYPE_UT4, IDS_MEDIA_PANEL_UT4, IDI_MEDIA_TYPE_UT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, FALSE, TRUE, FALSE, FALSE, "", },
|
|
{ IDS_MEDIA_TYPE_UT5, IDS_MEDIA_PANEL_UT5, IDI_MEDIA_TYPE_UT, TRAY1 | TRAY2 | TRAY3 | TRAY4 | TRAY5, FALSE, FALSE, TRUE, FALSE, FALSE, "", },
|
|
};
|
|
|
|
|
|
// -1 == wait forever, 1 == SizeOverride, not changed, ... not changed
|
|
// dwInputTimeout, dwMode, bChangedInputTimeOut, bChangedMode, bChangedDefSize, bChangedDefType
|
|
AUTO_CONT auto_cont = {(unsigned long) -1, 1, FALSE, FALSE, FALSE, FALSE};
|
|
|
|
MIO_CARD mio_card[NUM_MIOS] = {{TEXT(""), TEXT("")}, {TEXT(""), TEXT("")}};
|
|
|
|
static BOOL bBackPrinterView = FALSE;
|
|
|
|
//--------------------------------------------------------------------
|
|
// DLL required functions...
|
|
//--------------------------------------------------------------------
|
|
|
|
//--------------------------------------------------------------------
|
|
// Function: DllMain
|
|
//
|
|
// Description: LibMain is called by Windows when the DLL is initialized,
|
|
// Thread Attached, and other times. Refer to SDK
|
|
// documentation, as to the different ways this may be called.
|
|
//
|
|
// The LibMain function should perform additional
|
|
// initialization tasks required by the DLL. In this example,
|
|
// no initialization tasks are required. LibMain should
|
|
// return a value of 1 if the initialization is successful.
|
|
//
|
|
// Input: hDLL -
|
|
// dwReason -
|
|
// lpReserved -
|
|
//
|
|
// Modifies:
|
|
//
|
|
// Returns:
|
|
//
|
|
//--------------------------------------------------------------------
|
|
|
|
#ifdef WIN32
|
|
|
|
BOOL WINAPI DllMain (HANDLE hDLL, DWORD dwReason, LPVOID lpReserved)
|
|
{
|
|
switch (dwReason)
|
|
{
|
|
case DLL_PROCESS_ATTACH:
|
|
hInstance = (HINSTANCE)hDLL;
|
|
TrayLevelRegister(hInstance);
|
|
break;
|
|
|
|
case DLL_PROCESS_DETACH:
|
|
TrayLevelUnregister();
|
|
break;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
#else
|
|
|
|
int __export CALLBACK LibMain(HANDLE hModule, WORD wDataSeg, WORD cbHeapSize, LPSTR lpszCmdLine)
|
|
{
|
|
TRACE0(TEXT("HPECUI16.DLL Initializing\r\n"));
|
|
|
|
hInstance = (HINSTANCE)hModule;
|
|
// LoadPCTreeResources(hInstance);
|
|
TrayLevelRegister(hInstance);
|
|
return 1;
|
|
}
|
|
|
|
int __export CALLBACK WEP(int nExitType)
|
|
{
|
|
TRACE0(TEXT("HPECUI16.DLL Terminating!\r\n"));
|
|
|
|
// FreePCTreeResources(hInstance);
|
|
TrayLevelUnregister();
|
|
return 1;
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// Function: AppletGetGraphics
|
|
//
|
|
// Description: In this function choose the correct bitmap for the
|
|
// current status of the printer. There are four possible
|
|
// configurations of the printer and about twenty
|
|
// different status conditions. Choose the correct bitmap
|
|
// based on the current status and the current config.
|
|
// The possible configurations are shown above in the
|
|
// definition of the modelResList table.
|
|
// ECL_ONLY 0
|
|
// ECL_HCI 1
|
|
// ECL_HCO 2
|
|
// ECL_STAPLER 3
|
|
//
|
|
//
|
|
// Input: hPeripheral -
|
|
// status -
|
|
// modelResID -
|
|
// statusResID -
|
|
// phInstance -
|
|
//
|
|
// Modifies:
|
|
//
|
|
// Returns: RC_SUCCESS
|
|
//
|
|
//--------------------------------------------------------------------
|
|
DLL_EXPORT(DWORD) CALLING_CONVEN AppletGetGraphics
|
|
(HPERIPHERAL hPeripheral,
|
|
DWORD status,
|
|
UINT FAR *modelResID,
|
|
UINT FAR *statusResID,
|
|
HINSTANCE *phInstance)
|
|
{
|
|
HCURSOR hOldCursor;
|
|
|
|
//----------------------------------------------------------------
|
|
// Save the cursor and display the hourglass
|
|
//----------------------------------------------------------------
|
|
hOldCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// This is a kludge for DocWise. We keep the global variable,
|
|
// bBackPrinterView, to know if the user has clicked on the
|
|
// "Backview" hotspot from the Device Tab (JetAdmin or ToolBox).
|
|
// As the printer status is constantly updated, this function is
|
|
// called every so often - thus the reason for the global var.
|
|
//
|
|
// The catch here is that when the Generic Applet is about to
|
|
// display the Device Tab, it calls AppletUIExtention() w/ the
|
|
// correct parms (look for in this module) which initializes
|
|
// bBackPrinterView. DocWise does not call AppletUIExtention().
|
|
//
|
|
// Therefore, if a user has selected the back view, either from
|
|
// JA or ToolBox then gets a message from DocWise, bBackPrinterView
|
|
// will still be set and DocWise will display the back view until
|
|
// the user invokes JA or ToolBox again Thus, the kludge:
|
|
// DocWise will pass statusResID == 1, and that's how we know
|
|
// our call is from DocWise...
|
|
//----------------------------------------------------------------
|
|
if (*statusResID == 1)
|
|
{
|
|
bBackPrinterView = FALSE;
|
|
}
|
|
|
|
|
|
|
|
if (bBackPrinterView)
|
|
{
|
|
*modelResID = IDB_ECL_REAR;
|
|
}
|
|
else
|
|
{
|
|
DWORD dWord, dwResult;
|
|
PeripheralCaps caps;
|
|
PeripheralCaps2 periphCaps2;
|
|
int currentConfig = ECL_ONLY;
|
|
|
|
//------------------------------------------------------------
|
|
// Determine the current config - note that we start out
|
|
// assuming a base Eclipse...
|
|
//------------------------------------------------------------
|
|
dWord = sizeof(PeripheralCaps);
|
|
memset(&caps, 0x00, sizeof(PeripheralCaps));
|
|
|
|
dwResult = PALGetObject(hPeripheral, OT_PERIPHERAL_CAPABILITIES, 0, &caps, &dWord);
|
|
|
|
if (dwResult IS RC_SUCCESS)
|
|
{
|
|
//--------------------------------------------------------
|
|
// Check for HCI
|
|
//--------------------------------------------------------
|
|
if ( ( caps.flags & CAPS_HCI ) AND ( caps.bHCI IS TRUE ) )
|
|
{
|
|
currentConfig = ECL_HCI;
|
|
}
|
|
|
|
//--------------------------------------------------------
|
|
// Now check for HCO
|
|
//--------------------------------------------------------
|
|
if ( ( caps.flags & CAPS_HCO ) AND ( caps.bHCO IS TRUE ) )
|
|
{
|
|
//----------------------------------------------------
|
|
// We've got an HCO - see if we have a Stapler
|
|
// Go ahead and set our currentConfig var, we'll
|
|
// change it if we find a Stapler...
|
|
//----------------------------------------------------
|
|
currentConfig = ECL_HCO;
|
|
|
|
dWord = sizeof(periphCaps2);
|
|
memset(&periphCaps2, 0x00, sizeof(periphCaps2));
|
|
dwResult = PALGetObject(hPeripheral, OT_PERIPHERAL_CAPABILITIES2, 0, &periphCaps2, &dWord);
|
|
if (dwResult IS RC_SUCCESS)
|
|
{
|
|
if ( ( periphCaps2.flags & CAPS2_STAPLER ) AND ( periphCaps2.bStapler ) )
|
|
{
|
|
//----------------------------------------
|
|
// Found a stapler...
|
|
//----------------------------------------
|
|
currentConfig = ECL_STAPLER;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if ((signed long) status >= 0 AND (signed long) status < MAX_ASYNCH_JONAH)
|
|
{
|
|
|
|
*modelResID = modelResList[(signed long) status][currentConfig];
|
|
|
|
//--------------------------------------------------------
|
|
// Make sure we're not passing back null graphics...
|
|
// This should never happen, but just in case...
|
|
//--------------------------------------------------------
|
|
//assert (*modelResID != 0);
|
|
|
|
if (*modelResID == 0)
|
|
*modelResID = modelResList[ASYNCH_PRINTER_ERROR][currentConfig];
|
|
|
|
}
|
|
else
|
|
{
|
|
*modelResID = modelResList[ASYNCH_STATUS_UNAVAILABLE][currentConfig];
|
|
}
|
|
}
|
|
|
|
*phInstance = hInstance;
|
|
|
|
//----------------------------------------------------------------
|
|
// Reset the Cursor
|
|
//----------------------------------------------------------------
|
|
SetCursor(hOldCursor);
|
|
|
|
return RC_SUCCESS;
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// API functions follows...
|
|
//--------------------------------------------------------------------
|
|
|
|
//--------------------------------------------------------------------
|
|
// Function: AppletInfo
|
|
//
|
|
// Description:
|
|
//
|
|
// Input: dwCommand -
|
|
// lParam1 -
|
|
// lParam2 -
|
|
//
|
|
// Modifies:
|
|
//
|
|
// Returns:
|
|
//
|
|
//--------------------------------------------------------------------
|
|
extern DLL_EXPORT(DWORD) CALLING_CONVEN AppletInfo
|
|
(DWORD dwCommand,
|
|
LPARAM lParam1,
|
|
LPARAM lParam2)
|
|
|
|
{
|
|
|
|
APPLETDEVICE info[] =
|
|
{
|
|
|
|
#ifdef WIN32
|
|
{sizeof(APPLETDEVICE),
|
|
TEXT("HPECLUI.HPA"),
|
|
TEXT("HP LaserJet 5Si"),
|
|
APPLET_PRINTER,
|
|
APPLET_LIBRARY_UI,
|
|
0, APPLET_DEFAULTS},
|
|
|
|
{sizeof(APPLETDEVICE),
|
|
TEXT("HPECLUI.HPA"),
|
|
TEXT("HP LaserJet 5Si MX"),
|
|
APPLET_PRINTER,
|
|
APPLET_LIBRARY_UI,
|
|
0, APPLET_DEFAULTS}
|
|
#else
|
|
{sizeof(APPLETDEVICE),
|
|
TEXT("HPECUI16.HPA"),
|
|
TEXT("HP LaserJet 5Si"),
|
|
APPLET_PRINTER,
|
|
APPLET_LIBRARY_UI,
|
|
0, APPLET_DEFAULTS},
|
|
|
|
{sizeof(APPLETDEVICE),
|
|
TEXT("HPECUI16.HPA"),
|
|
TEXT("HP LaserJet 5Si MX"),
|
|
APPLET_PRINTER,
|
|
APPLET_LIBRARY_UI,
|
|
0, APPLET_DEFAULTS}
|
|
#endif
|
|
|
|
};
|
|
|
|
//----------------------------------------------------------------
|
|
//
|
|
//----------------------------------------------------------------
|
|
switch (dwCommand)
|
|
{
|
|
case APPLET_INFO_GETCOUNT:
|
|
return(sizeof(info) / sizeof(APPLETDEVICE));
|
|
break;
|
|
|
|
case APPLET_INFO_DEVICE:
|
|
if ( lParam1 < sizeof(info) / sizeof(APPLETDEVICE) )
|
|
{
|
|
memcpy((LPAPPLETDEVICE)lParam2, &(info[lParam1]), sizeof(APPLETDEVICE));
|
|
return(TRUE);
|
|
}
|
|
|
|
return(FALSE);
|
|
break;
|
|
|
|
default:
|
|
return(FALSE);
|
|
}
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// Function: AppletGetTabPages
|
|
//
|
|
// Description:
|
|
//
|
|
//
|
|
// Note that the ToolBox tab sheets are not supported
|
|
// under WinNT (3.51 or 4.0)
|
|
// Input: hPeripheral -
|
|
// lpPages -
|
|
// lpNumPages -
|
|
// typeToReturn -
|
|
//
|
|
// Modifies:
|
|
//
|
|
// Returns:
|
|
//
|
|
//--------------------------------------------------------------------
|
|
DLL_EXPORT(DWORD) CALLING_CONVEN AppletGetTabPages
|
|
(HPERIPHERAL hPeripheral,
|
|
LPPROPSHEETPAGE lpPages,
|
|
LPDWORD lpNumPages,
|
|
DWORD typeToReturn)
|
|
{
|
|
int i,j;
|
|
DWORD dwResult, dWord, returnCode = RC_SUCCESS;
|
|
PeripheralEnabledMedia periphEnabledMedia;
|
|
PeripheralAutoContinue periphAutoContinue;
|
|
PeripheralInputTrays periphInputTrays;
|
|
PeripheralCaps periphCaps;
|
|
PeripheralInstalledPHD periphPHD;
|
|
PeripheralHCI periphHCI;
|
|
PeripheralEnvl periphEnvl;
|
|
PeripheralMIO periphMIO;
|
|
HCURSOR hOldCursor;
|
|
|
|
#ifndef WINNT
|
|
TCHAR szSystemDir[256];
|
|
UINT uiResult;
|
|
BOOL fDocWise;
|
|
TCHAR FAR *lpszSystemDir;
|
|
OFSTRUCT ofOpenBuf;
|
|
#endif
|
|
|
|
//----------------------------------------------------------------
|
|
// For JetAdmin
|
|
//----------------------------------------------------------------
|
|
PROPSHEETPAGE tabBase[NUM_JETADMIN_TAB_PAGES] =
|
|
{
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_MEDIA),
|
|
NULL, MAKEINTRESOURCE(IDS_MEDIA_TAB), MediaProc, (LONG)hPeripheral, NULL, NULL},
|
|
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TRAYS),
|
|
NULL, MAKEINTRESOURCE(IDS_TRAYS_TAB), TraysProc, (LONG)hPeripheral, NULL, NULL},
|
|
};
|
|
|
|
|
|
#ifndef WINNT
|
|
//----------------------------------------------------------------
|
|
// For tool time
|
|
//----------------------------------------------------------------
|
|
PROPSHEETPAGE tabToolBox[NUM_TOOLTIME_TAB_PAGES] =
|
|
{
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TOOLTIME_UTILITIES),
|
|
NULL, MAKEINTRESOURCE(IDS_TAB_UTILITIES), UtilitiesSheetProc,
|
|
(LONG)hPeripheral, NULL, NULL},
|
|
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TOOLTIME_ALERTS),
|
|
NULL, MAKEINTRESOURCE(IDS_TAB_ALERTS), AlertsSheetProc,
|
|
(LONG)hPeripheral, NULL, NULL},
|
|
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TOOLTIME_TIPS),
|
|
NULL, MAKEINTRESOURCE(IDS_TAB_TIPS), TipsSheetProc,
|
|
(LONG)hPeripheral, NULL, NULL}
|
|
};
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// For tool time with out DocWise
|
|
//----------------------------------------------------------------
|
|
PROPSHEETPAGE tabToolBoxNoDocWise[NUM_TOOLTIME_TAB_PAGES_NO_DOCWISE] =
|
|
{
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TOOLTIME_UTILITIES),
|
|
NULL, MAKEINTRESOURCE(IDS_TAB_UTILITIES), UtilitiesSheetProc,
|
|
(LONG)hPeripheral, NULL, NULL},
|
|
|
|
{sizeof(PROPSHEETPAGE), PSP_HASHELP | PSP_USETITLE, hInstance, MAKEINTRESOURCE(IDD_TOOLTIME_TIPS),
|
|
NULL, MAKEINTRESOURCE(IDS_TAB_TIPS), TipsSheetProc,
|
|
(LONG)hPeripheral, NULL, NULL}
|
|
};
|
|
#endif
|
|
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// Make sure lpPages and lpNumPages are valid...
|
|
//----------------------------------------------------------------
|
|
if ((lpPages IS NULL) OR (lpNumPages IS NULL))
|
|
{
|
|
return (RC_FAILURE);
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// Initialize the global
|
|
//----------------------------------------------------------------
|
|
hPeriph = hPeripheral;
|
|
*lpNumPages = 0;
|
|
|
|
|
|
|
|
|
|
//------------------------------------------------------------
|
|
// Get current settings for MIO regardless of whether the user
|
|
// is admin or not (this allows the MIO buttons to work on the
|
|
// printer property sheet. This is needed for JetAdmin as
|
|
// well as Toolbox...
|
|
//------------------------------------------------------------
|
|
if ((typeToReturn & TS_WIN95_TASKBAR) OR (typeToReturn & TS_GENERAL))
|
|
{
|
|
dWord = sizeof(periphMIO);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_MIO, 0, &periphMIO, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
for (i = 0; i < (long) periphMIO.numMIO, i < NUM_MIOS; i++)
|
|
{
|
|
if (periphMIO.MIOs[i].MIOtype IS MIO_IOCARD)
|
|
{
|
|
LoadString(hInstance, IDS_MIO_IOCARD, mio_card[i].mioType, SIZEOF_IN_CHAR(mio_card[0].mioType));
|
|
_tcscpy(mio_card[i].mioInfo, periphMIO.MIOs[i].manufactInfo);
|
|
}
|
|
else
|
|
{
|
|
LoadString(hInstance, IDS_MIO_EMPTY, mio_card[i].mioType, SIZEOF_IN_CHAR(mio_card[0].mioType));
|
|
LoadString(hInstance, IDS_MIO_EMPTY, mio_card[i].mioInfo, SIZEOF_IN_CHAR(mio_card[0].mioInfo));
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (i = 0; i < NUM_MIOS; i++)
|
|
{
|
|
LoadString(hInstance, IDS_INFO_UNAVAILABLE, mio_card[i].mioType, SIZEOF_IN_CHAR(mio_card[i].mioType));
|
|
LoadString(hInstance, IDS_INFO_UNAVAILABLE, mio_card[i].mioInfo, SIZEOF_IN_CHAR(mio_card[i].mioInfo));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------------------
|
|
// Tool time...
|
|
// First determine if DocWise is installed. If it's not, no
|
|
// need to display the DocWise Tab...
|
|
//----------------------------------------------------------------
|
|
if (typeToReturn & TS_WIN95_TASKBAR)
|
|
{
|
|
|
|
#ifndef WINNT
|
|
//------------------------------------------------------------
|
|
// Start out assuming DocWise is installed.
|
|
//------------------------------------------------------------
|
|
fDocWise = TRUE;
|
|
|
|
//------------------------------------------------------------
|
|
// Get the system directory
|
|
//------------------------------------------------------------
|
|
uiResult = GetSystemDirectory (szSystemDir, (UINT)sizeof(szSystemDir));
|
|
|
|
if ((uiResult != 0) AND (uiResult < (sizeof(szSystemDir) - 64)) )
|
|
{
|
|
lpszSystemDir = szSystemDir + lstrlen(szSystemDir);
|
|
lstrcpy (lpszSystemDir, (LPTSTR)"\\hpkeystn.dll");
|
|
|
|
if (OpenFile ((LPCSTR)szSystemDir, (LPOFSTRUCT)&ofOpenBuf, OF_EXIST) == HFILE_ERROR)
|
|
{
|
|
fDocWise = FALSE;
|
|
}
|
|
|
|
#ifdef WIN32
|
|
lstrcpy (lpszSystemDir, (LPTSTR)"\\hpdocagt.exe");
|
|
#else
|
|
lstrcpy (lpszSystemDir, (LPTSTR)"\\hpdagt16.exe");
|
|
#endif
|
|
|
|
if (OpenFile ((LPCSTR)szSystemDir, (LPOFSTRUCT)&ofOpenBuf, OF_EXIST) == HFILE_ERROR)
|
|
{
|
|
fDocWise = FALSE;
|
|
}
|
|
|
|
#ifdef WIN32
|
|
lstrcpy (lpszSystemDir, (LPTSTR)"\\hpdocalt.dll");
|
|
#else
|
|
lstrcpy (lpszSystemDir, (LPTSTR)"\\hpdalt16.dll");
|
|
#endif
|
|
if (OpenFile ((LPCSTR)szSystemDir, (LPOFSTRUCT)&ofOpenBuf, OF_EXIST) == HFILE_ERROR)
|
|
{
|
|
fDocWise = FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
//------------------------------------------------------------
|
|
//
|
|
//------------------------------------------------------------
|
|
if (fDocWise)
|
|
{
|
|
memcpy(lpPages, &tabToolBox, sizeof(tabToolBox));
|
|
*lpNumPages = sizeof(tabToolBox) / sizeof(PROPSHEETPAGE);
|
|
}
|
|
else
|
|
{
|
|
memcpy(lpPages, &tabToolBoxNoDocWise, sizeof(tabToolBoxNoDocWise));
|
|
*lpNumPages = sizeof(tabToolBoxNoDocWise) / sizeof(PROPSHEETPAGE);
|
|
}
|
|
#endif
|
|
return (RC_SUCCESS);
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// No need to do anything unless typeToReturn is TS_GENERAL
|
|
//----------------------------------------------------------------
|
|
if (!(typeToReturn & TS_GENERAL))
|
|
{
|
|
return RC_SUCCESS;
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// Must be a call from JetAdmin ==> got some work to do... Save
|
|
// the cursor and display the hourglass
|
|
//----------------------------------------------------------------
|
|
hOldCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
|
|
|
|
|
|
//------------------------------------------------------------
|
|
// Initialize base data structure to values from RC file.
|
|
//------------------------------------------------------------
|
|
for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++)
|
|
{
|
|
LoadString(hInstance, media_size[i].uMediaSizeID, media_size[i].szMediaSize, SIZEOF_IN_CHAR(media_size[0].szMediaSize));
|
|
}
|
|
|
|
for (i = 0; i < MEDIA_TYPE_MAX_NUMBER; i++)
|
|
{
|
|
LoadString(hInstance, media_type[i].uMediaTypeID, media_type[i].szMediaType, SIZEOF_IN_CHAR(media_type[0].szMediaType));
|
|
LoadString(hInstance, media_type[i].uMediaPanelID, media_type[i].szMediaTypeCP, SIZEOF_IN_CHAR(media_type[0].szMediaTypeCP));
|
|
}
|
|
|
|
//------------------------------------------------------------
|
|
// Get current values for this printer and place in shared
|
|
// data structures
|
|
//------------------------------------------------------------
|
|
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// Check for Admin permission. If not administrator, don't put
|
|
// up tab sheets - we're all done...
|
|
//----------------------------------------------------------------
|
|
dWord = TALModifyAccess(hPeripheral);
|
|
|
|
if (!(dWord & ACCESS_SUPERVISOR))
|
|
{
|
|
goto EXIT;
|
|
}
|
|
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// The user has supervisor permission - get all needed info.
|
|
//----------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------
|
|
// Find out which media are enabled for this printer. These names
|
|
// will appear in the media list.
|
|
//----------------------------------------------------------------
|
|
dWord = sizeof(periphEnabledMedia);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_ENABLED_MEDIA, 0, &periphEnabledMedia, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
//------------------------------------------------------------
|
|
// NULL out the bEnabled bool in the media_type array. Leave
|
|
// "Plain"
|
|
//------------------------------------------------------------
|
|
for (i = 1; i < MEDIA_TYPE_MAX_NUMBER; i++)
|
|
media_type[i].bEnabled = FALSE;
|
|
|
|
//------------------------------------------------------------
|
|
// The names stored in the printer for the built-in media types
|
|
// are not localized. Use the localized names in the PC.
|
|
// Use the names from the printer for user-defined media types.
|
|
//------------------------------------------------------------
|
|
for (i = 0; i < (int) periphEnabledMedia.numNames; i++)
|
|
{
|
|
//--------------------------------------------------------
|
|
// j is a media type ID. It is also the index of the media
|
|
// type array
|
|
//--------------------------------------------------------
|
|
j = (int)periphEnabledMedia.names[i].mediaID;
|
|
media_type[j].bEnabled = TRUE;
|
|
if (j >= (int) MEDIA_USERTYPE1)
|
|
{
|
|
_tcscpy(media_type[j].szMediaType, periphEnabledMedia.names[i].mediaName);
|
|
_tcscpy(media_type[j].szMediaTypeCP, periphEnabledMedia.names[i].controlPanelName);
|
|
}
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------------------
|
|
// Get current settings for default media size and type, auto
|
|
// continue mode and timeout
|
|
//----------------------------------------------------------------
|
|
dWord = sizeof(periphAutoContinue);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_AUTO_CONTINUE, 0, &periphAutoContinue, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
//------------------------------------------------------------
|
|
// set the default media size
|
|
//------------------------------------------------------------
|
|
if (periphAutoContinue.defaultMediaSize != PJL_LETTER)
|
|
{
|
|
media_size[0].bDefault = FALSE;
|
|
switch (periphAutoContinue.defaultMediaSize)
|
|
{
|
|
case PJL_LEGAL:
|
|
media_size[1].bDefault = TRUE;
|
|
break;
|
|
case PJL_A4:
|
|
media_size[2].bDefault = TRUE;
|
|
break;
|
|
case PJL_A3:
|
|
media_size[3].bDefault = TRUE;
|
|
break;
|
|
case PJL_11x17:
|
|
case PJL_LEDGER:
|
|
media_size[4].bDefault = TRUE;
|
|
break;
|
|
case PJL_JISB4:
|
|
media_size[5].bDefault = TRUE;
|
|
break;
|
|
case PJL_JISB5: // JIS B5
|
|
media_size[6].bDefault = TRUE;
|
|
break;
|
|
case PJL_EXECUTIVE:
|
|
media_size[7].bDefault = TRUE;
|
|
break;
|
|
case PJL_CUSTOM:
|
|
media_size[8].bDefault = TRUE;
|
|
break;
|
|
case PJL_2XPOST:
|
|
case PJL_JPOSTD:
|
|
media_size[9].bDefault = TRUE;
|
|
break;
|
|
case PJL_B5: // ISO B5
|
|
media_size[10].bDefault = TRUE;
|
|
break;
|
|
case PJL_COM10:
|
|
media_size[11].bDefault = TRUE;
|
|
break;
|
|
case PJL_C5:
|
|
media_size[12].bDefault = TRUE;
|
|
break;
|
|
case PJL_DL:
|
|
media_size[13].bDefault = TRUE;
|
|
break;
|
|
case PJL_MONARCH:
|
|
media_size[14].bDefault = TRUE;
|
|
break;
|
|
default:
|
|
media_size[0].bDefault = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------------
|
|
// Set the default media name
|
|
//------------------------------------------------------------
|
|
for (i = 0; i < MEDIA_TYPE_MAX_NUMBER; i++)
|
|
{
|
|
media_type[i].bDefault = FALSE;
|
|
}
|
|
|
|
//media_type[0].bDefault = FALSE;
|
|
|
|
if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Plain")) IS 0)
|
|
{
|
|
media_type[0].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Preprinted")) IS 0)
|
|
{
|
|
media_type[1].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Letterhead")) IS 0)
|
|
{
|
|
media_type[2].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Transparency")) IS 0)
|
|
{
|
|
media_type[3].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Prepunched")) IS 0)
|
|
{
|
|
media_type[4].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Labels")) IS 0)
|
|
{
|
|
media_type[5].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Bond")) IS 0)
|
|
{
|
|
media_type[6].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Recycled")) IS 0)
|
|
{
|
|
media_type[7].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Color")) IS 0)
|
|
{
|
|
media_type[8].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, TEXT("Card Stock")) IS 0)
|
|
{
|
|
media_type[9].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, media_type[10].szMediaType) IS 0)
|
|
{
|
|
media_type[10].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, media_type[11].szMediaType) IS 0)
|
|
{
|
|
media_type[11].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, media_type[12].szMediaType) IS 0)
|
|
{
|
|
media_type[12].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, media_type[13].szMediaType) IS 0)
|
|
{
|
|
media_type[13].bDefault = TRUE;
|
|
}
|
|
else if (_tcscmp(periphAutoContinue.defaultMediaName, media_type[14].szMediaType) IS 0)
|
|
{
|
|
media_type[14].bDefault = TRUE;
|
|
}
|
|
|
|
//------------------------------------------------------------
|
|
// Get the INPUT Auto Continue setting. The JIAC constants
|
|
// correspond to string indices in the timeout listbox
|
|
//------------------------------------------------------------
|
|
if ((signed long)periphAutoContinue.inputTimeout <= -1)
|
|
auto_cont.dwInputTimeOut = JIAC_WAIT;
|
|
else if ((signed long)periphAutoContinue.inputTimeout IS 0)
|
|
auto_cont.dwInputTimeOut = JIAC_NONE;
|
|
else if ((signed long)periphAutoContinue.inputTimeout <= 300)
|
|
auto_cont.dwInputTimeOut = JIAC_5MIN;
|
|
else if ((signed long)periphAutoContinue.inputTimeout <= 600)
|
|
auto_cont.dwInputTimeOut = JIAC_10MIN;
|
|
else if ((signed long)periphAutoContinue.inputTimeout <= 1200)
|
|
auto_cont.dwInputTimeOut = JIAC_20MIN;
|
|
else if ((signed long)periphAutoContinue.inputTimeout <= 1800)
|
|
auto_cont.dwInputTimeOut = JIAC_30MIN;
|
|
else if ((signed long)periphAutoContinue.inputTimeout <= 2700)
|
|
auto_cont.dwInputTimeOut = JIAC_45MIN;
|
|
else
|
|
auto_cont.dwInputTimeOut = JIAC_60MIN;
|
|
|
|
//------------------------------------------------------------
|
|
// periphAutoContinue.inputMode will be either JIAC_CANCEL_JOB,
|
|
// JIAC_SIZE_OVERRIDE, JIAC_BOTH_OVERRIDE or JIAC_NAME_OVERRIDE.
|
|
// These will be used as indices in the Input Auto continue
|
|
// listbox.
|
|
//------------------------------------------------------------
|
|
switch (periphAutoContinue.inputMode)
|
|
{
|
|
case JIAC_CANCEL_JOB:
|
|
auto_cont.dwMode = JIAC_CANCEL_JOB;
|
|
break;
|
|
case JIAC_NAME_OVERRIDE:
|
|
auto_cont.dwMode = JIAC_NAME_OVERRIDE;
|
|
break;
|
|
case JIAC_BOTH_OVERRIDE:
|
|
auto_cont.dwMode = JIAC_BOTH_OVERRIDE;
|
|
break;
|
|
case JIAC_SIZE_OVERRIDE:
|
|
default:
|
|
auto_cont.dwMode = JIAC_SIZE_OVERRIDE;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------
|
|
// Get current input tray levels (for trays 0 - 2)
|
|
//----------------------------------------------------------------
|
|
dWord = sizeof(periphInputTrays);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_INPUT_TRAYS, 0, &periphInputTrays, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
for (i = 0; i < (signed long) periphInputTrays.numTrays, i < MEDIA_TRAY_MAX_NUMBER; i++)
|
|
{
|
|
//--------------------------------------------------------
|
|
// set the current media level for this tray
|
|
//--------------------------------------------------------
|
|
media_tray[i].uLevel = (unsigned short) periphInputTrays.inputTrays[i].mediaLevel;
|
|
|
|
//--------------------------------------------------------
|
|
// set the currently selected media size for this tray
|
|
//--------------------------------------------------------
|
|
switch (periphInputTrays.inputTrays[i].mediaSize)
|
|
{
|
|
case PJL_LETTER:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_LETTER;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_LETTER;
|
|
break;
|
|
case PJL_LEGAL:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_LEGAL;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_LEGAL;
|
|
break;
|
|
case PJL_A4:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_A4ISO;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_A4ISO;
|
|
break;
|
|
case PJL_A3:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_A3ISO;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_A3ISO;
|
|
break;
|
|
case PJL_11x17:
|
|
case PJL_LEDGER:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_11x17;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_11x17;
|
|
break;
|
|
case PJL_JISB4:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_B4JIS;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_B4JIS;
|
|
break;
|
|
case PJL_JISB5:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_B5JIS;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_B5JIS;
|
|
break;
|
|
case PJL_EXECUTIVE:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_EXEC;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_EXEC;
|
|
break;
|
|
case PJL_CUSTOM:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_CUSTOM;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_CUSTOM;
|
|
break;
|
|
case PJL_2XPOST:
|
|
case PJL_JPOSTD:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_2XPC;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_2XPC;
|
|
break;
|
|
case PJL_B5:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_B5ISO;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_B5ISO;
|
|
break;
|
|
case PJL_COM10:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_COM10;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_COM10;
|
|
break;
|
|
case PJL_C5:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_C5;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_C5;
|
|
break;
|
|
case PJL_DL:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_DL;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_DL;
|
|
break;
|
|
case PJL_MONARCH:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_MONARCH;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_MONARCH;
|
|
break;
|
|
default:
|
|
media_tray[i].uMediaSizeID = IDS_MEDIA_SIZE_LETTER;
|
|
media_tray[i].uMediaSizeIconID = IDI_MEDIA_SIZE_LETTER;
|
|
break;
|
|
} //switch
|
|
|
|
//--------------------------------------------------------
|
|
// set the currently selected media type for this tray
|
|
//--------------------------------------------------------
|
|
if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Plain")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_PLAIN;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Preprinted")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_PREPRNT;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Letterhead")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_LTRHEAD;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Transparency")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_TRANS;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Prepunched")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_PREPNCH;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Labels")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_LABELS;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Bond")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_BOND;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Recycled")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_RECYCLE;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Color")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_COLORED;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, TEXT("Card Stock")) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_CRDSTCK;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, media_type[10].szMediaType) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_UT1;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, media_type[11].szMediaType) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_UT2;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, media_type[12].szMediaType) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_UT3;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, media_type[13].szMediaType) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_UT4;
|
|
}
|
|
else if (_tcscmp(periphInputTrays.inputTrays[i].mediaTypeName, media_type[14].szMediaType) IS 0)
|
|
{
|
|
media_tray[i].uMediaTypeID = IDS_MEDIA_TYPE_UT5;
|
|
}
|
|
|
|
} //for
|
|
}
|
|
|
|
//----------------------------------------------------------------
|
|
// Find out if there are HCI and Envl Feeder, if so get their
|
|
// levels. This HCI only has one tray. In the future, if the
|
|
// HCI has more than one tray, we will need a new Eclipse applet.
|
|
//----------------------------------------------------------------
|
|
hCompEnvl = NULL;
|
|
hCompHCI = NULL;
|
|
|
|
dWord = sizeof(periphCaps);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_CAPABILITIES, 0, &periphCaps, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
if (((periphCaps.flags & CAPS_HCI) AND (periphCaps.bHCI IS TRUE)) OR
|
|
((periphCaps.flags & CAPS_ENVL_FEEDER) AND (periphCaps.bEnvlFeeder IS TRUE)))
|
|
{
|
|
//--------------------------------------------------------
|
|
// get the handle and assign to globals
|
|
//--------------------------------------------------------
|
|
dWord = sizeof(periphPHD);
|
|
dwResult = CALGetObject(hPeripheral, OT_PERIPHERAL_INSTALLED_PHD, 0, &periphPHD, &dWord);
|
|
if (dwResult IS RC_SUCCESS)
|
|
{
|
|
//----------------------------------------------------
|
|
// we know that the first phd is an envl feeder, if it is installed, so...
|
|
//----------------------------------------------------
|
|
for (i = 0; i < (int) periphPHD.numPHD; i++)
|
|
{
|
|
if (periphPHD.installed[i].PHDtype IS INPUT_PHD)
|
|
{
|
|
// envl feeder
|
|
if (_tcsstr(periphPHD.installed[i].PHDmodel, TEXT("C3765A")) ISNT NULL)
|
|
{
|
|
hCompEnvl = periphPHD.installed[i].PHDhandle;
|
|
}
|
|
// HCI
|
|
else if (_tcsstr(periphPHD.installed[i].PHDmodel, TEXT("C3763A")) ISNT NULL)
|
|
{
|
|
hCompHCI = periphPHD.installed[i].PHDhandle;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
} // if periphCaps
|
|
|
|
} // if get OT_P_CAPS
|
|
|
|
if (hCompHCI ISNT NULL)
|
|
{
|
|
media_tray[3].bInstalled = TRUE;
|
|
dWord = sizeof(periphHCI);
|
|
dwResult = CALGetComponentObject(hPeripheral, hCompHCI, OT_PERIPHERAL_HCI, 0, &periphHCI, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
//--------------------------------------------------------
|
|
// check the model and then set TRUE
|
|
//--------------------------------------------------------
|
|
if ((signed long) periphHCI.numTrays > 0)
|
|
{
|
|
media_tray[3].uLevel = (unsigned short) periphHCI.inputTrays[0].mediaLevel;
|
|
|
|
//----------------------------------------------------
|
|
// set tray type and name
|
|
//----------------------------------------------------
|
|
switch (periphHCI.inputTrays[0].mediaSize)
|
|
{
|
|
case PJL_LEGAL:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_LEGAL;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_LEGAL;
|
|
break;
|
|
case PJL_A4:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_A4ISO;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_A4ISO;
|
|
break;
|
|
case PJL_A3:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_A3ISO;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_A3ISO;
|
|
break;
|
|
case PJL_11x17:
|
|
case PJL_LEDGER:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_11x17;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_11x17;
|
|
break;
|
|
case PJL_JISB4:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_B4JIS;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_B4JIS;
|
|
break;
|
|
case PJL_JISB5:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_B5JIS;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_B5JIS;
|
|
break;
|
|
case PJL_EXECUTIVE:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_EXEC;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_EXEC;
|
|
break;
|
|
case PJL_CUSTOM:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_CUSTOM;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_CUSTOM;
|
|
break;
|
|
case PJL_2XPOST:
|
|
case PJL_JPOSTD:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_2XPC;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_2XPC;
|
|
break;
|
|
case PJL_B5:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_B5ISO;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_B5ISO;
|
|
break;
|
|
case PJL_COM10:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_COM10;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_COM10;
|
|
break;
|
|
case PJL_C5:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_C5;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_C5;
|
|
break;
|
|
case PJL_DL:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_DL;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_DL;
|
|
break;
|
|
case PJL_MONARCH:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_MONARCH;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_MONARCH;
|
|
break;
|
|
default:
|
|
media_tray[3].uMediaSizeID = IDS_MEDIA_SIZE_LETTER;
|
|
media_tray[3].uMediaSizeIconID = IDI_MEDIA_SIZE_LETTER;
|
|
break;
|
|
} //switch
|
|
|
|
//----------------------------------------------------
|
|
// set the currently selected media type for this tray
|
|
//----------------------------------------------------
|
|
if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Plain")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_PLAIN;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Preprinted")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_PREPRNT;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Letterhead")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_LTRHEAD;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Transparency")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_TRANS;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Prepunched")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_PREPNCH;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Labels")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_LABELS;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Bond")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_BOND;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Recycled")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_RECYCLE;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Color")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_COLORED;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, TEXT("Card Stock")) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_CRDSTCK;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, media_type[10].szMediaType) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_UT1;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, media_type[11].szMediaType) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_UT2;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, media_type[12].szMediaType) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_UT3;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, media_type[13].szMediaType) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_UT4;
|
|
}
|
|
else if (_tcscmp(periphHCI.inputTrays[0].mediaTypeName, media_type[14].szMediaType) IS 0)
|
|
{
|
|
media_tray[3].uMediaTypeID = IDS_MEDIA_TYPE_UT5;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
media_tray[3].bInstalled = FALSE;
|
|
}
|
|
|
|
if (hCompEnvl ISNT NULL)
|
|
{
|
|
media_tray[4].bInstalled = TRUE;
|
|
dWord = sizeof(periphEnvl);
|
|
dwResult = CALGetComponentObject(hPeripheral, hCompEnvl, OT_PERIPHERAL_ENVL_FEEDER, 0, &periphEnvl, &dWord);
|
|
if ( dwResult IS RC_SUCCESS )
|
|
{
|
|
if ((signed long) periphEnvl.numTrays > 0)
|
|
{
|
|
media_tray[4].uLevel = (unsigned short) periphEnvl.inputTrays[0].mediaLevel;
|
|
|
|
//----------------------------------------------------
|
|
// set tray media size and icon
|
|
//----------------------------------------------------
|
|
switch (periphEnvl.inputTrays[0].mediaSize)
|
|
{
|
|
case PJL_LEGAL:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_LEGAL;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_LEGAL;
|
|
break;
|
|
case PJL_A4:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_A4ISO;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_A4ISO;
|
|
break;
|
|
case PJL_A3:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_A3ISO;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_A3ISO;
|
|
break;
|
|
case PJL_11x17:
|
|
case PJL_LEDGER:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_11x17;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_11x17;
|
|
break;
|
|
case PJL_JISB4:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_B4JIS;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_B4JIS;
|
|
break;
|
|
case PJL_JISB5:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_B5JIS;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_B5JIS;
|
|
break;
|
|
case PJL_EXECUTIVE:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_EXEC;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_EXEC;
|
|
break;
|
|
case PJL_CUSTOM:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_CUSTOM;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_CUSTOM;
|
|
break;
|
|
case PJL_2XPOST:
|
|
case PJL_JPOSTD:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_2XPC;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_2XPC;
|
|
break;
|
|
case PJL_B5:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_B5ISO;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_B5ISO;
|
|
break;
|
|
case PJL_COM10:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_COM10;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_COM10;
|
|
break;
|
|
case PJL_C5:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_C5;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_C5;
|
|
break;
|
|
case PJL_DL:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_DL;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_DL;
|
|
break;
|
|
case PJL_MONARCH:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_MONARCH;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_MONARCH;
|
|
break;
|
|
default:
|
|
media_tray[4].uMediaSizeID = IDS_MEDIA_SIZE_LETTER;
|
|
media_tray[4].uMediaSizeIconID = IDI_MEDIA_SIZE_LETTER;
|
|
break;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
// set the currently selected media type for this tray
|
|
//----------------------------------------------------
|
|
if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Plain")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_PLAIN;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Preprinted")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_PREPRNT;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Letterhead")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_LTRHEAD;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Transparency")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_TRANS;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Prepunched")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_PREPNCH;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Labels")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_LABELS;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Bond")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_BOND;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Recycled")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_RECYCLE;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Color")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_COLORED;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, TEXT("Card Stock")) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_CRDSTCK;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, media_type[10].szMediaType) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_UT1;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, media_type[11].szMediaType) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_UT2;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, media_type[12].szMediaType) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_UT3;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, media_type[13].szMediaType) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_UT4;
|
|
}
|
|
else if (_tcscmp(periphEnvl.inputTrays[0].mediaTypeName, media_type[14].szMediaType) IS 0)
|
|
{
|
|
media_tray[4].uMediaTypeID = IDS_MEDIA_TYPE_UT5;
|
|
}
|
|
}
|
|
} // rc success
|
|
} // hCompEnvl isnt null
|
|
else
|
|
{
|
|
media_tray[4].bInstalled = FALSE;
|
|
}
|
|
|
|
memcpy(lpPages, &tabBase, sizeof(tabBase));
|
|
*lpNumPages = sizeof(tabBase) / sizeof(PROPSHEETPAGE);
|
|
|
|
|
|
EXIT:
|
|
|
|
SetCursor(hOldCursor);
|
|
|
|
return returnCode;
|
|
}
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// Function: AppletUIExtension
|
|
//
|
|
// Description:
|
|
//
|
|
// Input: hPeripheral -
|
|
// hwnd -
|
|
// uMsg -
|
|
// lParam1 -
|
|
// lParam2 -
|
|
//
|
|
// Modifies:
|
|
//
|
|
// Returns:
|
|
//
|
|
//--------------------------------------------------------------------
|
|
DLL_EXPORT(DWORD) CALLING_CONVEN AppletUIExtension
|
|
(HPERIPHERAL hPeripheral,
|
|
HWND hwnd,
|
|
UINT uMsg,
|
|
LPARAM lParam1,
|
|
LPARAM lParam2)
|
|
{
|
|
switch (uMsg)
|
|
{
|
|
case APPLET_UIEXT_HOTSPOTS_SUPPORTED:
|
|
break;
|
|
|
|
case APPLET_UIEXT_GET_HOTSPOT_REGIONS:
|
|
{
|
|
int i;
|
|
DWORD dWord;
|
|
/*
|
|
DWORD dwSize = sizeof(PeripheralCaps);
|
|
PeripheralCaps caps;
|
|
|
|
|
|
lpHotspot = (LPHOTSPOT)lParam1;
|
|
if (PALGetObject(hPeripheral, OT_PERIPHERAL_CAPABILITIES, 0, &caps, &dwSize) ISNT RC_SUCCESS)
|
|
{
|
|
for (i = 0; lpHotspotFrontData[i].rRect.left != -1; i++)
|
|
{
|
|
lpHotspotFrontData[i].bActive = TRUE;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (i = 0; lpHotspotFrontData[i].rRect.left != -1; i++)
|
|
{
|
|
if (lpHotspotFrontData[i].wConfig & HOTSPOT_ECL_BASE)
|
|
{
|
|
lpHotspotFrontData[i].bActive = TRUE;
|
|
}
|
|
else if (lpHotspotFrontData[i].wConfig & HOTSPOT_ECL_HCI)
|
|
{
|
|
lpHotspotFrontData[i].bActive = (caps.bHCI AND (caps.flags & CAPS_HCI));
|
|
}
|
|
else if (lpHotspotFrontData[i].wConfig & HOTSPOT_ECL_HCO)
|
|
{
|
|
lpHotspotFrontData[i].bActive = (caps.bHCO AND (caps.flags & CAPS_HCO));
|
|
}
|
|
else
|
|
{
|
|
lpHotspotFrontData[i].bActive = FALSE;
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
|
|
//--------------------------------------------------------
|
|
// This replaces the above commented code. Jonah has no
|
|
// hotspots for input or output.
|
|
//--------------------------------------------------------
|
|
lpHotspot = (LPHOTSPOT)lParam1;
|
|
for (i = 0; lpHotspotFrontData[i].rRect.left != -1; i++)
|
|
{
|
|
lpHotspotFrontData[i].bActive = TRUE;
|
|
}
|
|
//--------------------------------------------------------
|
|
|
|
|
|
//------------------------------------------------------------
|
|
// Check for Admin permission. If not administrator, don't
|
|
// allow access to anything but control panel
|
|
//------------------------------------------------------------
|
|
dWord = TALModifyAccess(hPeripheral);
|
|
|
|
if (!(dWord & ACCESS_SUPERVISOR))
|
|
{
|
|
for (i = 1; lpHotspotFrontData[i].rRect.left != -1; i++)
|
|
{
|
|
if ( lpHotspotFrontData[i].bActive IS TRUE )
|
|
lpHotspotFrontData[i].bActive = FALSE;
|
|
}
|
|
}
|
|
|
|
if (lpHotspot != NULL)
|
|
{
|
|
lpHotspot->lpHotspotData = lpHotspotFrontData;
|
|
}
|
|
|
|
bBackPrinterView = FALSE;
|
|
break;
|
|
}
|
|
|
|
case APPLET_UIEXT_HOTSPOT_COMMAND:
|
|
{
|
|
UINT uAction = (UINT)lParam1, uIndex = (UINT)lParam2;
|
|
WORD wID = HOTSPOT_EOL;
|
|
|
|
if (lpHotspot != NULL)
|
|
{
|
|
wID = lpHotspot->lpHotspotData[uIndex].wID;
|
|
}
|
|
|
|
switch (wID)
|
|
{
|
|
case HOTSPOT_CPANEL:
|
|
#ifdef WIN32
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONTROL_PANEL), hwnd, (DLGPROC)ControlPanelProc);
|
|
#else
|
|
{
|
|
FARPROC lpfnDlgProc;
|
|
|
|
hFontDialog = GetWindowFont(GetFirstChild(hwnd));
|
|
lpfnDlgProc = MakeProcInstance((FARPROC)ControlPanelProc, hInstance);
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONTROL_PANEL), hwnd, (DLGPROC)lpfnDlgProc);
|
|
FreeProcInstance(lpfnDlgProc);
|
|
SetActiveWindow(GetParent(GetParent(hwnd)));
|
|
}
|
|
#endif
|
|
break;
|
|
|
|
|
|
case HOTSPOT_MIO1:
|
|
case HOTSPOT_MIO2:
|
|
wMIOSlotNumber = wID - HOTSPOT_MIO1 + 1;
|
|
|
|
#ifdef WIN32
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MIO_PANEL), hwnd, (DLGPROC)MIOPanelProc);
|
|
#else
|
|
{
|
|
FARPROC lpfnDlgProc;
|
|
|
|
hFontDialog = GetWindowFont(GetFirstChild(hwnd));
|
|
lpfnDlgProc = MakeProcInstance((FARPROC)MIOPanelProc, hInstance);
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MIO_PANEL), hwnd, (DLGPROC)lpfnDlgProc);
|
|
FreeProcInstance(lpfnDlgProc);
|
|
SetActiveWindow(GetParent(GetParent(hwnd)));
|
|
}
|
|
#endif
|
|
break;
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// Jonah has no hotspots for input or output...
|
|
//--------------------------------------------------------------------
|
|
/*
|
|
case HOTSPOT_INPUTTRAY:
|
|
case HOTSPOT_HCI:
|
|
#ifdef WIN32
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_TRAYS_POPUP), hwnd, (DLGPROC)TraysPopupProc);
|
|
#else
|
|
{
|
|
FARPROC lpfnDlgProc;
|
|
|
|
hFontDialog = GetWindowFont(GetFirstChild(hwnd));
|
|
lpfnDlgProc = MakeProcInstance((FARPROC)TraysPopupProc, hInstance);
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_TRAYS_POPUP), hwnd, (DLGPROC)lpfnDlgProc);
|
|
FreeProcInstance(lpfnDlgProc);
|
|
SetActiveWindow(GetParent(GetParent(hwnd)));
|
|
}
|
|
#endif
|
|
break;
|
|
|
|
//----------------------------------------------------
|
|
// Output
|
|
//----------------------------------------------------
|
|
case HOTSPOT_OUTPUTBIN:
|
|
case HOTSPOT_HCO:
|
|
|
|
{
|
|
TCHAR szLibraryName[64];
|
|
DWORD dwSize = sizeof(szLibraryName);
|
|
|
|
if (AMGetLibraryName(szLibraryName, &dwSize, APPLET_LIBRARY_UI, APPLET_COMPONENT, TEXT("HP HCO")) == RC_SUCCESS)
|
|
{
|
|
HINSTANCE hLibrary;
|
|
|
|
if ((hLibrary = LoadLibrary(szLibraryName)) > (HINSTANCE)HINSTANCE_ERROR)
|
|
{
|
|
typedef void (PASCAL FAR *HCOPOPUPPROC)(HWND, HPERIPHERAL);
|
|
HCOPOPUPPROC lpfnHCOPopupProc;
|
|
|
|
if (lpfnHCOPopupProc = (HCOPOPUPPROC)GetProcAddress(hLibrary, "HCOPopupDialog"))
|
|
{
|
|
(lpfnHCOPopupProc)(hwnd, hPeripheral);
|
|
}
|
|
FreeLibrary(hLibrary);
|
|
SetActiveWindow(hwnd); // this is different from the others
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
*/
|
|
//--------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
case APPLET_UIEXT_TOOLBAR_SUPPORTED:
|
|
break;
|
|
|
|
case APPLET_UIEXT_TOOLBAR_GET_ICON:
|
|
{
|
|
int index = (int)lParam1, iIconID;
|
|
HICON *phIcon = (HICON *)lParam2;
|
|
|
|
switch (index)
|
|
{
|
|
case 0:
|
|
iIconID = IDI_TB_BUTTON_HELP;
|
|
break;
|
|
|
|
case 1:
|
|
iIconID = IDI_TB_BUTTON_ROTATE;
|
|
break;
|
|
|
|
case 2:
|
|
iIconID = IDI_TB_BUTTON_CONTROLP;
|
|
break;
|
|
|
|
case 3:
|
|
iIconID = IDI_TB_BUTTON_MIO1;
|
|
break;
|
|
|
|
case 4:
|
|
iIconID = IDI_TB_BUTTON_MIO2;
|
|
break;
|
|
|
|
default:
|
|
return RC_FAILURE;
|
|
}
|
|
|
|
*phIcon = LoadIcon(hInstance, MAKEINTRESOURCE(iIconID));
|
|
break;
|
|
}
|
|
|
|
case APPLET_UIEXT_TOOLBAR_COMMAND:
|
|
{
|
|
int index = (int)lParam1;
|
|
|
|
switch (index)
|
|
{
|
|
case 0: // Garth: if doing extended help, do it here. (115 help contexts)
|
|
{
|
|
DWORD dWord, dwResult;
|
|
PeripheralStatus periphStatus;
|
|
|
|
// install current status message here
|
|
dWord = sizeof(PeripheralStatus);
|
|
dwResult = PALGetObject(hPeripheral, OT_PERIPHERAL_STATUS, 0, &periphStatus, &dWord);
|
|
if (dwResult ISNT RC_SUCCESS)
|
|
periphStatus.helpContext = IDH_STAT_status_unavailable;
|
|
|
|
//SetCursor(LoadCursor(NULL, IDC_WAIT)); probably don't need this
|
|
WinHelp(hwnd, ECL_HELP_FILE, HELP_CONTEXTPOPUP, periphStatus.helpContext);
|
|
break;
|
|
}
|
|
|
|
case 1: // Rotate
|
|
{
|
|
bBackPrinterView = !bBackPrinterView;
|
|
|
|
if (lpHotspot != NULL)
|
|
{
|
|
lpHotspot->lpHotspotData = bBackPrinterView ? lpHotspotBackData : lpHotspotFrontData;
|
|
}
|
|
|
|
SendMessage(hwnd, WM_TIMER, 0, 0);
|
|
break;
|
|
}
|
|
|
|
case 2: // Control Panel
|
|
#ifdef WIN32
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONTROL_PANEL), hwnd, (DLGPROC)ControlPanelProc);
|
|
#else
|
|
{
|
|
FARPROC lpfnDlgProc;
|
|
|
|
hFontDialog = GetWindowFont(GetFirstChild(hwnd));
|
|
lpfnDlgProc = MakeProcInstance((FARPROC)ControlPanelProc, hInstance);
|
|
EnableWindow(GetParent(hwnd), FALSE);
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONTROL_PANEL), hwnd, (DLGPROC)lpfnDlgProc);
|
|
EnableWindow(GetParent(hwnd), TRUE);
|
|
FreeProcInstance(lpfnDlgProc);
|
|
SetActiveWindow(GetParent(hwnd));
|
|
}
|
|
#endif
|
|
break;
|
|
|
|
case 3: // MIO1
|
|
case 4: // MIO2
|
|
wMIOSlotNumber = (WORD)(index - 2);
|
|
|
|
#ifdef WIN32
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MIO_PANEL), hwnd, (DLGPROC)MIOPanelProc);
|
|
#else
|
|
{
|
|
FARPROC lpfnDlgProc;
|
|
|
|
hFontDialog = GetWindowFont(GetFirstChild(hwnd));
|
|
lpfnDlgProc = MakeProcInstance((FARPROC)MIOPanelProc, hInstance);
|
|
EnableWindow(GetParent(hwnd), FALSE);
|
|
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MIO_PANEL), hwnd, (DLGPROC)lpfnDlgProc);
|
|
EnableWindow(GetParent(hwnd), TRUE);
|
|
FreeProcInstance(lpfnDlgProc);
|
|
SetActiveWindow(GetParent(hwnd));
|
|
}
|
|
#endif
|
|
break;
|
|
|
|
default:
|
|
return RC_FAILURE;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
default:
|
|
return RC_FAILURE;
|
|
}
|
|
|
|
return RC_SUCCESS;
|
|
}
|