Sunteți pe pagina 1din 436

294 Route 101

Amherst, NH 03031

Tel: (603) 673-1019


Fax: (603) 672-4112

Printer Driver
User Manual

The information contained in this manual is subject to change without notice.


Changes, technical inaccuracies and typographical errors will be corrected in
subsequent editions of this manual.
The software described in this manual is furnished under a license agreement.
The software may be used or copied only in accordance with terms of the
agreement. No part of this manual may be reproduced or transmitted in any
form or by any means, electronic or mechanical, including photocopying and
recording, for any purpose other than the purchaser's own use without the
express written consent of Black Ice Software, Inc.
1989, 1996, 1997, 1998, 1999, 2001 and 2002 by Black Ice Software, Inc.,
292 Route 101, Amherst, NH 03031. All rights reserved.
Release 6.XX
Fourth Edition (December, 2001)
SP1055
ISBN 1-56265-009-8
Printed in the U.S.A. April 29, 2002

Table Of Contents
INTRODUCTION........................................................................................................................25
Organization of the manual..................................................................................................25
PART A: DRIVERS FOR XP/W2K/NT STANDARD AND TERMINAL SERVER
VERSIONS...................................................................................................................................26
Installing the XP/W2K/NT Drivers ...........................................................................................27
XP/W2K/NT AND TERMINAL SERVER TIFF DRIVER....................................................32
Device Settings sheet.................................................................................................................32
Paper Width...........................................................................................................................33
Paper Height.........................................................................................................................33
Units......................................................................................................................................34
Specifying the Paper Size......................................................................................................34
Paper Sizes Supported.......................................................................................................34
Add Fax Header....................................................................................................................35
Create a Faxable Image........................................................................................................35
Force FAX Resolution...........................................................................................................36
What is Fax Paper Size? ....................................................................................................36
How is Page size computed and image size translated into pixels? ..................................36
Advanced Paper size..............................................................................................................36
Specifying Page Orientation.................................................................................................36
Rotate a Landscape Image to Portrait..................................................................................36
Specifying Graphic Resolution..............................................................................................36
Horizontal Resolution............................................................................................................37
Vertical Resolution................................................................................................................37
Generated Image Size............................................................................................................37
File Formats sheet......................................................................................................................39
Specifying the File Format....................................................................................................40
Options..................................................................................................................................40
Create a multi page image....................................................................................................40
Disable image........................................................................................................................40
Eastern Character Support ..................................................................................................41
Write Text File.......................................................................................................................41
Mail Merge............................................................................................................................41
Save Position and style info ................................................................................................43
TIFF Options.........................................................................................................................43
Internet TIFF format.............................................................................................................43
Reverse bit order in TIFF......................................................................................................43
Add Page Numbering Tag.....................................................................................................43
Photo Quality........................................................................................................................43
Intensity.................................................................................................................................44
Filename Generation sheet.........................................................................................................45
Name Generation Methods ...................................................................................................46
i
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename................................................................................................................................48
Filename Prefix.....................................................................................................................48
Filename Extension...............................................................................................................48
Use custom extension............................................................................................................48
Keep existing files..................................................................................................................48
Output directory....................................................................................................................48
Group File Options...............................................................................................................49
Disable Group File................................................................................................................49
Delete group file after printing.............................................................................................49
Start Application sheet...............................................................................................................50
Enable Start Application.......................................................................................................50
Application............................................................................................................................51
Start Before Printing.............................................................................................................51
Start After Printing................................................................................................................51
Pass Parameters....................................................................................................................51
Show Application Window.....................................................................................................51
Disable Messaging Interface.................................................................................................51
XP/W2K/NT AND TERMINAL SERVER COLOR DRIVER ..............................................53
Driver Files.................................................................................................................................53
Configuring the Driver on Windows XP/W2K/NT and Terminal Server...................................53
Device Settings sheet.................................................................................................................54
Paper Width...........................................................................................................................54
Paper Height.........................................................................................................................55
Units......................................................................................................................................55
Specifying the Paper Size......................................................................................................55
Page Sizes Supported.........................................................................................................55
Add Fax Header....................................................................................................................56
Create a Faxable Image........................................................................................................57
Force FAX Resolution...........................................................................................................57
What is Fax Paper Size? ....................................................................................................57
How is Page size computed and image size translated into pixels?...................................57
Advanced Paper size..............................................................................................................57
Specifying Page Orientation.................................................................................................57
Rotate a Landscape Image to Portrait..................................................................................58
Specifying Graphic Resolution..............................................................................................58
Horizontal Resolution............................................................................................................59
Vertical Resolution................................................................................................................59
Generated Image Size............................................................................................................59
File Formats sheet......................................................................................................................60
Specifying the File Format....................................................................................................60
JPEG Loss Ratio...................................................................................................................61
Color Depth...........................................................................................................................61
Options..................................................................................................................................62
Create a multi page image....................................................................................................62
Disable image........................................................................................................................62
ii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Eastern Character Support ..................................................................................................62


Write Text File.......................................................................................................................62
Mail Merge............................................................................................................................63
Save Position and style info ................................................................................................64
TIFF Options.........................................................................................................................64
Internet TIFF format.............................................................................................................64
Reverse bit order in TIFF......................................................................................................64
Add Page Numbering Tag.....................................................................................................65
Photo Quality........................................................................................................................65
Intesity...................................................................................................................................65
Filename Generation sheet ........................................................................................................66
Name Generation Method ....................................................................................................67
Filename................................................................................................................................69
Filename Prefix.....................................................................................................................69
Filename Extension...............................................................................................................69
Use custom extension............................................................................................................69
Keep existing files..................................................................................................................69
Output directory....................................................................................................................69
Group File Options...............................................................................................................70
Disable Group File................................................................................................................70
Delete group file after printing.............................................................................................70
Start Application sheet...............................................................................................................71
Enable Start Application.......................................................................................................71
Application............................................................................................................................72
Start Before Printing.............................................................................................................72
Start After Printing................................................................................................................72
Pass Parameters....................................................................................................................72
Show Application Window.....................................................................................................72
Disable Messaging Interface.................................................................................................72
XP/W2K/NT AND TERMINAL SERVER METAFILE DRIVER........................................73
Driver Files.................................................................................................................................73
Configuring the EMF (Metafile) Driver on Windows XP/W2K and NT...................................73
Device Settings sheet.................................................................................................................74
Paper Width...........................................................................................................................74
Paper Height.........................................................................................................................75
Units......................................................................................................................................75
Specifying the Paper Size......................................................................................................75
Page Sizes Supported.........................................................................................................75
Add Fax Header....................................................................................................................76
Create a Faxable Image........................................................................................................77
This option is not available in the EMF printer driver........................................................77
Force FAX Resolution...........................................................................................................77
What is Fax Paper Size? ....................................................................................................77
How is Page size computed and image size translated into pixels? ..................................77
Advanced Paper size..............................................................................................................77
iii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Specifying Page Orientation.................................................................................................77


Rotate a Landscape Image to Portrait..................................................................................77
Specifying Graphic Resolution..............................................................................................78
Horizontal Resolution............................................................................................................78
Vertical Resolution................................................................................................................78
Generated Image Size............................................................................................................79
File Formats sheet......................................................................................................................80
Specifying the File Format....................................................................................................80
Options..................................................................................................................................80
Disable image........................................................................................................................81
Eastern Character Support ..................................................................................................81
Write Text File.......................................................................................................................81
Mail Merge............................................................................................................................81
Save Position and style info ................................................................................................83
Filename Generation sheet ........................................................................................................84
Name Generation Method ....................................................................................................85
Filename................................................................................................................................87
Filename Prefix.....................................................................................................................87
Filename Extension...............................................................................................................87
Use custom extension............................................................................................................87
Keep existing files..................................................................................................................87
Output directory....................................................................................................................87
Group File Options...............................................................................................................88
Disable Group File................................................................................................................88
Delete group file after printing.............................................................................................88
Start Application sheet...............................................................................................................89
Enable Start Application.......................................................................................................89
Application............................................................................................................................90
Start Before Printing.............................................................................................................90
Start After Printing................................................................................................................90
Pass Parameters....................................................................................................................90
Show Application Window.....................................................................................................90
Disable Messaging Interface.................................................................................................90
THE PROGRAMMING INTERFACE ....................................................................................91
Programming Interface ..............................................................................................................91
Project settings for the XP/W2k/NT and Terminal Server ..................................................91
How printers store their settings on Windows NT, Windows 2000 and Windows XP?
92
Windows DEVMODE............................................................................................................93
Members OF THE WINDOWS DEVMODE....................................................................94
Black Ice DEVMODE..........................................................................................................102
102
The definition of the BlackIceDEVMODE structure:......................................................103
MEMBERS OF THE BlackIceDEVMODE STRUCTURE...........................................104
Messaging Interface ...........................................................................................................114
iv
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The WM_COPYDATA Windows Message....................................................................116


The COPYDATASTRUCT structure .............................................................................117
The BLACKICE_PRINTER_MESSAGE structure .......................................................117
Description of the Black Ice Printer Messages................................................................118
The BLACKICE_MESSAGE_STARTDOC message: ..................................................118
The BLACKICE_MESSAGE_STARTPAGE message: ................................................119
The BLACKICE_MESSAGE_ENDPAGE message: .....................................................119
The BLACKICE_MESSAGE_ENDDOC message: .......................................................119
The BLACKICE_MESSAGE_ABORT message: ..........................................................119
Command Line Parameters.................................................................................................121
121
Group File Description.......................................................................................................122
Group File Content. ........................................................................................................122
Group file header section.................................................................................................122
Group file body ...............................................................................................................124
Message Capture OCX Control..........................................................................................125
PrinterName Property......................................................................................................125
StartDoc event.................................................................................................................125
StartPage event................................................................................................................125
EndPage event..................................................................................................................126
EndDoc event...................................................................................................................126
The BLICECTR.DLL message capture DLL. .....................................................................127
WaitForPrnPipe
128
EndWaitPrnPipe
128
SetListeningPriority..........................................................................................................128
Sample code for changing the printer settings programmatically .....................................129
Changing the DEVMODE structure under Windows XP/W2K/NT
129
Fax Boards...............................................................................................................................134
GammaLink Fax Boards.....................................................................................................134
Dialogic VFX Fax Boards...................................................................................................134
Bicom Fax Board................................................................................................................134
Commetrex Fax Board........................................................................................................134
Natural Micro Systems Fax Board......................................................................................135
XP/W2K AND NT RESOURCE TOOLKIT...........................................................................137
Directory structure of the Resource Toolkit............................................................................137
Components of the Resource Toolkit......................................................................................138
1. Install...............................................................................................................................138
1.1The Install DLL...........................................................................................................138
1.2The dSetParameter() function.....................................................................................138
1.4Example to set a member of the DEVMODE at install time.......................................140
1.5How to add code to set a member of the DEVMODE...............................................141
v
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

1.6Functions of the Install DLL.......................................................................................142


Where to find the most recent driver files ? ....................................................................145
How to install the printer driver with a different package other than Install Shield?.......148
Which are the correct parameters to call the dSetParameter() function to install the printer
driver................................................................................................................................152
How to set the printer setting at install time using an INI file? .......................................153
How to install the printer with a custom name?...............................................................160
How to install more than one printers?............................................................................160
How to install or configure the printer driver to use different output directory for each
user? ................................................................................................................................160
How to change the Messaging Interface Name ...............................................................161
2. Message Capture Sample................................................................................................162
3. Source of the User Interface DLL...................................................................................162
4. Message Capture OCX Control......................................................................................162
PrinterName Property......................................................................................................163
StartDoc event.................................................................................................................163
StartPage event................................................................................................................163
EndPage event..................................................................................................................163
EndDoc event...................................................................................................................163
5. VB Message Capture Sample..........................................................................................164
6The BlackIceDEVMODE.DLL..........................................................................................164
6.1Description of the DLL...............................................................................................164
6.2How to use the BlackIceDEVMODE.dll....................................................................164
6.3DLL Functions............................................................................................................166
6.3.1The initialization functions...................................................................................166
6.3.1.1BlackIce_GetLastError.........................................................................................166
6.3.1.2LoadBlackIceDEVMODE....................................................................................166
6.3.1.3ReleaseBlackIceDEVMODE................................................................................166
6.3.1.4SaveBlackIceDEVMODE....................................................................................167
6.3.1.5SaveDefaultBlackIceDEVMODE.........................................................................167

6.3.2Change the values of the DEVMODE.................................................................167


6.3.3The Device Settings tab functions....................................................................168
6.3.3.1GetPaperSize........................................................................................................168
6.3.3.2SetPaperSize.........................................................................................................169
6.3.3.3GetPageWidthInPixels..........................................................................................169
6.3.3.4SetPaperWidthInPixel..........................................................................................169
6.3.3.5GetPageHeightInPixels.........................................................................................169
6.3.3.6SetPaperHeightInPixel..........................................................................................169
6.3.3.7GetFaxHeader......................................................................................................170
6.3.3.8 SetFaxHeader......................................................................................................170
6.3.3.9 IsFaxOutputEnabled............................................................................................170
6.3.3.10EnableFaxOutput...............................................................................................170
6.3.3.11DisableFaxOutput..............................................................................................170
6.3.3.12IsAdvancedPaperSizeEnabled.............................................................................171
6.3.3.13EnableAdvancedPaperSize.................................................................................171
6.3.3.14DisableAdvancedPaperSize................................................................................171
6.3.3.15GetOrientation....................................................................................................171
6.3.3.16SetOrientation.....................................................................................................171

vi
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.17IsRotatePaperEnabled.........................................................................................172
6.3.3.18EnableRotatePaper.............................................................................................172
6.3.3.19DisableRotatePaper............................................................................................172
6.3.3.20GetXDPI............................................................................................................172
6.3.3.21SetXDPI.............................................................................................................172
6.3.3.22GetYDPI............................................................................................................173
6.3.3.23SetYDPI.............................................................................................................173
6.3.3.24IsFaxLowOutputEnabled....................................................................................173
6.3.3.25EnableLowFaxOutput........................................................................................173
6.3.3.26DisableLowFaxOutput.......................................................................................173

6.3.4The File Formats Tab functions........................................................................175


6.3.4.1GetFileFormat......................................................................................................175
6.3.4.2 SetFileFormat......................................................................................................176
6.3.4.3GetLossRatio........................................................................................................176
6.3.4.4 SetLossRatio.......................................................................................................176
6.3.4.5GetColorDepth.....................................................................................................176
6.3.4.6SetColorDepth......................................................................................................176
6.3.4.7IsMultipageImageEnabled....................................................................................177
6.3.4.8EnableMultipageImage.........................................................................................177
6.3.4.9DisableMultipageImage........................................................................................177
6.3.4.10IsAppendImageEnabled......................................................................................177
6.3.4.11EnableAppendImage...........................................................................................177
6.3.4.12DisableAppendImage..........................................................................................178
6.3.4.13IsDisableImageEnabled......................................................................................178
6.3.4.14EnableDisableImage...........................................................................................178
6.3.4.15DisableDisableImage..........................................................................................178
6.3.4.16IsEasternCharSupportEnabled............................................................................178
6.3.4.17EnableEasternCharSupport................................................................................179
6.3.4.18DisableEasternCharSupport...............................................................................179
6.3.4.19IsWriteTextEnabled............................................................................................179
6.3.4.20EnableWriteText................................................................................................179
6.3.4.21DisableWriteText...............................................................................................179
6.3.4.22IsMailMergeEnabled..........................................................................................180
6.3.4.23EnableMailMerge...............................................................................................180
6.3.4.24DisableMailMerge..............................................................................................180
6.3.4.25IsAdvancedTextEnabled.....................................................................................180
6.3.4.26EnableAdvancedText..........................................................................................180
6.3.4.27DisableAdvancedText.........................................................................................180
6.3.4.28IsInternetTiffFormatEnabled..............................................................................181
6.3.4.29EnableInternetTiffFormat...................................................................................181
6.3.4.30DisableInternetTiffFormat..................................................................................181
6.3.4.31IsReverseBitOrderEnabled..................................................................................181
6.3.4.32EnableReverseBitOrder......................................................................................181
6.3.4.33DisableReverseBitOrder.....................................................................................182
6.3.4.34IsPageNumberingEnabled ..................................................................................182
6.3.4.35EnablePageNumbering.......................................................................................182
6.3.4.36DisablePageNumbering......................................................................................182
6.3.4.37GetDithering.......................................................................................................182
6.3.4.38SetDithering........................................................................................................183
6.3.4.39GetBrightness.....................................................................................................183

vii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.40SetBrightness......................................................................................................183

6.3.5The Filename Generation tab functions


184
6.3.5.1GetFileGenerationMethod.....................................................................................184
6.3.5.2SetFileGenerationMethod.....................................................................................185
6.3.5.3GetFileNamePrefix...............................................................................................185
6.3.5.4SetFileNamePrefix................................................................................................185
6.3.5.5GetFileExtension..................................................................................................185
6.3.5.6SetFileExtension...................................................................................................185
6.3.5.7IsCustomExtensionEnabled..................................................................................186
6.3.5.8EnableCustomExtension.......................................................................................186
6.3.5.9DisableCustomExtension......................................................................................186
6.3.5.10GetINIFileName.................................................................................................186
6.3.5.11SetINIFileName..................................................................................................186
6.3.5.12GetImageFileName.............................................................................................187
6.3.5.13SetImageFileName..............................................................................................187
6.3.5.14IsKeepExistingFilesEnabled...............................................................................187
6.3.5.15EnableKeepExistingFiles....................................................................................187
6.3.5.16DisableKeepExistingFiles...................................................................................187
6.3.5.17GetOutputDirectory............................................................................................188
6.3.5.18SetOutputDirectory............................................................................................188
6.3.5.19IsGroupFileDisabled...........................................................................................188
6.3.5.20DisableGroupFile...............................................................................................188
6.3.5.21EnableGroupFile................................................................................................188
6.3.5.22IsDeleteGroupFileEnabled..................................................................................189
6.3.5.23EnableDeleteGroupFile.......................................................................................189
6.3.5.24DisableDeleteGroupFile......................................................................................189

6.3.6The Start Application tab functions..................................................................190


6.3.6.1IsStartApplicationEnabled....................................................................................190
6.3.6.2EnableStartApplication.........................................................................................191
6.3.6.3DisableStartApplication.......................................................................................191
6.3.6.4GetApplicationPath..............................................................................................191
6.3.6.5SetApplicationPath...............................................................................................191
6.3.6.6IsStartBeforePrint.................................................................................................191
6.3.6.7EnableStartBeforePrint.........................................................................................192
6.3.6.8DisableStartBeforePrint........................................................................................192
6.3.6.9IsPassParametersEnabled.....................................................................................192
6.3.6.10EnablePassParameters........................................................................................192
6.3.6.11DisablePassParameters.......................................................................................192
6.3.6.12IsStartNormal.....................................................................................................193
6.3.6.13EnableStartNormal.............................................................................................193
6.3.6.14DisableStartNormal............................................................................................193
6.3.6.15IsStartMinimized................................................................................................193
6.3.6.16EnableStartMinimized........................................................................................193
6.3.6.17DisableStartMinimized.......................................................................................194
6.3.6.18IsStartHidden......................................................................................................194
6.3.6.19EnableStartHidden..............................................................................................194
6.3.6.20DisableStartHidden.............................................................................................194
6.3.6.21IsMessagingInterfaceEnabled.............................................................................194
6.3.6.22EnableMessagingInterface..................................................................................195

viii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.23DisableMessagingInterface.................................................................................195

6.3.7Miscellaneous functions ......................................................................................195


6.3.7.1GetInterfaceName.................................................................................................195
6.3.7.2SetInterfaceName.................................................................................................195
6.3.7.3GetPaperLength....................................................................................................195
6.3.7.4SetPaperLength....................................................................................................196
6.3.7.5IsTIFFDllEnabled.................................................................................................196
6.3.7.6EnableTIFFDll.....................................................................................................196
6.3.7.7DisableTIFFDll....................................................................................................196
6.3.7.8IsJPEGDllEnabled................................................................................................196
6.3.7.9EnableJPEGDll.....................................................................................................197
6.3.7.10DisableJPEGDll.................................................................................................197
6.3.7.11GetTIFFDLLName.............................................................................................197
6.3.7.12SetTIFFDLLName.............................................................................................197
6.3.7.13GetJPEGDLLName............................................................................................198
6.3.7.14SetJPEGDLLName............................................................................................198
6.3.7.15GetResourceDLLName......................................................................................198
6.3.7.16SetResourceDLLName.......................................................................................198
6.3.7.17GetBitsPerPixel..................................................................................................198

7C++ Sample - how to modify the printer settings programmatically ..............................199


6.4How the PrinterSettings program works:...................................................................200
8The BlackIceDEVMODE.OCX..........................................................................................200
6.5Description of the OCX..............................................................................................200
6.6How to use the BlackIceDEVMODE.OCX...............................................................200
6.7Methods of the BlackIceDEVMODE.OCX ...............................................................201
6.7.1The initialization functions...................................................................................201
6.7.1.1LoadBlackIceDEVMODE....................................................................................201
6.7.1.2ReleaseBlackIceDEVMODE................................................................................202
6.7.1.3SaveBlackIceDEVMODE....................................................................................202
6.7.1.4SaveDefaultBlackIceDEVMODE.........................................................................202

6.7.2Changing the printer settings................................................................................202


6.7.3The Device Settings methods...........................................................................203
6.7.3.1GetPaperSize........................................................................................................203
6.7.3.2SetPaperSize.........................................................................................................204
6.7.3.3GetPageWidthInPixels..........................................................................................204
6.7.3.4SetPaperWidthInPixel..........................................................................................204
6.7.3.5GetPageHeightInPixels.........................................................................................204
6.7.3.6SetPaperHeightInPixel..........................................................................................204
6.7.3.7GetFaxHeader......................................................................................................205
6.7.3.8 SetFaxHeader......................................................................................................205
6.7.3.9 IsFaxOutputEnabled............................................................................................205
6.7.3.10EnableFaxOutput...............................................................................................205
6.7.3.11DisableFaxOutput..............................................................................................205
6.7.3.12IsAdvancedPaperSizeEnabled.............................................................................206
6.7.3.13EnableAdvancedPaperSize.................................................................................206
6.7.3.14DisableAdvancedPaperSize................................................................................206
6.7.3.15GetOrientation....................................................................................................206
6.7.3.16SetOrientation.....................................................................................................206
6.7.3.17IsRotatePaperEnabled.........................................................................................207
6.7.3.18EnableRotatePaper.............................................................................................207

ix
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.3.19DisableRotatePaper............................................................................................207
6.7.3.20GetXDPI............................................................................................................207
6.7.3.21SetXDPI.............................................................................................................207
6.7.3.22GetYDPI............................................................................................................208
6.7.3.23SetYDPI.............................................................................................................208
6.7.3.24IsFaxLowOutputEnabled....................................................................................208
6.7.3.25EnableLowFaxOutput........................................................................................208
6.7.3.26DisableLowFaxOutput.......................................................................................209

6.7.4The File Formats methods................................................................................210


6.7.4.1GetFileFormat......................................................................................................210
6.7.4.2 SetFileFormat......................................................................................................211
6.7.4.3GetLossRatio........................................................................................................211
6.7.4.4 SetLossRatio.......................................................................................................211
6.7.4.5GetColorDepth.....................................................................................................211
6.7.4.6SetColorDepth......................................................................................................211
6.7.4.7IsMultipageImageEnabled....................................................................................212
6.7.4.8EnableMultipageImage.........................................................................................212
6.7.4.9DisableMultipageImage........................................................................................212
6.7.4.10IsAppendImageEnabled......................................................................................212
6.7.4.11EnableAppendImage...........................................................................................212
6.7.4.12DisableAppendImage..........................................................................................213
6.7.4.13IsDisableImageEnabled......................................................................................213
6.7.4.14EnableDisableImage...........................................................................................213
6.7.4.15DisableDisableImage..........................................................................................213
6.7.4.16IsEasternCharSupportEnabled............................................................................213
6.7.4.17EnableEasternCharSupport................................................................................214
6.7.4.18DisableEasternCharSupport...............................................................................214
6.7.4.19IsWriteTextEnabled............................................................................................214
6.7.4.20EnableWriteText................................................................................................214
6.7.4.21DisableWriteText...............................................................................................214
6.7.4.22IsMailMergeEnabled..........................................................................................215
6.7.4.23EnableMailMerge...............................................................................................215
6.7.4.24DisableMailMerge..............................................................................................215
6.7.4.25IsAdvancedTextEnabled.....................................................................................215
6.7.4.26EnableAdvancedText..........................................................................................215
6.7.4.27DisableAdvancedText.........................................................................................215
6.7.4.28IsInternetTiffFormatEnabled..............................................................................216
6.7.4.29EnableInternetTiffFormat...................................................................................216
6.7.4.30DisableInternetTiffFormat..................................................................................216
6.7.4.31IsReverseBitOrderEnabled..................................................................................216
6.7.4.32EnableReverseBitOrder......................................................................................216
6.7.4.33DisableReverseBitOrder.....................................................................................217
6.7.4.34IsPageNumberingEnabled ..................................................................................217
6.7.4.35EnablePageNumbering.......................................................................................217
6.7.4.36DisablePageNumbering......................................................................................217
6.7.4.37GetDithering.......................................................................................................217
6.7.4.38SetDithering........................................................................................................218
6.7.4.39GetBrightness.....................................................................................................218
6.7.4.40SetBrightness......................................................................................................218

6.7.5The Filename Generation methods...................................................................219


x
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.5.1GetFileGenerationMethod.....................................................................................219
6.7.5.2SetFileGenerationMethod.....................................................................................220
6.7.5.3GetFileNamePrefix...............................................................................................220
6.7.5.4SetFileNamePrefix................................................................................................220
6.7.5.5GetFileExtension..................................................................................................220
6.7.5.6SetFileExtension...................................................................................................220
6.7.5.7IsCustomExtensionEnabled..................................................................................221
6.7.5.8EnableCustomExtension.......................................................................................221
6.7.5.9DisableCustomExtension......................................................................................221
6.7.5.10GetINIFileName.................................................................................................221
6.7.5.11SetINIFileName..................................................................................................221
6.7.5.12GetImageFileName.............................................................................................222
6.7.5.13SetImageFileName..............................................................................................222
6.7.5.14IsKeepExistingFilesEnabled...............................................................................222
6.7.5.15EnableKeepExistingFiles....................................................................................222
6.7.5.16DisableKeepExistingFiles...................................................................................222
6.7.5.17GetOutputDirectory............................................................................................223
6.7.5.18SetOutputDirectory............................................................................................223
6.7.5.19IsGroupFileDisabled...........................................................................................223
6.7.5.20DisableGroupFile...............................................................................................223
6.7.5.21EnableGroupFile................................................................................................223
6.7.5.22IsDeleteGroupFileEnabled..................................................................................224
6.7.5.23EnableDeleteGroupFile.......................................................................................224
6.7.5.24DisableDeleteGroupFile......................................................................................224

6.7.6The Start Application methods.........................................................................225


6.7.6.1IsStartApplicationEnabled....................................................................................225
6.7.6.2EnableStartApplication.........................................................................................226
6.7.6.3DisableStartApplication.......................................................................................226
6.7.6.4GetApplicationPath..............................................................................................226
6.7.6.5SetApplicationPath...............................................................................................226
6.7.6.6IsStartBeforePrint.................................................................................................226
6.7.6.7EnableStartBeforePrint.........................................................................................227
6.7.6.8DisableStartBeforePrint........................................................................................227
6.7.6.9IsPassParametersEnabled.....................................................................................227
6.7.6.10EnablePassParameters........................................................................................227
6.7.6.11DisablePassParameters.......................................................................................227
6.7.6.12IsStartNormal.....................................................................................................228
6.7.6.13EnableStartNormal.............................................................................................228
6.7.6.14DisableStartNormal............................................................................................228
6.7.6.15IsStartMinimized................................................................................................228
6.7.6.16EnableStartMinimized........................................................................................228
6.7.6.17DisableStartMinimized.......................................................................................229
6.7.6.18IsStartHidden......................................................................................................229
6.7.6.19EnableStartHidden..............................................................................................229
6.7.6.20DisableStartHidden.............................................................................................229
6.7.6.21IsMessagingInterfaceEnabled.............................................................................229
6.7.6.22EnableMessagingInterface..................................................................................230
6.7.6.23DisableMessagingInterface.................................................................................230

6.7.7Miscellaneous methods
231
xi
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.7.1GetInterfaceName.................................................................................................231
6.7.7.2SetInterfaceName.................................................................................................231
6.7.7.3GetPaperLength....................................................................................................231
6.7.7.4SetPaperLength....................................................................................................231
6.7.7.5IsTiffDllEnabled...................................................................................................232
6.7.7.6EnableTiffDll.......................................................................................................232
6.7.7.7DisableTiffDll......................................................................................................232
6.7.7.8IsJpegDllEnabled..................................................................................................232
6.7.7.9EnableJpegDll......................................................................................................232
6.7.7.10DisableJpegDll...................................................................................................233
6.7.7.11GetTIFFDLLName.............................................................................................233
6.7.7.12SetTIFFDLLName.............................................................................................233
6.7.7.13GetJPEGDLLName............................................................................................233
6.7.7.14SetJPEGDLLName............................................................................................233
6.7.7.15GetResourceDLLName......................................................................................234
6.7.7.16SetResourceDLLName.......................................................................................234
6.7.7.17GetBitsPerPixel..................................................................................................234

9Visual Basic Sample How to modify the printer settings...............................................234


Differences between Win95/98/ME and XP/W2K/NT Drivers................................................238
PART B: DRIVERS FOR WIN95/98 AND ME....................................................................239
Installing the Win95/98 and ME Drivers..................................................................................240
WIN95/98 AND ME MONOCHROME DRIVER .................................................................244
Configuring the Driver on Windows 95/98 and ME ...............................................................245
Device Settings sheet...............................................................................................................246
Paper Width.........................................................................................................................246
Paper Height.......................................................................................................................247
Units....................................................................................................................................247
Specifying the Paper Size....................................................................................................247
Page Sizes Supported.......................................................................................................247
Add Fax Header..................................................................................................................248
Create a Faxable Image......................................................................................................249
Force FAX Resolution.........................................................................................................249
What is Fax Paper Size? ..................................................................................................249
How is Page size computed and image size translated into pixels? ................................249
Advanced Paper size............................................................................................................249
Specifying Page Orientation...............................................................................................249
Rotate a Landscape Image to Portrait................................................................................250
Specifying Graphic Resolution............................................................................................250
Horizontal Resolution..........................................................................................................250
Vertical Resolution..............................................................................................................251
Generated Image Size..........................................................................................................251
File Formats sheet for Win95/98and ME.................................................................................252
Specifying the File Format..................................................................................................252
Options................................................................................................................................253
Create a multi page image..................................................................................................253
Disable image......................................................................................................................253
xii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Eastern Character Support ................................................................................................253


Write Text File.....................................................................................................................254
Mail Merge..........................................................................................................................254
Save Position and style info ..............................................................................................255
TIFF Options.......................................................................................................................256
Internet TIFF format...........................................................................................................256
Reverse bit order in TIFF....................................................................................................256
Add Page Numbering Tag...................................................................................................256
Photo Quality......................................................................................................................256
Intensity...............................................................................................................................256
Filename Generation sheet.......................................................................................................258
Name Generation Methods .................................................................................................259
Filename..............................................................................................................................261
Filename Prefix...................................................................................................................261
Filename Extension.............................................................................................................261
Use custom extension..........................................................................................................261
Keep existing files................................................................................................................261
Output directory..................................................................................................................261
Group File Options.............................................................................................................262
Disable Group File..............................................................................................................262
Delete group file after printing...........................................................................................262
Start Application sheet.............................................................................................................263
Enable Start Application.....................................................................................................263
Application..........................................................................................................................264
Start Before Printing...........................................................................................................264
Start After Printing..............................................................................................................264
Pass Parameters..................................................................................................................264
Show Application Window...................................................................................................264
Disable Messaging Interface...............................................................................................264
WIN95/98 AND ME COLOR DRIVER..................................................................................265
Driver Files...............................................................................................................................265
Configuring the Driver on Windows 95/98 and ME................................................................265
Device Settings sheet...............................................................................................................266
Paper Width.........................................................................................................................266
Paper Height.......................................................................................................................267
Units....................................................................................................................................267
Specifying the Paper Size....................................................................................................267
Page Sizes Supported.......................................................................................................267
Add Fax Header..................................................................................................................268
Create a Faxable Image......................................................................................................269
Force FAX Resolution.........................................................................................................269
What is Fax Paper Size? ..................................................................................................269
How is Page size computed and image size translated into pixels?.................................269
Advanced Paper size............................................................................................................269
Specifying Page Orientation...............................................................................................269
xiii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Rotate a Landscape Image to Portrait................................................................................269


Specifying Graphic Resolution............................................................................................270
Horizontal Resolution..........................................................................................................270
Vertical Resolution..............................................................................................................271
Generated Image Size..........................................................................................................271
File Formats sheet....................................................................................................................272
Specifying the File Format..................................................................................................272
JPEG Loss Ratio.................................................................................................................273
Color Depth.........................................................................................................................273
Options................................................................................................................................274
Create a multi page image..................................................................................................274
Disable image......................................................................................................................274
Eastern Character Support ................................................................................................274
Write Text File.....................................................................................................................274
Mail Merge..........................................................................................................................275
Save Position and style info ..............................................................................................276
TIFF Options.......................................................................................................................276
Internet TIFF format...........................................................................................................276
Reverse bit order in TIFF....................................................................................................276
Add Page Numbering Tag...................................................................................................276
Photo Quality......................................................................................................................277
Intesity.................................................................................................................................277
Filename Generation sheet ......................................................................................................278
Name Generation Method ..................................................................................................279
Filename..............................................................................................................................281
Filename Prefix...................................................................................................................281
Filename Extension.............................................................................................................281
Use custom extension..........................................................................................................281
Keep existing files................................................................................................................281
Output directory..................................................................................................................281
Group File Options.............................................................................................................282
Disable Group File..............................................................................................................282
Delete group file after printing...........................................................................................282
Start Application sheet.............................................................................................................283
Enable Start Application.....................................................................................................283
Application..........................................................................................................................284
Start Before Printing...........................................................................................................284
Start After Printing..............................................................................................................284
Pass Parameters..................................................................................................................284
Show Application Window...................................................................................................284
Disable Messaging Interface...............................................................................................284
WIN95/98 AND ME METAFILE DRIVER............................................................................285
Driver Files...............................................................................................................................285
Configuring the Driver on Windows 95/98 and ME................................................................285
Device Settings sheet...............................................................................................................286
xiv
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Width.........................................................................................................................286
Paper Height.......................................................................................................................287
Units....................................................................................................................................287
Specifying the Paper Size....................................................................................................287
Page Sizes Supported.......................................................................................................287
Add Fax Header..................................................................................................................288
Create a Faxable Image......................................................................................................288
Force FAX Resolution.........................................................................................................289
What is Fax Paper Size? ..................................................................................................289
How is Page size computed and image size translated into pixels? ................................289
Advanced Paper size............................................................................................................289
Specifying Page Orientation...............................................................................................289
Rotate a Landscape Image to Portrait................................................................................289
Specifying Graphic Resolution............................................................................................289
Horizontal Resolution..........................................................................................................290
Vertical Resolution..............................................................................................................290
Generated Image Size..........................................................................................................291
File Formats sheet....................................................................................................................292
Specifying the File Format..................................................................................................292
Options................................................................................................................................292
Disable image......................................................................................................................293
Eastern Character Support ................................................................................................293
Write Text File.....................................................................................................................293
Mail Merge..........................................................................................................................293
Save Position and style info ..............................................................................................295
Filename Generation sheet ......................................................................................................296
Name Generation Method ..................................................................................................297
Filename..............................................................................................................................299
Filename Prefix...................................................................................................................299
Filename Extension.............................................................................................................299
Use custom extension..........................................................................................................299
Keep existing files................................................................................................................299
Output directory..................................................................................................................299
Group File Options.............................................................................................................300
Disable Group File..............................................................................................................300
Delete group file after printing...........................................................................................300
Start Application sheet.............................................................................................................301
Enable Start Application.....................................................................................................301
Application..........................................................................................................................302
Start Before Printing...........................................................................................................302
Start After Printing..............................................................................................................302
Pass Parameters..................................................................................................................302
Show Application Window...................................................................................................302
Disable Messaging Interface...............................................................................................302
THE PROGRAMMING INTERFACE ..................................................................................303
xv
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Programming Interface ............................................................................................................303


Windows DEVMODE..........................................................................................................303
Members OF THE WINDOWS DEVMODE..................................................................304
Black Ice DEVMODE..........................................................................................................312
312
The definition of the BlackIceDEVMODE structure.......................................................313
MEMBERS OF THE BlackIceDEVMODE STRUCTURE...........................................314
Messaging Interface ...........................................................................................................324
The WM_COPYDATA Windows Message....................................................................324
The COPYDATASTRUCT structure .............................................................................325
The BLACKICE_PRINTER_MESSAGE structure .......................................................326
Description of the Black Ice Printer Messages................................................................327
The BLACKICE_MESSAGE_STARTDOC message: ..................................................327
The BLACKICE_MESSAGE_STARTPAGE message: ................................................327
The BLACKICE_MESSAGE_ENDPAGE message: .....................................................327
The BLACKICE_MESSAGE_ENDDOC message: .......................................................327
The BLACKICE_MESSAGE_ABORT message: ..........................................................328
Command Line Parameters.................................................................................................329
329
Group File Description.......................................................................................................330
Group File Content. ........................................................................................................330
Group file header section.................................................................................................330
Group file body ...............................................................................................................332
Message Capture OCX Control..........................................................................................333
PrinterName Property......................................................................................................333
StartDoc event.................................................................................................................333
StartPage event................................................................................................................333
EndPage event..................................................................................................................333
EndDoc event...................................................................................................................334
Sample code for changing the printer settings programmatically .....................................335
Changing the DEVMODE structure under Win 95/98 & ME.........................................335
Fax Boards...............................................................................................................................337
GammaLink Fax Boards.....................................................................................................337
Dialogic VFX Fax Boards...................................................................................................337
Bicom Fax Board................................................................................................................337
Commetrex Fax Board........................................................................................................337
Natural Micro Systems Fax Board......................................................................................338
WIN95/98 AND ME RESOURCE TOOLKIT........................................................................339
Directory structure of the Resource Toolkit............................................................................339
Components of the Resource Toolkit......................................................................................340
1. Install...............................................................................................................................340
1.1The Install DLL...........................................................................................................340
1.2The dSetParameter() function.....................................................................................340
1.4Example to set a member of the DEVMODE at install time.......................................342
xvi
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

1.5How to add code to set a member of the DEVMODE...............................................343


1.6Functions of the Install DLL.......................................................................................344
Which are the right parameters for the dSetParameter() function to install the printer
driver ?.............................................................................................................................346
Where to find the most recent driver files ? ....................................................................347
How to install the printer driver with a different package other than Install Shield?.......348
How to install the printer with a custom name?...............................................................350
How to install more than one printers?............................................................................350
2. Message Capture Sample................................................................................................351
3. Source of the User Interface DLL...................................................................................351
4. Message Capture OCX Control......................................................................................351
PrinterName Property......................................................................................................352
StartDoc event.................................................................................................................352
StartPage event................................................................................................................352
EndPage event..................................................................................................................352
EndDoc event...................................................................................................................352
5. VB Message Capture Sample..........................................................................................352
6The BlackIceDEVMODE.DLL..........................................................................................352
6.1Description of the DLL...............................................................................................352
6.2How to use the BlackIceDEVMODE.dll....................................................................353
6.3DLL Functions............................................................................................................354
6.3.1The initialization functions...................................................................................354
6.3.1.1BlackIce_GetLastError.........................................................................................354
6.3.1.2LoadBlackIceDEVMODE....................................................................................354
6.3.1.3ReleaseBlackIceDEVMODE................................................................................355
6.3.1.4SaveBlackIceDEVMODE....................................................................................355

6.3.2Change the values of the DEVMODE.................................................................355


6.3.3The Device Settings functions..........................................................................355
6.3.3.1GetPaperSize........................................................................................................355
6.3.3.2SetPaperSize.........................................................................................................356
6.3.3.3GetPageWidthInPixels..........................................................................................356
6.3.3.4SetPaperWidthInPixel..........................................................................................356
6.3.3.5GetPageHeightInPixels.........................................................................................356
6.3.3.6SetPaperHeightInPixel..........................................................................................356
6.3.3.7GetFaxHeader......................................................................................................357
6.3.3.8 SetFaxHeader......................................................................................................357
6.3.3.9 IsFaxOutputEnabled............................................................................................357
6.3.3.10EnableFaxOutput...............................................................................................357
6.3.3.11DisableFaxOutput..............................................................................................357
6.3.3.12IsAdvancedPaperSizeEnabled.............................................................................358
6.3.3.13EnableAdvancedPaperSize.................................................................................358
6.3.3.14DisableAdvancedPaperSize................................................................................358
6.3.3.15GetOrientation....................................................................................................358
6.3.3.16SetOrientation.....................................................................................................358
6.3.3.17IsRotatePaperEnabled.........................................................................................359
6.3.3.18EnableRotatePaper.............................................................................................359
6.3.3.19DisableRotatePaper............................................................................................359
6.3.3.20GetXDPI............................................................................................................359

xvii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.21SetXDPI.............................................................................................................359
6.3.3.22GetYDPI............................................................................................................360
6.3.3.23SetYDPI.............................................................................................................360
6.3.3.24IsFaxLowOutputEnabled....................................................................................360
6.3.3.25EnableLowFaxOutput........................................................................................360
6.3.3.26DisableLowFaxOutput.......................................................................................361

6.3.4The File Formats functions...............................................................................361


6.3.4.1GetFileFormat......................................................................................................361
6.3.4.2 SetFileFormat......................................................................................................361
6.3.4.3GetLossRatio........................................................................................................361
6.3.4.4 SetLossRatio.......................................................................................................362
6.3.4.5GetColorDepth.....................................................................................................362
6.3.4.6SetColorDepth......................................................................................................362
6.3.4.7IsMultipageImageEnabled....................................................................................362
6.3.4.8EnableMultipageImage.........................................................................................362
6.3.4.9DisableMultipageImage........................................................................................363
6.3.4.10IsAppendImageEnabled......................................................................................363
6.3.4.11EnableAppendImage...........................................................................................363
6.3.4.12DisableAppendImage..........................................................................................363
6.3.4.13IsDisableImageEnabled......................................................................................363
6.3.4.14EnableDisableImage...........................................................................................364
6.3.4.15DisableDisableImage..........................................................................................364
6.3.4.16IsEasternCharSupportEnabled............................................................................364
6.3.4.17EnableEasternCharSupport................................................................................364
6.3.4.18DisableEasternCharSupport...............................................................................364
6.3.4.19IsWriteTextEnabled............................................................................................365
6.3.4.20EnableWriteText................................................................................................365
6.3.4.21DisableWriteText...............................................................................................365
6.3.4.22IsMailMergeEnabled..........................................................................................365
6.3.4.23EnableMailMerge...............................................................................................365
6.3.4.24DisableMailMerge..............................................................................................365
6.3.4.25IsAdvancedTextEnabled.....................................................................................366
6.3.4.26EnableAdvancedText..........................................................................................366
6.3.4.27DisableAdvancedText.........................................................................................366
6.3.4.28IsInternetTiffFormatEnabled..............................................................................366
6.3.4.29EnableInternetTiffFormat...................................................................................366
6.3.4.30DisableInternetTiffFormat..................................................................................367
6.3.4.31IsReverseBitOrderEnabled..................................................................................367
6.3.4.32EnableReverseBitOrder......................................................................................367
6.3.4.33DisableReverseBitOrder.....................................................................................367
6.3.4.34IsPageNumberingEnabled ..................................................................................367
6.3.4.35EnablePageNumbering.......................................................................................368
6.3.4.36DisablePageNumbering......................................................................................368
6.3.4.37GetDithering.......................................................................................................368
6.3.4.38SetDithering........................................................................................................368
6.3.4.39GetBrightness.....................................................................................................368
6.3.4.40SetBrightness......................................................................................................369

6.3.5The Filename Generation functions..................................................................369


6.3.5.1GetFileGenerationMethod.....................................................................................369
6.3.5.2SetFileGenerationMethod.....................................................................................369

xviii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5.3GetFileNamePrefix...............................................................................................369
6.3.5.4SetFileNamePrefix................................................................................................369
6.3.5.5GetFileExtension..................................................................................................370
6.3.5.6SetFileExtension...................................................................................................370
6.3.5.7IsCustomExtensionEnabled..................................................................................370
6.3.5.8EnableCustomExtension.......................................................................................370
6.3.5.9DisableCustomExtension......................................................................................370
6.3.5.10GetINIFileName.................................................................................................371
6.3.5.11SetINIFileName..................................................................................................371
6.3.5.12GetImageFileName.............................................................................................371
6.3.5.13SetImageFileName..............................................................................................371
6.3.5.14IsKeepExistingFilesEnabled...............................................................................371
6.3.5.15EnableKeepExistingFiles....................................................................................372
6.3.5.16DisableKeepExistingFiles...................................................................................372
6.3.5.17GetOutputDirectory............................................................................................372
6.3.5.18SetOutputDirectory............................................................................................372
6.3.5.19IsGroupFileDisabled...........................................................................................372
6.3.5.20DisableGroupFile...............................................................................................373
6.3.5.21EnableGroupFile................................................................................................373
6.3.5.22IsDeleteGroupFileEnabled..................................................................................373
6.3.5.23EnableDeleteGroupFile.......................................................................................373
6.3.5.24DisableDeleteGroupFile......................................................................................373

6.3.6The Start Application functions........................................................................374


6.3.6.1IsStartApplicationEnabled....................................................................................374
6.3.6.2EnableStartApplication.........................................................................................374
6.3.6.3DisableStartApplication.......................................................................................374
6.3.6.4GetApplicationPath..............................................................................................374
6.3.6.5SetApplicationPath...............................................................................................374
6.3.6.6IsStartBeforePrint.................................................................................................375
6.3.6.7EnableStartBeforePrint.........................................................................................375
6.3.6.8DisableStartBeforePrint........................................................................................375
6.3.6.9IsPassParametersEnabled.....................................................................................375
6.3.6.10EnablePassParameters........................................................................................375
6.3.6.11DisablePassParameters.......................................................................................376
6.3.6.12IsStartNormal.....................................................................................................376
6.3.6.13EnableStartNormal.............................................................................................376
6.3.6.14DisableStartNormal............................................................................................376
6.3.6.15IsStartMinimized................................................................................................376
6.3.6.16EnableStartMinimized........................................................................................377
6.3.6.17DisableStartMinimized.......................................................................................377
6.3.6.18IsStartHidden......................................................................................................377
6.3.6.19EnableStartHidden..............................................................................................377
6.3.6.20DisableStartHidden.............................................................................................377
6.3.6.21IsMessagingInterfaceEnabled.............................................................................378
6.3.6.22EnableMessagingInterface..................................................................................378
6.3.6.23DisableMessagingInterface.................................................................................378

6.3.7Functions which arent in preferences form......................................................378


6.3.7.1GetInterfaceName.................................................................................................378
6.3.7.2SetInterfaceName.................................................................................................378
6.3.7.3GetPaperLength....................................................................................................379

xix
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.7.4SetPaperLength....................................................................................................379
6.3.7.5IsTiffDllEnabled...................................................................................................379
6.3.7.6EnableTiffDll.......................................................................................................379
6.3.7.7DisableTiffDll......................................................................................................379
6.3.7.8IsJpegDllEnabled..................................................................................................380
6.3.7.9EnableJpegDll......................................................................................................380
6.3.7.10DisableJpegDll...................................................................................................380
6.3.7.11GetTIFFDLLName.............................................................................................380
6.3.7.12SetTIFFDLLName.............................................................................................380
6.3.7.13GetJPEGDLLName............................................................................................381
6.3.7.14SetJPEGDLLName............................................................................................381
6.3.7.15GetResourceDLLName......................................................................................381
6.3.7.16SetResourceDLLName.......................................................................................381
6.3.7.17GetBitsPerPixel..................................................................................................382

7C++ Sample - how to modify the printer settings programmatically ..............................383


7.1How the PrinterSettings program works:...................................................................384
8The BlackIceDEVMODE.OCX..........................................................................................384
8.1Description of the OCX..............................................................................................384
8.2How to use the BlackIceDEVMODE.ocx..................................................................384
8.3Methods of the BlackIceDEVMODE.OCX ...............................................................385
8.3.1The initialization functions...................................................................................385
8.3.1.1LoadBlackIceDEVMODE....................................................................................386
8.3.1.2ReleaseBlackIceDEVMODE................................................................................386
8.3.1.3SaveBlackIceDEVMODE....................................................................................386

8.3.2Change the printer settings...................................................................................386


8.3.3The Device Settings methods...........................................................................387
8.3.3.1GetPaperSize........................................................................................................387
8.3.3.2SetPaperSize.........................................................................................................387
8.3.3.3GetPageWidthInPixels..........................................................................................387
8.3.3.4SetPaperWidthInPixel..........................................................................................387
8.3.3.5GetPageHeightInPixels.........................................................................................387
8.3.3.6SetPaperHeightInPixel..........................................................................................388
8.3.3.7GetFaxHeader......................................................................................................388
8.3.3.8 SetFaxHeader......................................................................................................388
8.3.3.9 IsFaxOutputEnabled............................................................................................388
8.3.3.10EnableFaxOutput...............................................................................................389
8.3.3.11DisableFaxOutput..............................................................................................389
8.3.3.12IsAdvancedPaperSizeEnabled.............................................................................389
8.3.3.13EnableAdvancedPaperSize.................................................................................389
8.3.3.14DisableAdvancedPaperSize................................................................................389
8.3.3.15GetOrientation....................................................................................................390
8.3.3.16SetOrientation.....................................................................................................390
8.3.3.17IsRotatePaperEnabled.........................................................................................390
8.3.3.18EnableRotatePaper.............................................................................................390
8.3.3.19DisableRotatePaper............................................................................................390
8.3.3.20GetXDPI............................................................................................................391
8.3.3.21SetXDPI.............................................................................................................391
8.3.3.22GetYDPI............................................................................................................391
8.3.3.23SetYDPI.............................................................................................................391
8.3.3.24IsFaxLowOutputEnabled ...................................................................................392

xx
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.3.25EnableLowFaxOutput .......................................................................................392
8.3.3.26DisableLowFaxOutput ......................................................................................392

8.3.4The File Formats methods................................................................................393


8.3.4.1GetFileFormat......................................................................................................393
8.3.4.2 SetFileFormat......................................................................................................393
8.3.4.3GetLossRatio........................................................................................................393
8.3.4.4 SetLossRatio.......................................................................................................393
8.3.4.5GetColorDepth.....................................................................................................394
8.3.4.6SetColorDepth......................................................................................................394
8.3.4.7IsMultipageImageEnabled....................................................................................394
8.3.4.8EnableMultipageImage.........................................................................................394
8.3.4.9DisableMultipageImage........................................................................................394
8.3.4.10IsAppendImageEnabled......................................................................................395
8.3.4.11EnableAppendImage...........................................................................................395
8.3.4.12DisableAppendImage..........................................................................................395
8.3.4.13IsDisableImageEnabled......................................................................................395
8.3.4.14EnableDisableImage...........................................................................................395
8.3.4.15DisableDisableImage..........................................................................................395
8.3.4.16IsEasternCharSupportEnabled............................................................................396
8.3.4.17EnableEasternCharSupport................................................................................396
8.3.4.18DisableEasternCharSupport...............................................................................396
8.3.4.19IsWriteTextEnabled............................................................................................396
8.3.4.20EnableWriteText................................................................................................396
8.3.4.21DisableWriteText...............................................................................................397
8.3.4.22IsMailMergeEnabled..........................................................................................397
8.3.4.23EnableMailMerge...............................................................................................397
8.3.4.24DisableMailMerge..............................................................................................397
8.3.4.25IsAdvancedTextEnabled.....................................................................................397
8.3.4.26EnableAdvancedText..........................................................................................398
8.3.4.27DisableAdvancedText.........................................................................................398
8.3.4.28IsInternetTiffFormatEnabled..............................................................................398
8.3.4.29EnableInternetTiffFormat...................................................................................398
8.3.4.30DisableInternetTiffFormat..................................................................................398
8.3.4.31IsReverseBitOrderEnabled..................................................................................398
8.3.4.32EnableReverseBitOrder......................................................................................399
8.3.4.33DisableReverseBitOrder.....................................................................................399
8.3.4.34IsPageNumberingEnabled ..................................................................................399
8.3.4.35EnablePageNumbering.......................................................................................399
8.3.4.36DisablePageNumbering......................................................................................399
8.3.4.37GetDithering.......................................................................................................400
8.3.4.38SetDithering........................................................................................................400
8.3.4.39GetBrightness.....................................................................................................400
8.3.4.40SetBrightness......................................................................................................400

8.3.5The Filename Generation methods...................................................................401


8.3.5.1GetFileGenerationMethod.....................................................................................401
8.3.5.2SetFileGenerationMethod.....................................................................................401
8.3.5.3GetFileNamePrefix...............................................................................................401
8.3.5.4SetFileNamePrefix................................................................................................401
8.3.5.5GetFileExtension..................................................................................................402
8.3.5.6SetFileExtension...................................................................................................402

xxi
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.5.7IsCustomExtensionEnabled..................................................................................402
8.3.5.8EnableCustomExtension.......................................................................................402
8.3.5.9DisableCustomExtension......................................................................................402
8.3.5.10GetINIFileName.................................................................................................403
8.3.5.11SetINIFileName..................................................................................................403
8.3.5.12GetImageFileName.............................................................................................403
8.3.5.13SetImageFileName..............................................................................................403
8.3.5.14IsKeepExistingFilesEnabled...............................................................................403
8.3.5.15EnableKeepExistingFiles....................................................................................404
8.3.5.16DisableKeepExistingFiles...................................................................................404
8.3.5.17GetOutputDirectory............................................................................................404
8.3.5.18SetOutputDirectory............................................................................................404
8.3.5.19IsGroupFileDisabled...........................................................................................404
8.3.5.20DisableGroupFile...............................................................................................405
8.3.5.21EnableGroupFile................................................................................................405
8.3.5.22IsDeleteGroupFileEnabled..................................................................................405
8.3.5.23EnableDeleteGroupFile.......................................................................................405
8.3.5.24DisableDeleteGroupFile......................................................................................405

8.3.6The Start Application method..........................................................................406


8.3.6.1IsStartApplicationEnabled....................................................................................406
8.3.6.2EnableStartApplication.........................................................................................406
8.3.6.3DisableStartApplication.......................................................................................406
8.3.6.4GetApplicationPath..............................................................................................406
8.3.6.5SetApplicationPath...............................................................................................406
8.3.6.6IsStartBeforePrint.................................................................................................407
8.3.6.7EnableStartBeforePrint.........................................................................................407
8.3.6.8DisableStartBeforePrint........................................................................................407
8.3.6.9IsPassParametersEnabled.....................................................................................407
8.3.6.10EnablePassParameters........................................................................................407
8.3.6.11DisablePassParameters.......................................................................................408
8.3.6.12IsStartNormal.....................................................................................................408
8.3.6.13EnableStartNormal.............................................................................................408
8.3.6.14DisableStartNormal............................................................................................408
8.3.6.15IsStartMinimized................................................................................................408
8.3.6.16EnableStartMinimized........................................................................................409
8.3.6.17DisableStartMinimized.......................................................................................409
8.3.6.18IsStartHidden......................................................................................................409
8.3.6.19EnableStartHidden..............................................................................................409
8.3.6.20DisableStartHidden.............................................................................................409
8.3.6.21IsMessagingInterfaceEnabled.............................................................................410
8.3.6.22EnableMessagingInterface..................................................................................410
8.3.6.23DisableMessagingInterface.................................................................................410

8.3.7Miscellaneous methods........................................................................................410
8.3.7.1GetInterfaceName.................................................................................................410
8.3.7.2SetInterfaceName.................................................................................................410
8.3.7.3GetPaperLength....................................................................................................411
8.3.7.4SetPaperLength....................................................................................................411
8.3.7.5IsTiffDllEnabled...................................................................................................411
8.3.7.6EnableTiffDll.......................................................................................................411
8.3.7.7DisableTiffDll......................................................................................................411

xxii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.7.8IsJpegDllEnabled..................................................................................................412
8.3.7.9EnableJpegDll......................................................................................................412
8.3.7.10DisableJpegDll...................................................................................................412
8.3.7.11GetTIFFDLLName.............................................................................................412
8.3.7.12SetTIFFDLLName.............................................................................................413
8.3.7.13GetJPEGDLLName............................................................................................413
8.3.7.14SetJPEGDLLName............................................................................................413
8.3.7.15GetResourceDLLName......................................................................................413
8.3.7.16SetResourceDLLName.......................................................................................413
8.3.7.17GetBitsPerPixel..................................................................................................414

9Visual Basic Sample how to modify the printer settings................................................414


Differences between Win95/98/ME and XP/W2K/NT Drivers................................................417
TECHNICAL SUPPORT..........................................................................................................420
PRINTING TIPS........................................................................................................................422
How to print a document to a fax compatible image without repaginating the document. 422
How to print images with exact size in pixels......................................................................422
How to print using very large paper size ?.........................................................................423
TROUBLESHOOTING............................................................................................................424
Creating Installations For Users.........................................................................................424
"Printing Defaults..." button...............................................................................................424
Setting changes when Black Ice is not the default printer..................................................425
Why the printed image parameters are different then printer driver settings?...................425
Printer driver does not generate any output.......................................................................426
How to set file format (Group 3,Group4) in runtime?........................................................426
Does the printer driver support Multi-threading?..............................................................426
Can Black Ice printer driver handle concurrent requests specifying different file format and
resolution?...........................................................................................................................426
Why the printer messages are captured by the administrator account when printing Test
Page on Terminal Server?...................................................................................................427
Why the printer generates the output files on the windows directory when printing Test
Page on Terminal Server?...................................................................................................427
Why the printer reports the Invalid printer driver data type error when printing?.......427
427
Why the printer reports the Cannot print directly to the printer error when printing?..428
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc\ Cannot Created
message................................................................................................................................428
Domain users cannot use the launch the application feature on the Terminal Server.......429
The default settings are not set for all users after installation on Win2000 and XP. ........429
The printer is not using the selected DPI settings. .............................................................429
Distorted images from MS Word and Excel........................................................................430
The printer driver does not start the application................................................................430
INDEX.........................................................................................................................................433

xxiii
294 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 1998 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Introduction
Black Ice Software, Inc., has been licensing printer drivers since 1992 for software companies, System
Integrators, print manufactures, corporate end uses. The printer drivers are available for Windows
95/98, Millennium Windows, NT 4.0, Windows 2000, Windows XP, and Microsoft and Cytrex
Terminal Server operating systems. The printer drivers are available in Monochrome or Color. The
printer drivers can produce raster images as output such as TIFF or vector output such as Microsoft
Meta File Format.
The printer drivers are licensed as:

Monochrome driver for Win 95/98 and Windows Millennium Edition.


Monochrome driver for NT 4.0, Windows 2000 and XP.
Monochrome driver for NT 4.0, Windows 2000 and Citrix Terminal Servers.
Color driver for Win95/98 and Windows Millennium Edition.
Color driver for NT 4.0, Windows 2000 and XP
Color driver for NT 4.0 , Windows 2000 and Citrix Terminal Servers.
MS Meta File printer driver for Win95/98 and Windows Millennium Edition.
MS Meta File printer driver for NT 4.0, Windows 2000 and XP.
By request only, MS Meta File printer driver for NT 4.0, Windows 2000, XP and Cytrix
Terminal Servers.

Organization of the manual


The manual is split into three parts. Part A covers XP/W2K and NT. Part B covers Win95/98 and ME.
Part C covers Terminal Server printer drivers for XP/W2K and NT.
Black Ice Software organized the printer drivers by operating system and the type of driver. For
example, Monochrome, Color and Metafile drivers. Each specific type of printer driver has a separate
chapter. The monochrome printer driver is almost identical for every operating system, therefore there
is only one description of the monochrome printer driver with subtle differences and comments in each
section.
The Terminal Server printer drivers are substantially different, therefore they are organized in a
separate chapter.
This manual is being completely rewritten, therefore if you find any errors please e-mail them to
techsupport@blackice.com.

25
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Part A: Drivers for XP/W2K/NT


Standard and Terminal Server
versions

26
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Installing the XP/W2K/NT Drivers


NOTE:
To correctly install the printer driver on Terminal Server for XP/W2K/NT the Terminal
Server should be set to install mode. The best way to do this is to start the installation of the driver
from the Control Panel group -> Add/Remove Programs. This will set the Terminal Server to install
mode and will exit the install mode at the end of the installation.
The Terminal Server printer driver can be correctly installed only from the server machine.
The printer driver cannot be installed from a remote machine, even with administrator privileges.
Adding the port monitor or the printer port probably will fail.
To successfully install the driver you must have Terminal Server Service Pack 4.
You will also need administrator privileges to install the driver.
Three installation options exist for the Black Ice Printer driver depending on the type of desired output.
The driver can automatically be configured for fax applications, non-fax applications (document
imaging), or the driver can be custom configured. The settings specified during installation can be
changed at any time by accessing the Printers folder and right clicking on the Black Ice Driver and
selecting Printing Preferences on XP/Win2000 systems or Document Defaults on NT systems.
1. Double click on the file that was downloaded to begin the installation.
2. Follow the onscreen instructions until you are prompted to select the type of driver installation
you want. Please see the screen shot below:

27
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

You will be presented with three installation options:


3. Fax Applications: Selecting this setting will automatically configure the driver for fax output.
You can change these settings at any time after installation. See the following sections of the
manual for more detail.
4. Non Fax Applications: Selecting this setting will automatically configure the driver for
document imaging output. You can change these settings at any time after installation. See the
following sections of the manual for more detail.
5. Custom Config: Selecting this setting will bring up the Driver Properties dialog box where you
can you manually configure the driver. You can change these settings at any time after
installation. See the following sections of the manual for more detail.
Please see the installation section below for each option:

Fax Applications:

Selecting this option will bring up the following screen:

28
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Here you can specify the type of TIFF file that will be outputted. The settings can be based on a
specific hardware type or you can go with the default setting. Make your selection and press the Next
button to complete the installation. You can change these settings at any time after installation. See
the following sections of the manual for more detail.

Non Fax Applications:

Selecting this option automatically configures the driver for document imaging. By default the file
format will be set to 24 bit JPEG. Press finish to complete the installation. You can change these
settings at any time after installation. See the following sections of the manual for more detail.

Custom Config:

Selecting this option will bring up the following screen:

29
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Press the Printer button to manually configure the driver or press the next button to proceed with the
default settings and complete the installation. By default, the image format is set to 24 bit JPEG.
Pressing the Printer button will bring up the following dialog box.

30
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Use this dialog box and the various sheets to configure the driver. The following sections of the
manual will describe in detail how to configure the properties of the Printer Driver. Make your
selections and press OK to complete the installation.

31
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

XP/W2K/NT and Terminal Server TIFF


Driver
Device Settings sheet

32
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

33
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large A size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Paper Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
34
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Quarto 215 x 275 mm


10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

Create a Faxable Image


This check box can be used to set the driver to automatically create images that have fax paper
size and resolution. The paper sizes and graphic resolutions are not restricted, but the end result
image file will have a fax-able page size and fax-compatible resolution. For example, if the page is
Letter paper size and 600 DPI, the generated file width will be 1728 pixels.
35
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Force FAX Resolution


If the Create Faxable image check is selected the driver to automatically create images that have
fax paper size and resolution. The user can select the final resolution of the faxable image between
204x98 DPI (Standard Fax Resolution) and 204x196 DPI (Fine Fax Resolution).

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as the Japanese envelope size.

Specifying Page Orientation


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

Rotate a Landscape Image to Portrait


When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:
36
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

Horizontal Resolution
Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.

Vertical Resolution
Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.
37
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

38
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet

39
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Specifying the File Format


Click on the File Format list box to select the output image file type for the driver. Click on the
down arrow to scroll through the available selections.
The current selections are:

TIFF Group 3 1D
TIFF Group 3 1D No EOL
TIFF Group 3 2D
TIFF Group 4
TIFF Packed
TIFF LZW
TIFF Uncompressed
PCX Image Format
Intel DCX Image Format
Microsoft DIB (BMP)
CALS
RAW CCITT TIFF Group 3 1D
RAW CCITT TIFF Group 3 1D No EOL
RAW CCITT TIFF Group 3 2D
RAW CCITT TIFF Group 4
IBM MRR

Options
Create a multi page image
When this button is checked the driver will save every printed page in one image file. If it is
unchecked all the pages printed will be generated in separate files.
NOTE: This option is only supported by the TIFF (any type of TIFF) and DCX file formats.

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file radio button is checked for text output and the image file is not needed. As a result, the
driver will only generate a text file, no image files will be generated.

40
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95/98/ME. In this case, the
characters printed are not valid one-byte ASCII values. The driver cannot save text files of any
kind, therefore the Write text file, Position and Style Info, and Mail Merge options will be
disabled.

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1
Page 2:
Text on page 2
Page 3:
Text on page 3

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file. This feature is useful when generating multi-page TIFF files from a
large document using a custom printing application.
The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
41
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The recognized command sequences are as follows:


##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
Phone number=6031234321 .

##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
Page 2:
Page 3:
This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

42
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B
U
I

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
= The font in the text is underlined.
= The font in the text is italic.

TIFF Options
All of the following settings are only available for TIFF files.

Internet TIFF format


If TIFF file format is selected as the output image format and this box is checked, the driver will create
a TIFF file that is compatible with the requirements listed in chapter 3 of RFC 2301 (File Format for
Internet Fax ). (Not a chapter in this manual.) That chapter lists the required tags for black-and-white
faxes. The extra tag the driver will include in the tiff file if this flag is checked is NEWSUBFILETYPE.

Reverse bit order in TIFF


This setting only has an effect on TIFF images.
If this box is checked, the driver will save TIFF images with reverse bit order and also set the
value of the FILLORDER tag in the image file to Reverse.
GammaLink compatible TIFF output requires this setting to be checked, because they can only
send TIFF images with reverse bit order.

Add Page Numbering Tag


This setting only has an effect on TIFF images.
If this box is checked, the driver will set the page number tag of every page in the output TIFF
file.

Photo Quality
The Photo Quality option enables or disables the dithering of the Black Ice driver. When Photo
Quality is enabled, five high quality filters become accessible. Digital half-toning, also referred to
as spatial dithering, produces the illusion of continuous-tone pictures on media that is only
capable of displaying binary picture elements, for example: fax machines and most printers.
Floyd-Steinberg and Jarvis-Judice-Ninke are the text book filters. The Smooth, Sharp, and
43
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Stucki filters are less known, but produce better quality output. Floyd-Steinberg is the default
setting.

Intensity
The photo quality program group also contains a scroll bar that lets you control the intensity of the
output image. The lower the Intensity value is, the darker the output image will be.

When should Photo Quality Output be used?


Photo Quality output is designed primarily for faxing or to transmit color pictures on a
monochrome device. When a color picture is faxed from a conventional desktop fax machine, the
result is unrecognizable in most cases. On computer-generated faxes, the output quality can be
increased to picture quality using the Black Ice printer driver.
How is performance affected by the Photo Quality output?
The fastest filter is the Floyd-Steinberg, because it requires the least computation. Stucki is the
slowest filter, but has the highest quality. The Stucki filter produces the best visible output.

44
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

45
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Methods


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use the prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

1. Use the prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
2. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

46
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

3. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
4. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

5. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
47
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
7. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\
NOTE: On Terminal Server each user can use a separate output directory. Setting a separate
output directory for each user can be done in two ways:
48
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

a. Each user will set their own output directory manually by entering in this field the
directory path they want to use. The user must have permission to set the printer.
or
b. Specify the environment variable which contains a directory path. The environment
variable name must be between << and >> marks. I.e.: <<TEMP>>. The
printer driver will use the value from the environment variable as the output
directory. This environment variable should be specified for each user by the
system administrator. The system administrator can add to the autoexec.bat the a
SET command which uses the %USER% environment variable so this path will be
unique for each user. I.e.:
SET TEMP=C:\Temp\%USER%

I.e. to specify the TEMP environment variable as output directory enter in this
field: <<TEMP>>
Note: If the specified environment variable is not found the printer driver will
use by default the temp directory of the actual user to generate the image files.

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
the started application message loop is ready to process messages. Once the application is started
the driver will delete the group file.

49
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages or can manipulate the
generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.
Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.
50
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

51
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

XP/W2K/NT and Terminal Server Color


Driver
Driver Files
The following files are needed in order for the driver to operate:
- Windows\System\bi_color.drv: This is the driver file itself. It has to reside in the directory
returned by the GetPrinterDriverDirectory() API call, which is usually in the
windows\system directory.
- Windows\System\cdrvres.dll: The driver loads the resources from this DLL. It must be in
the same directory where the driver file is.
- Windows\System\tiff.dll: This DLL is used by the driver for TIFF file I/O. It has to be in the
same directory where the driver file is.
- Windows\System\jpeg.dll: This DLL is used by the driver for TIFF file I/O. It has to be in
the same directory where the driver file is.

Configuring the Driver on Windows


XP/W2K/NT and Terminal Server
Clicking with the right mouse button on the Black Ice Color printer and selecting Properties will bring
up the printers main setup dialog. The following sheets of the property dialog box (Device Setting,
File Formats, Filename generation, and Start Application) contain the driver specific settings. The
Details tab contains port specific settings.

53
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Device Settings sheet

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

54
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large E size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Page Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
55
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

A5 148 x 210 mm
B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

56
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Create a Faxable Image


This check box can be used to set the driver to automatically create images that have fax paper
size and resolution. The paper sizes and graphic resolutions are not restricted, but the end result
image file will have a fax-able page size and fax-compatible resolution. For example, if the page is
Letter paper size and 600 DPI, the generated file width will be 1728 pixels.

Force FAX Resolution


If the Create Faxable image check is selected the driver to automatically create images that have
fax paper size and resolution. The user can select the final resolution of the faxable image between
204x98 DPI (Standard Fax Resolution) and 204x196 DPI (Fine Fax Resolution).

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as Japanese envelope size.

Specifying Page Orientation


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

57
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Rotate a Landscape Image to Portrait


When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

58
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Horizontal Resolution
Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.

Vertical Resolution
Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.

59
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet

Specifying the File Format


Click on the File Format list box to select the output image file type for the driver. Click on the
down arrow to scroll through the available selections.
The current selections are:
60
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

JPEG
JPEG L*a*b
Microsoft DIB (BMP)
TIFF Uncompressed
TIFF Group 3 1D
TIFF Group 3 1D No EOL
TIFF Group 3 2D
TIFF Group 4
TIFF Packed
TIFF LZW
TIFF JPEG
TIFF Group 3 1D
PCX Image Format
Intel DCX Image Format
CALS
RAW CCITT TIFF Group 3 1D
RAW CCITT TIFF Group 3 1D No EOL
RAW CCITT TIFF Group 3 2D
RAW CCITT TIFF Group 4
Extended Metafile
IBM MRR

JPEG Loss Ratio


The quality of the JPEG file that is generated. This is only used for JPEG and JPEG Lab type files. A
higher value equals higher quality; however the file size will be larger. Conversely, a lower value equals
lower quality, but the file size will be smaller.

Color Depth
The color depth setting for the generated image. The value can be 1 bit, 8 bits, 8 bits grayscale and 24
bits.
The file types shown in the File Format combo box depends on this value. The user can only select
from file types compatible with the current color depth setting. For example: if 1 bit is selected, the
JPEG file type will not be shown.

61
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Options
Create a multi page image
When this button is checked the driver will save every printed page in one image file. If it is
unchecked all the pages printed will be generated in separate files.
NOTE: This option is only supported by the TIFF (any type of TIFF) and DCX file formats.

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file is checked for text output and the image file is not needed. As a result, the driver will
only generate a text file, no image files will be generated.

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95. In this case, the characters
printed are not valid one-byte ASCII values. The driver cannot save text files of any kind,
therefore the Write text file, Position and Style Info, and Mail Merge options will be disabled.

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1
Page 2:
Text on page 2
Page 3:
Text on page 3
62
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file. This feature is useful when generating multi-page TIFF files from a
large document using a custom printing application.
The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
The recognized command sequences are as follows:
##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
Phone number=6031234321 .

##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
63
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Page 2:
Page 3:
This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B
U
I

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
= The font in the text is underlined.
= The font in the text is italic.

TIFF Options
All of the following settings are only available for TIFF files.

Internet TIFF format


If TIFF file format is selected as the output image format and this box is checked, the driver will create
a TIFF file that is compatible with the requirements listed in chapter 3 of RFC 2301 (File Format for
Internet Fax ). (Not a chapter in this manual.) That chapter lists the required tags for black-and-white
faxes. The extra tag the driver will include in the tiff file if this flag is checked is NEWSUBFILETYPE.

Reverse bit order in TIFF


This setting only has an effect on TIFF images.
If this box is checked, the driver will save TIFF images with reverse bit order and also set the
value of the FILLORDER tag in the image file to Reverse.
GammaLink compatible TIFF output requires this setting to be checked, because they can only
send TIFF images with reverse bit order.

64
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Add Page Numbering Tag


This setting only has an effect on TIFF images.
If this box is checked, the driver will set the page number tag of every page in the output TIFF
file.

Photo Quality
The Photo Quality option enables or disables the dithering of the Black Ice driver. When Photo
Quality is enabled, five high quality filters become accessible. Digital half-toning, also referred to
as spatial dithering, produces the illusion of continuous-tone pictures on media that is only
capable of displaying binary picture elements, for example: fax machines and most printers.
Floyd-Steinberg and Jarvis-Judice-Ninke are the text book filters. The Smooth, Sharp, and
Stucki filters are less known, but produce better quality output. Floyd-Steinberg is the default
setting.

Intesity
The photo quality program group also contains a scroll bar that lets you control the intensity of the
output image. The lower the Intensity value is, the darker the output image will be.

When should Photo Quality Output be used?


Photo Quality output is designed primarily for faxing or to transmit color pictures on a
monochrome device. When a color picture is faxed from a conventional desktop fax machine, the
result is unrecognizable in most cases. On computer-generated faxes, the output quality can be
increased to picture quality using the Black Ice printer driver.
How is performance affected by the Photo Quality output?
The fastest filter is the Floyd-Steinberg, because it requires the least computation. Stucki is the
slowest filter, but has the highest quality. The Stucki filter produces the best visible output.

65
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

66
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Method


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use this prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

8. Use this prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
9. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

67
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

10. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
11. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

12. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
68
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

13. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
14. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\
NOTE: On Terminal Server each user can use a separate output directory. Setting a separate
output directory for each user can be done in two ways:
69
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

a. Each user will set their own output directory manually by entering in this field the
directory path they want to use. The user must have permission to set the printer.
or
b. Specify the environment variable which contains a directory path. The environment
variable name must be between << and >> marks. I.e.: <<TEMP>>. The
printer driver will use the value from the environment variable as the output
directory. This environment variable should be specified for each user by the
system administrator. The system administrator can add to the autoexec.bat the a
SET command which uses the %USER% environment variable so this path will be
unique for each user. I.e.:
SET TEMP=C:\Temp\%USER%

I.e. to specify the TEMP environment variable as output directory enter in this
field: <<TEMP>>
Note: If the specified environment variable is not found the printer driver will
use by default the temp directory of the actual user to generate the image files.

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate the group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
will then delete the group file.

70
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages or can manipulate the
generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.

71
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

72
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

XP/W2K/NT and Terminal Server


Metafile Driver
Driver Files
The following files are needed in order for the driver to operate:
- Windows\System\metafile.drv: This is the driver file itself. It must reside in the directory
returned by the GetPrinterDriverDirectory() API call, which is usually in the
windows\system directory.

Configuring the EMF (Metafile) Driver


on Windows XP/W2K and NT
Clicking with the right mouse button on the Black Ice Color printer and selecting Properties will bring
up the printers main setup dialog. The following sheets of the property dialog box (Device Setting,
Filename generation, and Start Application) contain the driver specific settings. The Details tab
contains port specific settings.

73
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Device Settings sheet

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

74
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large E size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Page Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
75
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

76
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Create a Faxable Image


This option is not available in the EMF printer driver.

Force FAX Resolution


This option is not available in the EMF printer driver.

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as Japanese envelope size.

Specifying Page Orientation


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

Rotate a Landscape Image to Portrait


When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

77
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

Horizontal Resolution
Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.

Vertical Resolution
78
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.

79
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet

Specifying the File Format


The only file formats available are EMF and Text output.

Options

80
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file radio button is checked for text output and the image file is not needed. As a result, the
driver will only generate a text file, no image files will be generated.

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95/98/ME. In this case, the
characters printed are not valid one-byte ASCII values. The driver cannot save text files of any
kind, therefore the Write text file, Position and Style Info, and Mail Merge options will be
disabled.

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1
Page 2:
Text on page 2
Page 3:
Text on page 3

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file. This feature is useful when generating multi-page TIFF files from a
large document using a custom printing application.
81
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
The recognized command sequences are as follows:
##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
Phone number=6031234321 .

##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
Page 2:
Page 3:

82
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B
U
I

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
= The font in the text is underlined.
= The font in the text is italic.

83
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

84
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Method


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use this prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

15. Use this prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
16. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

85
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

17. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
18. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

19. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
86
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

20. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
21. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\
NOTE: On Terminal Server each user can use a separate output directory. Setting a separate
output directory for each user can be done in two ways:
87
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

a. Each user will set their own output directory manually by entering in this field the
directory path they want to use. The user must have permission to set the printer.
or
b. Specify the environment variable which contains a directory path. The environment
variable name must be between << and >> marks. I.e.: <<TEMP>>. The
printer driver will use the value from the environment variable as the output
directory. This environment variable should be specified for each user by the
system administrator. The system administrator can add to the autoexec.bat the a
SET command which uses the %USER% environment variable so this path will be
unique for each user. I.e.:
SET TEMP=C:\Temp\%USER%

I.e. to specify the TEMP environment variable as output directory enter in this
field: <<TEMP>>
Note: If the specified environment variable is not found the printer driver will
use by default the temp directory of the actual user to generate the image files.

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate the group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
will then delete the group file.

88
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages, or can manipulate the
89
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.
Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

90
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The Programming Interface


Programming Interface
The Black Ice printer driver has a programming interface. Through this interface all the printer
settings can be read, changed and written programmatically, however they should never be
accessed directly, just through the designated functions. All these functions are declared in the
devmode.h file and are implemented in the devmode.cpp file.
The printer driver settings are stored in a data structure named BlackIceDEVMODE. The
BlackIceDEVMODE data structure contains information about the device initialization and
environment of a printer.
On Windows XP/W2K and NT, the string members of the BlackIceDEVMODE structure are
UNICODE strings. When the application reads or writes these members it is very important to use
UNICODE strings.

Project settings for the XP/W2k/NT and


Terminal Server
To correctly handle the BlackIceDEVMODE the project must have the following settings:
1. The Structure Member Alignment must be 1 byte
2. The following preprocessor definitions must be used: _UNICODE, UNICODE,
_WIN32_WINNT=0x0400
To open the Project Settings in the Visual C++ 6.0 environment the go to the Project menu,
Settings menu item or press ALT+F7. On the window which appears select the C/C++ tab.
To set the Structure Member Alignment, from the Category drop down list select the Code
Generation option. Set the Structure Member Alignment to 1 byte.
To set the preprocessor definitions, from the Category drop down list select the General option.
Enter the _UNICODE, UNICODE, _WIN32_WINNT=0x0400 defines into the preprocessor
definitions: field.

91
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

How printers store their settings on


Windows NT, Windows 2000 and Windows
XP?
Every printer stores all of its settings in the DEVMODE structure and stores the DEVMODE
structure in the registry. The DEVMODE structure consists of a standard section and a printer specific
section. The standard section or Windows DEVMODE contains all the common printer settings like
paper size and orientation. The printer specific section contains all the manufacturer specific settings.
For the Black Ice printers both the standard and the printer specific DEVMODE sturcture is defined in
the BlackIceDEVMODE structure. All the members of this structure are described in this chapter.
There is a difference on how the different operating systems handle the DEVMODE structure,
therefore each operating system is described separately.
Windows NT:
Windows NT only stores one copy of the DEVMODE structure in the registry. This DEVMODE
structure describes all the printer settings used by every user and every application. These settings can
be changed only by a User with administrative privileges or by a User whom the Administrator gave
rights to change the printer settings.
Every time an application wants to print to the printer, it will read the printers default settings and
depending on how the application wants to print, can use the default settings or it can change some of
the settings. Changes made in the printer settings by using an applications Printer properties dialog will
not change the printer settings globally. The changes will be made for that given instance of the
application only.
Windows 2000/XP
Windows 2000/XP stores more than one copy of the DEVMODE structure in the registry. There are
default printer settings and User specific printer settings.
To set the printers default parameters, the Administrator has to select the printers Properties in the
Printers window, select the Advanced tab and click the Printing Defaults button.
The User specific settings are stored separately for each User in the Users HKEY_CURRENT_USER
registry key.
92
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

By default, the User specific settings are inherited from the printers default settings. To change the
User specific printer settings the User has to select Printing preferences or Properties-> Printing
preferences and modify the settings he wants to change. All the modifications will affect the given User
only. On Windows XP Users have to have rights to modify User specific printer settings.
Every time an application wants to print to the printer, it will read the User specific printer settings and
depending on how the application wants to print, can use these settings or it can change some of the
settings. Changes made in the printer settings by using an applications Printer properties dialog will not
change the printer settings globally. The changes will be made for that given instance of the application
only.

Windows DEVMODE
The Black Ice Printer Drivers are using a BlackIceDEVMODE data structure based on the default
Windows DEVMODE data structure:
typedef struct _devicemode {
BCHAR dmDeviceName[CCHDEVICENAME];
WORD
dmSpecVersion;
WORD
dmDriverVersion;
WORD
dmSize;
WORD
dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
};
POINTL dmPosition;
};
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BCHAR dmFormName[CCHFORMNAME];
WORD
dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;

93
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

}
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
} DEVMODE;

Members OF THE WINDOWS DEVMODE


dmDeviceName
Specifies the the "friendly" name of the printer; for example, "PCL/HP LaserJet" in the
case of a PCL/HP LaserJet. This string is unique among device drivers. Note that this
name may be truncated to fit in the dmDeviceName array.
dmSpecVersion
Specifies the version number of the initialization data specification on which the structure
is based. To ensure the correct version is used for any operating system, use
DM_SPECVERSION.
dmDriverVersion
Specifies the printer driver version number assigned by the printer driver developer.
dmSize
Specifies the size, in bytes, of the DEVMODE structure, not including any private driverspecific data that might follow the structure's public members. Set this member to
sizeof(DEVMODE) to indicate the version of the DEVMODE structure being used.
dmDriverExtra
Contains the number of bytes of private driver-data that follow this structure. If a device
driver does not use device-specific information, set this member to zero.
dmFields
Specifies whether certain members of the DEVMODE structure have been initialized. If a
member is initialized, its corresponding bit is set, otherwise the bit is clear. A printer
driver supports only those DEVMODE members that are appropriate for the printer
technology.
The following values are defined, and are listed here with the corresponding structure
members.
Value
DM_ORIENTATION
DM_PAPERSIZE
DM_PAPERLENGTH
DM_PAPERWIDTH
DM_POSITION

Structure member
dmOrientation
dmPaperSize
dmPaperLength
dmPaperWidth
dmPosition

94
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DM_SCALE
DM_COPIES
DM_DEFAULTSOURCE
DM_PRINTQUALITY
DM_COLOR
DM_DUPLEX
DM_YRESOLUTION
DM_TTOPTION
DM_COLLATE
DM_FORMNAME
DM_LOGPIXELS
DM_BITSPERPEL
DM_PELSWIDTH
DM_PELSHEIGHT
DM_DISPLAYFLAGS
DM_NUP
DM_DISPLAYFREQUENCY
DM_ICMMETHOD
DM_ICMINTENT
DM_MEDIATYPE
DM_DITHERTYPE
DM_PANNINGWIDTH
DM_PANNINGHEIGHT

dmScale
dmCopies
dmDefaultSource
dmPrintQuality
dmColor
dmDuplex
dmYResolution
dmTTOption
dmCollate
dmFormName
dmLogPixels
dmBitsPerPel
dmPelsWidth
dmPelsHeight
dmDisplayFlags
dmNup
dmDisplayFrequency
dmICMMethod
dmICMIntent
dmMediaType
dmDitherType
Windows 2000 or later: dmPanningWidth
Windows 2000 or later: dmPanningHeight

dmOrientation
For printer devices only, selects the orientation of the paper. This member can be either
DMORIENT_PORTRAIT (1) or DMORIENT_LANDSCAPE (2).
dmPaperSize
For printer devices only, selects the size of the paper to print on. This member can be set
to zero if the length and width of the paper are both set by the dmPaperLength and
dmPaperWidth members. Otherwise, the dmPaperSize member can be set to one of the
following predefined values.
#define DMPAPER_FAX
#define DMPAPER_VARIABLE
#define DMPAPER_VARIABLE_PIXEL
#define
#define
#define
#define
#define
#define
#define

DMPAPER_LETTER
DMPAPER_LETTERSMALL
DMPAPER_TABLOID
DMPAPER_LEDGER
DMPAPER_LEGAL
DMPAPER_STATEMENT
DMPAPER_EXECUTIVE

DMPAPER_USER+1
DMPAPER_USER+2
DMPAPER_USER+3
1
2
3
4
5
6
7

/*
/*
/*
/*
/*
/*
/*

Letter 8 1/2 x 11 in
Letter Small 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in

95
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

*/
*/
*/
*/
*/
*/
*/

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

DMPAPER_A3
8
DMPAPER_A4
9
DMPAPER_A4SMALL
10
DMPAPER_A5
11
DMPAPER_B4
12
DMPAPER_B5
13
DMPAPER_FOLIO
14
DMPAPER_QUARTO
15
DMPAPER_10X14
16
DMPAPER_11X17
17
DMPAPER_NOTE
18
DMPAPER_ENV_9
19
DMPAPER_ENV_10
20
DMPAPER_ENV_11
21
DMPAPER_ENV_12
22
DMPAPER_ENV_14
23
DMPAPER_CSHEET
24
DMPAPER_DSHEET
25
DMPAPER_ESHEET
26
DMPAPER_ENV_DL
27
DMPAPER_ENV_C5
28
DMPAPER_ENV_C3
29
DMPAPER_ENV_C4
30
DMPAPER_ENV_C6
31
DMPAPER_ENV_C65
32
DMPAPER_ENV_B4
33
DMPAPER_ENV_B5
34
DMPAPER_ENV_B6
35
DMPAPER_ENV_ITALY
36
DMPAPER_ENV_MONARCH
37
DMPAPER_ENV_PERSONAL
38
DMPAPER_FANFOLD_US
39
DMPAPER_FANFOLD_STD_GERMAN 40
DMPAPER_FANFOLD_LGL_GERMAN 41
DMPAPER_ISO_B4
42
DMPAPER_JAPANESE_POSTCARD
43
DMPAPER_9X11
44
DMPAPER_10X11
45
DMPAPER_15X11
46
DMPAPER_ENV_INVITE
47
DMPAPER_RESERVED_48
48
DMPAPER_RESERVED_49
49
DMPAPER_LETTER_EXTRA
50
DMPAPER_LEGAL_EXTRA
51
DMPAPER_TABLOID_EXTRA
52
DMPAPER_A4_EXTRA
53
DMPAPER_LETTER_TRANSVERSE
54
DMPAPER_A4_TRANSVERSE
55
DMPAPER_LETTER_EXTRA_TRANSVERSE
DMPAPER_A_PLUS
57
DMPAPER_B_PLUS
58
DMPAPER_LETTER_PLUS
59
DMPAPER_A4_PLUS
60
DMPAPER_A5_TRANSVERSE
61
DMPAPER_B5_TRANSVERSE
62
DMPAPER_A3_EXTRA
63
DMPAPER_A5_EXTRA
64

#define DMPAPER_A0
#define DMPAPER_A1

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
56
/*
/*
/*
/*
/*
/*
/*
/*

A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
B4 (JIS) 257 x 364 mm
B5 (JIS) 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10 x 14 in
11 x 17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8 in
Envelope #10 4 1/8 x 9 1/2 in
Envelope #11 4 1/2 x 10 3/8 in
Envelope #12 4 3/4 x 11 in
Envelope #14 5 x 11 1/2 in
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220 mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3 7/8 x 7 1/2 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Standard Fanfold 14 7/8 x 11 in
German Standard Fanfold 8 1/2 x 12
German Legal Fanfold 8 1/2 x 13 in
B4 (ISO) 250 x 353 mm
Japanese Postcard 100 x 148 mm
9 x 11 in
10 x 11 in
15 x 11 in
Envelope Invite 220 x 220 mm
RESERVED--DO NOT USE
RESERVED--DO NOT USE
Letter Extra 9 1/2 x 12 in
Legal Extra 9 1/2 x 15 in
Tabloid Extra 11.69 x 18 in
A4 Extra 9.27 x 12.69 in
Letter Transverse 8 1/2 x 11 in
A4 Transverse 210 x 297 mm
/*Letter Extra Transverse 9 1/2x12
SuperA/SuperA/A4 227 x 356 mm
SuperB/SuperB/A3 305 x 487 mm
Letter Plus 8.5 x 12.69 in
A4 Plus 210 x 330 mm
A5 Transverse 148 x 210 mm
B5 (JIS) Transverse 182 x 257 mm
A3 Extra 322 x 445 mm
A5 Extra 174 x 235 mm

DMPAPER_USER+4 /* A0 840 x 1180 mm


DMPAPER_USER+5 /* A0 594 x 840 mm

*/
*/

96
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
in */
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
in*/
*/
*/
*/
*/
*/
*/
*/
*/

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

DMPAPER_ASHEET
DMPAPER_BSHEET
DMPAPER_FSHEET
DMPAPER_GSHEET
DMPAPER_HSHEET
DMPAPER_JSHEET
DMPAPER_KSHEET
DMPAPER_AASHEET
DMPAPER_BASHEET
DMPAPER_CASHEET
DMPAPER_DASHEET
DMPAPER_EASHEET

DMPAPER_USER+6
DMPAPER_USER+7
DMPAPER_USER+8
DMPAPER_USER+9
DMPAPER_USER+11
DMPAPER_USER+12
DMPAPER_USER+13
DMPAPER_USER+14
DMPAPER_USER+15
DMPAPER_USER+16
DMPAPER_USER+17
DMPAPER_USER+18

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

A Sheet 215 x 279


B Sheet 239 x 431
F Sheet 711 x 1016
G Sheet 279 x 571
H Sheet 711 x 1117
J Sheet 863 x 1397
K Sheet 1016 x 1592
AA Sheet 228 x 304
BA Sheet 304 x 457
CA Sheet 457 x 609
DA Sheet 609 x 965
EA Sheet 965 x 1219

mm
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

dmPaperLength
For printer devices only, this overrides the length of the paper specified by the
dmPaperSize member, either for custom paper sizes or for devices such as dot-matrix
printers that can print on a page of arbitrary length. These values, along with all other
values in this structure that specify a physical length, are in tenths of a millimeter.
dmPaperWidth
For printer devices only, this overrides the width of the paper specified by the
dmPaperSize member.
dmPosition
Windows 95/98/ME, Windows 2000/XP or later: For display devices only, a POINTL
structure that indicates the positional coordinates of the display device in reference to the
desktop area. The primary display device is always located at coordinates (0,0).
dmScale
Specifies the factor by which the printed output is to be scaled. The apparent page size is
scaled from the physical page size by a factor of dmScale/100. For example, a letter-sized
page with a dmScale value of 50 will contain as much data as a 17 by 22 inch page,
because the output text and graphics would be half their original height and width.
dmCopies
Selects the number of copies printed if the device supports multiple-page copies.
dmDefaultSource
Specifies the paper source. To retrieve a list of the available paper sources for a printer,
use the DeviceCapabilities function with the DC_BINS flag.
This member can be one of the following values, or it can be a device-specific value
greater than or equal to DMBIN_USER.
DMBIN_ONLYONE
DMBIN_LOWER
DMBIN_MIDDLE
DMBIN_MANUAL
DMBIN_ENVELOPE
DMBIN_ENVMANUAL
DMBIN_AUTO
DMBIN_TRACTOR
DMBIN_SMALLFMT
97
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DMBIN_LARGEFMT
DMBIN_LARGECAPACITY
DMBIN_CASSETTE
DMBIN_FORMSOURCE
dmPrintQuality
Specifies the printer resolution. There are four predefined device-independent values:
DMRES_HIGH
DMRES_MEDIUM
DMRES_LOW
DMRES_DRAFT
If a positive value is specified, it specifies the number of dots per inch (DPI) and is
therefore device dependent.
dmColor
Switches between color and monochrome on color printers. The following values are
possible:
DMCOLOR_COLOR
DMCOLOR_MONOCHROME
dmDuplex
Selects duplex or double-sided printing for printers capable of duplex printing. The
following values are possible:
Value
DMDUP_SIMPLEX
DMDUP_HORIZONTAL
DMDUP_VERTICAL

Meaning
Normal (non-duplex) printing.
Short-edge binding, that is, the long edge of
the page is horizontal.
Long-edge binding, that is, the long edge of
the page is vertical.

dmYResolution
Specifies the y-resolution, in dots per inch, of the printer. If the printer initializes this
member, the dmPrintQuality member specifies the x-resolution, in dots per inch of the
printer.
dmTTOption
Specifies how TrueType fonts should be printed. This member can be one of the
following values.
Value
DMTT_BITMAP

Meaning
Prints TrueType fonts as graphics. This is the default

98
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

action for dot-matrix printers.


DMTT_DOWNLOAD
Downloads TrueType fonts as soft fonts. This is the
default action for Hewlett-Packard printers that use
Printer Control Language (PCL).
DMTT_DOWNLOAD_OUTLINE Window 95/98, Windows NT 4.0, and later:
Downloads TrueType fonts as outline soft fonts.
DMTT_SUBDEV
Substitutes device fonts for TrueType fonts. This is the
default action for PostScript printers.
dmUnusedPadding
Used to align the structure to a DWORD boundary. This should not be used or
referenced. Its name and usage is reserved and can change in future releases.
dmCollate
Specifies whether collation should be used when printing multiple copies. (This member is
ignored unless the printer driver indicates support for collation by setting the dmFields
member to DM_COLLATE.) This member can be be one of the following values.
Value
Meaning
DMCOLLATE_TRUE Collate when printing multiple copies.
DMCOLLATE_FALSE Do not collate when printing multiple copies.
Using DMCOLLATE_TRUE provides faster, more efficient output for collation, since the
data is sent to the device driver just once, no matter how many copies are required. The
printer is told to simply print the page again.
dmFormName
Windows XP/W2K and NT or later: Specifies the name of the form to use; for example,
"Letter" or "Legal". A complete set of names can be retrieved by using the EnumForms
function.
Windows 95: Printer drivers do not use this member.
dmLogPixels
Specifies the number of pixels per logical inch. Printer drivers do not use this member.
dmBitsPerPel
Specifies the color resolution, in bits per pixel, of the display device (for example: 4 bits
for 16 colors, 8 bits for 256 colors, or 16 bits for 65,536 colors). For example, display
drivers use this member in the ChangeDisplaySettings function. Printer drivers do not
use this member.
dmPelsWidth
Specifies the width, in pixels, of the visible device surface. For example, display drivers
use this member in the ChangeDisplaySettings function. Printer drivers do not use this
member.
dmPelsHeight
99
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Specifies the height, in pixels, of the visible device surface. For example, display drivers
use this member in the ChangeDisplaySettings function. Printer drivers do not use this
member.
dmDisplayFlags
Specifies the device's display mode. This member can be a combination of the following
values.
Value
DM_GRAYSCALE
DM_INTERLACED

Meaning
Specifies that the display is a non-color device. If this flag is not
set, color is assumed.
Specifies that the display mode is interlaced. If the flag is not set,
non-interlaced is assumed.

For example, display drivers use this member in the ChangeDisplaySettings function.
Printer drivers do not use this member.
dmNup
Specifies where the NUP is done. It can be one of the following.
Value
DMNUP_SYSTEM
DMNUP_ONEUP

Meaning
The print spooler does the NUP.
The application does the NUP.

dmDisplayFrequency
Specifies the frequency, in hertz (cycles per second), of the display device in a particular
mode. This value is also known as the display device's vertical refresh rate. Display drivers
use this member. For example, it is used in the ChangeDisplaySettings function. Printer
drivers do not use this member.
When you call the EnumDisplaySettings function, the dmDisplayFrequency member
may return with a value of 0 or 1. These values represent the display hardware's default
refresh rate. This default rate is typically set by switches on a display card or computer
motherboard or by a configuration program that does not use Win32 display functions
such as ChangeDisplaySettings.
dmICMMethod
Windows 95/98/ME and later; Windows XP/W2K and NT or later:
Specifies how ICM is handled. For a non-ICM application, this member determines if ICM
is enabled or disabled. For ICM applications, the system examines this member to
determine how to handle ICM support. This member can be one of the following
predefined values, or a driver-defined value greater than or equal to the value of
DMICMMETHOD_USER.
Value

Meaning

100
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DMICMMETHOD_NONE
DMICMMETHOD_SYSTEM
DMICMMETHOD_DRIVER
DMICMMETHOD_DEVICE

Specifies that ICM is disabled.


Specifies that ICM is handled by Windows.
Specifies that ICM is handled by the device driver.
Specifies that ICM is handled by the destination
device.

The printer driver must provide a user interface for setting this member. Most printer
drivers support only the DMICMMETHOD_SYSTEM or DMICMMETHOD_NONE
value. Drivers for PostScript printers support all values.
dmICMIntent
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies which color matching method or intent should be used by default. This member
is primarily for non-ICM applications. ICM applications can establish intents by using the
ICM functions. This member can be one of the following predefined values or a driver
defined value greater than or equal to the value of DMICM_USER.
Value
Meaning
DMICM_ABS_COLORIMETRIC Color matching should optimize to match the exact
color requested without white point mapping. This
value is most appropriate for use with proofing.
DMICM_COLORMETRIC
Color matching should optimize to match the exact
color requested. This value is most appropriate for use
with business logos or other images when an exact
color match is desired.
DMICM_CONTRAST
Color matching should optimize for color contrast.
This value is the most appropriate choice for scanned
or photographic images when dithering is desired.
DMICM_SATURATE
Color matching should optimize for color saturation.
This value is the most appropriate choice for business
graphs when dithering is not desired.
dmMediaType
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies the type of media being printed on. The member can be one of the following
predefined values or a driver-defined value greater than or equal to the value of
DMMEDIA_USER.
Value
DMMEDIA_STANDARD
DMMEDIA_GLOSSY
DMMEDIA_TRANSPARENCY

Meaning
Plain paper.
Glossy paper.
Transparent film.

101
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Whistler:
To retrieve a list of the available media types for a printer, use the DeviceCapabilities
function with the DC_MEDIATYPES flag.
dmDitherType
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies how dithering is to be done. The member can be one of the following predefined
values, or a driver-defined value greater than or equal to the value of
DMDITHER_USER.
Value
DMDITHER_NONE
DMDITHER_COARSE
DMDITHER_FINE
DMDITHER_LINEART

Meaning
No dithering.
Dithering with a coarse brush.
Dithering with a fine brush.
Line art dithering, a special dithering method that
produces well defined borders between black, white,
and gray scalings. It is not suitable for images that
include continuous graduations in intensisty and hue,
such as scanned photographs.
DMDITHER_ERRORDIFFUSION Windows 95/98/ME: Dithering in which an
algorithm is used to spread, or diffuse, the error of
approximating a specified color over adjacent pixels.
In contrast, DMDITHER_COARSE,
DMDITHER_FINE, and DMDITHER_LINEART
use patterned half toning to approximate a color..
DMDITHER_GRAYSCALE
Device does gray scaling.
dmReserved1
Windows 95/98/ME, Windows XP/W2K and NT or later: Not used; must be zero.
dmReserved2
Windows 95/98/ME, Windows XP/W2K and NT or later: Not used; must be zero.

Black Ice DEVMODE


The BlackIceDEVMODE data structure contains the Windows DEVMODE and additional members:
On Windows XP/W2K and NT, the application that uses this structure should set
the structure member alignment to 1 in the project settings and the following
value should be defined in the project: UNICODE, _UNICODE,
_WIN32_WINNT=0x0400. Without this, the size of the of the BlackIceDEVMODE
structure will not be correct and some structure members will be shifted.

102
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Also, on

Windows XP/W2K and XP, the string members of the BlackIceDEVMODE structure are
UNICODE strings. When the application reads or writes these members it is very important to use
UNICODE strings.
The BlackIceDEVMODE is defined in the 'devmode.h' file located in the Resource Toolkit under the
Install\InstallDll\ directory. (by default C:\Program Files\Black Ice Software, Inc\TIFF Printer Driver
Resource Toolkit\Install\InstallDLL\devmode.h)
Access the members of the BlackIceDEVMODE through the functions defined in the devmode.cpp file,
located in the RTK in the Install\InstallDll\ directory.

Example:
The InterfaceName member of the devmode can be accessed through the
DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode) and
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR InterfaceName);
TCHAR InterfaceName[MAX_PATH]:
A TCHAR string type member.
The InterfaceName member stores the name of the messaging interface.
For Windows 95/98/ME is the name of the Windows Message broadcasted by
the driver.
Access functions:
LPCTSTR
DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR
InterfaceName);

The definition of the BlackIceDEVMODE structure:


typedef struct
{
DEVMODE
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
TCHAR
DWORD
DWORD
TCHAR
TCHAR
TCHAR
TCHAR
TCHAR
TCHAR
TCHAR

DM;
BliceMode;
Format;
ColorMode;
FAXheader;
LossRatio;
Dithering;
Brightness;
PaperWidthInPixels;
PaperHeightInPixels;
ApplicationPath[MAX_PATH];
LaunchFlags;
FileNameGenerationFlags;
OutputDirectory[MAX_PATH];
ImageFileName[MAX_PATH];
FileNamePrefix[MAX_PREFIX_LENGTH+1];
FileExtension[MAX_FILE_EXTENSION_LENGTH+1];
InterfaceName[MAX_PATH];
INIFileName[MAX_PATH];
TIFFDLLName[MAX_PATH];

103
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TCHAR
TCHAR
DWORD
DWORD
TCHAR
TCHAR
}BlackIceDEVMODE,

JPEGDLLName[MAX_PATH];
ResourceDLLName[MAX_PATH];
SessionID;
UserFlags;
szUser1[128];
szUser2[128];
*LPBlackIceDEVMODE;

MEMBERS OF THE BlackIceDEVMODE STRUCTURE


All the members can be read, changed or set programmatically; however they should never be
accessed directly, only through the designated functions. All these functions are declared in the
devmode.h file and are implemented in the devmode.cpp file.
DEVMODE DM :
The Windows DEVMODE data structure.
DWORD BliceMode :
A DWORD type member.
Each bit of BliceMode represents a flag used by the printer driver. If the bit is set the value
is TRUE, if it is not the value is FALSE. The flags and their values are the following:
BLF_INTERNETTIFF
BLF_PAGENUMBERING
BLF_REVERSEFILLORDER
BLF_MULTIIMAGE
BLF_WRITETEXT
BLF_UNICODETEXT
BLF_MAILMERGE
BLF_ADVANCEDTEXT
BLF_DISABLEIMAGE
BLF_DISABLEGROUPFILE
BLF_ADOBEDETECT
BLF_SENDMESSAGE
BLF_ENABLETIFFDLL
BLF_ENABLEJPEGDLL
BLF_FAXOUTPUT
BLF_GLYPHSUPPORT
BLF_ROTATEPAPER
BLF_DELETEGROUPFILE
BLF_KEEPFILES
BLF_ADVANCEDPAPERSIZE
BLF_CUSTOMEXT

0x00000004
0x00000008
0x00000010
0x00000020
0x00000040
0x00000080
0x00000100
0x00000200
0x00000400
0x00000800
0x00001000
0x00002000
0x00004000
0x00008000
0x00010000
0x00020000
0x00040000
0x00080000
0x00100000
0x00200000
0x00400000

Description of the flags:


BLF_INTERNETTIFF : The value of the Internet TIFF format checkbox.
Access functions:
BOOL
void

DEVMODE_IsInternetTiffFormatEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

104
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void

DEVMODE_DisableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

BLF_PAGENUMBERING: The value of the Add Page Numbering Tag checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsPageNumberingEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnablePageNumbering(BlackIceDEVMODE* pDevMode);
DEVMODE_DisablePageNumbering(BlackIceDEVMODE* pDevMode);

BLF_REVERSEFILLORDER: The value of the Reverse Bit Order in TIFF checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsReverseBitOrderEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableReverseBitOrder(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableReverseBitOrder(BlackIceDEVMODE* pDevMode);

BLF_MULTIIMAGE: The value of the Create Multipage Image checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsAppendImageEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableAppendImage(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAppendImage(BlackIceDEVMODE* pDevMode);

BLF_WRITETEXT: The value of the WriteText File checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableWriteText(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableWriteText(BlackIceDEVMODE* pDevMode);

BLF_UNICODETEXT: Used only by the NT driver.


BLF_MAILMERGE: The value of the Mail Merge checkbox.
Access functions:
BOOL
void
void

DEVMODE_IsMailMergeEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableMailMerge(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableMailMerge(BlackIceDEVMODE* pDevMode);

BLF_ADVANCEDTEXT: The value of the Save position and style checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsAdvancedTextEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableAdvancedText(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAdvancedText(BlackIceDEVMODE* pDevMode);

BLF_DISABLEIMAGE: The value of the Disable Image checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsImageDisabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableDisableImage(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableDisableImage(BlackIceDEVMODE* pDevMode);

BLF_DISABLEGROUPFILE: The value of the Disable Group File checkbox.


Access functions:
BOOL
void

DEVMODE_IsGroupFileDisabled(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableGroupFile(BlackIceDEVMODE* pDevMode);

105
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void

DEVMODE_EnableGroupFile(BlackIceDEVMODE* pDevMode);

BLF_SENDMESSAGE: The value of the Disable the Messaging Interface checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsMessagingInterfaceEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableMessagingInterface(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableMessagingInterface(BlackIceDEVMODE* pDevMode);

BLF_ENABLETIFFDLL: If set the using of the TIFF32.DLL is enabled. Can be set only
programmatically.
Access functions:
BOOL
void
void

DEVMODE_IsTiffDllEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableTiffDll(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableTiffDll(BlackIceDEVMODE* pDevMode);

BLF_FAXOUTPUT: The value of the Create Faxable Image checkbox


Access functions:
BOOL
void
void

DEVMODE_IsFaxOutputEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableFaxOutput(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableFaxOutput(BlackIceDEVMODE* pDevMode);

BLF_GLYPHSUPPORT: The value of the Eastern Character Support checkbox


Access functions:
BOOL
void
void

DEVMODE_IsEasternCharSupportEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableEasternCharSupport(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableEasternCharSupport(BlackIceDEVMODE* pDevMode);

BLF_ROTATEPAPER: The value of the Rotate Landscape image to Portrait


checkbox
Access functions:
BOOL
void
void

DEVMODE_IsRotatePaperEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableRotatePaper(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableRotatePaper(BlackIceDEVMODE* pDevMode);

BLF_DELETEGROUPFILE: The value of the Delete Group File After Printing


checkbox
Access functions:
BOOL
void
void

DEVMODE_IsDeleteGroupFileEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableDeleteGroupFile(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

BLF_KEEPFILES: The value of the Keep existing files checkbox


Access functions:
BOOL
void
void

DEVMODE_IsKeepExistingFilesEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableKeepExistingFiles(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableKeepExistingFiles(BlackIceDEVMODE* pDevMode) ;

BLF_ADVANCEDPAPERSIZE: The value of the Advanced Papersize checkbox


Access functions:
BOOL

DEVMODE_IsAdvancedPaperSizeEnabled(BlackIceDEVMODE* pDevMode);

106
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void
void

DEVMODE_EnableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

BLF_CUSTOMEXT: The value of the Use Custom Extension checkbox


Access functions:
BOOL
void
void

DEVMODE_IsCustomExtensionEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableCustomExtension(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableCustomExtension(BlackIceDEVMODE* pDevMode)

DWORD Format :
A DWORD type member.
Specifies the file format used by the driver. The available file formats are enumerated in
the devmode.h
enum TEFileFormats{ FFR_BMP,
FFR_PCX,
FFR_DCX,
FFR_TIFF_UNC,
FFR_TIFF_G31D,
FFR_TIFF_G31DNOEOL,
FFR_TIFF_G32D,
FFR_TIFF_G4,
FFR_TIFF_PACK,
FFR_TIFF_LZW,
FFR_TIFF_JPEG,
FFR_CALS,
FFR_RAW_G31D,
FFR_RAW_G31DNOEOL,
FFR_RAW_G32D,
FFR_RAW_G4,
FFR_JPEG,
FFR_JPEG_LAB,
FFR_EMF,
FFR_MMR,
FFR_END
};

Access functions:
DWORD DEVMODE_GetFileFormat(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileFormat(BlackIceDEVMODE* pDevMode, DWORD Format);

NOTE: In the Monochrome driver only the monochrome file formats are available, such as
TIFF. The Metafile driver creates only Enhanced Metafile Format (EMF).
DWORD ColorMode:
A DWORD type member.
Specifies the color depth used by the printer. The values are enumerated in the devmode.h
enum ColorMode {

BITS_1,
BITS_8GRAY,
BITS_8,
BITS_24,

107
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BITS_END
};

Access functions:
DWORD DEVMODE_GetColorDepth(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetColorDepth(BlackIceDEVMODE* pDevMode, DWORD ColorDepth);

NOTE: In the Monochrome driver only the BITS_1 ColorMode is available. The Metafile
driver accepts only the BITS_24 value..
DWORD FAXheader:
A DWORD type member.
Specifies the height in pixels of the fax header.
Access functions:
DWORD DEVMODE_GetFaxHeader(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFaxHeader(BlackIceDEVMODE* pDevMode, DWORD nPixels);

DWORD LossRatio:
A DWORD type member.
Specifies the loss ratio of the jpeg image.
Access functions:
DWORD DEVMODE_GetLossRatio(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetLossRatio(BlackIceDEVMODE* pDevMode, DWORD dwLossRatio);

DWORD Dithering:
A DWORD type member.
Specifies the dithering method for the monochrome image. The available values are
defined in the devmode.h
#define
#define
#define
#define
#define
#define

DITHER_NONE
DITHER_FS4
DITHER_JJN
DITHER_SMOOTH
DITHER_SHARP
DITHER_STUCKI

0
1
2
3
4
5

Access functions:
DWORD DEVMODE_GetDithering(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetDithering(BlackIceDEVMODE* pDevMode, DWORD dwDithering);

DWORD Brightness:
A DWORD type member.
Specifies the brightness value.
Access functions:
DWORD DEVMODE_GetBrightness(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetBrightness(BlackIceDEVMODE* pDevMode, DWORD dwBrightness);

108
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DWORD PaperWidthInPixels:
A DWORD type member.
Specifies the Paper Width value in pixels.
Access functions:
DWORD DEVMODE_GetPageWidthInPixels(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetPaperWidthInPixel(BlackIceDEVMODE* pDevMode, DWORD nPixels);

DWORD PaperHeightInPixels:
A DWORD type member.
Specifies the Paper Width value in pixels.
Access functions:
DWORD DEVMODE_GetPageHeightInPixels(BlackIceDEVMODE* pDevMode);
void DEVMODE_SetPaperHeightInPixel(BlackIceDEVMODE* pDevMode, DWORD nPixels);

TCHAR ApplicationPath[MAX_PATH]:
A string type member.
Specifies the name and the path of the application to be started after printing.
Access functions:
LPCTSTR DEVMODE_GetApplicationPath(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetApplicationPath(BlackIceDEVMODE* pDevMode, LPCTSTR
ApplicationPath);

DWORD LaunchFlags :
A DWORD type member.
Each bit of LaunchFlags represents a flag used by the printer driver. If the bit is set the
value is TRUE, if it is not the value is FALSE. The flags and their values are the
following:
BLF_LAUNCHAPP
0x00000001
BLF_STARTBEFOREPRINT
0x00000002
BLF_PASSPARAMETERS
0x00000004
BLF_STARTNORMAL
0x00000008
BLF_STARTMINIMIZED
0x00000010
BLF_STARTHIDDEN
0x00000020

BLF_LAUNCHAPP: The value of the Enable Start Application checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsStartApplicationEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartApplication(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartApplication(BlackIceDEVMODE* pDevMode);

BLF_STARTBEFOREPRINT: The value of the Start Before Printing and Start


After Printing radio button. If TRUE the Start Before Printing radio button is selected,
otherwise the Start After Printing radio button is selected.
Access functions:
BOOL
void

DEVMODE_IsStartBeforePrint(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartBeforePrint(BlackIceDEVMODE* pDevMode);

109
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void

DEVMODE_DisableStartBeforePrint(BlackIceDEVMODE* pDevMode) ;

BLF_PASSPARAMETERS: The value of the Pass Parameters checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsPassParametersEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnablePassParameters(BlackIceDEVMODE* pDevMode);
DEVMODE_DisablePassParameters(BlackIceDEVMODE* pDevMode) ;

BLF_STARTNORMAL: The value of the Normal radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartNormal(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartNormal(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartNormal(BlackIceDEVMODE* pDevMode) ;

BLF_STARTMINIMIZED: The value of the Minimized radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartMinimized(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartMinimized(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartMinimized(BlackIceDEVMODE* pDevMode) ;

BLF_STARTHIDDEN: The value of the Hidden radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartHidden(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartHidden(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartHidden(BlackIceDEVMODE* pDevMode) ;

DWORD FileNameGenerationFlags :
A DWORD type member.
The FileNameGenerationFlags member represents the method used by the printer driver
to generate the files. This setting is in the Name generation Method combo. The
available values are defined in the devmode.h and must be one of the followings:
enum {

FILENAME_PREFIX_DEVMODE,
FILENAME_PREFIX_REGISTRY,
FILENAME_PREFIX_INI,
FILENAME_EXACT_DEVMODE,
FILENAME_EXACT_REGISTRY,
FILENAME_EXACT_INI,
FILENAME_DOCUMENT_NAME,
FILENAME_LAST
};

Access functions:
DWORD DEVMODE_GetFileGenerationMethod(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileGenerationMethod(BlackIceDEVMODE* pDevMode,
DWORD dwGenMethod);

TCHAR OutputDirectory[MAX_PATH]:
A TCHAR string type member.
The OutputDirectory member stores the path where the printer driver generates the files.
Access functions:
110
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void
DEVMODE_SetOutputDirectory(BlackIceDEVMODE* pDevMode, LPCTSTR
OutputDir);
LPCTSTR DEVMODE_GetOutputDirectory(BlackIceDEVMODE* pDevMode);

TCHAR FileImageName[MAX_PATH]:
A TCHAR string type member.
The FileImageName member stores the file name if the file generation method is Exact
Filename.
Access functions:
LPCTSTR
DEVMODE_GetImageFileName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetImageFileName(BlackIceDEVMODE* pDevMode, LPCTSTR
ImageFileName);

TCHAR FileNamePrefix[MAX_PREFIX_LENGTH +1]:


A TCHAR string type member.
The FileNamePrefix member stores the prefix of the generated file name if the file
generation method is FILENAME_PREFIX_DEVMODE. The max length of the prefix is 3
characters, if it is longer, it will be truncated to the first 3 characters.
Access functions:
LPCTSTR
DEVMODE_GetFileNamePrefix(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileNamePrefix(BlackIceDEVMODE* pDevMode, LPCTSTR
FileNamePrefix);

TCHAR FileExtension[MAX_FILE_EXTENSION_LENGTH +1]:


A TCHAR string type member.
The FileExtension member stores the extension of the generated file name if the file
generation method is FILENAME_PREFIX_DEVMODE. The max length of the extension is 3
characters, if it is longer, it will be truncated to the first 3 characters.
Access functions:
LPCTSTR
DEVMODE_GetFileExtension(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileExtension(BlackIceDEVMODE* pDevMode, LPCTSTR
FileExtension);

TCHAR InterfaceName[MAX_PATH]:
A TCHAR string type member.
The InterfaceName member stores the name of the messaging interface. For Windows
95/98/ME is the name of the Windows Message broadcasted by the driver.
Each driver has an unique Messaging Interface Name. You can create your own
Messaging Interface Name by changing the default Messaging Interface Name in the
printers DEVMODE InterfaceName member. To do this use the following functions:
Access functions:
LPCTSTR
DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR
InterfaceName);

111
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TCHAR INIFileName[MAX_PATH]:
A TCHAR string type member.
The INIFileName member stores the name of the INI file which contains the information
depending on the filename generation information.
For FILENAME_PREFIX_INI,

the content of the INI file should be like:

[Black Ice Color Printer]


File name prefix=ABC
File name extension=TIFF
Access functions:
LPCTSTR
DEVMODE_GetINIFileName(BlackIceDEVMODE* pDevMode);
Void
DEVMODE_SetINIFileName(BlackIceDEVMODE* pDevMode, LPCTSTR
INIFileName);

TCHAR TIFFDLLName[MAX_PATH]:
A TCHAR string type member.
The TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL
encodes the TIFF files. The file is needed for TIFF output.
Access functions:
LPCTSTR
DEVMODE_GetTIFFDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetTIFFDLLName (BlackIceDEVMODE* pDevMode, LPCTSTR
TIFFDLLName);

TCHAR JPEGDLLName[MAX_PATH]:
A TCHAR string type member.
The JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL
encodes the Jpeg files. The file is needed for Jpeg output.
Access functions:
LPCTSTR
DEVMODE_GetJPEGDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetJPEGDLLName (BlackIceDEVMODE* pDevMode, LPCTSTR
JPEGDLLName);

TCHAR ResourceDLLName[MAX_PATH]:
A TCHAR string type member.
The resources of the driver such as the driver property dialogs - are stored in a separate
DLL file. The look of the property sheets of the printer driver can be modified by moving
or hiding controls. Also, all the names of the paper formats, DPI setting and file name
generation methods are stored in this DLL and can be changed as well.
The ResourceDLLName member stores the name and path of the driver resource DLL.
112
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Access functions:
LPCTSTR
DEVMODE_GetResourceDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetResourceDLLName(BlackIceDEVMODE* pDevMode, LPCTSTR
ResourceDLLName);

DWORD SessionID:
Reserverd.
DWORD UserFlags::
A DWORD value.
Reserved for extra programming possibilities.
TCHAR szUser1[128]:
A TCHAR string type member.
Reserved for extra programming possibilities.
TCHAR szUser2[128]:
A TCHAR string type member.
Reserved for extra programming possibilities.

113
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Messaging Interface
All the Black Ice Printer Drivers have a messaging interface. The printer driver can communicate
with applications through this interface. The applications capture and process the messages sent
by the driver.
The driver can communicate with an application three different ways.
1. Method I: Through the WM_COPYDATA Windows message.
This method is NOT supported on Terminal Server.
The WM_COPYDATA message is sent by the driver to a specific window. The driver has
to know the applications window handle. To pass the window handle to the driver, the
application, when it starts, should write its window handle using the WritePrinterData()
function to the PRINTER_DATA_WINDOW_HANDLE_KEY key.
The driver sends a WM_COPYDATA message to the applications window. The
application extracts the information from the data structure arrived with the message.
Before the application exits, it should overwrite the window handle in the registry to 0 by
setting the PRINTER_DATA_WINDOW_HANDLE_KEY to 0.
2. Method II. Through a windows message registered with RegisterWindowMessage ().
This method is NOT supported on Terminal Server.
The driver registers a message with the RegisterWindowMessage () function and then
starts broadcasting the message. The application has to register the same message as the
driver. To accomplish this, use the string from the InterfaceName member of the
BlackIceDEVMODE structure. The application will then capture and process the
messages. The data will be written to an ini file by the driver defined in devmode.h.
#define BLACK_ICE_DEFAULT_INIFILE

TEXT("bi_group.ini")

The application will read the ini file when the BLACKICE_MESSAGE_STARTDOC
message arrives in order to get the name of the group file.. The driver writes all the
information about the generated images in the group file. See the Description of the
Black Ice Printer Messages and the Group File Description sections in this manual for
more detail.
3. Method III. Through a pipe interface.
This method is supported on Terminal Server.
This method was included for compatibility reasons only.
The printer drivers uses a named pipe interface to communicate with the application. The
BLICECTR.DLL captures the pipe messages sent by the printer driver and converts
them to window messages. The application captures the window messages and extracts
114
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

information from the message parameters.


The name of the pipe should be specified in the InterfaceName member of the
BlackIceDEVMODE structure. The pipe name in the InterfaceName member should not
contain the \\.\pipe\ prefix, the printer driver will insert this prefix when it tries to write the
named pipe.
NOTE: On Terminal Server the printer driver will add the Session ID to the
InterfaceName.
The application should create a window and should register a window message. After that
the application should start waiting for printer driver messages by calling the
WaitForPrnPipe function from the BLICECTR.DLL. The parameters of these
functions are the following:
LPWSTR pszPipeName pointer to a NULL terminated UNICODE string that contains
the pipe name, including the \\.\pipe\ prefix.
HWND hMsgWnd A Window handle. The BLICECTR.DLL will send window
messages to this window.
DWORD dwMessageNum Message number. The message number of the registered
window message.
When a document is being printed on the printer, the BLICECTR.DLL will capture the
pipe messages sent by the printer, will convert the pipe messages into window messages
and forward them to the application. The parameter of each message will be a
TSPrnMessage structure:
typedef struct tagTSPrnMessage
{
DWORD
dwMessage;
WCHAR
szDocName[MAX_PATH];
WCHAR
szFileName[MAX_PATH];
WCHAR
szPrinterName[MAX_PATH];
INT
nPageNumber;
BOOL
fAppendPage;
BOOL
fPortrait;
} TSPrnMessage;
To stop waiting for messages the application should call the EndWaitPrnPipe function
from the BLICECTR.DLL. The function takes the following parameter:
PWCHAR pszPipeName pointer to a NULL terminated UNICODE string that contains
the pipe name, including the \\.\pipe\ prefix.
Applications already written to work with the older versions of the printer driver should
make the following changes to support the new driver(version 6.0 or newer):
1. Replace the old BLICECTR.DLL with the new one.
2. The parameters of some BLICECTR.DLL functions have been changed, please modify
the code to call these function with the right parameters.
3.The name and the definition of the messages sent by the BLICECTR.DLL have been
changed. The new messages are the following:
115
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

#define BLACKICE_MESSAGE_STARTDOC
0x00000001
#define BLACKICE_MESSAGE_STARTPAGE 0x00000002
#define BLACKICE_MESSAGE_ENDPAGE
0x00000003
#define BLACKICE_MESSAGE_ENDDOC0x00000004
#define BLACKICE_MESSAGE_ABORT
0x00000005
4. The TSPrnMessage structure did change since previous versions. Please update the
code to use the new structure.
NOTE: On Terminal Server when a Windows Test Page is printed, the test page is printed by the
spooler. In that particular case the messages will be captured on the server machine by the
administrator account, not by the user who prints.

The WM_COPYDATA Windows Message


An application sends the WM_COPYDATA message to pass data to another application.
To send this message, call the SendMessage function with the following parameters (do
not call the PostMessage function).
SendMessage(
(HWND) hWnd,
WM_COPYDATA,
(WPARAM) wParam,
(LPARAM) lParam
);

//
//
//
//

handle to destination window


message to send
handle to window (HWND)
data (PCOPYDATASTRUCT)

Parameters
wParam
Handle to the window passing the data.
lParam
Pointer to a COPYDATASTRUCT structure that contains the data to be passed.
Return Values
If the receiving application processes this message, it should return TRUE; otherwise, it should
return FALSE.
Remarks
The data being passed must not contain pointers or other references to objects not accessible to
the application receiving the data.
While this message is being sent, the referenced data must not be changed by another thread of
the sending process.
116
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The receiving application should consider the data read-only. The lParam parameter is valid only
during the processing of the message. The receiving application should not free the memory
referenced by lParam. If the receiving application must access the data after SendMessage
returns, it must copy the data into a local buffer.
When you send a WM_COPYDATA message, SendMessage allocates a block of memory
cbData bytes in size and copies the data from the caller's address space to this block. It then
sends the message to the destination window. When the receiving window procedure processes
this message, the lParam parameter is a pointer to a COPYDATASTRUCT structure that exists
in the address space of the receiving process. The lpData member is a pointer to the copied block
of memory and the address reflects the memory location in the receiving process's address space.

The COPYDATASTRUCT structure


The COPYDATASTRUCT structure contains data to be passed to another application by the
WM_COPYDATA message.
typedef struct tagCOPYDATASTRUCT {
ULONG_PTR dwData;
DWORD
cbData;
PVOID
lpData;
} COPYDATASTRUCT, *PCOPYDATASTRUCT;

Members
dwData
Specifies data to be passed to the receiving application.
cbData
Specifies the size, in bytes, of the data pointed to by the lpData member.
lpData
Pointer to data to be passed to the receiving application. This member can be NULL.

The BLACKICE_PRINTER_MESSAGE structure


The BLACKICE_PRINTER_MESSAGE structure contains data to be passed to another
application. The data is passed by the WM_COPYDATA message. The dwData member of the
COPYDATASTRUCT structure is a pointer to a BLACKICE_PRINTER_MESSAGE
structure.
The BLACKICE_PRINTER_MESSAGE structure is defined in the devmode.h header file.
typedef struct _BLACKICE_PRINTER_MESSAGE

117
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

{
DWORD dwBlackIceFlag;
DWORD dwSize;
DWORD dwMessage;
TCHAR szFileName[MAX_PATH];
TCHAR szInterfaceName[MAX_PATH];
}BLACKICE_PRINTER_MESSAGE;

Members

DWORD dwBlackIceFlag:
This constant value identifies the message. The value of this member should be BLACK_ICE_FLAG
(defined in devmode.h).
DWORD dwSize:
The size of the BLACKICE_PRINTER_MESSAGE structure.
DWORD dwMessage:

The ID of the message. The messages are defined in the devmode.h.


#define BLACKICE_MESSAGE_STARTDOC
#define BLACKICE_MESSAGE_STARTPAGE
#define BLACKICE_MESSAGE_ENDPAGE
#define BLACKICE_MESSAGE_ENDDOC
#define BLACKICE_MESSAGE_ABORT

0x00000001
0x00000002
0x00000003
0x00000004
0x00000005

TCHAR szFileName[MAX_PATH]:
A string passed with the message. The string content depends on the message. It can be the group file
name, the image name, or an error code.
TCHAR szInterfaceName[MAX_PATH]:
This string identifies a printer driver (can be than more than one printer driver). The printer driver fills
the szInterfaceName[MAX_PATH] member with the value of the InterfaceName member of the
BlackIceDEVMODE structure. When the application captures the WM_COPYDATA message, the
application should compare the InterfaceName member of the designated printer drivers devmode data
structure with the szInterfaceName.

Description of the Black Ice Printer Messages


The BLACKICE_MESSAGE_STARTDOC message:
The driver sends this message when it starts to print a new document.
Method I. When this message arrives the driver writes the name of the group file in the
bi_group.ini file defined in the devmode.h. When this message arrives, the application can
read the name of the group file. The driver will write all other information into this group
file.
#define BLACK_ICE_DEFAULT_INIFILE

TEXT("bi_group.ini")

Method II. With this message the driver sends the name of the group file in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure .
118
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Method III. The dwMessage, szDocName, szPrinterName, fAppendPage, fPortrait


member of the TSPrnMessage structure is valid.

The BLACKICE_MESSAGE_STARTPAGE message:


The driver sends this message at the beginning of each new page.
Method I. Nothing is written to the group file now. The application can increment the
number of pages here.
Method II.With this message the driver sends the name of the image file in the szFileName
member of the BLACKICE_PRINTER_MESSAGE structure .
Method III. The dwMessage, szDocName, szPrinterName, fAppendPage, fPortrait,
szFileName member of the TSPrnMessage structure is valid. The szFileName member
contains the name of the group file.

The BLACKICE_MESSAGE_ENDPAGE message:


The driver sends this message when it is finished printing a page.
Method I. The name of the image file is already written to the group file. The application
can read the name of the generated image from the group file.
Method II. With this message the driver sends the name of the image file in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure .
Method III. The dwMessage, szDocName, szPrinterName, fAppendPage, fPortrait,
szFileName member of the TSPrnMessage structure is valid. The szFileName member
contains the name of the group file.

The BLACKICE_MESSAGE_ENDDOC message:


The driver sends this message when it finishes printing a document.
Method I. When this message arrives the driver is finished printing. If the Delete Group
File after printing option is checked, the group file will be deleted.
Method II. With this message the driver sends the name of the group file in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure.
Method III. The dwMessage, szDocName, szPrinterName, fAppendPage, fPortrait
member of the TSPrnMessage structure is valid.

The BLACKICE_MESSAGE_ABORT message:


The driver sends this message when an error occurs or the user cancels the document printing.
Method I. The driver writes the error code into the group file to the
GROUPFILE_ERROR_KEY section, defined in the devmode.h.
#define GROUPFILE_ERROR_KEY
TEXT("Print status")
Method II. With this message the driver sends the error code as a string in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure.
119
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Method III. The dwMessage, szDocName, szPrinterName, fAppendPage, fPortrait


member of the TSPrnMessage structure is valid.

120
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Command Line Parameters


The printer driver can start an application before or after printing. This can be set by
checking the Start Application checkbox, or programmatically set the the BLF_LAUNCHAPP flag in
the LaunchFlags member of the devmode of the printer.
If the driver is configured to launch the application after the printing and the Pass
Parameters checkbox is checked. the parameters are passed in the command line to the
application.
The passed parameters are separated by a space character. The string type parameters are
between quotes. The following parameters are passed by the driver:
Document name
- STRING
Group file name
- STRING
Printer name
- STRING
Numer of pages
- NUMBER
Multipage
- NUMBER, the value is 1 of 0. The 1 means the image is
multipage, 0 the image is not multipage
Orientation
- NUMBER, the value is 1 of 0. The 1 means the image orientation
is portrait, 0 the image orientation is landscape.
Examlpe:
MyApp.exe Cutomer.doc customer.grp Black Ice Color 4 0 1

121
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Group File Description


Group files are generated for every document printed unless the Disable Group File option is
set on the File Name Generation sheet of the properties. The group file contains critical
information about the printed images and it offers an easy, simple way to communicate with the
driver. The group file may be created for temporary if the Delete group file after printing option
is set on the File Name Generation sheet of the properties. Please read Delete group file after
printing section for details.

Group File Content.


The following listing is a typical group file.
[Color Printer]
Image Format=JPEG
Append Image Enabled=No
Bits Per Pixel=24
Print status=Printing finished successfully
Total number of pages=3
Document Name=Document1
[Page 1]
FileName=c:\temp\AAA13340001.JPG
TextFileName=c:\temp\AAA13340001.TXT
[Page 2]
FileName=c:\temp\AAA43840002.JPG
TextFileName=c:\temp\AAA43840002.TXT
[Page 3]
FileName=c:\temp\AAA60D30003.JPG
TextFileName=c:\temp\AAA60D30003.TXT

Group file header section


[Color Printer]
The printer driver type. The printer driver type can be Monochrome, Color, or Metafile.
122
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Image Format=JPEG
Image format can be
Microsoft Bitmap format
Paint Brush format
Intel format

Color Fax Format

- BMP"
- "PCX"
- "DCX"
- "TIFF Group 3 1D No EOL"
- "TIFF Uncompressed"
- "TIFF Group 3 2D"
- "TIFF Group 4"
- "TIFF Packed"
- "TIFF LZW"
- "TIFF JPEG"
- "TIFF Group 3 1D"
- "CALS"
- "RAW TIFF Group 3 1D"
- "RAW TIFF Group 3 1D No EOL"
- "RAW TIFF Group 3 2D"
- "RAW TIFF Group 4"
- "JPEG"
- "JPEG L*a*b"
- "Extended Metafile"

Append Image Enabled=No


The Append Image Enabled field shows that the printer driver generated a single files with
multiple images in it, or a separate file for every page. If a single file is generated with multiple
images then there would be a single image per page. Also the file name will be repeated for every
page in the Page section of the group file. See detail below.
Bits Per Pixel=24
The Bits Per Pixel field shows the generated image color depth. The values can be 1 for
monochrome, 8 and 24 for color images.
Print status=Printing finished successfully
The printed job status. In case of failed printing and error message will appear in the status field.
The message "Printing finished successfully" shown on successful printing.
The message "Internal error 99" followed by two numbers shown when an internal error occurs.
Please contact technical support with error number for details.
The message "Out of memory" shown when the driver fail to allocate memory. Resolution is to
add more physical memory and make sure that there is enough disk space for virtual memory.
The message "TIFF32.DLL cannot be loaded" shown if driver failed to load the TIFF3 DLL.
123
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The message "JPEG32.DLL cannot be loaded" shown f driver failed to load the
JPEG DLL.

Total number of pages=3


The total number of pages printed in the print job.

Group file body


For every page printed in the document a page number section is created.
[Page 1]
The page number.
FileName=c:\temp\AAA13340001.JPG
The FileName is the generated raster image file name with full path. If Create a multi page image is
selected on the File Formats sheet, the file name will be the same for every page.
TextFileName=c:\temp\AAA13340001.TXT
The TextFileName is the generated text file name with full path. If Create a multi page image is
selected on the File Formats sheet, the file name will be the same for every page. The driver will create
TextFileName section entry only if Write Text File is selected on the File Formats sheet.

[Page 2]
FileName=c:\temp\AAA43840002.JPG
TextFileName=c:\temp\AAA43840002.TXT

[Page 3]
FileName=c:\temp\AAA60D30003.JPG
TextFileName=c:\temp\AAA60D30003.TXT

124
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Message Capture OCX Control


The Message Capture OCX control is provided to help VB, Delphi, Visual FoxPro programmers
handle printer driver messages easily from their application. The name of the OCX control is
BiPrnDrv.ocx and it should be installed into the SYSTEM directory.
The Capture OCX can be found in the OCX directory in your RTK installation folder.
To redistribute the OCX, you have to register the OCX with regsvr32.exe or with your
installation package.
The OCX does not have any Black Ice DLL or OCX file dependency.
The BiPrnDrv.ocx file loads the following system DLLs:
-MFC42.DLL
-MSVCRT.DLL
-ADVAPI32.DLL
-OLEAUT32.DLL
-KERNEL32.DLL
-GDI32.DLL
-USER32.DLL
-WINSPOOL.DRV
-OLE32.DLL
If any of the above DLL is missing, the BiPrnDrv.ocx will not register correctly.
The Message Capture OCX control does not require a license file.
The OCX control exports the following Properties and Events:

PrinterName Property
This property contains the name of the printer the application wants to capture messages from.

StartDoc event
The StartDoc event is fired when the selected printer starts to print a document. The parameter of this
event is the name (with the full path) of the generated group file.

StartPage event
The StartPage event is fired when the selected printer starts to print a new page. The parameter of this
event is the actual page number.

125
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

EndPage event
The EndPage event is fired when the selected printer finishes printing a page. The parameter of this
event is the name (with the full path) of the generated image file.

EndDoc event
The EndDoc event is fired when the selected printer finishes printing a document. The parameter of this
event is the name (with the full path) of the generated group file.

126
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The BLICECTR.DLL message capture DLL.


The BLICECTR.DLL exports a set of functions which can help developers capture printer driver pipe
messages. The DLL captures pipe messages sent by the printer driver and converts them into window
messages. This way the developer does not have to write his own pipe handling code (which can be
very tricky and time consuming).
The name of the pipe should be specified in the InterfaceName member of the BlackIceDEVMODE
structure. The pipe name in the InterfaceName member should not contain the \\.\pipe\ prefix, the
printer driver will insert this prefix when it tries to write the named pipe.
The application should create a window and register a window message. Afterwards, the application
should start waiting for printer driver messages by calling the WaitForPrnPipe function from the
BLICECTR.DLL.
NOTE: On Terminal Server the printer driver will add the Session ID to the InterfaceName.
When a document is being printed on the printer, the BLICECTR.DLL will capture the pipe
messages sent by the printer, convert the pipe messages into window messages and forward them to
the application. The parameter of each message will be a TSPrnMessage structure:
typedef struct tagTSPrnMessage
{
DWORD
dwMessage;
WCHAR
szDocName[MAX_PATH];
WCHAR
szFileName[MAX_PATH];
WCHAR
szPrinterName[MAX_PATH];
INT
nPageNumber;
BOOL
fAppendPage;
BOOL
fPortrait;
} TSPrnMessage;
To stop waiting for messages, the application should call the EndWaitPrnPipe function from the
BLICECTR.DLL.
Applications already written to work with the older versions of the printer driver should make the
following changes to support the new driver (version 6.0 or newer):
1. Replace the old BLICECTR.DLL with the new one.
2. The parameters of some BLICECTR.DLL functions have been changed, please modify the code to
call these functions with the right parameters.
3.The name and the definition of the messages sent by the BLICECTR.DLL have been changed. The
new messages are the following:
#define BLACKICE_MESSAGE_STARTDOC

0x00000001

127
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

#define BLACKICE_MESSAGE_STARTPAGE
#define BLACKICE_MESSAGE_ENDPAGE
#define BLACKICE_MESSAGE_ENDDOC
#define BLACKICE_MESSAGE_ABORT

0x00000002
0x00000003
0x00000004
0x00000005

4. The TSPrnMessage structure did change from previous versions. Please update the code to use the
new structure.
The BLICECTR.DLL exports the following three functions:

WaitForPrnPipe
BOOL PASCAL WaitForPrnPipe( LPWSTR pszPipeName, HWND hMsgWnd, DWORD
dwMessageNum )
The function has the following parameters:
LPWSTR pszPipeName pointer to a NULL terminated UNICODE string that contains the pipe
name, including the \\.\pipe\ prefix.
HWND hMsgWnd A Window handle. The BLICECTR.DLL will send window messages to this
window.
DWORD dwMessageNum Message number. The message number of the registered window
message.

EndWaitPrnPipe
BOOL PASCAL EndWaitPrnPipe(PWCHAR pszPipeName)
The function has the following parameter:
PWCHAR pszPipeName pointer to a NULL terminated UNICODE string that contains the pipe
name, including the \\.\pipe\ prefix.

SetListeningPriority
BOOL PASCAL SetListeningPriority( int nPri )
The function has the following parameters:
INT nPri sets the priority of the thread which waits for pipe messages. Valid values are the
following:

128
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_ERROR_RETURN
THREAD_PRIORITY_TIME_CRITICAL
THREAD_PRIORITY_IDLE

Sample code for changing the printer


settings programmatically
Changing the DEVMODE structure under Windows XP/W2K/NT
The following sample code demonstrates how to change the printer settings under Windows
XP/W2K and XP. The preferred way to do this is by using the DocumentProperties() Win32 API
call.
// MySetPrinter
//
// Demonstrates how to use the SetPrinter API. This particular function
changes the orienation
// for the printer specified in pPrinterName to the orientation specified in
dmOrientation.
//
// Valid values for dmOrientation are:
// DMORIENT_PORTRAIT (1)
// or
// DMORIENT_LANDSCAPE (2)
BOOL MySetPrinter(LPTSTR pPrinterName, short dmOrientation)
{
HANDLE hPrinter = NULL;
DWORD dwNeeded = 0;
PRINTER_INFO_2 *pi2 = NULL;
BlackIceDEVMODE *pDevMode = NULL;
//The BlackIceDEVMODE structure is defined in the devmode.h file in the
//Resource Toolkit. The devmode.h file is located in the Install Dlls
//folder in the Install Shield project sample directory.
PRINTER_DEFAULTS pd;
BOOL bFlag;
LONG lFlag;
// Open printer handle (on Windows NT, you need full-access because you
// will eventually use SetPrinter)...
ZeroMemory(&pd, sizeof(pd));
pd.DesiredAccess = PRINTER_ALL_ACCESS;
bFlag = OpenPrinter(pPrinterName, &hPrinter, &pd);

129
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

if (!bFlag || (hPrinter == NULL))


return FALSE;
// The first GetPrinter tells you how big the buffer should be in
// order to hold all of PRINTER_INFO_2. Note that this should fail with
// ERROR_INSUFFICIENT_BUFFER. If GetPrinter fails for any other reason
// or dwNeeded isn't set for some reason, then there is a problem...
SetLastError(0);
bFlag = GetPrinter(hPrinter, 2, 0, 0, &dwNeeded);
if ((!bFlag) && (GetLastError() != ERROR_INSUFFICIENT_BUFFER) ||
(dwNeeded == 0))
{
ClosePrinter(hPrinter);
return FALSE;
}
// Allocate enough space for PRINTER_INFO_2...
pi2 = (PRINTER_INFO_2 *)GlobalAlloc(GPTR, dwNeeded);
if (pi2 == NULL)
{
ClosePrinter(hPrinter);
return FALSE;
}
// The second GetPrinter fills in all the current settings, so all you
// need to do is modify what you're interested in...
bFlag = GetPrinter(hPrinter, 2, (LPBYTE)pi2, dwNeeded, &dwNeeded);
if (!bFlag)
{
GlobalFree(pi2);
ClosePrinter(hPrinter);
return FALSE;
}
// If GetPrinter didn't fill in the DEVMODE, try to get it by calling
// DocumentProperties...
if (pi2->pDevMode == NULL)
{
dwNeeded = DocumentProperties(NULL, hPrinter,
pPrinterName,
NULL, NULL, 0);
if (dwNeeded <= 0)
{
GlobalFree(pi2);
ClosePrinter(hPrinter);
return FALSE;
}
pDevMode = (BlackIceDEVMODE *)GlobalAlloc(GPTR, dwNeeded);
if (pDevMode == NULL)
{
GlobalFree(pi2);
ClosePrinter(hPrinter);

130
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

return FALSE;
}
lFlag = DocumentProperties(NULL, hPrinter,
pPrinterName,
(PDEVMODE)pDevMode, NULL,
DM_OUT_BUFFER);
if (lFlag != IDOK || pDevMode == NULL)
{
GlobalFree(pDevMode);
GlobalFree(pi2);
ClosePrinter(hPrinter);
return FALSE;
}
pi2->pDevMode = (PDEVMODE)pDevMode;
}
// Driver is reporting that it doesn't support this change...
if (!(pi2->pDevMode->dmFields & DM_ORIENTATION))
{
GlobalFree(pi2);
ClosePrinter(hPrinter);
if (pDevMode)
GlobalFree(pDevMode);
return FALSE;
}
// Specify exactly what we are attempting to change...
pi2->pDevMode->dmFields = DM_ORIENTATION;
pi2->pDevMode->dmOrientation = dmOrientation;
// Do not attempt to set security descriptor...
pi2->pSecurityDescriptor = NULL;
// Make sure the driver-dependent part of devmode is updated...
lFlag = DocumentProperties(NULL, hPrinter,
pPrinterName,
pi2->pDevMode, pi2->pDevMode,
DM_IN_BUFFER | DM_OUT_BUFFER);
if (lFlag != IDOK)
{
GlobalFree(pi2);
ClosePrinter(hPrinter);
if (pDevMode)
GlobalFree(pDevMode);
return FALSE;
}
// Update printer information...
bFlag = SetPrinter(hPrinter, 2, (LPBYTE)pi2, 0);
if (!bFlag)
// The driver doesn't support, or it is unable to make the change...

131
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

{
GlobalFree(pi2);
ClosePrinter(hPrinter);
if (pDevMode)
GlobalFree(pDevMode);
return FALSE;
}
// Tell other apps that there was a change...
SendMessageTimeout(HWND_BROADCAST, WM_DEVMODECHANGE, 0L,
(LPARAM)(LPCSTR)pPrinterName,
SMTO_NORMAL, 1000, NULL);
// Clean up...
if (pi2)
GlobalFree(pi2);
if (hPrinter)
ClosePrinter(hPrinter);
if (pDevMode)
GlobalFree(pDevMode);
return TRUE;
}

NOTES:
1. The first call of the DocumentProperties() function will return the size needed for the
devmode. The returned size should be the same as the size of the BlackIceDEVMODE
structure. If the returned size is not the same as the size of the BlackIceDEVMODE
structure, please check the following:
a. Make sure that the printer handle you specified as the second parameter in the
DocumentProperties function call was obtained by calling the OpenPrinter function
with a Black Ice printer. Non Black Ice printers will have a different DEVMODE
structure and this is the reason why the size is not correct.
b. Make sure that the structure member alignment in your project is set to 1 and the
following values have been defined: UNICODE, _UNICODE,
_WIN32_WINNT=0x0400.
c. The correct size of the BlackIceDEVMODE structure is 0x136A.
2. Modify the printer settings by modifying members of the BlackIceDEVMODE structure.
The devmode.h and devmode.cpp file provides a set of functions that access and modify
members of the structure. It is not recommended modifying any structure member directly,
but through the functions from the devmode.h file.
On Windows XP/W2K and XP all the string members of the structure are UNICODE.
When you modify these members, please make sure that the new value is a UNICODE
string.
The following code sample sets the output directory to c:\temp and sets the printer to
use the image.tif file name as image file name for the printed document.
132
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DEVMODE_SetOutputDirectory(pDevMode, TEXT("C:\\TEMP"));
DEVMODE_SetFileGenerationMethod(pDevMode,
FILENAME_EXACT_DEVMODE);
DEVMODE_SetImageFileName(pDevMode, TEXT(IMAGE.TIF));

133
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Fax Boards
GammaLink Fax Boards
In order to generate images for the GammaFax board use the following settings:
File Format = Tiff Group 3. 1 Dimension with Fillbits
Paper Size =Fax Paper or Create faxable Image checkbox checked.
Graphic Resolution = Fine FAX Resolution or Standard FAX Resolution
At this point the DPI setting has to be 204 x 98 or 204 x 196.
The Reverse Bit Order checkbox should be checked.

Dialogic VFX Fax Boards


The driver settings for Dialogic fax boards are the same as the GammaLink settings above.

Bicom Fax Board


The Win95 printer driver settings must be the following:
File Format = Tiff Group 3 1 Dimension with Fillbits
Paper Size =Fax Paper or Create faxable Image checkbox checked.
Graphic Resolution = Fine FAX Resolution or Standard FAX Resolution
At this point the DPI setting has to be 204 x 98 or 204 x 196.
The Reverse Bit Order checkbox should be unchecked.

Commetrex Fax Board


Same as Bicom Fax Boards.

134
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Natural Micro Systems Fax Board


Same as Bicom Fax Boards.

135
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

XP/W2K and NT Resource Toolkit


Directory structure of the Resource
Toolkit
Run Setup.exe on the installation CD to install the Resource Toolkit. In the specified destination
directory you will have the following subdirectories (see the Components of the Resource
Toolkit chapter below for a detailed description about the contents of the individual directories):
Install\IIS6:
Install\InstallDLL:
Install\UninstallDLL:
OCX
Message Capture Sample:
ResourceDLL:
VB Message Capture Sample:

Sample InstallShield project that demonstrates how to install


the printer driver.
Sample installation DLL that is used by InstallShield to install
the printer driver.
Sample un-installation DLL that is used by InstallShield to
remove the printer driver.
The BiPrnDrv.ocx file. This OCX is used to capture printer
driver messages.
Visual C++ application that demonstrates how to capture
printer driver messages.
The source code for the resource DLL used by the driver.
VB 6 application that demonstrates how to capture printer
driver messages.

137
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Components of the Resource Toolkit


1. Install
The Install directory contains samples that demonstrate how to install the printer driver. There is
an Install DLL, Uninstall DLL and an Install Shield 6.2 project.
The Install Shield project calls functions that are implemented in the Install DLL. The DLL can be
compiled with Visual C++ and it should be placed into the Setup Files\Compressed
Files\Language Independent\OS Independent folder in the Install Shield projects directory
structure.

1.1 The Install DLL


The Install DLL (MyDll_NT.dll) is used by the Install Shield project. The Install DLL contains
functions to add and remove components of the driver like the Port Monitor, Print Processor, Driver
and Printer. The functions of the Install DLL can also be used to change the DEVMODE members
values and set the printer driver settings at install time.
NOTE: In the XP/W2k/NT driver, the DEVMODE is handled as UNICODE. The Install DLL has to
be compiled with the following project settings:
The Structure Alignment must be 1 byte.
The following defines must
_WIN32_WINNT=0x0400

be

defined

in

the

project:

UNICODE,

_UNICODE,

To change a member of the DEVMODE at install time follow the steps below:
1. Call the dSetParameter() function from the Install DLL to set a member of the DEVMODE
structure.
2. Repeat step 1 for each member of the DEVMODE you wish to set.
When all of the members are set to the required value, call the dDocumentProperties() function
from the Install DLL to write the new settings to the printer.

1.2 The dSetParameter() function


Call the dSetParameter() function from the Install DLL to set a member of the DEVMODE.
dSetParameter(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp)
The parameters of the function are:

138
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

HWND
MainWnd
- a window handle (can be NULL)
LPLONG
lpLong
- a pointer to a long value. Represents the member of the
DEVMODE to be changed. The valid values are defined in the setup.h file
// Parameters to
#define
default
#define
#define
#define
#define
#define
#define
#define
#define
#define

call dSetParameter()

PAR_INIC_PARAMETERS
values.
PAR_DRIVER_VERZIO
PAR_DRIVER_NAME
PAR_DRIVER_DRIVERFILE
PAR_DRIVER_DATAFILE
PAR_DRIVER_CONFIGFILE
PAR_PRINTER_NAME
PAR_PRINTER_PORT
PAR_PRINTER_PROCESS
PAR_PRINTER_DATATYPE

// clear ALL parameters & set

1
2
3
4
5
101
102
103
104

//
//
//
//
//
//
//
//
//

numeric
string
string
string
string
string
string
string
string

// members of the Windows DEVMODE (BlackIceDEVMODE.DM)


#define PAR_DEVMODE_ORIENT
201 // numeric (VAL_LANDSCAPE or
VAL_PORTRAIT)
#define PAR_DEVMODE_PAPERSIZE
202 // numeric (VAL_PAPER_xxx)
#define PAR_DEVMODE_PAPERLENGTH
203 // numeric
#define PAR_DEVMODE_PAPERWIDTH
204 // numeric
#define PAR_DEVMODE_DITHER
205 // numeric (VAL_DITHER_xx)
#define PAR_DEVMODE_XDPI
206 // numeric
#define PAR_DEVMODE_YDPI
207 // numeric
// members of the BlackIceDEVMODE
#define PAR_DEVMODE_FILEFORMAT
301 // mumeric (VAL_xxx_INDX(_xxx))
#define PAR_DEVMODE_RENAMEDLGBOX
302 // VAL_YES or VAL_NO
#define PAR_DEVMODE_OUTDIR
303 // string
#define PAR_DEVMODE_FAXHEADER
304 // numeric
#define PAR_DEVMODE_APPENDIMAGE
305 // VAL_YES or VAL_NO
#define PAR_DEVMODE_STARTAPPLICATION
306 // VAL_YES or VAL_NO
#define PAR_DEVMODE_APPLICATIONPATH 307 // string
#define PAR_DEVMODE_SERVERKEY
308 // string
#define PAR_DEVMODE_PAGENUMBERING
309 // VAL_YES or VAL_NO
#define PAR_DEVMODE_WRITETEXT
310 // VAL_YES or VAL_NO
#define PAR_DEVMODE_ADVTEXT
311 // VAL_YES or VAL_NO
#define PAR_DEVMODE_REVERSEFILLORDER
312 // VAL_YES or VAL_NO
#define PAR_DEVMODE_CREATEFAXABLEIMAGE
313 // VAL_YES or VAL_NO
#define PAR_DEVMODE_FILENAMEGEN
314 // numeric
#define PAR_DEVMODE_GLYPHSUPPORT
315 // numeric
#define PAR_DEVMODE_DITHERING
316 // numeric
#define PAR_DEVMODE_BRIGHTNESS
317 // numeric
#define PAR_DEVMODE_COLORDEPTH
318 // numeric
#define PAR_DEVMODE_RESOURCEDLLNAME 319 // string
#define PAR_DEVMODE_APPLICATION_STARTBEFOREPRINT
320 // VAL_YES or
VAL_NO
#define PAR_DEVMODE_PASSPARAMETERS
321 // VAL_YES or VAL_NO
#define PAR_DEVMODE_SHOWAPPLICATIONWINDOW 322 // numeric
VAL_START_NORMAL

139
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

#define PAR_DEVMODE_DISABLE_MESSAGING_INTERFACE 323 // VAL_YES or VAL_NO


#define PAR_DEVMODE_EXTENSION
324 // string
#define PAR_DEVMODE_INTERFACENAME
325 // string

LPSTR
lpStringTmp - Represents the new value of the DEVMODE member specified in
the lpLong parameter.
Return Value
The dSetParameter() will return FALSE if the value passed in the lpLong parameter is not valid
(code to set the specified DEVMODE member is not present in the dSetParameter() function) ,
otherwise TRUE. Check the How to add code to set a member of the DEVMODE section of
the manual for information on implementing your own code to set the DEVMODE members.

1.3 The dDocumentProperties() function


The dDocumentProperties() function is called from the Install DLL by the Install Shield project to
write the changes in the devmode to the printer.
dDocumentProperties(HWND MainWnd, LPLONG lpLong, LPTSTR lpString)
HWND MainWnd - handle to a window (can be NULL)
LPLONG lpLong
- pointer to a long value. A handle to the printer to set. By default the
value can be NULL. In this case the currently installed printer settings will be chanced.
LPTSTR lpString
- pointer to a string value. The value is not used, can be NULL;
All of these parameters are only necessary, because of the Install Shield DLL calling format.
If an error occurs return GetLastError(), or 0 on success.

1.4 Example to set a member of the DEVMODE at install time


For example, we will set the horizontal DPI for the printer driver in the Install Shield RUL file to
300 DPI.:
STRING
STRING
STRING
LONG
NUMBER

G_DllFileName;
DllProc;
ParamValue;
tmpLong;
nResult;

G_DllFileName =
DllProc
tmpLong
ParamValue
CallDLLFx(
DllProc

SUPPORTDIR ^ "MYDLL_NT.DLL";

= "dSetParameter";
= PAR_DEVMODE_XDPI;
= "300";
G_DllFileName, DllProc, tmpLong, ParamValue);
= "dDocumentProperties";

140
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

tmpLong
= 0;
ParamValue = "";
CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue );

1.5 How to add code to set a member of the DEVMODE


You can add code to the Install DLL and/or to your Install Shield project to set any member of
the DEVMODE.
For example, set the printer at install time to enable text output. To enable text output we have to
set the BLF_WRITETEXT flag of the BliceMode member of the BlackIceDEVMODE structure.
The BlackIceDEVMODE structure is defined in the devmode.h file in the Install DLL project.
In the devmode.cpp file, there are several functions defined to access the members of the
BlackIceDEVMODE structure. To access the BliceMode member, you can use the following
functions:
BOOL
void
void

DEVMODE_IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableWriteText(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableWriteText(BlackIceDEVMODE* pDevMode)

1. Define a new value in the setup.h file in the Install DLL project for each member you want to
access:
#define PAR_DEVMODE_ADVTEXT

311

2. Modify the dSetParameter() function in the setupdll.cpp file in the Install DLL project. Add
the following to the switch statement:
case PAR_DEVMODE_ADVTEXT:
if ( _ttoi(lpString))
DEVMODE_ EnableWriteText (&DefDevMode);
else
DEVMODE_ DisableWriteText (&DefDevMode);
break;

3. Modify the dDocumentProperties() function in the setupdll.cpp file in the Install DLL
project. Add the following code to the dDocumentProperties(), before the last call of the
DocumentProperties() function:
Modify the flag only if it was set.
if (DEVMODE_IsWriteTextEnabled(&DefDevMode))
DEVMODE_EnableWriteText (pBlackIceDevmode);
else
DEVMODE_DisableWriteText (pBlackIceDevmode);

141
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

4. Rebuild the Install DLL and copy the file to the Install Shield project
Files\Compressed Files\Language Independent\OS Independent folder.

Setup

Open the Install Shield project. Open the script file. Add the following code to the RUL file:
STRING
STRING
STRING
LONG
NUMBER

G_DllFileName;
DllProc;
ParamValue;
tmpLong;
nResult;

G_DllFileName =
DllProc
tmpLong
ParamValue
CallDLLFx(

SUPPORTDIR ^ "MYDLL_NT.DLL";

= "dSetParameter";
= PAR_DEVMODE_ADVTEXT;
= VAL_YES;
G_DllFileName, DllProc, tmpLong, ParamValue);

DllProc
= "dDocumentProperties";
tmpLong
= 0;
ParamValue = "";
CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue );

NOTE: Important ! The printer must be installed correctly before you call the
dSetParameter() and dDocumentProprieties() functions to change the settings.

1.6 Functions of the Install DLL


The Install directory contains samples that demonstrate how to install the printer driver. There is
an Install DLL, Uninstall DLL and an Install Shield 6.2 project.
The Install Shield project calls functions that are implemented in the Install DLL. The Install DLL
can be compiled with Visual C++ and it should be placed into the Setup Files\Compressed
Files\Language Independent\OS Independent folder in the Install Shield projects directory
structure.
The Install DLL (MyDll_NT.dll) is used by the Install Shield project. The Install DLL contains
functions to add and remove components of the driver like the Port Monitor, Print Processor, Driver
and Printer. The functions of the Install DLL can also be used to change the DEVMODE members
values and set the printer driver settings at install time.
dIsInstalledPrinterDriver(LPSTR szDriverName)
-Returns TRUE if the printer driver is already installed.
dDeletePrinterDriver(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp))
deletes the specified printer driver
MainWnd
- windows handle
LpLong
- not used, the value can be NULL;
lpStringTmp - Specifies the name of the printer driver to be deleted.
Returns FALSE if the printer driver could not be deleted.
142
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

dIsPrintProcessorInstalled(LPSTR lpPrintProcessorName)
- Returns TRUE if the specified print processor is already installed
dDeletePrintProcessor(LPSTR lpPrintProcessor)
- Deletes the specified print processor.
- Returns TRUE if the print processor was deleted, otherwise returns the GetLastError() value.
dAddPrintProcessor(LPSTR lpProcessorDllName, LPSTR lpProcessorName)
- Adds the specified print processor to the system.
- lpProcessorDllName
- the name of the print processor dll
- lpProcessorName
- the name of the print processor
- Returns 0 on success, otherwise GetLastError().
dIsPortMonitorInstalled(LPSTR lpMonitorName)
- Returns TRUE if the specified port monitor is installed
dAddPortMonitor(LPSTR lpMonitorDllName, LPSTR lpMonitorName)
- adds the specified port monitor to the system
- lpMonitorDllName
- the dll file name
- lpMonitorName
- the name of the port monitor
- Returns 0 if the port monitor was successfully added, otherwise returns the GetLastError();
dIsPortInstalled(LPSTR lpPortName, LPSTR lpMonitorName)
- Returns TRUE if the port is already installed, otherwise FALSE
- lpPortName
- the name of the port
- lpMonitorName - the name of the port monitor
dAddPort(LPSTR lpPortName, LPSTR lpMonitorName)
- Adds the specified port to the specified port monitor
- lpPortName
- the name of the port to be added
- lpMonitorName - the name of the port monitor to add the port to
dAddPrinterDriver(HWND MainWnd, LPLONG lpLong, LPSTR lpStrTemp)
- Adds the specified printer driver to the system
- MainWnd
- handle to a window
- lpLong
- pointer to a long value. Not used, the value can be 0.
- lpStrTemp- the name of the driver to be installed
- Returns 1 if the driver is already installed. Returns GetLastError() if adding the driver failed.
Returns 0 on success.
dAddPrinter( LPSTR szPrinterNameTmp, LPSTR szPrinterPortTmp,
LPSTR szDriverNameTmp, LPSTR szPrintProcessorTmp )
-

Adds the specified printer to the system


szPrinterName - the name of the printer to be added
szPrinterPort
- specifies the name of the port the printer will be connected to
143
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

- szDriverName
- the name of the printer driver
- szPrintProcessor - the name of the print processor
NOTE: The printer driver, the port and the print processor must be installed before calling the
dAddprinter() function.
dDocumentProperties(HWND MainWnd, LPLONG lpLong, LPTSTR lpString)
- writes the settings modified by the dSetParameters() function to the installed printer
- MainWnd - handle to a window. Not used.
- lpLong
- pointer to a value A handle to the printer to set. By default the value can be
NULL. In this case the currently installed printer settings will be chanced.
- lpString - a string value. Not used.
If an error occurs function return the GetLastError() error code, otherwise 0.
dSetParameter(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp)
- Modifies the settings of the printer one at a time. After calling this function for all the
required settings, the dDocumentProperties() must be called to write the settings to the
printer.
- MainWnd- handle to a window
- lpLong
- pointer to a long value. Represents the member of the DEVMODE to be
changed. The valid values are defined in the setup.h file. See 1.2 The dSetParameter() for
details
- lpStringTmp
- Represents the new value of the DEVMODE member specified in the
lpLong parameter.
- Return Value
- The dSetParameter() will return FALSE if the value passed in the lpLong
parameter is not valid (code to set the specified DEVMODE member is not present in the
dSetParameter() function) , otherwise TRUE. Please see the How to add code to set a
member of the DEVMODE section for information on implementing your own code to set
the DEVMODE members.
CreateRegistryKeyForApplicationStarting(DWORD PrinterType);
This function will create the required entries in the registry for the Start Application feature.
The registry key will be created under the HKEY_LOCAL_MACHINE\Black Ice Software,
Inc.\ key. The registry key is different for each printer driver.
- DWORD PrinterType the printer to create the registry keys for.
The values of the PrinterType can be one of the followings:
0=
Color NT
1=
Monocrome NT
2=
Emf NT
3=
Color Terminal Server
4=
Mono Terminal Server
5=
Emf Terminal Server

144
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The function will also grant full access to the Everyone and Administrator groups to this key
in the registry. The system administrator can change the access rights for these registry keys and
can add or remove access rights for different groups and users after installation.
NOTE: To be able to launch an application after printing, using the printer drivers Start
Application feature, the user must have read/write permission to these registry keys! If the
read/write process fails, the application will not be launched by the printer driver.
CreateRegistryKeyForApplicationStarting_ColorNT()
CreateRegistryKeyForApplicationStarting_MonoNT()
CreateRegistryKeyForApplicationStarting_EmfNT()
CreateRegistryKeyForApplicationStarting_ColorTS()
CreateRegistryKeyForApplicationStarting_MonoTS()
CreateRegistryKeyForApplicationStarting_EmfTS()
- Each of these functions will create a registry entry for the printer driver. They will call the
CreateRegistryKeyForApplicationStarting function and will pass the required parameter.

Where to find the most recent driver files ?


In order to build a new installation for the driver use the Install Shiled sample project
shipped with the driver located in the Resource Toolkit. Please remember that the Install Shield
project is only a sample to show how to install the printer driver. The sample project may NOT
contain the most recent version of the driver files.
The most recent version of the driver files are always installed with the printer driver.
They are located by default in the "C:\Program Files\Black Ice Software, Inc\Black Ice Color
Printer Driver\Distribution" folder. (for the color driver for example)
Replace the driver files from the Install Shield sample project with the most recent driver files
from the "Distribution" folder.
Warning: Please note that the print processor for NT is different than for W2K and XP.
Description of the files for the color driver:
...\Distribution\ BiCDrvNT.dll
- Driver file for NT/W2K/XP
...\Distribution\ BiCiniNT.ini
- Initialization file for NT/W2K/XP
...\Distribution\ BiCMonNT.dll
- Port Monitor file for NT/W2K/XP
...\Distribution\ BiCRmvNT.dll
- Resource file for NT/W2K/XP
...\Distribution\ BiCRmvNT.dll
- Library for the driver uninstall for NT/W2K/XP
...\Distribution\ BiCUifNT.dll
- User Interface file for NT/W2K/XP
...\Distribution\ BiCProNT.dll
- Print processor file for NT
...\Distribution\Process.2k\BiCProNT.dll - Print processor file for Win2000 and XP
...\Distribution\ BiImg.dll
- file for NT/W2K/XP
...\Distribution\ JPEG32.DLL
- file for NT/W2K/XP
...\Distribution\ TIFF32.DLL
- file for NT/W2K/XP
...\Distribution\ BiCAppNT.exe
- Application starter file for NT
145
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Description of the files for the TIFF (monochrome) driver:


...\Distribution\ BiMDrvNT.dll
- Driver file for NT/W2K/XP
...\Distribution\ BiMiniNT.ini
- Initialization file for NT/W2K/XP
...\Distribution\ BiMMonNT.dll
- Port Monitor file for NT/W2K/XP
...\Distribution\ BiMRmvNT.dll
- Resource file for NT/W2K/XP
...\Distribution\ BiMRmvNT.dll
- Library for the driver uninstall for NT/W2K/XP
...\Distribution\ BiMUifNT.dll
- User Interface file for NT/W2K/XP
...\Distribution\ BiMProNT.dll
- Print processor file for NT
...\Distribution\Process.2k\BiMProNT.dll - Print processor file for Win2000 and XP
...\Distribution\ BiImg.dll
- file for NT/W2K/XP
...\Distribution\ JPEG32.DLL
- file for NT/W2K/XP
...\Distribution\ TIFF32.DLL
- file for NT/W2K/XP
...\Distribution\ BiMAppNT.exe
- Application starter file for NT

Description of the files for the EMF (Enhanced metafile) driver:


...\Distribution\ BiEDrvNT.dll
- Driver file for NT/W2K/XP
...\Distribution\ BiEiniNT.ini
- Initialization file for NT/W2K/XP
...\Distribution\ BiEMonNT.dll
- Port Monitor file for NT/W2K/XP
...\Distribution\ BiERmvNT.dll
- Resource file for NT/W2K/XP
...\Distribution\ BiERmvNT.dll
- Library for the driver uninstall for NT/W2K/XP
...\Distribution\ BiEUifNT.dll
- User Interface file for NT/W2K/XP
...\Distribution\ BiEProNT.dll
- Print processor file for NT
...\Distribution\Process.2k\BiEProNT.dll - Print processor file for Win2000 and XP
...\Distribution\ BiImg.dll
- file for NT/W2K/XP
...\Distribution\ JPEG32.DLL
- file for NT/W2K/XP
...\Distribution\ TIFF32.DLL
- file for NT/W2K/XP
...\Distribution\ BiEAppNT.exe
- Application starter file for NT

Terminal Server Driver files


Warning: Please note that the print processor for NT Terminal Server is different than for W2K
Terminal Server and XP Terminal Server
Description of the files for the color driver:
...\Distribution\ BiCDrvTS.dll
...\Distribution\ BiCiniTS.ini
...\Distribution\ BiCMonTS.dll
...\Distribution\ BiCRmvTS.dll

- Driver file for NT/W2K/XP Terminal Server


- Initialization file for NT/W2K/XP Terminal Server
- Port Monitor file for NT/W2K/XP Terminal Server
- Resource file for NT/W2K/XP Terminal Server

146
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

...\Distribution\ BiCRmvTS.dll
- Library for the driver uninstall for NT/W2K/XP Terminal
Server
...\Distribution\ BiCUifTS.dll
- User Interface file for NT/W2K/XP Terminal Server
...\Distribution\ BiCProTS.dll
- Print processor file for NT Terminal Server
...\Distribution\Process.2k\BiCProTS.dll - Print processor file for Win2000 and XP Terminal
Server
...\Distribution\BiCAppTS.exe
- program launcher for NT/W2K/XP Terminal Server
...\Distribution\ BiImg.dll
- file for NT/W2K/XP Terminal Server
...\Distribution\ JPEG32.DLL
- file for NT/W2K/XP Terminal Server
...\Distribution\ TIFF32.DLL
- file for NT/W2K/XP Terminal Server
- file for NT/W2K/XP Terminal Server

Description of the files for the TIFF (monochrome) driver:


...\Distribution\ BiMDrvTS.dll
- Driver file for NT/W2K/XP Terminal Server
...\Distribution\ BiMiniTS.ini
- Initialization file for NT/W2K/XP Terminal Server
...\Distribution\ BiMMonTS.dll
- Port Monitor file for NT/W2K/XP Terminal Server
...\Distribution\ BiMRmvTS.dll
- Resource file for NT/W2K/XP Terminal Server
...\Distribution\ BiMRmvTS.dll
- Library for the driver uninstall for NT/W2K/XP Terminal
Server
...\Distribution\ BiMUifTS.dll
- User Interface file for NT/W2K/XP Terminal Server
...\Distribution\ BiMProTS.dll
- Print processor file for NT Terminal Server
...\Distribution\Process.2k\BiMProTS.dll - Print processor file for Win2000 and XP Terminal
Server
...\Distribution\BiMAppTS.exe
- program launcher for NT/W2K/XP Terminal Server
...\Distribution\ BiImg.dll
- file for NT/W2K/XP Terminal Server
...\Distribution\ JPEG32.DLL
- file for NT/W2K/XP Terminal Server
...\Distribution\ TIFF32.DLL
- file for NT/W2K/XP Terminal Server
Description of the files for the EMF (Enhanced metafile) driver:
...\Distribution\ BiEDrvTS.dll
- Driver file for NT/W2K/XP Terminal Server
...\Distribution\ BiEiniTS.ini
- Initialization file for NT/W2K/XP Terminal Server
...\Distribution\ BiEMonTS.dll
- Port Monitor file for NT/W2K/XP Terminal Server
...\Distribution\ BiERmvTS.dll
- Resource file for NT/W2K/XP Terminal Server
...\Distribution\ BiERmvTS.dll
- Library for the driver uninstall for NT/W2K/XP Terminal
Server
...\Distribution\ BiEUifTS.dll
- User Interface file for NT/W2K/XP Terminal Server
...\Distribution\ BiEProTS.dll
- Print processor file for NT Terminal Server
...\Distribution\Process.2k\BiEProTS.dll - Print processor file for Win2000 and XP Terminal
Server
...\Distribution\BiEAppTS.exe
- program launcher for NT/W2K/XP Terminal Server
147
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

...\Distribution\ BiImg.dll
...\Distribution\ JPEG32.DLL
...\Distribution\ TIFF32.DLL

- file for NT/W2K/XP Terminal Server


- file for NT/W2K/XP Terminal Server
- file for NT/W2K/XP Terminal Server

How to install the printer driver with a different package other


than Install Shield?
To install the printer driver with another installation building package other than Install Shield,
please follow the steps below:
1. Make sure that the installation builder you are using can call functions from external DLLs. In
order to install and configure the printer driver, you will need to call functions from the Install
DLL.
2. Before trying to install the printer driver, make sure that the driver is not currently installed.
To check, call the dIsInstalledPrinterDriver function from the Install DLL. If the driver is
currently installed you need to delete the printer driver by calling the dDeletePrinterDriver
function. Copy the printer driver files to the right location. The following table shows the files
needed by each printer driver and the location where the files should be copied.

148
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Printer driver
Monochrome
printer driver for
Windows
NT/2000/XP

Color printer driver


for Windows
NT/2000/XP

Metafile printer
driver for Windows
NT/2000/XP

File description
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

Filename
BiMDrvNT.dll
BiMProNT.dll
BiMMonNT.dll
BiMUifNT.dll
BiMResNT.dll
BiMRmvNT.dll
BiMIniNT.ini
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Application Starter
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

BiMAppNT.exe
BiCDrvNT.dll
BiCProNT.dll
BiCMonNT.dll
BiCUifNT.dll
BiCResNT.dll
BiCRmvNT.dll
BiCIniNT.ini
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Application Starter
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

BiCAppNT.exe
BiEDrvNT.dll
BiEProcNT.dll
BiEMonNT.dll
BiEUifNT.dll
BiEResNT.dll
BiERmvNT.dll
BiECIniNT.ini
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Application Starter

BiCAppNT.exe

Target location
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
< SYSTEM >
< SYSTEM >
< DRIVERDIR >
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
< SYSTEM >
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
< SYSTEM >
< SYSTEM >
< DRIVERDIR >
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
< SYSTEM >
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
<SYSTEM>
< SYSTEM >
< DRIVERDIR >
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
< SYSTEM >

149
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Printer driver
Monochrome
printer driver for
Windows
NT/2000/XP
Terminal Server

Color printer driver


for Windows
NT/2000/XP
Terminal Server

Metafile printer
driver for Windows
NT/2000/XP and
Terminal Server

File description
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

Filename
BiMDrvTS.dll
BiMProTS.dll
BiMMonTS.dll
BiMUifTS.dll
BiMResTS.dll
BiMRmvTS.dll
BiMIniTS.ini
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Application launcher for


Terminal Server only
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

BiMAppTS.exe

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Application launcher for


Terminal Server only
Driver file
Print processor file
Port monitor file
User Interface DLL
Resource DLL
Driver Remove DLL
Driver initialization file
TIFF DLL

BiMAppTS.exe

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

BiCDrvTS.dll
BiCProTS.dll
BiCMonTS.dll
BiCUifTS.dll
BiCResTS.dll
BiCRmvTS.dll
BiCIniTS.ini
Tiff32.dll

BiEDrvTS.dll
BiEProcTS.dll
BiEMonTS.dll
BiEUifTS.dll
BiEResTS.dll
BiERmvTS.dll
BiECIniTS.ini
Tiff32.dll

Target location
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
< SYSTEM >
< SYSTEM >
< DRIVERDIR >
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
< SYSTEM >
< SYSTEM >
< DRIVERDIR >
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
< DRIVERDIR >
< PROCESSORDIR >
<SYSTEM>
< DRIVERDIR >
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,

150
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Application launcher for


Terminal Server only

BiEAppTS.exe

<WINDOWS>
<SYSTEM>,

<SYSTEM> The default location for the driver files is the \WINDOWS\system directory.
<WINDOWS>The Windows directory.
<DRIVERDIR> - For NT / Windows 2000, the default location for the driver files is the
\WINNT\system32\spool\drivers\w32x86 and the
\WINNT\system32\spool\drivers\w32x86\2 directory (the files should be copied
in both these directories). To retrieve the location of this folder, use the
dGetPrinterDriverDirectory function from the InstallDLL.
<PROCESSORDIR> - For NT / Windows 2000, the default location for the print processor files
is the \WINNT\system32\spool\prtprocs\w32x86 directory. To retrieve the
location of this folder, use the "dGetPrintProcessorDirectory function from the
InstallDLL.
1.

Set the printer driver installation parameters by using the


dSetParameters function from the InstallDLL. The following parameters should be set:
- Initialize default values by calling dSetParameter with PAR_INIC_PARAMETERS and
VAL_INIC_BLICENT.
- Set the name of the printer driver user interface DLL file by calling dSetParameter with
PAR_DRIVER_CONFIGFILE and specify the name of the DLL.
- Set the name of the driver file by calling dSetParameter with PAR_DRIVER_FILE and
specify the name of the driver file.
- Set the name of the driver config file by calling dSetParameter
PAR_DRIVER_DRIVERFILE.
- Set the print processor name by calling dSetParameter with
PAR_PRINTER_PROCESS
- Set the port name by calling dSetParameter with
PAR_PRINTER_PORT
- Set the name of the driver INI file by calling dSetParameter
PAR_DRIVER_DATAFILE.

2.

Check if the port monitor is already installed by calling


dIsPortMonitorInstalled. If the port monitor is already installed, you do not need to install the
port monitor again. Otherwise, use the dAddPortMonitor function to install the port monitor.
Specify the name of the port monitor DLL and the name of the port monitor as a parameter.
3.
Check if the printer port is already installed or not by calling the
dIsPortInstalled function. If the port is already installed, it is not needed to add a new port,
otherwise call the dAddPort function to add a new port. The dAddPort function takes a port
name and a monitor name as a parameter.
4.
Install the printer driver by calling the "dAddPrinterDriver" function
with the name of the Printer driver you want to use.
151
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

5.
6.
7.
8.
9.

Check if the print processor is already installed by calling the


dIsPrintProcessorInstalled function. If the print processor is not installed, install the Black Ice
print processor by calling the dAddPrintProcessor function from the InstallDLL.
Install the printer by calling the "dAddPrinter" function with the name
of the printer you want to install.
To modify values in the DEVMODE structure and make changes in the
printer driver settings, call the dSetParameter function. The different values that can be
changed are listed in the devmode.h file in the InstallDLL project.
After modifying the printer driver settings, call "dDocumentProperties"
to store the modified settings.
Close the printer by calling dClosePrinter.

Which are the correct parameters to call the dSetParameter()


function to install the printer driver
To correctly install the XP/Win2000/NT and terminal Server driver from an Install Shield script call the
dSetParameter() function from the install DLL with the following parameters. Use the install dll
(mydll_NT.dll) from the XP/NT/Win2000 Resource toolkit.

DllProc = "dSetParameter";
tmpLong = PAR_INIC_PARAMETERS;
ParamValue = VAL_INIC_BLICENT;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, ParamValue);
DriverFiles = @PRINTER_NAME; // the name of the printer
tmpLong = PAR_PRINTER_NAME;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = G_DriverDir ^ @USER_INTERFACE_NAME; // the name and full path of the
user interface dll (i.e. BiCuifNT.dll for the NT Color driver)
tmpLong = PAR_DRIVER_CONFIGFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = G_DriverDir ^ @DRIVER_FILE; // the name and full path of the driver dll (i.e.
BiCDrvNT.dll for the NT Color driver)
tmpLong = PAR_DRIVER_DRIVERFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = G_DriverDir ^ @DRIVER_CONFIG_INI; // the name and full path of the INI
configuration file (i.e. BiCIniNT.ini for the NT Color driver)
tmpLong = PAR_DRIVER_DATAFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = @PROCESSOR_NAME; // The name of the print processor (i.e. Color Print
Processor for the NT Color driver)
152
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

tmpLong = PAR_PRINTER_PROCESS;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = @PORT_NAME; //The name of the port to install the printer to. (i.e.
IcePortCR: for the NT Color driver)
tmpLong = PAR_PRINTER_PORT;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);

How to set the printer setting at install time using an INI file?
To set the printer driver settings at install time a specific INI file can be used.
The INI file is located by default in the "C:\Program Files\Black Ice Software, Inc\Black Ice
Color Printer Driver\Distribution" folder. (for the color driver for example)
The Distribution folder is installed with the Printer Driver.
The INI file name is:
BiCIniNT.ini - for the Color driver
BiEIniNT.ini - for the EMF (metafile) driver
BiMIniNT.ini - for the TIFF (monochrome) driver
Modify the contents of this INI file to match your requirements.
Replace the INI file located in the Driver Files folder of the Install Shield project with the new
modified INI file.
Rebuild the Install Shield project.
In this case if the Install Shield project doesnt set the printer default settings, the settings from
the INI file will be used.
The structure of the INI file (for the monochrome driver):
[Default Settings]
Paper Size =1
;Specify this for Variable Paper Size
Paper Width =
Paper Length =
X DPI =300
Y DPI =300
Orientation =1
File Format =3
BitsPerPixel =1
Flags =188448
Brightness =100
;Specify this for Variable Paper Size In Pixels
PaperWidthInPixels =
PaperHeightInPixels =
FAXheader = 0
LossRatio = 54
153
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Dithering = 0
FileNameGenerationFlags = 0
FileNamePrefix=AAA
FileExtension =TIF
INIFileName=
FixedFileName=
ApplicationPath=C:\windows\notepad.exe
LaunchFlags=10
InterfaceName=MonoMessageInterface
ResourceDLLName =
TIFFDLLName =
JPEGDLLName =
OutputDirectory =
Description of the values
Paper Size=<number>
Specifies the paper format used by the printer.
Paper Type
LETTER
LETTERSMALL
TABLOID
LEDGER
LEGAL
STATEMENT
EXECUTIVE
A3
A4
A4SMALL
A5
B4
B5
FOLIO
QUARTO
10X14
11X17
NOTE
ENV_9
ENV_10
ENV_11
ENV_12
ENV_14
CSHEET
DSHEET
ESHEET
ENV_DL

<number> Description
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

Letter 8 1/2 x 11 in
Letter Small 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
B4 (JIS) 250 x 354
B5 (JIS) 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9 1/2
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11 1/2
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

154
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

ENV_C5
28
ENV_C3
29
ENV_C4
30
C6
31
ENV_C65
32
ENV_B4
33
ENV_B5
34
ENV_B6
35
ENV_ITALY
36
ENV_MONARCH
37
ENV_PERSONAL
38
FANFOLD_US
39
FANFOLD_STD_GERMAN 40
FANFOLD_LGL_GERMAN 41
ISO_B4
42
JAPANESE_POSTCARD
43
9X11
44
10X11
45
15X11
46
ENV_INVITE
47
RESERVED_48
48
RESERVED_49
49
LETTER_EXTRA
50
LEGAL_EXTRA
51
TABLOID_EXTRA
52
A4_EXTRA
53
LETTER_TRANSVERSE
54
A4_TRANSVERSE
55
LETTER_EXTRA_TRANSVERSE
A_PLUS
57
B_PLUS
58
LETTER_PLUS
59
A4_PLUS
60
A5_TRANSVERSE
61
B5_TRANSVERSE
62
A3_EXTRA
63
A5_EXTRA
64
FAX
VARIABLE
VARIABLE_PIXEL

257
258
259

A0
A1
ASHEET
BSHEET
FSHEET
GSHEET
HSHEET
JSHEET
KSHEET
AASHEET
BASHEET
CASHEET

260
261
262
263
264
265
266
267
268
269
270
271

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
56
/*
/*
/*
/*
/*
/*
/*
/*

Envelope C5 162 x 229 mm


Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
B4 (ISO) 250 x 353 mm
Japanese Postcard 100 x 148 mm
9 x 11 in
10 x 11 in
15 x 11 in
Envelope Invite 220 x 220 mm
RESERVED--DO NOT USE
RESERVED--DO NOT USE
Letter Extra 9 \275 x 12 in
Legal Extra 9 \275 x 15 in
Tabloid Extra 11.69 x 18 in
A4 Extra 9.27 x 12.69 in
Letter Transverse 8 \275 x 11 in
A4 Transverse 210 x 297 mm
/* Letter Extra Transverse 9\275 x
SuperA/SuperA/A4 227 x 356 mm
SuperB/SuperB/A3 305 x 487 mm
Letter Plus 8.5 x 12.69 in
A4 Plus 210 x 330 mm
A5 Transverse 148 x 210 mm
B5 (JIS) Transverse 182 x 257 mm
A3 Extra 322 x 445 mm
A5 Extra 174 x 235 mm

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
12 in */
*/
*/
*/
*/
*/
*/
*/
*/

155
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DASHEET
EASHEET

272
273

NOTE: If you want to specify Variable Paper size, Variable Paper In Pixels the paper width and
paper height must be set.
Paper Width=<number>
The width of the paper in tents of milimeter. Must be specified if Variable Paper size selected.
Value can be between 1 and 65535.
Paper Length=<number>
The length of the paper in tents of milimeter . Must be specified if Variable Paper size selected.
Value can be between 1 and 65535.
X DPI =<number>
The horizontal DPI of the image. Can be a value between 1 and 1500.
Y DPI =<number>
The vertical DPI of the image. Can be a value between 1 and 1500.
File Format=<number>
The output file format for the printer.
The value can be one of the following:
File format

<number>

BMP
PCX
DCX
TIFF uncompressed
TIFF Group 3 1 D
TIFF Group 3 1 D NOEOL
TIFF Group 3 2 D
TIFF Group 4
TIFF Packed
TIFF LZW
TIFF Jpeg
CALS
RAW CCITT TIFF Group 3 1 D
RAW CCITT TIFF Group 3 1 D NOEOL
TIFF CCITT Group 3 2 D
TIFF CCITT Group 4
JPEG
JPEG l*a*b
EMF
IBM MMR IOCA

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Available only in printer


Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color, Monochrome
Color
Color
EMF
Color, Monochrome

156
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Orientation =<number>
The orientation of the paper. Set <number> to 1 for portrait or 2 for landscape.
BitsPerPixel =<number>
The bits per pixel in the image. Can be 1, 8 or 24
Flags=<number>
To set the enable or disable features of the printer at install time simply add or remove the value
of the required flag. The values of the flags are defined in the devmode.h file located in the
Resource Toolkit. The value of the flag can be one or a combination of the following values:
Flag Name

Value

BLF_INTERNETTIFF
0x00000004
BLF_PAGENUMBERING
0x00000008
BLF_REVERSEFILLORDER 0x00000010
BLF_MULTIIMAGE
0x00000020
BLF_WRITETEXT
0x00000040
BLF_MAILMERGE
0x00000100
BLF_ADVANCEDTEXT
0x00000200
BLF_DISABLEIMAGE
0x00000400
BLF_DISABLEGROUPFILE 0x00000800
BLF_SENDMESSAGE
0x00002000
BLF_ENABLETIFFDLL
0x00004000
BLF_ENABLEJPEGDLL
0x00008000
BLF_FAXOUTPUT
0x00010000
BLF_GLYPHSUPPORT
0x00020000
BLF_ROTATEPAPER
0x00040000
BLF_DELETEGROUPFILE
0x00080000
BLF_KEEPFILES
0x00100000
BLF_ADVANCEDPAPERSIZE 0x00200000
BLF_CUSTOMEXT
0x00400000
BLF_LOWFAXRES
0x00800000

Sets

Available for Printer

Internet TIFF Format


Color, Monochrome
Add Page Numbering Tag
Color, Monochrome
Reverse Bit Order in TIFF Color, Monochrome
Generates Multi page image TIFF, DCX files
Write Text File
All
Mail Merge
All
Save position and style (Text)
All
Disable Image
All
Disable Group file
All
Disable Messaging Interface
All
Enable the use of the TIFF32.dll
All
Enable the use of the JPEG32.dll
All
Create Faxable Image
All
Eastern Character Support
All
Rotate Landscape image to Portrait
All
Delete group file after printing
All
Keep existing files
All
Advanced paper size
All
Use Custom Extension
All
204x98 DPI Fax resolution Color, Monochrome

The BLF_ENABLETIFFDLL and BLF_ENABLEJPEGDLL flags should be set to generate


image files.
For example if you want to use the Page Numbering, and BLF_MULTIIMAGE the
value of the Flags in the INI file can be calculated like this:
(BLF_ENABLETIFFDLL) 0x00004000 +
(BLF_ENABLEJPEGDLL) 0x00008000
(BLF_PAGENUMBERING) 0x00000008
(BLF_MULTIIMAGE)
0x00000020
_____________________________________
0x0000C028
C028 HEX value in decimal is 49192.
You have to write in the INI file:
Flags=49192

157
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

If you don't need the flags specified in the INI file, simply comment the
line with the ';' like this:
;Flags=49192

Brightness =<number>
The brightness value for the image. Can be a value between 1 and 199. Not used by the EMF
driver.
PaperWidthInPixels =<number>
Specify the paper width in pixels when Variable Paper Size In Pixels is set for the paper size. Can
be a value between 1 and 65535.
PaperHeightInPixels =<number>
Specify the paper height in pixels when Variable Paper Size In Pixels is set for the paper size. Can
be a value between 1 and 65535.
FAXheader=<number>
The size in pixels for the fax header. Can be a value between 0 and 65535.
LossRatio=<number>
The loss ration setting for the Jpeg images. Can be a value between 0 and 100. Used only by the
color driver.
Dithering=<number>
Set the dithering method. The value can be :
Description
NONE (disable photo quality)
Floyd-Steinberg
Jarvis-Judice-Ninke
Smooth
Sharp
Stucki

<number>
0
1
2
3
4
5

FileNameGenerationFlags =<number>
Set the file name generation method. The value can be:
Description

<number>

Use this prefix and extension


0
Prefix and extension from the registry 1
Prefix and extension from INI file
2
Exact filename
3
Exact Filename from registry
4
Exact Filename from INI
5

158
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Use documents name

FileNamePrefix=AAA
Sets the prefix for the generated file. Can be maximum 3 characters
FileExtension =TIF
Sets the extension for the generated file. Can be maximum 3 characters.
INIFileName =<string>
This will specify the name of the INI file if the File Generation Method is Prefix and extension
from the INI file or Exact Filename from INI
If the File Generation Method is Prefix and extension from the Registry or Exact Filename
from the registry this will represent the registry key.
FixedFileName =<string>
This is the name of the file to be generated by the printer driver if the File Generation Method is
Exact filename
ApplicationPath= <string>
Full path and filename for the application to be launched by the printer.
LaunchFlags=<number>
Set the flags for the application launching. Can be one or a combination of the following values.
Description

<number>

Enable launch application


Start before printing

0x00000001
0x00000002
0x00000004
0x00000008
0x00000010
0x00000020

Enable pass parameters


Start application in normal window
Start application minimized

Start application hidden


InterfaceName=<string>
The name of the messaging interface
ResourceDLLName=<string>
The name and full path for the resource dll.
TIFFDLLName =<string>
The name and full path for the TIFF32.DLL.
JPEGDLLName =<string>
The name and full path for the JPEG32.DLL
OutputDirectort=<string>

159
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The output directory for the printer. The image files will be generated here.

How to install the printer with a custom name?


If you want to install the printer and all the printer components with a custom name, please follow
these steps:
1. Open the sample InstallShield project provided in the printer driver Resource Toolkit.
2. The project contains a String table with the names of all the printer driver files and printer
driver components.
3. Make the modifications you want. Also, if you renamed one or more files do not forget to
rename the files themselves and update the File groups that contain the renamed files.
4. Rebuild the installation kit.

How to install more than one printers?


Please follow the steps below to install more than one printer:
You have to rename all the printer files except for BiImg.DLL.
During the installation process, specify a separate print processor, port monitor, printer driver,
port and printer names for each printer.(VERY IMPORTANT)
Follow these steps for each printer.

How to install or configure the printer driver to use different


output directory for each user?
Each user can use a separate output directory for the generated image files.
Open the printer proprieties dialog box. Select the File Generation tab. The Output directory
field contains the actual output path where the images files will be generated.
Set different output directory for each user after the installation:
Setting a separate output directory for each user can be done in two ways:
a. Each user will set their own output directory manually by entering in this field the
directory path they want to use. The user must have permission to set the printer.
or
b. Specify the environment variable which contains a directory path. The environment
variable name must be between << and >> marks. I.e.: <<TEMP>>. The
printer driver will use the value from the environment variable as the output
directory. This environment variable should be specified for each user by the
system administrator. The system administrator can add to the autoexec.bat the a
SET command which uses the %USER% environment variable so this path will be
unique for each user. I.e.:
SET TEMP=C:\Temp\%USER%

160
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

I.e. to specify the TEMP environment variable as output directory enter in this
field: <<TEMP>>
Note: If the specified environment variable is not found the printer driver will
use by default the temp directory of the actual user to generate the image files.
Set different output directory for each user at install time:
Specify in the INI file (i.e. BiCIniNT.ini for the color NT driver) at the OutputDirectory field
the environment variable which contains the output directory for each user. Use the << and
>> marks before and after the name of the environment variable.
I.e. to set the value of the TEMP environment variable as output directory for each user at install
time, enter the following line in the INI file:
OutputDirectory=<<TEMP>>
The system administrator can add to the autoexec.bat the a SET command which uses the
%USER% environment variable so this path will be unique for each user. I.e.:
SET TEMP=C:\Temp\%USER%

How to change the Messaging Interface Name


The Messaging Interface Name is set to the current in the Install Shield sample project inside the
function SetCommonSettings():
// Messaging interface name
tmpLong = PAR_DEVMODE_INTERFACENAME;
ParamValue = @PRINTER_NAME; // Can be any string like "MyMessagingInterface"
nResult = CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue);
By default the Messaging Interface Name is set by the printer driver to a default value to all the
users. You can specify a new name for the messaging interface in the INI file (BiCiniNT.ini for
the color driver) like
InterfaceName=ColorMessageInterface
If the Messaging Interface Name is specified in the INI file, the printer driver will be installed
with that Messaging Interface Name for all the users.

161
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

You can overwrite this Messaging Interface Name for the current user only by setting the
PAR_DEVMODE_INTERFACENAME from the Install Shield code.
NOTE: If the message capturing application was started by the printer driver not the user, the
application runs on system account not on user account and the messaging interface name for the
system account will be different then the messaging interface name set for the user.
To avoid using different Messaging Interface Names by the application and the printer driver
there are two possibilities:
1. Do not set the interface name at install time. Leave the default setting set by the printer driver.
From the Install Shield script comment or delete the following lines from the
SetCommonSettings() function:
// Messaging interface name
tmpLong = PAR_DEVMODE_INTERFACENAME;
ParamValue = @PRINTER_NAME; // Can be any string like "MyMessagingInterface"
nResult = CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue);
2. If you need to change the name of the default messaging interface for some reason, specify the
new name for the messaging interface in the INI file. I.e.:
InterfaceName=ColorMessageInterface

2. Message Capture Sample


The Message Capture Sample directory contains a Visual C++ sample which demonstrates
how to handle window messages sent by the printer driver and how to retrieve the name of the
group file and the name and location of the generated image file.

3. Source of the User Interface DLL


This DLL contains the dialog box templates and all the string resources used by the printer driver.
The resources can be modified, but no resource can be deleted. Deleting a resource will produce
unpredictable results. If one or more controls from a dialog box should be hidden, do not delete
the control, but hide it.
The source code of this DLL can be located in the ResourceDLL folder.

4. Message Capture OCX Control


The Message Capture OCX control is provided to help VB, Delphi, Visual FoxPro programmers
handle printer driver messages easily from their application. The name of the OCX control is
BiPrnDrv.ocx and it should be installed into the SYSTEM directory.
162
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The Capture OCX can be found in the OCX directory in your RTK installation folder.
To redistribute the OCX, you have to register the OCX with regsvr32.exe or with your
installation package.
The OCX does not have any Black Ice DLL or OCX file dependency.
The BiPrnDrv.ocx file loads the following system DLLs:
-MFC42.DLL
-MSVCRT.DLL
-ADVAPI32.DLL
-OLEAUT32.DLL
-KERNEL32.DLL
-GDI32.DLL
-USER32.DLL
-WINSPOOL.DRV
-OLE32.DLL
If any of the above DLL is missing, the BiPrnDrv.ocx will not register correctly.
The Message Capture OCX control does not require a license file.
The OCX control exports the following Properties and Events:

PrinterName Property
This property contains the name of the printer the application wants to capture messages from.

StartDoc event
The StartDoc event is fired when the selected printer starts to print a document. The parameter of this
event is the name (with the full path) of the generated group file.

StartPage event
The StartPage event is fired when the selected printer starts to print a new page. The parameter of this
event is the actual page number.

EndPage event
The EndPage event is fired when the selected printer finishes printing a page. The parameter of this
event is the name (with the full path) of the generated image file.

EndDoc event
The EndDoc event is fired when the selected printer finishes printing a document. The parameter of this
event is the name (with the full path) of the generated group file.
163
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

5. VB Message Capture Sample


This sample demonstrates how to handle window messages sent by the printer driver and how to
retrieve the name of the group file and the name and location of the generated image file.
The VB 6 source code of this sample can be found in the VB Message Capture sample folder.

6 The BlackIceDEVMODE.DLL
The BlackceDEVMODE.DLLis a tool to retrieve, modify and set the values of the printer
DEVMODE. Setting the values of the printer DEVMODE changes the settings of the printer.
The BlackIceDEVMODE>DLL can be found in the Resource Toolkit
To correctly use the Black Ice Printer DEVMODE structure, the project must contain the
following preprocessor definitions:
_UNICODE, UNICODE, _WIN32_WINNT=0x0400
To set the preprocessor definitions in your Visual C++ project :
open Project -> Settings menu (the Project Settings dialog window will appear)
select the project setting configuration that you want to modify from the Setting For combo
box. (for example: Win32 Release).
Click the C/C++ tab control, choose General from the Category combo box. Add the
following Preprocessor definitions _UNICODE, UNICODE, _WIN32_WINNT=0x0400.
Next, click the Link tab control, select the Output item from the Category combo box, and
write the wWinMainCRTStartup string into the Entry-point symbol edit box.
When you are finished, click OK to close the Project Settings dialog window.

6.1 Description of the DLL


This DLL contains functions that can be used to modify the DevMode structure. You can set or
retrieve the printer DevMode using the functions of the BlackIceDEVMODE.dll. You can open
the DevMode, read and update values of members of DevMode structure and you can save
changes to the selected Black Ice printer.

6.2 How to use the BlackIceDEVMODE.dll


The BlackIceDEVMODE.DLL can be linked statically or dynamically.
For a static link, use the BlackIceDEVMODE.lib file. For a dynamic link, load the library with the
LoadLibrary() API function and then use the GetProcAddress() API function to load the required
functions from the BlackIceDEVMODE.DLL.
/* retrieve a function address from the dll */
BOOL InitDll()

164
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

{
HMODULE hDLL;
hDLL = LoadLibrary( DLL_PATH);
if (hDLL)
{
GetOrientation = (_GetOrientation)GetProcAddress(hDLL,szGetOrientation);
if (!GetOrientation)
{
AfxMessageBox(TEXT("Error loading function"),MB_OK,0);
return FALSE;
}
}
/* declare a pointer to the BlackIceDEVMODE structure. The LoadBlackIceDEVMODE()
function will allocate the required amount of memory for the pointer. */
BlackIceDEVMODE* pDevMode;

/* Before using other functions, load the DevMode from the printer with the
LoadBlackIceDEVMODE() function. */
pDevMode = LoadBlackIceDEVMODE(TEXT(Black Ice Color));
if (!pDevMode) {
wsprintf(szMessage, TEXT(
"Error loading the devmode. Error no.: %d ),
BlackIce_GetLastError());
AfxMessageBox(szMessage,MB_OK,0);
return(0);
}
if (!GetOrientation)
{
AfxMessageBox(TEXT("Function not loaded from the DLL"),MB_OK,0);
}
else
{
if( GetOrientation(pDevMode) == 1)
{
// Portrait
}
else
{
if( GetOrientation(pDevMode) == 2)
{
// Landscape
)
else
{
// wrong value;
}
}
}

/* To save the printer settings call SaveBlackIceDEVMODE function. */


bSuccess = SaveBlackIceDEVMODE(TEXT(Black Ice Color), pDevMode);
if (!bSuccess)
{

165
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

wsprintf(szMessage, TEXT("Error saving the devmode. Error no.: %d"),


BlackIce_GetLastError());
AfxMessageBox(szMessage,MB_OK,0);
}

/* At the end you should release the DEVMODE buffer allocated by the
LoadBlackIceDEVMODE() function. You can use the ReleaseBlackIceDEVMODE function */
ReleaseBlackIceDEVMODE(pDevMode);

6.3 DLL Functions

6.3.1

The initialization functions

The BlackIceDEVMODE.DLL contains functions for loading and saving the DEVMODE.
6.3.1.1

BlackIce_GetLastError

Returns the last error code that has occurred in the system. This function helps to debug
programs.
DWORD BlackIce_GetLastError();

Return value - The error code.


6.3.1.2

LoadBlackIceDEVMODE

This function returns a pointer to a BlackIceDEVMODE structure. The settings of the specified
printer can be accessed through the BlackIceDEVMODE structure. The function allocates the
required amount of memory for the structure. The allocated memory must be freed by calling the
ReleaseBlackIceDEVMODE() function.
BlackIceDEVMODE*

LoadBlackIceDEVMODE(LPCTSTR printername);

Input value: printername


- Printer Name (string)
Return value - pointer to the BlackIceDEVMODE structure or NULL if loading the DevMode
has failed.
6.3.1.3

ReleaseBlackIceDEVMODE

This function releases the memory allocated by the LoadBlackIceDEVMODE () function.


void

ReleaseBlackIceDEVMODE(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure

166
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.1.4

SaveBlackIceDEVMODE

Use this function to save the new settings to the printer. The settings are saved to the current user
if possible (Win2000), if not the settings are saved to all users (default).
BOOL

SaveBlackIceDEVMODE(LPTSTR szPrinterName, BlackIceDEVMODE* pDevMode);

Input value: szPrinterName - Printer Name (string).


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the DevMode was successfully updated, otherwise FALSE.
6.3.1.5

SaveDefaultBlackIceDEVMODE

Use this function to save the new settings to the printer.


BOOL

SaveDefaultBlackIceDEVMODE(LPTSTR szPrinterName, BlackIceDEVMODE* pDevMode);

Input value: szPrinterName - Printer Name (string).


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the DevMode was successfully updated, otherwise FALSE.

6.3.2

Change the values of the DEVMODE

The description of the functions from the BlackIceDEVMODE.DLL are organized as the controls
of the Printer Driver User Interface.
The Black Ice Printer Driver User Interface driver has 4 tab controls.
1.
2.
3.
4.

Device Settings
File Formats
Filename Generation
Start Application

167
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

All the values from the user interface can be set programmatically using functions from the
BlackIceDEVMODE.DLL. The following chapter describes all of the functions.

6.3.3
6.3.3.1

The Device Settings tab functions


GetPaperSize

Returns the value of the dmPaperSize member of the DevMode. Represents the value of the
'Paper Size' combo box.
int

GetPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper size (integer number)
168
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.2

SetPaperSize

Sets the dmPaperSize member of the DevMode. Represents the value of the 'Paper Size' combo
box.
BOOL

SetPaperSize(int papersize,BlackIceDEVMODE* pDevMode);

Input value: papersize


Input value: pDevMode
Return value
6.3.3.3

- paper size (integer number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPageWidthInPixels

Returns the value of the PaperWidthInPixels member of the BlackIceDEVMODE. Represents the
value of the 'Paper Width' edit box when PIXEL is selected for units.
DWORD GetPageWidthInPixels(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper width in pixels (DWORD number)
6.3.3.4

SetPaperWidthInPixel

Sets the PaperWidthInPixels member of BlackIceDEVMODE.


BOOL

SetPaperWidthInPixel(DWORD paperwidth,BlackIceDEVMODE* pDevMode);

Input value: paperwidth


Input value: pDevMode
Return value
6.3.3.5

- paper width in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPageHeightInPixels

Returns the value of the PaperHeightInPixels member of the BlackIceDEVMODE. Represents


the value of the 'Paper Height' edit box.
DWORD GetPageHeightInPixels(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper height in pixels (DWORD number)
6.3.3.6

SetPaperHeightInPixel

Sets the PaperHeightInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Height' edit box when PIXEL is selected for the measurement unit.
BOOL

SetPaperHeightInPixel(DWORD paperheight, BlackIceDEVMODE* pDevMode);

Input value: paperheight


Input value: pDevMode
Return value

- paper height in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

169
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.7

GetFaxHeader

Returns the value of the FAXheader member of BlackIceDEVMODE. Represents the value of the
'Fax header' edit box.
DWORD GetFaxHeader(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - fax header in pixels (DWORD number)
6.3.3.8

SetFaxHeader

Sets the FAXheader member of the BlackIceDEVMODE. Sets the value of the 'Fax header' edit
box.
BOOL

SetFaxHeader(DWORD faxheader, BlackIceDEVMODE* pDevMode);

Input value: faxheader


Input value: pDevMode
Return value
6.3.3.9

- fax header in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsFaxOutputEnabled

Returns the value of the BLF_FAXOUTPUT flag. Represents the value of the Create Faxable
Image checkbox.
BOOL

IsFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Fax Output is used, otherwise FALSE
6.3.3.10

EnableFaxOutput

Sets the BLF_FAXOUTPUT flag. Sets the value of the Create Faxable Image checkbox.
BOOL

EnableFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.11

DisableFaxOutput

Sets the BLF_FAXOUTPUT flag 0 (false). Sets the value of the Create Faxable Image
checkbox UNCHECKED.
BOOL

DisableFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
170
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.12

IsAdvancedPaperSizeEnabled

Returns the value of the BLF_ADVANCEDPAPERSIZE flag. Represents the value of the
Advanced Paper size checkbox.
BOOL

IsAdvancedPaperSizeEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Advanced Paper size is used, otherwise FALSE
6.3.3.13

EnableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag. Sets the value of the Advanced Paper size
checkbox.
BOOL

EnableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.14

DisableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag to 0 (false). Sets the value of the Advanced Paper
size checkbox UNCHECKED.
BOOL

DisableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.3.15

GetOrientation

Returns the value of the dmOrientation member of the DevMode. Represents the value of the
'Orientation' radio button.
int

GetOrientation(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Orientation: if the value is 1 the orientation is Portrait, if the value is 2: the
orientation is Landscape
6.3.3.16

SetOrientation

Sets the dmOrientation member of the DevMode. Sets the value of the 'Orientation' radio button.
BOOL

SetOrientation(int Orientation, BlackIceDEVMODE* pDevMode);

Input value: Orientation


Input value: pDevMode
Return value

- Orientation (integer number) 1:Portrait, 2:Landscape.


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

171
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.17

IsRotatePaperEnabled

Returns the value of the BLF_ROTATEPAPER flag. Represents the value of the Rotate
Landscape image to Portrait checkbox.
BOOL

IsRotatePaperEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Rotate Landscape image to Portrait is used, otherwise FALSE
6.3.3.18

EnableRotatePaper

Sets the BLF_ROTATEPAPER flag. Sets the value of the Rotate Landscape image to Portrait
checkbox.
BOOL

EnableRotatePaper(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.19

DisableRotatePaper

Sets the BLF_ROTATEPAPER flag to 0 (false). Sets the value of the Rotate Landscape image
to Portrait checkbox UNCHECKED.
BOOL

DisableRotatePaper(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.3.20

GetXDPI

Returns the value of the dmPrintQuality member of the DevMode. Represents the value of the
'Horizontal Resolution' edit box.
int

GetXDPI(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Horizontal Resolution (integer number)
6.3.3.21

SetXDPI

Sets the dmPrintQuality member of the DevMode. Sets the value of the 'Horizontal Resolution'
edit box.
BOOL

SetXDPI(int xdpi, BlackIceDEVMODE* pDevMode);

Input value: xdpi


Input value: pDevMode
Return value

- Horizontal Resolution (integer number)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

172
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.22

GetYDPI

Returns the value of the dmYResolutionmember of the DevMode. Represents the value of the
'Vertical Resolution' edit box.
int

GetYDPI(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Vertical Resolution (integer number)
6.3.3.23

SetYDPI

Sets the dmYResolution member of the DevMode. Sets the value of the 'Vertical Resolution' edit
box.
BOOL

SetYDPI(int ydpi, BlackIceDEVMODE* pDevMode);

Input value: ydpi


Input value: pDevMode
Return value
6.3.3.24

- Vertical Resolution (integer number)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsFaxLowOutputEnabled

Returns the value of the BLF_LOWFAXRES flag. If true, the low fax resolution (204x98) is
selected, if false the Fine Fax resolution (204x196) is selected when the Create Faxable Image
option is selected.
BOOL

IsLowFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Low Fax Output is used, otherwise FALSE
6.3.3.25

EnableLowFaxOutput

Sets the BLF_ LOWFAXRES flag. Sets the value of the fax resolution when the Create Faxable
Image checkbox is selected.
BOOL

EnableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.26

DisableLowFaxOutput

Sets the BLF_ LOWFAXRES flag 0 (false). Sets the value of the fax resolution when the Create
Faxable Image checkbox is selected.
BOOL

DisableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure.

173
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

174
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4

6.3.4.1

The File Formats Tab functions

GetFileFormat

Returns the value of the Format member of the BlackIceDEVMODE. Represents the value of the
'File Format' combo box.
DWORD GetFileFormat(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Format (DWORD number)
175
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.2

SetFileFormat

Sets the Format member of the BlackIceDEVMODE. Sets the value of the 'File Format' combo
box.
BOOL

SetFileFormat(DWORD fileformat, BlackIceDEVMODE* pDevMode);

Input value: fileformat - File Format (DWORD number).


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value
- TRUE if the member was successfully set, otherwise FALSE.
6.3.4.3

GetLossRatio

Returns the value of the LossRatio member of the BlackIceDEVMODE. Represents the value of
the 'JPEG loss ratio' slider.
DWORD GetLossRatio(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - JPEG loss ratio (DWORD number)
6.3.4.4

SetLossRatio

Sets the LossRatio member of the BlackIceDEVMODE. Sets the value of the 'JPEG loss ratio'
slider.
BOOL

SetLossRatio(DWORD lossratio, BlackIceDEVMODE* pDevMode);

Input value: lossratio


Input value: pDevMode
Return value
6.3.4.5

- JPEG loss ratio (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetColorDepth

Returns the value of the ColorMode member of the BlackIceDEVMODE. Represents the value of
the 'Color Depth' radio button.
DWORD GetColorDepth(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Color Depth (DWORD number)
6.3.4.6

SetColorDepth

Sets the ColorMode member of the BlackIceDEVMODE. Sets the value of the 'Color Depth'
radio button.
BOOL

SetColorDepth(DWORD colordepth, BlackIceDEVMODE* pDevMode);

Input value: colordepth


Input value: pDevMode

- Color Depth (DWORD number).


- pointer to the BlackIceDEVMODE structure.

176
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value
6.3.4.7

- TRUE if the member was successfully set, otherwise FALSE.


IsMultipageImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
BOOL

IsMultipageImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Create Multi-page Image is used, otherwise FALSE
6.3.4.8

EnableMultipageImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multi-page Image checkbox.
BOOL

EnableMultipageImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.9

DisableMultipageImage

Clears the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox
UNCHECKED.
BOOL

DisableMultipageImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.10

IsAppendImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create Multipage Image checkbox.
BOOL

IsAppendImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Create Multi-page Image is used, otherwise FALSE
6.3.4.11

EnableAppendImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multi-page Image checkbox.
BOOL

EnableAppendImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.

177
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.12

DisableAppendImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multi-page Image
checkbox UNCHECKED.
BOOL

DisableAppendImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.13

IsDisableImageEnabled

Returns the value of the BLF_DISABLEIMAGE flag. Represents the value of the 'Disable Image'
checkbox.
BOOL

IsDisableImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Disable Image is used, otherwise FALSE
6.3.4.14

EnableDisableImage

Sets the BLF_DISABLEIMAGE flag. Sets the value of the 'Disable Image' checkbox.
BOOL

EnableDisableImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.15

DisableDisableImage

Sets the BLF_DISABLEIMAGE flag to 0 (false). Sets the value of the 'Disable Image' checkbox
UNCHECKED.
BOOL

DisableDisableImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.16

IsEasternCharSupportEnabled

Returns the value of the BLF_GLYPHSUPPORT flag. Represents the value of the 'Eastern
Character Support' checkbox.
BOOL

IsEasternCharSupportEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Eastern Character Support is used, otherwise FALSE

178
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.17

EnableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag. Sets the value of the 'Eastern Character Support'
checkbox.
BOOL

EnableEasternCharSupport(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.18

DisableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag to 0 (false). Sets the value of the 'Eastern Character
Support' checkbox UNCHECKED.
BOOL

DisableEasternCharSupport(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.19

IsWriteTextEnabled

Returns the value of the BLF_WRITETEXT flag. Represents the value of the 'Write Text File'
checkbox.
BOOL

IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Write Text File is used, otherwise FALSE
6.3.4.20

EnableWriteText

Sets the BLF_WRITETEXT flag. Sets the value of the 'Write Text File' checkbox.
BOOL

EnableWriteText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.21

DisableWriteText

Sets the BLF_WRITETEXT flag to 0 (false). Sets the value of the 'Write Text File' checkbox
UNCHECKED.
BOOL

DisableWriteText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

179
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.22

IsMailMergeEnabled

Returns the value of the BLF_MAILMERGE flag. Represents the value of the Mail Merge
checkbox.
BOOL

IsMailMergeEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if WriteText File is used, otherwise FALSE
6.3.4.23

EnableMailMerge

Sets the BLF_MAILMERGE flag. Sets the value of the Mail Merge checkbox.
BOOL

EnableMailMerge(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.24

DisableMailMerge

Sets the BLF_MAILMERGE flag to 0 (false). Sets the value of the Mail Merge checkbox
UNCHECKED.
BOOL

DisableMailMerge(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.25

IsAdvancedTextEnabled

Returns the value of the BLF_ADVANCEDTEXT flag. Represents the value of the 'Save
position and style' checkbox.
BOOL

IsAdvancedTextEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Save position and style is used, otherwise FALSE
6.3.4.26

EnableAdvancedText

Sets the BLF_ADVANCEDTEXT flag. Sets the value of the 'Save position and style' checkbox.
BOOL

EnableAdvancedText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.27

DisableAdvancedText

Sets the BLF_ADVANCEDTEXT flag to 0 (false). Sets the value of the 'Save position and style'
checkbox UNCHECKED.
180
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BOOL

DisableAdvancedText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.28

IsInternetTiffFormatEnabled

Returns the value of the BLF_INTERNETTIFF flag. Represents the value of the Internet TIFF
format checkbox.
BOOL

IsInternetTiffFormatEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Internet TIFF format is used, otherwise FALSE
6.3.4.29

EnableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag. Sets the value of the Internet TIFF format checkbox.
BOOL

EnableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.30

DisableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag to 0 (false). Sets the value of the Internet TIFF format
checkbox UNCHECKED.
BOOL

DisableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.31

IsReverseBitOrderEnabled

Returns the value of the BLF_REVERSEFILLORDER flag. Represents the value of the Reverse
Bit Order in TIFF checkbox.
BOOL

IsReverseBitOrderEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Reverse Bit Order in TIFF is used, otherwise FALSE
6.3.4.32

EnableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag. Sets the value of the Reverse Bit Order in TIFF
checkbox.
BOOL

EnableReverseBitOrder(BlackIceDEVMODE* pDevMode);

181
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.33

DisableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag to 0 (false). Sets the value of the Reverse Bit Order
in TIFF checkbox UNCHECKED.
BOOL

DisableReverseBitOrder(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.34

IsPageNumberingEnabled

Returns the value of the BLF_PAGENUMBERING flag. Represents the value of the Add Page
Numbering Tag checkbox.
BOOL

IsPageNumberingEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Add Page Numbering Tag is used, otherwise FALSE
6.3.4.35

EnablePageNumbering

Sets the BLF_PAGENUMBERING flag. Sets the value of the Add Page Numbering Tag
checkbox.
BOOL

EnablePageNumbering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.36

DisablePageNumbering

Sets the BLF_PAGENUMBERING flag to 0 (false). Sets the value of the Add Page Numbering
Tag checkbox UNCHECKED.
BOOL

DisablePageNumbering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.37

GetDithering

Returns the value of the Dithering member of the BlackIceDEVMODE. Represents the value of
the 'Photo Quality' radio button.
DWORD GetDithering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Photo Quality (DWORD number)
182
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.38

SetDithering

Sets the Dithering member of the BlackIceDEVMODE. Sets the value of the 'Photo Quality' radio
button.
BOOL

SetDithering(DWORD dithering, BlackIceDEVMODE* pDevMode);

Input value: dithering


Input value: pDevMode
Return value
6.3.4.39

- Photo Quality (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetBrightness

Returns the value of the Brightness member of the BlackIceDEVMODE. Represents the value of
the 'Intensity' slider.
DWORD GetBrightness(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Intensity (DWORD number)
6.3.4.40

SetBrightness

Sets the Brightness member of the BlackIceDEVMODE. Sets the value of the 'Intensity' slider.
BOOL

SetBrightness(DWORD brightness, BlackIceDEVMODE* pDevMode);

Input value: brightness


Input value: pDevMode
Return value

- Intensity (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

183
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5

6.3.5.1

The Filename Generation tab functions

GetFileGenerationMethod

Returns the value of the FileNameGenerationFlags member of the BlackIceDEVMODE.


Represents the value of the 'File Name Generation Method' combo box.
DWORD GetFileGenerationMethod(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure

184
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - File Name Generation Method (DWORD number)


6.3.5.2

SetFileGenerationMethod

Sets the FileNameGenerationFlags member of the BlackIceDEVMODE. Sets the value of the 'File
Name Generation Method' combo box.
BOOL

SetFileGenerationMethod(DWORD fnamegen, BlackIceDEVMODE* pDevMode);

Input value: fnamegen


Input value: pDevMode
Return value
6.3.5.3

- File Name Generation Method (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetFileNamePrefix

Returns the value of the FileNamePrefix member of the BlackIceDEVMODE. Represents the
value of the 'File Name Prefix' edit box.
LPCTSTR

GetFileNamePrefix(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Name Prefix (string)
6.3.5.4

SetFileNamePrefix

Sets the FileNamePrefix member of the BlackIceDEVMODE. Sets the value of the 'File Name
Prefix' edit box.
BOOL

SetFileNamePrefix(LPCTSTR fnamepref, BlackIceDEVMODE* pDevMode);

Input value: fnamepref


Input value: pDevMode
Return value
6.3.5.5

- File Name Prefix (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetFileExtension

Returns the value of the FileExtension member of the BlackIceDEVMODE. Represents the value
of the 'File Name Extension' edit box.
LPCTSTR

GetFileExtension(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Name Extension (string)
6.3.5.6

SetFileExtension

Sets the FileExtension member of the BlackIceDEVMODE. Sets the value of the 'File Name
Extension' edit box.
BOOL

SetFileExtension(LPCTSTR fnameext, BlackIceDEVMODE* pDevMode);

Input value: fnameext

- File Name Extension (string)

185
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pDevMode


Return value
6.3.5.7

- pointer to the BlackIceDEVMODE structure.


- TRUE if the member was successfully set, otherwise FALSE.
IsCustomExtensionEnabled

Returns the value of the BLF_CUSTOMEXT flag. Represents the value of the 'Use Custom
Extension' checkbox.
BOOL

IsCustomExtensionEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Use Custom Extension is used, otherwise FALSE
6.3.5.8

EnableCustomExtension

Sets the BLF_CUSTOMEXT flag. Sets the value of the 'Use Custom Extension' checkbox.
BOOL

EnableCustomExtension(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.9

DisableCustomExtension

Sets the BLF_CUSTOMEXT flag 0 (false). Sets the value of the 'Use Custom Extension'
checkbox UNCHECKED.
BOOL

DisableCustomExtension(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.5.10

GetINIFileName

Returns the value of the INIFileName member of the BlackIceDEVMODE. Represents the value
of the 'INI File Name'/'Registry path'/etc. edit box.
LPCTSTR

GetINIFileName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - INI File Name/Registry Path/etc. (string)
6.3.5.11

SetINIFileName

Sets the INIFileName member of the BlackIceDEVMODE. Sets the value of the 'INI File
Name'/'Registry path' edit box.
BOOL

SetINIFileName(LPCTSTR inifname, BlackIceDEVMODE* pDevMode);

Input value: inifname


Input value: pDevMode
Return value

- INI File Name/Registry Path (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

186
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5.12

GetImageFileName

Returns the value of the FileImageName member of the BlackIceDEVMODE. Represents the
value of the 'File Image Name' edit box if the Filename Generation method is Exact filename.
LPCTSTR

GetImageFileName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Image Filename (string)
6.3.5.13

SetImageFileName

Sets the FileImageName member of the BlackIceDEVMODE. Sets the value of the 'File Image
Name' edit box if the Filename Generation method is Exact filename.
BOOL

SetImageFileName(LPCTSTR filename, BlackIceDEVMODE* pDevMode);

Input value: filename


Input value: pDevMode
Return value
6.3.5.14

- Exact Filename (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsKeepExistingFilesEnabled

Returns the value of the BLF_KEEPFILES flag. Represents the value of the 'Keep existing files'
checkbox.
BOOL

IsKeepExistingFilesEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Keep existing files is used, otherwise FALSE
6.3.5.15

EnableKeepExistingFiles

Sets the BLF_KEEPFILES flag. Sets the value of the 'Keep existing files' checkbox.
BOOL

EnableKeepExistingFiles(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.16

DisableKeepExistingFiles

Sets the BLF_KEEPFILES flag 0 (false). Sets the value of the 'Keep existing files' checkbox
UNCHECKED.
BOOL

DisableKeepExistingFiles(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

187
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5.17

GetOutputDirectory

Returns the value of the OutputDirectory member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
LPCTSTR

GetOutputDirectory(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Output Directory (string)
6.3.5.18

SetOutputDirectory

Sets the OutputDirectory member of the BlackIceDEVMODE. Sets the value of the 'Output
Directory' edit box.
BOOL

SetOutputDirectory(LPCTSTR outputdir, BlackIceDEVMODE* pDevMode);

Input value: outputdir


Input value: pDevMode
Return value
6.3.5.19

- Output Directory (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsGroupFileDisabled

Returns the value of the BLF_DISABLEGROUPFILE flag. Represents the value of the 'Disable
Group File' checkbox.
BOOL

IsGroupFileDisabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Disable Group File is used, otherwise FALSE
6.3.5.20

DisableGroupFile

Sets the BLF_DISABLEGROUPFILE flag. Sets the value of the 'Disable Group File' checkbox.
BOOL

DisableGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.21

EnableGroupFile

Sets the BLF_DISABLEGROUPFILE flag 0 (false). Sets the value of the 'Disable Group File'
checkbox UNCHECKED.
BOOL

EnableGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

188
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5.22

IsDeleteGroupFileEnabled

Returns the value of the BLF_DELETEGROUPFILE flag. Represents the value of the 'Delete
Group File After Printing' checkbox.
BOOL

IsDeleteGroupFileEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Delete Group File After Printing is used, otherwise FALSE
6.3.5.23

EnableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag. Sets the value of the 'Delete Group File After Printing'
checkbox.
BOOL

EnableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.24

DisableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag 0 (false). Sets the value of the 'Delete Group File After
Printing' checkbox UNCHECKED.
BOOL

DisableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

189
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6

6.3.6.1

The Start Application tab functions

IsStartApplicationEnabled

Returns the value of the BLF_LAUNCHAPP flag. Represents the value of the 'Enable Start
Application' checkbox.
BOOL

IsStartApplicationEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Enable Start Application is used, otherwise FALSE

190
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.2

EnableStartApplication

Sets the BLF_LAUNCHAPP flag. Sets the value of the 'Enable Start Application' checkbox.
BOOL

EnableStartApplication(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.3

DisableStartApplication

Sets the BLF_LAUNCHAPP flag to 0 (false). Sets the value of the 'Enable Start Application'
checkbox UNCHECKED.
BOOL

DisableStartApplication(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.4

GetApplicationPath

Returns the value of the ApplicationPath member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
LPCTSTR

GetApplicationPath(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Application Path (string)
6.3.6.5

SetApplicationPath

Sets the ApplicationPath member of the BlackIceDEVMODE. Sets the value of the 'Application
Path' edit box.
BOOL

SetApplicationPath(LPCTSTR applicationpath, BlackIceDEVMODE* pDevMode);

Input value: applicationpath - Application Path (string)


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value
- TRUE if the member was successfully set, otherwise FALSE.
6.3.6.6

IsStartBeforePrint

Returns the value of the BLF_STARTBEFOREPRINT flag. Represents the value of the 'Start
Before Printing' radio button.
BOOL

IsStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Start Before Printing is used, otherwise FALSE (it means that the
printer driver will start the application after the printing was finished)
191
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.7

EnableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag. Sets the value of the 'Start Before Printing' radio
button.
BOOL

EnableStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.8

DisableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag to 0 (false). Sets the value of the 'Start After Printing'
radio button CHECKED.
BOOL

DisableStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.9

IsPassParametersEnabled

Returns the value of the BLF_PASSPARAMETERS flag. Represents the value of the 'Pass
Parameters' checkbox.
BOOL

IsPassParametersEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Pass Parameters is used, otherwise FALSE
6.3.6.10

EnablePassParameters

Sets the BLF_PASSPARAMETERS flag. Sets the value of the 'Pass Parameters' checkbox.
BOOL

EnablePassParameters(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.11

DisablePassParameters

Sets the BLF_PASSPARAMETERS flag to 0 (false). Sets the value of the 'Pass Parameters'
checkbox UNCHECKED.
BOOL

DisablePassParameters(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

192
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.12

IsStartNormal

Returns the value of the BLF_STARTNORMAL flag. Represents the value of the 'Normal' radio
button.
BOOL

IsStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Start Application In Normal Window is used, otherwise FALSE
6.3.6.13

EnableStartNormal

Sets the BLF_STARTNORMAL flag. Sets the value of the 'Normal' radio button. The driver will
start the application In a Normal window
BOOL

EnableStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.14

DisableStartNormal

Sets the BLF_STARTNORMAL flag to 0 (false). Sets the value of the 'Normal' radio button
UNCHECKED.
BOOL

DisableStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.15

IsStartMinimized

Returns the value of the BLF_STARTMINIMIZED flag. Represents the value of the 'Minimized'
radio button.
BOOL

IsStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Start Application In Minimized Window is used, otherwise FALSE
6.3.6.16

EnableStartMinimized

Sets the BLF_STARTMINIMIZED flag. Sets the value of the 'Minimized' radio button. The
driver will start the application In a Minimized window.
BOOL

EnableStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.

193
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.17

DisableStartMinimized

Sets the BLF_STARTMINIMIZED flag to 0 (false). Sets the value of the 'Minimized' radio
button UNCHECKED.
BOOL

DisableStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.18

IsStartHidden

Returns the value of the BLF_STARTHIDDEN flag. Represents the value of the 'Hidden' radio
button.
BOOL

IsStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Start Application Hidden is used, otherwise FALSE
6.3.6.19

EnableStartHidden

Sets the BLF_STARTHIDDEN flag. Sets the value of the 'Hidden' radio button. The driver will
start the application Hidden
BOOL

EnableStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.20

DisableStartHidden

Sets the BLF_STARTHIDDEN flag to 0 (false). Sets the value of the 'Hidden' radio button
UNCHECKED.
BOOL

DisableStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.21

IsMessagingInterfaceEnabled

Returns the value of the BLF_SENDMESSAGE flag. Represents the value of the 'Disable the
Messaging Interface' checkbox.
BOOL

IsMessagingInterfaceEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Messaging Interface is used (the check box is unchecked), otherwise
FALSE (Messaging Interface is not used and the check box is checked)
194
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.22

EnableMessagingInterface

Sets the BLF_SENDMESSAGE flag. Sets the value of the 'Disable the Messaging Interface'
checkbox UNCHECKED. The driver will use the Messaging Interface and will broadcast
messages at every startdoc, startpage, endpage and enddoc.
BOOL

EnableMessagingInterface(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.23

DisableMessagingInterface

Sets the BLF_SENDMESSAGE flag to 0 (false). Sets the value of the 'Disable the Messaging
Interface' checkbox. The driver doesnt use the Messaging Interface.
BOOL

DisableMessagingInterface(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

6.3.7

Miscellaneous functions

6.3.7.1

GetInterfaceName

Returns the value of the InterfaceName member of the BlackIceDEVMODE. The InterfaceName
member stores the name of the messaging interface.
LPCTSTR

InterfaceName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Interface Name (string)
6.3.7.2

SetInterfaceName

Sets the InterfaceName member of the BlackIceDEVMODE. The InterfaceName member stores
the name of the messaging interface.
BOOL

SetInterfaceName(LPCTSTR intfname, BlackIceDEVMODE* pDevMode);

Input value: intfname


Input value: pDevMode
Return value
6.3.7.3

- Interface Name (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPaperLength

Returns the value of the dmPaperLength member of the DevMode. (DM.dmPaperLength member
of BlackIceDEVMODE ) This value represents the 'Actual paper length'.
195
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

int

GetPaperLength(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Actual paper length (integer number)
6.3.7.4

SetPaperLength

Sets the dmPaperLength member of the DevMode. (DM.dmPaperLength member of the


BlackIceDEVMODE ) This value represents the 'Actual paper length'.
BOOL

SetPaperLength(int paperlength, BlackIceDEVMODE* pDevMode);

Input value: paperlength


Input value: pDevMode
Return value
6.3.7.5

- Actual paper length (integer number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsTIFFDllEnabled

Returns the value of the BLF_ENABLETIFFDLL flag. If set the using of the TIFF32.DLL is
enabled. Can be set only programmatically.
BOOL

IsTiffDllEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the TIFF32.DLL is enabled, otherwise FALSE
6.3.7.6

EnableTIFFDll

Sets the BLF_ENABLETIFFDLL flag. If this flag is set, the printer driver will load and use the
TIFF32.DLL. This flag can only be set programmatically.
BOOL

EnableTiffDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.7.7

DisableTIFFDll

Sets the BLF_ENABLETIFFDLL flag to 0 (false). If this flag is set, the printer driver will load
and use the TIFF32.DLL. This flag can only be set programmatically.
BOOL

DisableTiffDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.7.8

IsJPEGDllEnabled

Returns the value of the BLF_ENABLEJPEGDLL flag. If this flag is set, the printer driver will
load and use the JPEG32.DLL. This flag can only be set programmatically.
BOOL

IsJpegDllEnabled(BlackIceDEVMODE* pDevMode);

196
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the JPEG32.DLL is enabled, otherwise FALSE
6.3.7.9

EnableJPEGDll

Sets the BLF_ENABLEJPEGDLL flag. If this flag is set, the printer driver will load and use the
JPEG32.DLL. This flag can only be set programmatically.
BOOL

EnableJpegDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.7.10

DisableJPEGDll

Sets the BLF_ENABLEJPEGDLL flag 0 (false). If this flag is set, the printer driver will load and
use the JPEG32.DLL. This flag can only be set programmatically.
BOOL

DisableJpegDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.7.11

GetTIFFDLLName

Returns the value of the TIFFDLLName member of the BlackIceDEVMODE. The


TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL encodes the
TIFF files. The file is needed for TIFF output.
LPCTSTR

GetTIFFDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TIFFDLLName (string)
6.3.7.12

SetTIFFDLLName

Sets the TIFFDLLName member of the BlackIceDEVMODE. The TIFFDLLName member


stores the name and path of the TIFF32.DLL. This DLL encodes the TIFF files. The file is needed
for TIFF output.
BOOL

SetTIFFDLLName(LPCTSTR stringtiffdll, BlackIceDEVMODE* pDevMode);

Input value: stringtiffdll


Input value: pDevMode
Return value

- TIFFDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

197
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.7.13

GetJPEGDLLName

Returns the value of the JPEGDLLName member of the BlackIceDEVMODE. The


JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL encodes the
Jpeg files. The file is needed for Jpeg output.
LPCTSTR

GetJPEGDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - JPEGDLLName (string)
6.3.7.14

SetJPEGDLLName

Sets the JPEGDLLName member of the BlackIceDEVMODE. The JPEGDLLName member


stores the name and path of the JPEG32.DLL. This DLL encodes the Jpeg files. The file is
needed for Jpeg output.
BOOL

SetJPEGDLLName(LPCTSTR stringjpegdll, BlackIceDEVMODE* pDevMode);

Input value: stringjpegdll


Input value: pDevMode
Return value
6.3.7.15

- JPEGDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetResourceDLLName

Returns the value of the ResourceDLLName member of the BlackIceDEVMODE. The


ResourceDLLName member stores the name and path of the driver resource DLL
LPCTSTR

GetResourceDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - ResourceDLLName (string)
6.3.7.16

SetResourceDLLName

Sets the ResourceDLLName member of the BlackIceDEVMODE. The ResourceDLLName


member stores the name and path of the driver resource DLL
BOOL

SetResourceDLLName(LPCTSTR stringresdll, BlackIceDEVMODE* pDevMode);

Input value: stringresdll


Input value: pDevMode
Return value
6.3.7.17

- ResourceDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetBitsPerPixel

Returns the value of the color depth in pixels.


If the Color Depth is BITS_1, the return value is 1
If the Color Depth is BITS_8, the return value is 8
If the Color Depth is BITS_8GRAY, the return value is 8
If the Color Depth is BITS_24, return value is 24
198
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DWORD

GetResourceDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Color depth in pixels (DWORD number)

7 C++ Sample - how to modify the printer


settings programmatically
This sample demonstrates how to use the BlackIceDEVMODE. DLL functions. The sample
shows how to programmatically change the printer settings.

The PrinterSettings program allows users to change the settings of the Black Ice printers. It is a
dialog based MFC application.
There are five buttons in the form:
OK:
saves the settings and exits the program.
Cancel:
exits the program without changing the printer settings
Apply:
saves the settings without exiting. You can continue modify the controls.
199
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Open printer:

closes the currently opened printer and tries to open the printer specified in
the Printer Name edit box.

6.4 How the PrinterSettings program works:


The InitDll() function is called to load the BlackIceDEVMODE.dll functions. Next, the
OpenAndFill() function is called..
The OpenAndFill() function opens the printer and fills the controls with the printer settings
values (values from the retrieved DEVMODE structure).
If all of value are correct, the new values of the DEVMODE are saved to the printer using the
SaveBlackIceDEVMODE( ) function.

8 The BlackIceDEVMODE.OCX
The BlackceDEVMODE.OCX is distributed in the Resource Toolkit.

6.5 Description of the OCX


This is an Active X Control for Visual Basic, Delphi or any development tool that can use an
OCX control.
The BlackIceDEVMODE.OCX contains methods that can be used to modify the DevMode
structure. You can reach the printer DevMode through the methods of the
BlackIceDEVMODE.OCX. You can open the DevMode, read and update the member values of
the DevMode structure and you can save changes to the selected Black Ice printer.
NOTE:
The BlackIceDEVMODE.OCX calls functions from the BlackIceDEVMODE.DLL, therefore the
BlackIceDEVMODE.DLL has to be in the directory of the OCX or in the system path. The
BlackIceDEVMODE .OCX will not work without the BlackIceDEVMODE.DLL.

6.6 How to use the BlackIceDEVMODE.OCX


The BlackIceDEVMODE.OCX can be used like any other standard OCX control.
First, load the printer settings using the LoadBlackIceDEVMODE() method.
Dim pBlackIceDEVMODE As Long 'pointer to the devmode.
pBlackIceDEVMODE = Form1.BlackIceDEVMODE1.LoadBlackIceDEVMODE(PrinterName)
If pBlackIceDEVMODE = 0 Then
MsgBox "Cannot open '" & PrinterName & "' Printer driver", _
vbExclamation + vbOKOnly
End
End If

In this sample you can see how to read or modify the page orientation of the printer
200
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

'read the Orientation


If Form1.BlackIceDEVMODE1.GetOrientation(pBlackIceDEVMODE) = 1 Then
'Portrait
. . .
Else
'Landscape
. . .
End If
'set to Portrait
bSuccess = Form1.BlackIceDEVMODE1.SetOrientation(1, pBlackIceDEVMODE)
If (bSuccess = False) Then
MsgBox "Error in calling Active X function: 'SetOrientation'"
End If

To save the settings, call the SaveBlackIceDEVMODE function. The return value specifies
whether the changes were successfully saved or not.
bSuccess = Form1.BlackIceDEVMODE1.SaveBlackIceDEVMODE(PrinterName, pBlackIceDEVMODE)
If (bSuccess = False) Then
MsgBox ("Error saving the devmode")
Exit Sub
End If

When you are finished you have to release the memory allocated by the
LoadBlackIceDEVMODE method. You can use the ReleaseBlackIceDEVMODE method:
Call Form1.BlackIceDEVMODE1.ReleaseBlackIceDEVMODE(pBlackIceDEVMODE)

6.7 Methods of the BlackIceDEVMODE.OCX

6.7.1

The initialization functions

To set the Printer Driver settings you have to set the value of the printer DEVMODE. The
BlackIceDEVMODE.OCX contains methods to load, save and modify the printer settings.
6.7.1.1

LoadBlackIceDEVMODE

This method returns a long value that represents the BalckIceDEVMODE handle. This handle is
used by the rest of the methods to read and modify the settings of the printer.
The LoadBalckIceDEVMODE method allocates the memory space required for the DevMode
structure ( for the printer settings).
NOTE: The memory must be freed using the ReleaseBlackIceDEVMODE method.
LoadBlackIceDEVMODE(PrinterName As String) As Long

Input value: PrinterName


Return value

- Printer Name
- handle to the BlackIceDEVMODE

201
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

If the return value is 0, the DevMode loading failed.


6.7.1.2

ReleaseBlackIceDEVMODE

This method frees the memory allocated for the printer settings represented by the
BlackIceDEVMODE handle.
ReleaseBlackIceDEVMODE(pBlackIceDEVMODE) As Long

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE


6.7.1.3

SaveBlackIceDEVMODE

This method will save the new printer settings. The printer devmode is saved for the current user
if possible(Win2000), if not to every user (default on NT, XP).
SaveBlackIceDEVMODE(szPrinterName As String, pBlackIceDEVMODE As Long) As Boolean

Input value: szPrinterName


- Printer Name.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE structure.
Return value
- TRUE if the DevMode was successfully updated,
otherwise FALSE.
6.7.1.4

SaveDefaultBlackIceDEVMODE

This method will save the new printer settings.


SaveDefaultBlackIceDEVMODE(szPrinterName As String, pBlackIceDEVMODE As Long) As
Boolean

Input value: szPrinterName


- Printer Name.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE structure.
Return value
- TRUE if the DevMode was successfully updated,
otherwise FALSE.

6.7.2

Changing the printer settings

The methods from the BlackIceDEVMODE.OCX are organized as the controls of the Printer
Driver User Interface. The Black Ice Printer Driver User Interface driver has 4 tab controls.
1. Device Settings
2. File Formats
3. Filename Generation
4. Start Application

202
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

All of the values from the user interface can be set programmatically using the functions from the
BlackIceDEVMODE.OCX.

6.7.3
6.7.3.1

The Device Settings methods


GetPaperSize

Returns the value of the dmPaperSize member of the DevMode. Represents the value of the
'Paper Size' combo box.
GetPaperSize(pBlackIceDEVMODE As Long) As Integer

Input value

- handle to the BlackIceDEVMODE

203
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value
6.7.3.2

- paper size (integer number)


SetPaperSize

Sets the dmPaperSize member of the DevMode. Sets the value of the 'Paper Size' combo box.
SetPaperSize(papersize As Integer, pBlackIceDEVMODE As Long ) As Boolean

Input value: papersize


- paper size
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.3

GetPageWidthInPixels

Returns the value of the PaperWidthInPixels member of the BlackIceDEVMODE. Represents the
value of the 'Paper Width' edit box.
GetPageWidthInPixels(pBlackIceDEVMODE As Long) As Long

Input value
Return value
6.7.3.4

- handle to the BlackIceDEVMODE


- paper width in pixels ( As a Long number)
SetPaperWidthInPixel

Sets the PaperWidthInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Width' edit box.
SetPaperWidthInPixel(paperwidth As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: paperwidth


Input value: pBlackIceDEVMODE
Return value
6.7.3.5

- paper width in pixels.


- handle to the BlackIceDEVMODE.
- TRUE if the member was successfully set,
otherwise FALSE.

GetPageHeightInPixels

Returns the value of the PaperHeightInPixels member of the BlackIceDEVMODE. Represents


the value of the 'Paper Height' edit box.
GetPageHeightInPixels(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - paper height in pixels
6.7.3.6

SetPaperHeightInPixel

Sets the PaperHeightInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Height' edit box.
SetPaperHeightInPixel(paperheight As Long, pBlackIceDEVMODE As Long) As Boolean

204
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: paperheight


- paper height in pixels.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.7

GetFaxHeader

Returns the value of the FAXheader member of the BlackIceDEVMODE. Represents the value of
the 'Fax header' edit box.
GetFaxHeader(pBlackIceDEVMODE As Long) As Long

Input value
Return value
6.7.3.8

- handle to the BlackIceDEVMODE


- fax header in pixels
SetFaxHeader

Sets the FAXheader member of the BlackIceDEVMODE. Sets the value of the 'Fax header' edit
box.
Boolean SetFaxHeader( As Long faxheader, pBlackIceDEVMODE As Long) As

Input value: faxheader


- fax header in pixels ( As a Long number).
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.9

IsFaxOutputEnabled

Returns the value of the BLF_FAXOUTPUT flag. Represents the value of the Create Faxable
Image checkbox.
IsFaxOutputEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
Return value
6.7.3.10

- handle to the BlackIceDEVMODE


- TRUE if FaxOutput is used, otherwise FALSE
EnableFaxOutput

Sets the BLF_FAXOUTPUT flag. Sets the value of the Create Faxable Image checkbox.
EnableFaxOutput(pBlackIceDEVMODE As Long) As Boolean

Input value
Return value
6.7.3.11

- handle to the BlackIceDEVMODE.


- TRUE if the flag was successfully set, otherwise FALSE.
DisableFaxOutput

Sets the BLF_FAXOUTPUT flag to 0 (false). Sets the value of the Create Faxable Image
checkbox UNCHECKED.
205
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DisableFaxOutput(pBlackIceDEVMODE As Long) As Boolean

Input value
Return value
6.7.3.12

- handle to the BlackIceDEVMODE.


- TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
IsAdvancedPaperSizeEnabled

Returns the value of the BLF_ADVANCEDPAPERSIZE flag. Represents the value of the
Advanced Paper size checkbox.
IsAdvancedPaperSizeEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Advanced Paper size is used, otherwise FALSE
6.7.3.13

EnableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag. Sets the value of the Advanced Paper size
checkbox.
EnableAdvancedPaperSize(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.3.14

DisableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag 0 (false). Sets the value of the Advanced
Papersize checkbox UNCHECKED.
DisableAdvancedPaperSize(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.3.15

GetOrientation

Returns the value of the dmOrientation member of the DevMode. Represents the value of the
'Orientation' radio button.
GetOrientation(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Orientation: If the value is 1 the orientation is Portrait. If the value is 2 the
orientation is Landscape
6.7.3.16

SetOrientation

Sets the dmOrientation member of the DevMode. Sets the value of the 'Orientation' radio button.
SetOrientation(Orientation As Integer, pBlackIceDEVMODE As Long) As Boolean

206
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: Orientation


- Orientation 1:Portrait, 2:Landscape.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.17

IsRotatePaperEnabled

Returns the value of the BLF_ROTATEPAPER flag. Represents the value of the Rotate
Landscape image to Portrait checkbox.
IsRotatePaperEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Rotate Landscape image to Portrait is used, otherwise FALSE
6.7.3.18

EnableRotatePaper

Sets the BLF_ROTATEPAPER flag. Sets the value of the Rotate Landscape image to Portrait
checkbox.
EnableRotatePaper(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.3.19

DisableRotatePaper

Sets the BLF_ROTATEPAPER flag to 0 (false). Sets the value of the Rotate Landscape image
to Portrait checkbox UNCHECKED.
DisableRotatePaper(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.3.20

GetXDPI

Returns the value of the dmPrintQuality member of the DevMode. Represents the value of the
'Horizontal Resolution' edit box.
GetXDPI(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Horizontal Resolution (integer number)
6.7.3.21

SetXDPI

Sets the dmPrintQuality member of the DevMode. Sets the value of the 'Horizontal Resolution'
edit box.
SetXDPI(xdpi As Integer, pBlackIceDEVMODE As Long) As Boolean

207
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: xdpi


- Horizontal Resolution
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.22

GetYDPI

Returns the value of the dmYResolutionmember of the DevMode. Represents the value of the
'Vertical Resolution' edit box.
GetYDPI(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Vertical Resolution
6.7.3.23

SetYDPI

Sets the dmYResolutionmember of the DevMode. Sets the value of the 'Vertical Resolution' edit
box.
SetYDPI(ydpi As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: ydpi


- Vertical Resolution
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.3.24

IsFaxLowOutputEnabled

Returns the value of the BLF_LOWFAXRES flag. If true, the low fax resolution (204x98) is
selected, if false the Fine Fax resolution (204x196) is selected when the Create Faxable Image
option is selected.
BOOL

IsLowFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if Low Fax resolution is selected, otherwise
FALSE.
6.7.3.25

EnableLowFaxOutput

Sets the BLF_ LOWFAXRES flag. Sets the value of the fax resolution when the Create Faxable
Image checkbox is selected.
BOOL

EnableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
208
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.3.26

DisableLowFaxOutput

Sets the BLF_ LOWFAXRES flag 0 (false). Sets the value of the fax resolution when the Create
Faxable Image checkbox is selected.
BOOL

DisableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.

209
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4

6.7.4.1

The File Formats methods

GetFileFormat

Returns the value of the Format member of the BlackIceDEVMODE. Represents the value of the
'File Format' combo box.
GetFileFormat(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - File Format

210
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4.2

SetFileFormat

Sets the Format member of the BlackIceDEVMODE. Sets the value of the 'File Format' combo
box.
SetFileFormat(fileformat As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: fileformat


- File Format
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.4.3

GetLossRatio

Returns the value of the LossRatio member of the BlackIceDEVMODE. Represents the value of
the 'JPEG loss ratio' slider.
GetLossRatio(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - JPEG loss ratio
6.7.4.4

SetLossRatio

Sets LossRatio member of BlackIceDEVMODE. Sets the value of the 'JPEG loss ratio' slider.
SetLossRatio(lossratio As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: lossratio


- JPEG loss ratio
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.4.5

GetColorDepth

Returns the value of the ColorMode member of the BlackIceDEVMODE. Represents the value of
the 'Color Depth' radio button.
GetColorDepth(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Color Depth
6.7.4.6

SetColorDepth

Sets the ColorMode member of the BlackIceDEVMODE. Sets the value of the 'Color Depth'
radio button.
SetColorDepth(colordepth As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: colordepth

- Color Depth

211
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.4.7

IsMultipageImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create Multipage Image checkbox.
IsMultipageImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Create Multi-page Image is used, otherwise FALSE
6.7.4.8

EnableMultipageImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multi-page Image checkbox.
EnableMultipageImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.9

DisableMultipageImage

Sets the BLF_MULTIIMAGE flag 0 (false). Sets the value of the Create Multipage Image
checkbox UNCHECKED.
DisableMultipageImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set 0 (false), otherwise FALSE.
6.7.4.10

IsAppendImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
IsAppendImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Create Multipage Image is used, otherwise FALSE
6.7.4.11

EnableAppendImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox.
EnableAppendImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
212
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4.12

DisableAppendImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multi-page Image
checkbox UNCHECKED.
DisableAppendImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.13

IsDisableImageEnabled

Returns the value of the BLF_DISABLEIMAGE flag. Represents the value of the 'Disable Image'
checkbox.
IsDisableImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Disable Image is used, otherwise FALSE
6.7.4.14

EnableDisableImage

Sets the BLF_DISABLEIMAGE flag. Sets the value of the 'Disable Image' checkbox.
EnableDisableImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.15

DisableDisableImage

Sets the BLF_DISABLEIMAGE flag to 0 (false). Sets the value of the 'Disable Image' checkbox
UNCHECKED.
DisableDisableImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.16

IsEasternCharSupportEnabled

Returns the value of the BLF_GLYPHSUPPORT flag. Represents the value of the 'Eastern
Character Support' checkbox.
IsEasternCharSupportEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Eastern Character Support is used, otherwise FALSE

213
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4.17

EnableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag. Sets the value of the 'Eastern Character Support'
checkbox.
EnableEasternCharSupport(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.18

DisableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag to 0 (false). Sets the value of the 'Eastern Character
Support' checkbox UNCHECKED.
DisableEasternCharSupport(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.19

IsWriteTextEnabled

Returns the value of the BLF_WRITETEXT flag. Represents the value of the 'Write Text File'
checkbox.
IsWriteTextEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Write Text File is used, otherwise FALSE
6.7.4.20

EnableWriteText

Sets the BLF_WRITETEXT flag. Sets the value of the 'Write Text File' checkbox.
EnableWriteText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.21

DisableWriteText

Sets the BLF_WRITETEXT flag to 0 (false). Sets the value of the 'Write Text File' checkbox
UNCHECKED.
DisableWriteText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

214
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4.22

IsMailMergeEnabled

Returns the value of the BLF_MAILMERGE flag. Represents the value of the Mail Merge
checkbox.
IsMailMergeEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if WriteText File is used, otherwise FALSE
6.7.4.23

EnableMailMerge

Sets the BLF_MAILMERGE flag. Sets the value of the Mail Merge checkbox.
EnableMailMerge(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.24

DisableMailMerge

Sets the BLF_MAILMERGE flag to 0 (false). Sets the value of the Mail Merge checkbox
UNCHECKED.
DisableMailMerge(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.25

IsAdvancedTextEnabled

Returns the value of the BLF_ADVANCEDTEXT flag. Represents the value of the 'Save
position and style' checkbox.
IsAdvancedTextEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Save position and style is used, otherwise FALSE
6.7.4.26

EnableAdvancedText

Sets the BLF_ADVANCEDTEXT flag. Sets the value of the 'Save position and style' checkbox.
EnableAdvancedText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.27

DisableAdvancedText

Sets the BLF_ADVANCEDTEXT flag to 0 (false). Sets the value of the 'Save position and style'
checkbox UNCHECKED.
215
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DisableAdvancedText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.28

IsInternetTiffFormatEnabled

Returns the value of the BLF_INTERNETTIFF flag. Represents the value of the Internet TIFF
format checkbox.
IsInternetTiffFormatEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Internet TIFF format is used, otherwise FALSE
6.7.4.29

EnableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag. Sets the value of the Internet TIFF format checkbox.
EnableInternetTiffFormat(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.30

DisableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag to 0 (false). Sets the value of the Internet TIFF format
checkbox UNCHECKED.
DisableInternetTiffFormat(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.31

IsReverseBitOrderEnabled

Returns the value of the BLF_REVERSEFILLORDER flag. Represents the value of the Reverse
Bit Order in TIFF checkbox.
IsReverseBitOrderEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Reverse Bit Order in TIFF is used, otherwise FALSE
6.7.4.32

EnableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag. Sets the value of the Reverse Bit Order in TIFF
checkbox.
EnableReverseBitOrder(pBlackIceDEVMODE As Long) As Boolean

216
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.33

DisableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag to 0 (false). Sets the value of the Reverse Bit Order
in TIFF checkbox UNCHECKED.
DisableReverseBitOrder(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.34

IsPageNumberingEnabled

Returns the value of the BLF_PAGENUMBERING flag. Represents the value of the Add Page
Numbering Tag checkbox.
IsPageNumberingEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Add Page Numbering Tag is used, otherwise FALSE
6.7.4.35

EnablePageNumbering

Sets the BLF_PAGENUMBERING flag. Sets the value of the Add Page Numbering Tag
checkbox.
EnablePageNumbering(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.4.36

DisablePageNumbering

Sets the BLF_PAGENUMBERING flag to 0 (false). Sets the value of the Add Page Numbering
Tag checkbox UNCHECKED.
DisablePageNumbering(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.4.37

GetDithering

Returns the value of the Dithering member of the BlackIceDEVMODE. Represents the value of
the 'Photo Quality' radio button.
GetDithering(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Photo Quality
217
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.4.38

SetDithering

Sets the Dithering member of the BlackIceDEVMODE. Sets the value of the 'Photo Quality' radio
button.
SetDithering(dithering As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: dithering


- Photo Quality
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.4.39

GetBrightness

Returns the value of the Brightness member of the BlackIceDEVMODE. Represents the value of
the 'Intensity' slider.
GetBrightness(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Intensity
6.7.4.40

SetBrightness

Sets the Brightness member of the BlackIceDEVMODE. Sets the value of the 'Intensity' slider.
SetBrightness(brightness As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: brightness


- Intensity
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.

218
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.5

6.7.5.1

The Filename Generation methods

GetFileGenerationMethod

Returns the value of the FileNameGenerationFlags member of the BlackIceDEVMODE.


Represents the value of the 'File Name Generation Method' combo box.
GetFileGenerationMethod(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Generation Method

219
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.5.2

SetFileGenerationMethod

Sets the FileNameGenerationFlags member of the BlackIceDEVMODE. Sets the value of the 'File
Name Generation Method' combo box.
SetFileGenerationMethod(fnamegen As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: fnamegen


- File Name Generation Method
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.3

GetFileNamePrefix

Returns the value of the FileNamePrefix member of the BlackIceDEVMODE. Represents the
value of the 'File Name Prefix' edit box.
GetFileNamePrefix(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Prefix
6.7.5.4

SetFileNamePrefix

Sets the FileNamePrefix member of the BlackIceDEVMODE. Sets the value of the 'File Name
Prefix' edit box.
SetFileNamePrefix(fnamepref As String, pBlackIceDEVMODE As Long) As Boolean

Input value: fnamepref


- File Name Prefix
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.5

GetFileExtension

Returns the value of the FileExtension member of the BlackIceDEVMODE. Represents the value
of the 'File Name Extension' edit box.
GetFileExtension(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Extension
6.7.5.6

SetFileExtension

Sets the FileExtension member of the BlackIceDEVMODE. Sets the value of the 'File Name
Extension' edit box.
SetFileExtension(fnameext As String, pBlackIceDEVMODE As Long) As Boolean

220
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: fnameext


- File Name Extension
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.7

IsCustomExtensionEnabled

Returns the value of the BLF_CUSTOMEXT flag. Represents the value of the 'Use Custom
Extension' checkbox.
IsCustomExtensionEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Use Custom Extension is used, otherwise FALSE
6.7.5.8

EnableCustomExtension

Sets the BLF_CUSTOMEXT flag. Sets the value of the 'Use Custom Extension' checkbox.
EnableCustomExtension(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.5.9

DisableCustomExtension

Sets the BLF_CUSTOMEXT flag to 0 (false). Sets the value of the 'Use Custom Extension'
checkbox UNCHECKED.
DisableCustomExtension(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.5.10

GetINIFileName

Returns the value of the INIFileName member of the BlackIceDEVMODE. Represents the value
of the 'INI File Name'/'Registry path'/etc. edit box.
GetINIFileName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - INI File Name/Registry Path/etc
6.7.5.11

SetINIFileName

Sets INIFileName member of the BlackIceDEVMODE. Sets the value of the 'INI File
Name'/'Registry path'/etc. edit box.
SetINIFileName(inifname As String, pBlackIceDEVMODE As Long) As Boolean

Input value: inifname

- INI File Name/Registry Path/etc.

221
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.12

GetImageFileName

Returns the value of the FileImageName member of the BlackIceDEVMODE. Represents the
value of the 'File Image Name' edit box if Filename Generation method is Exact filename.
GetImageFileName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Image Filename
6.7.5.13

SetImageFileName

Sets the FileImageName member of the BlackIceDEVMODE. Sets the value of the 'File Image
Name' edit box if Filename Generation method is Exact filename.
SetImageFileName(filename As String, pBlackIceDEVMODE As Long) As Boolean

Input value: filename


- Exact Filename
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.14

IsKeepExistingFilesEnabled

Returns the value of the BLF_KEEPFILES flag. Represents the value of the 'Keep existing files'
checkbox.
IsKeepExistingFilesEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Keep existing files is used, otherwise FALSE
6.7.5.15

EnableKeepExistingFiles

Sets the BLF_KEEPFILES flag. Sets the value of the 'Keep existing files' checkbox.
EnableKeepExistingFiles(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.5.16

DisableKeepExistingFiles

Sets the BLF_KEEPFILES flag to 0 (false). Sets the value of the 'Keep existing files' checkbox
UNCHECKED.
DisableKeepExistingFiles(pBlackIceDEVMODE As Long) As Boolean

222
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.5.17

GetOutputDirectory

Returns the value of the OutputDirectory member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
GetOutputDirectory(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Output Directory
6.7.5.18

SetOutputDirectory

Sets the OutputDirectory member of the BlackIceDEVMODE. Sets the value of the 'Output
Directory' edit box.
SetOutputDirectory(outputdir As String, pBlackIceDEVMODE As Long) As Boolean

Input value: outputdir


- Output Directory
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.5.19

IsGroupFileDisabled

Returns the value of the BLF_DISABLEGROUPFILE flag. Represents the value of the 'Disable
Group File' checkbox.
IsGroupFileDisabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Disable Group File is used, otherwise FALSE
6.7.5.20

DisableGroupFile

Sets the BLF_DISABLEGROUPFILE flag. Sets the value of the 'Disable Group File' checkbox.
DisableGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.5.21

EnableGroupFile

Sets the BLF_DISABLEGROUPFILE flag to 0 (false). Sets the value of the 'Disable Group File'
checkbox UNCHECKED.
EnableGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value

- handle to the BlackIceDEVMODE.

223
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.5.22

IsDeleteGroupFileEnabled

Returns the value of the BLF_DELETEGROUPFILE flag. Represents the value of the 'Delete
Group File After Printing' checkbox.
IsDeleteGroupFileEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Delete Group File After Printing is used, otherwise FALSE
6.7.5.23

EnableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag. Sets the value of the 'Delete Group File After Printing'
checkbox.
EnableDeleteGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.5.24

DisableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag to 0 (false). Sets the value of the 'Delete Group File
After Printing' checkbox UNCHECKED.
DisableDeleteGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

224
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6

6.7.6.1

The Start Application methods

IsStartApplicationEnabled

Returns the value of the BLF_LAUNCHAPP flag. Represents the value of the 'Enable Start
Application' checkbox.
IsStartApplicationEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Enable Start Application is used, otherwise FALSE
225
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6.2

EnableStartApplication

Sets the BLF_LAUNCHAPP flag. Sets the value of the 'Enable Start Application' checkbox.
EnableStartApplication(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.3

DisableStartApplication

Sets the BLF_LAUNCHAPP flag to 0 (false). Sets the value of the 'Enable Start Application'
checkbox UNCHECKED.
DisableStartApplication(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.6.4

GetApplicationPath

Returns the value of the ApplicationPath member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
GetApplicationPath(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Application Path
6.7.6.5

SetApplicationPath

Sets the ApplicationPath member of the BlackIceDEVMODE. Sets the value of the 'Application
Path' edit box.
SetApplicationPath(applicationpath As String ,pBlackIceDEVMODE As Long) As Boolean

Input value: applicationpath


- Application Path
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.6.6

IsStartBeforePrint

Returns the value of the BLF_STARTBEFOREPRINT flag. Represents the value of the 'Start
Before Printing' radio button.
IsStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Before Printing is used, otherwise FALSE (the driver will start the
application after printing)
226
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6.7

EnableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag. Sets the value of the 'Start Before Printing' radio
button.
EnableStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.8

DisableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag to 0 (false). Sets the value of the 'Start Before
Printing' radio button UNCHECKED. (Sets the value of the 'Start After Printing' radio button
CHECKED)
DisableStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.6.9

IsPassParametersEnabled

Returns the value of the BLF_PASSPARAMETERS flag. Represents the value of the 'Pass
Parameters' checkbox.
IsPassParametersEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Pass Parameters is used, otherwise FALSE
6.7.6.10

EnablePassParameters

Sets the BLF_PASSPARAMETERS flag. Sets the value of the 'Pass Parameters' checkbox.
EnablePassParameters(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.11

DisablePassParameters

Sets the BLF_PASSPARAMETERS flag to 0 (false). Sets the value of the 'Pass Parameters'
checkbox UNCHECKED.
DisablePassParameters(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

227
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6.12

IsStartNormal

Returns the value of the BLF_STARTNORMAL flag. Represents the value of the 'Normal' radio
button.
IsStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Application In a Normal Window is used, otherwise FALSE
6.7.6.13

EnableStartNormal

Sets the BLF_STARTNORMAL flag. Sets the value of the 'Normal' radio button. The driver will
start the application In a Normal window
EnableStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.14

DisableStartNormal

Sets the BLF_STARTNORMAL flag to 0 (false). Sets the value of the 'Normal' radio button
UNCHECKED.
DisableStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.6.15

IsStartMinimized

Returns the value of the BLF_STARTMINIMIZED flag. Represents the value of the 'Minimized'
radio button.
IsStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Application In a Minimized Window is used, otherwise FALSE
6.7.6.16

EnableStartMinimized

Sets the BLF_STARTMINIMIZED flag. Sets the value of the 'Minimized' radio button. The
driver will start the application In a Minimized window
EnableStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.

228
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6.17

DisableStartMinimized

Sets the BLF_STARTMINIMIZED flag to 0 (false). Sets the value of the 'Minimized' radio
button UNCHECKED.
DisableStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.6.18

IsStartHidden

Returns the value of the BLF_STARTHIDDEN flag. Represents the value of the 'Hidden' radio
button.
IsStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Application Hidden is used, otherwise FALSE
6.7.6.19

EnableStartHidden

Sets the BLF_STARTHIDDEN flag. Sets the value of the 'Hidden' radio button. The driver will
start the application Hidden
EnableStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.20

DisableStartHidden

Sets the BLF_STARTHIDDEN flag to 0 (false). Sets the value of the 'Hidden' radio button
UNCHECKED.
DisableStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.6.21

IsMessagingInterfaceEnabled

Returns the value of the BLF_SENDMESSAGE flag. Represents the value of the 'Disable the
Messaging Interface' checkbox, BUT the flag and the check box contain the opposite value.
IsMessagingInterfaceEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Messaging Interface is used (the check box is unchecked), otherwise
FALSE ( The Messaging Interface is not used and the check box is checked)
229
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.6.22

EnableMessagingInterface

Sets the BLF_SENDMESSAGE flag. Sets the value of the 'Disable the Messaging Interface'
checkbox UNCHECKED. The driver uses the Messaging Interface.
EnableMessagingInterface(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.6.23

DisableMessagingInterface

Sets the BLF_SENDMESSAGE flag to 0 (false). Sets the value of the 'Disable the Messaging
Interface' checkbox. The driver will not use Messaging Interface.
DisableMessagingInterface(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

230
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.7
6.7.7.1

Miscellaneous methods
GetInterfaceName

Returns the value of the InterfaceName member of the BlackIceDEVMODE. The InterfaceName
member stores the name of the messaging interface.
InterfaceName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Interface Name
6.7.7.2

SetInterfaceName

Sets the InterfaceName member of the BlackIceDEVMODE. The InterfaceName member stores
the name of the messaging interface.
SetInterfaceName(intfname As String, pBlackIceDEVMODE As Long) As Boolean

Input value: intfname


- Interface Name
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.7.3

GetPaperLength

Returns the value of the dmPaperLength member of the DevMode. (DM.dmPaperLength member
of the BlackIceDEVMODE ) This value represent the 'Actual paper length'.
GetPaperLength(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Actual paper length
6.7.7.4

SetPaperLength

Sets the dmPaperLength member of the DevMode. (DM.dmPaperLength member of the


BlackIceDEVMODE ) This value represents the 'Actual paper length'.
SetPaperLength(paperlength As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: paperlength


- Actual paper length
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.

231
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.7.5

IsTiffDllEnabled

Returns the value of the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will
load the TIFF32.DLL. This flag can only be set programmatically.
IsTiffDllEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the TIFF32.DLL is enabled, otherwise FALSE
6.7.7.6

EnableTiffDll

Sets the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will load the
TIFF32.DLL. This flag can only be set programmatically.
EnableTiffDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.7.7.7

DisableTiffDll

Sets the BLF_ENABLETIFFDLL flag to 0 (false). If the flag is set, the printer driver will load the
TIFF32.DLL. This flag can only be set programmatically.
DisableTiffDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.7.8

IsJpegDllEnabled

Returns the value of the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will
load the JPEG32.DLL. This flag can only be set programmatically.
IsJpegDllEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the JPEG32.DLL is enabled, otherwise FALSE
6.7.7.9

EnableJpegDll

Sets the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will load the
JPEG32.DLL. This flag can only be set programmatically.
EnableJpegDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.

232
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.7.7.10

DisableJpegDll

Sets the BLF_ENABLEJPEGDLL flag to 0 (false). If the flag is set, the printer driver will load
the JPEG32.DLL. Can be set only programmatically.
DisableJpegDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.7.7.11

GetTIFFDLLName

Returns the value of the TIFFDLLName member of the BlackIceDEVMODE. The


TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL encodes the
TIFF files. The file is needed for TIFF output.
GetTIFFDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - TIFFDLLName
6.7.7.12

SetTIFFDLLName

Sets the TIFFDLLName member of the BlackIceDEVMODE. The TIFFDLLName member


stores the name and path of the TIFF32.DLL. This DLL encodes the TIFF files. The file is needed
for TIFF output.
SetTIFFDLLName(stringtiffdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringtiffdll


- TIFFDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.7.13

GetJPEGDLLName

Returns the value of the JPEGDLLName member of the BlackIceDEVMODE. The


JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL encodes the
Jpeg files. The file is needed for Jpeg output.
GetJPEGDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - JPEGDLLName
6.7.7.14

SetJPEGDLLName

Sets the JPEGDLLName member of the BlackIceDEVMODE. The JPEGDLLName member


stores the name and path of the JPEG32.DLL. This DLL encodes the Jpeg files. The file is
needed for Jpeg output.
233
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

SetJPEGDLLName(stringjpegdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringjpegdll


- JPEGDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.7.15

GetResourceDLLName

Returns the value of the ResourceDLLName member of the BlackIceDEVMODE. The


ResourceDLLName member stores the name and path of the driver resource DLL
GetResourceDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - ResourceDLLName
6.7.7.16

SetResourceDLLName

Sets the ResourceDLLName member of the BlackIceDEVMODE. The ResourceDLLName


member stores the name and path of the driver resource DLL
SetResourceDLLName(stringresdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringresdll


- ResourceDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
6.7.7.17

GetBitsPerPixel

Returns the value of the color depth in pixels.


If the Color Depth is BITS_1, the return value is 1
If the Color Depth is BITS_8, the return value is 8
If the Color Depth is BITS_8GRAY, the return value is 8
If the Color Depth is BITS_24, the return value is 24
GetResourceDLLName(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Color depth in pixels.

9 Visual Basic Sample How to modify the


printer settings
This sample demonstrates how to use the methods of the BlackIceDEVMODE.OCX. The sample
shows how to read, modify and save the printer settings programmatically.
234
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The PrinterSettings program allows users to change the settings of Black Ice printers.
OK:
Cancel:
Apply:
Open printer:

save the settings and exit.


exit the program without changing the settings
save the settings without exiting. You can modify the controls again.
closes the currently opened printer and tries to open new printer specified
in the Printer name text box.

235
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

237
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Differences between Win95/98/ME and


XP/W2K/NT Drivers
The following is a brief list of differences between the Win95/98/ME and XP/W2K/NT Printer
Drivers:

Instead of one dialog box, the settings are divided into two groups that can be found in two
separate dialogs on Xpand W2K: Properties and Printing Preferences. On NT 4.0 it is
named Properties and Document Defaults.
Properties: this dialog can be opened by clicking on the Black Ice printer with the right
mouse button and choosing Properties. The parameters available in this dialog will be used by
every printing application when printing to this printer. The last property sheet contains Black
Ice specific settings.
Document Defaults: another group of settings can be found by clicking on the Black Ice
printer with the right mouse button and selecting Document Defaults. This dialog contains
default values for document related and other settings. However; if a printing application
wants to modify some of these settings it can call the DocumentProperties() function to do so.
Even two or more applications running simultaneously can use different settings.
The XP/W2K and NT driver writes information to a named pipe instead of sending actual
messages.
The user needs Administrator privileges to be able to modify the printers settings on
XP/W2K and NT.

238
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Part B: Drivers for Win95/98 and ME

239
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Installing the Win95/98 and ME Drivers


Three installation options exist for the Black Ice Printer driver depending on the type of desired output.
The driver can automatically be configured for fax applications, non-fax applications (document
imaging), or the driver can be custom configured. The settings specified during installation can be
changed at any time by accessing the Printers folder and right clicking on the Black Ice Driver and
selecting Properties.
1. Double click on the file that was downloaded to begin the installation.
2. Follow the onscreen instructions until you are prompted to select the type of driver installation
you want. Please see the screen shot below:

You will be presented with three installation options:


6. Fax Applications: Selecting this setting will automatically configure the driver for fax output.
You can change these settings at any time after installation. See the following sections of the
manual for more detail.
7. Non Fax Applications: Selecting this setting will automatically configure the driver for
document imaging output. You can change these settings at any time after installation. See the
following sections of the manual for more detail.
240
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8. Custom Config: Selecting this setting will bring up the Driver Properties dialog box where you
can you manually configure the driver. You can change these settings at any time after
installation. See the following sections of the manual for more detail.
Please see the installation section below for each option:

Fax Applications:

Selecting this option will bring up the following screen:

Here you can specify the type of TIFF file that will be outputted. The settings can be based on a
specific hardware type or you can go with the default setting. Make your selection and press the Next
button to complete the installation. You can change these settings at any time after installation. See
the following sections of the manual for more detail.

Non Fax Applications:

Selecting this option automatically configures the driver for document imaging. By default the file
format will be set to 24 bit JPEG. Press finish to complete the installation. You can change these
settings at any time after installation. See the following sections of the manual for more detail.

Custom Config:

Selecting this option will bring up the following screen:


241
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Press the Printer button to manually configure the driver or press the next button to proceed with the
default settings and complete the installation. By default, the image format is set to 24 bit JPEG.
Pressing the Printer button will bring up the following dialog box.

242
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Use this dialog box and the various sheets to configure the driver. The following sections of the
manual will describe in detail how to configure the properties of the Printer Driver. Make your
selections and press OK to complete the installation.

243
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Win95/98 and ME Monochrome Driver

244
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Configuring the Driver on Windows


95/98 and ME

245
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Device Settings sheet

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

246
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large A size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Page Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
247
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

A5 148 x 210 mm
B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

248
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Create a Faxable Image


This check box can be used to set the driver to automatically create images that have fax paper
size and resolution. The paper sizes and graphic resolutions are not restricted, but the end result
image file will have a fax-able page size and fax-compatible resolution. For example, if the page is
Letter paper size and 600 DPI, the generated file width will be 1728 pixels.

Force FAX Resolution


If the Create Faxable image check is selected the driver to automatically create images that have
fax paper size and resolution. The user can select the final resolution of the faxable image between
204x98 DPI (Standard Fax Resolution) and 204x196 DPI (Fine Fax Resolution).

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as the Japanese envelope size.

Specifying Page Orientation


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

249
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Rotate a Landscape Image to Portrait


When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

Horizontal Resolution
Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.
250
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Vertical Resolution
Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.

251
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet for Win95/98and


ME

Specifying the File Format


Click on the File Format list box to select the output image file type for the driver. Click on the
down arrow to scroll through the available selections.
The current selections are:
252
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TIFF Group 3 1D
TIFF Group 3 1D No EOL
TIFF Group 3 2D
TIFF Group 4
TIFF Packed
TIFF LZW
TIFF Uncompressed
PCX Image Format
Intel DCX Image Format
Microsoft DIB (BMP)
CALS
RAW CCITT TIFF Group 3 1D
RAW CCITT TIFF Group 3 1D No EOL
RAW CCITT TIFF Group 3 2D
RAW CCITT TIFF Group 4
IBM MRR

Options
Create a multi page image
When this button is checked the driver will save every printed page in one image file. If it is
unchecked all the pages printed will be generated in separate files.
NOTE: This option is only supported by the TIFF (any type of TIFF) and DCX file formats.

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file radio button is checked for text output and the image file is not needed. As a result, the
driver will only generate a text file, no image files will be generated.

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95/98/ME. In this case, the
characters printed are not valid one-byte ASCII values. The driver cannot save text files of any
kind, therefore the Write text file, Position and Style Info, and Mail Merge options will be
disabled.
253
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1
Page 2:
Text on page 2
Page 3:
Text on page 3

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file.
This feature is useful when generating multi-page TIFF files from a large document using a
custom printing application.
The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
The recognized command sequences are as follows:
##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
254
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Phone number=6031234321 .
##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
Page 2:
Page 3:
This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
255
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

U = The font in the text is underlined.


I = The font in the text is italic.

TIFF Options
All of the following settings are only available for TIFF files.

Internet TIFF format


If TIFF file format is selected as the output image format and this box is checked, the driver will create
a TIFF file that is compatible with the requirements listed in chapter 3 of RFC 2301 (File Format for
Internet Fax ). (Not a chapter in this manual.) That chapter lists the required tags for black-and-white
faxes. The extra tag the driver will include in the tiff file if this flag is checked is NEWSUBFILETYPE.

Reverse bit order in TIFF


This setting only has an effect on TIFF images.
If this box is checked, the driver will save TIFF images with reverse bit order and also set the
value of the FILLORDER tag in the image file to Reverse.
GammaLink compatible TIFF output requires this setting to be checked, because they can only
send TIFF images with reverse bit order.

Add Page Numbering Tag


This setting only has an effect on TIFF images.
If this box is checked, the driver will set the page number tag of every page in the output TIFF
file.

Photo Quality
The Photo Quality option enables or disables the dithering of the Black Ice driver. When Photo
Quality is enabled, five high quality filters become accessible. Digital half-toning, also referred to
as spatial dithering, produces the illusion of continuous-tone pictures on media that is only
capable of displaying binary picture elements, for example: fax machines and most printers.
Floyd-Steinberg and Jarvis-Judice-Ninke are the text book filters. The Smooth, Sharp, and
Stucki filters are less known, but produce better quality output. Floyd-Steinberg is the default
setting.

Intensity
The photo quality program group also contains a scroll bar that lets you control the intensity of the
output image. The lower the Intensity value is, the darker the output image will be.

When should Photo Quality Output be used?


256
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Photo Quality output is designed primarily for faxing or to transmit color pictures on a
monochrome device. When a color picture is faxed from a conventional desktop fax machine, the
result is unrecognizable in most cases. On computer-generated faxes, the output quality can be
increased to picture quality using the Black Ice printer driver.
How is performance affected by the Photo Quality output?
The fastest filter is the Floyd-Steinberg, because it requires the least computation. Stucki is the
slowest filter, but has the highest quality. The Stucki filter produces the best visible output.

257
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

258
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Methods


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use the prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

22. Use the prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
23. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

259
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

24. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
25. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

26. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
260
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

27. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
28. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\

261
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
the started application message loop is ready to process messages. Once the application is started
the driver will delete the group file.

262
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages or can manipulate the
generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.
Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.
263
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

264
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Win95/98 and ME Color Driver


Driver Files
The following files are needed in order for the driver to operate:
- Windows\System\bi_color.drv: This is the driver file itself. It has to reside in the directory
returned by the GetPrinterDriverDirectory() API call, which is usually in the
windows\system directory.
- Windows\System\cdrvres.dll: The driver loads the resources from this DLL. It must be in
the same directory where the driver file is.
- Windows\System\tiff.dll: This DLL is used by the driver for TIFF file I/O. It has to be in the
same directory where the driver file is.
- Windows\System\jpeg.dll: This DLL is used by the driver for TIFF file I/O. It has to be in
the same directory where the driver file is.

Configuring the Driver on Windows


95/98 and ME
Clicking with the right mouse button on the Black Ice Color printer and selecting Properties will bring
up the printers main setup dialog. The following sheets of the property dialog box (Device Setting,
File Formats, Filename generation, and Start Application) contain the driver specific settings. The
Details tab contains port specific settings.

265
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Device Settings sheet

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

266
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large E size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Page Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
267
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

A5 148 x 210 mm
B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

268
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Create a Faxable Image


This check box can be used to set the driver to automatically create images that have fax paper
size and resolution. The paper sizes and graphic resolutions are not restricted, but the end result
image file will have a fax-able page size and fax-compatible resolution. For example, if the page is
Letter paper size and 600 DPI, the generated file width will be 1728 pixels.

Force FAX Resolution


If the Create Faxable image check is selected the driver to automatically create images that have
fax paper size and resolution. The user can select the final resolution of the faxable image between
204x98 DPI (Standard Fax Resolution) and 204x196 DPI (Fine Fax Resolution).

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as Japanese envelope size.

Specifying Page Orientation


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

Rotate a Landscape Image to Portrait


269
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

Horizontal Resolution

270
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.

Vertical Resolution
Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.

271
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet

Specifying the File Format


Click on the File Format list box to select the output image file type for the driver. Click on the
down arrow to scroll through the available selections.
272
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The current selections are:

JPEG
JPEG L*a*b
Microsoft DIB (BMP)
TIFF Uncompressed
TIFF Group 3 1D
TIFF Group 3 1D No EOL
TIFF Group 3 2D
TIFF Group 4
TIFF Packed
TIFF LZW
TIFF JPEG
TIFF Group 3 1D
PCX Image Format
Intel DCX Image Format
CALS
RAW CCITT TIFF Group 3 1D
RAW CCITT TIFF Group 3 1D No EOL
RAW CCITT TIFF Group 3 2D
RAW CCITT TIFF Group 4
Extended Metafile
IBM MRR

JPEG Loss Ratio


The quality of the JPEG file that is generated. This is only used for JPEG and JPEG Lab type files. A
higher value equals higher quality; however the file size will be larger. Conversely, a lower value equals
lower quality, but the file size will be smaller.

Color Depth
The color depth setting for the generated image. The value can be 1 bit, 8 bits, 8 bits grayscale and 24
bits.
The file types shown in the File Format combo box depends on this value. The user can only select
from file types compatible with the current color depth setting. For example: if 1 bit is selected, the
JPEG file type will not be shown.

273
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Options
Create a multi page image
When this button is checked the driver will save every printed page in one image file. If it is
unchecked all the pages printed will be generated in separate files.
NOTE: This option is only supported by the TIFF (any type of TIFF) and DCX file formats.

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file is checked for text output and the image file is not needed. As a result, the driver will
only generate a text file, no image files will be generated.

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95. In this case, the characters
printed are not valid one-byte ASCII values. The driver cannot save text files of any kind,
therefore the Write text file, Position and Style Info, and Mail Merge options will be disabled.

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1.
Page 2:
Text on page 2:
Page 3:
Text on page 3:
274
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file. This feature is useful when generating multi-page TIFF files from a
large document using a custom printing application.
The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
The recognized command sequences are as follows:
##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
Phone number=6031234321 .

##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
275
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Page 2:
Page 3:
This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B
U
I

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
= The font in the text is underlined.
= The font in the text is italic.

TIFF Options
All of the following settings are only available for TIFF files.

Internet TIFF format


If TIFF file format is selected as the output image format and this box is checked, the driver will create
a TIFF file that is compatible with the requirements listed in chapter 3 of RFC 2301 (File Format for
Internet Fax ). (Not a chapter in this manual.) That chapter lists the required tags for black-and-white
faxes. The extra tag the driver will include in the tiff file if this flag is checked is NEWSUBFILETYPE.

Reverse bit order in TIFF


This setting only has an effect on TIFF images.
If this box is checked, the driver will save TIFF images with reverse bit order and also set the
value of the FILLORDER tag in the image file to Reverse.
GammaLink compatible TIFF output requires this setting to be checked, because they can only
send TIFF images with reverse bit order.

Add Page Numbering Tag


This setting only has an effect on TIFF images.
276
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

If this box is checked, the driver will set the page number tag of every page in the output TIFF
file.

Photo Quality
The Photo Quality option enables or disables the dithering of the Black Ice driver. When Photo
Quality is enabled, five high quality filters become accessible. Digital half-toning, also referred to
as spatial dithering, produces the illusion of continuous-tone pictures on media that is only
capable of displaying binary picture elements, for example: fax machines and most printers.
Floyd-Steinberg and Jarvis-Judice-Ninke are the text book filters. The Smooth, Sharp, and
Stucki filters are less known, but produce better quality output. Floyd-Steinberg is the default
setting.

Intesity
The photo quality program group also contains a scroll bar that lets you control the intensity of the
output image. The lower the Intensity value is, the darker the output image will be.

When should Photo Quality Output be used?


Photo Quality output is designed primarily for faxing or to transmit color pictures on a
monochrome device. When a color picture is faxed from a conventional desktop fax machine, the
result is unrecognizable in most cases. On computer-generated faxes, the output quality can be
increased to picture quality using the Black Ice printer driver.
How is performance affected by the Photo Quality output?
The fastest filter is the Floyd-Steinberg, because it requires the least computation. Stucki is the
slowest filter, but has the highest quality. The Stucki filter produces the best visible output.

277
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

278
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Method


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use this prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

29. Use this prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
30. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

279
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

31. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
32. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

33. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
280
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

34. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
35. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\

281
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate the group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
will then delete the group file.

282
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages or can manipulate the
generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.
283
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

284
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Win95/98 and ME Metafile Driver


Driver Files
The following files are needed in order for the driver to operate:
- Windows\System\metafile.drv: This is the driver file itself. It must reside in the directory
returned by the GetPrinterDriverDirectory() API call, which is usually in the
windows\system directory.

Configuring the Driver on Windows


95/98 and ME
Clicking with the right mouse button on the Black Ice Color printer and selecting Properties will bring
up the printers main setup dialog. The following sheets of the property dialog box (Device Setting,
Filename generation, and Start Application) contain the driver specific settings. The Details tab
contains port specific settings.

285
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Device Settings sheet

Paper Width
Paper width is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

286
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Paper Height
Paper height is shown in the selected unit type of 0.01 inch, 0.1 mm, or a pixel.

Units
The units are the type of measurement used to describe the paper width and height. The units can be
0.01 inch, 0.1 mm (mm = millimeter), or a pixel.

Specifying the Paper Size


To change the paper size, select the Paper size list box. The page sizes range from envelopes to
large E size pages. Also, included is a user-definable variable page size. The page size can be
specified in increments of 0.01 inch, 0.1 mm, or a pixel. There are 45 Standard paper sizes, 36
Advanced paper sizes, as well as 3 Black Ice Software specific paper sizes such as FAX paper
size, VARIABLE paper size and VARIABLE paper size specified in pixels.
-

The VARIABLE paper size is specified by 0.01 inch or 0.1 mm. The formula to compute
between mm and pixels is mm = pixel x 254/DPI or pixel = mm x DPI/254.
The VARIABLE paper size specified in pixels can be any size in the boundary of the
Microsoft environment with a maximum width and height of 65535 x 65535 pixels. The DPI
information will be ignored.

Please Note:
The VARIABLE paper size specified in pixels is a special case. Normally, page size times DPI
is equal to the image size in pixels. With the VARIABLE paper size specified in pixels setting,
the image size in pixels is absolute and the DPI can be set arbitrarily. The VARIABLE paper size
specified in pixels setting can be very useful in web and graphic applications where the physical
size of the image is the preeminent factor.

Page Sizes Supported


The following page sizes are supported by the driver:
-

Letter 8 1/2 x 11 in
Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
287
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

B4 250 x 354
B5 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10x14 in
11x17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8
Envelope #10 4 1/8 x 9
Envelope #11 4 1/2 x 10 3/8
Envelope #12 4 \276 x 11
Envelope #14 5 x 11
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3.875 x 7.5 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Std Fanfold 14 7/8 x 11 in
German Std Fanfold 8 1/2 x 12 in
German Legal Fanfold 8 1/2 x 13 in
Fax paper 8.64 x 11 in or 215 mm

If the Create faxable image box is checked, only Fax and Legal paper sizes will be available. As
a result, saved images can be faxed.

Add Fax Header


The value entered in the edit box will reduce the standard page height by the specified number of
pixels. This option can be used to attach private page header information on the top of each page.
For example, if the page height is 2200 pixels and the fax header field is set to 100, the generated
image height will be 2100 pixels.

Create a Faxable Image


Not available in the EMF printer driver.

288
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Force FAX Resolution


Not available in the EMF printer driver.

What is Fax Paper Size?


Many people confuse the US Letter or European A4 paper sizes with fax paper size. According to the
ITU T.30 standard, the Fax page width is 215 mm or 1728 pixels, which is slightly different than the
US Letter or A4 paper size. There are additional fax paper sizes such as 255 mm and 303 mm;
however they are in not in use or there are very limited devices supporting them. If the 255mm or 303
mm paper size is needed, please use the VARIABLE paper size setting.

How is Page size computed and image size translated into


pixels?
Every page is defined in either millimeters or inches. The Microsoft DEVMODE data structure uses
millimeters as the base for computation. The formula to compute between mm and pixels is mm = pixel
x 254/DPI or pixel = mm x DPI/254.

Advanced Paper size


Enable/Disable the advanced paper size listing in the Paper combo box. There are 35 paper sizes that
are not commonly used. There are special circumstances where these paper sizes are useful. For
example: Architects for drawing or International such as Japanese envelope size.

Specifying Page Orientation.


The default page orientation (Portrait or Landscape) can be set on this sheet as well. The page
orientation set here will be used for fax transmissions.
If Landscape orientation is selected the driver will report landscape paper orientation to the
printing application, but the image on the page will be rotated 90 degrees so that the actual saved
image will still be in portrait orientation just like when you print in landscape mode. This makes it
possible to fax a page printed in landscape orientation.

Rotate a Landscape Image to Portrait


When landscape mode is selected this will rotate the generated landscape image 90 degrees so it can be
printed. Also, this option is selected automatically when the Create Faxable Image setting is checked.

Specifying Graphic Resolution


Default resolution (typically measured in dots per inch, or DPI), for printing graphic images.
289
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Available resolutions are listed in the Graphics Resolution window. These modes are as
follows:

204 x 98 DPI
204 x 196 DPI
200x200 DPI

300 x 300 DPI


600 x 600 DPI
1500x1500 DPI

- Draft resolution (standard fax mode).


- Low resolution (fine fax mode).
- If the Fax Output check box is selected the resolution is 200x200 dpi
internally, but the image is stored as 204x196 dpi. This feature is useful
when printing from an application that cant print correctly when the
horizontal and vertical resolution values are different. Selecting this setting
will print the page correctly and the image can still be faxed.
- Medium resolution.
- High resolution.
- The custom resolution can be set manually up to 1500 DPI in the
Horizontal Resolution and Vertical Resolution fields. The Horizontal
and Vertical resolution fields are grayed out until you select CUSTOM
Resolution max(1500x1500). Warning: When using settings over 600 DPI
one should consider memory usage.

The Driver also supports variable dot per inch (DPI) graphic resolution that can range from 50
DPI to 1500 DPI.
Please Note:
For faxing, when selecting resolution, remember that increased resolution slows down
transmission speed, while lower resolutions increase throughput at the cost of image quality.

Horizontal Resolution
Shows the horizontal resolution setting. Also, when Custom resolution is selected, the required
value can be entered.

Vertical Resolution
Shows the vertical resolution setting. Also, when Custom resolution is selected the required value
can be entered.

290
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Generated Image Size


Displays the uncompressed image size in megabytes based on the current paper size, resolution and
color depth.

291
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

File Formats sheet

Specifying the File Format


The only file formats available are EMF and Text output.

Options
292
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Disable image
Check this option to disable the image file generation setting of the driver. This can be useful when the
Write text file radio button is checked for text output and the image file is not needed. As a result, the
driver will only generate a text file, no image files will be generated.

Eastern Character Support


When this option is checked, the driver will interpret the contents of strings printed using the
TextOut function as two-byte glyph indexes. This is necessary to correctly print characters of
most non-US (Chinese, Japanese, etc.) versions of Windows 95/98/ME. In this case, the
characters printed are not valid one-byte ASCII values. The driver cannot save text files of any
kind, therefore the Write text file, Position and Style Info, and Mail Merge options will be
disabled.

Write Text File


When this option is checked, the driver will generate an ASCII text output along with the image
file. The file will have the default .txt extension. If you want to change the extension, please refer
to the Filename Extension section under the Filename Generation sheet.
The text file will also contain page delimiter information to mark where the new page is started.
The page delimiter is an empty line, the Page 1: text (where the number is the current page
number) and another empty line :
Page 1:
Text on page 1
Page 2:
Text on page 2
Page 3:
Text on page 3

Mail Merge
When this checkbox is checked, the driver will recognize special character sequences in the
printed text to extract some of the information in a text file or to force the driver to start
generating a new image file. This feature is useful when generating multi-page TIFF files from a
large document using a custom printing application.
293
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The recognized character sequences all start with two # characters. Most of these commands
will cause the driver to remove or alter the printed text and write it in the merged output file in
text format. This file will have the same filename as the group file, with the MRG extension. The
actual name of this file will be written in the group file in the following format:
Merge Output=c:\aaaa1000.mrg
The recognized command sequences are as follows:
##~~

Lines starting with these four characters and ending with ~~ will not be printed,
but written to the merged output file. For example, if the following string is sent
to the driver:
##~~ Phone number=6031234321~~
there will be an empty line printed in the output image file and the following line
will be added to the merged output file:
Phone number=6031234321 .

##**

Lines starting with these four characters and ending with ** will be partially
printed and also written to the merged output file. If the string enclosed by the
** marks contains an equation mark, the characters after the equation mark will
be printed. Otherwise the whole string between the asterisks will be printed.
Every character between the asterisks will be written to the merged output file.
For example, if the following string is printed with the driver:
##** Adressee=Company Name**
the following will be written to the merged output file:
Adressee=Company Name
and the following line will be printed to the output image file:
Company Name

All of the above command lines must be printed as one continuous string from left to right. If they
are printed one part at a time using several separate printing function calls, ( first printing ##~~
and then the rest of the line ) the driver may not be able to correctly recognize them.
The mail merge file will also contain page delimiter information to mark where the new page is
started. The page delimiter is an empty line, the Page 1: text (where the number is the current
page number) and another empty line :
Page 1:
Page 2:
Page 3:

294
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

This information will appear in the Mail Merge file even is there is no mail merge information in
that particular the page.

Save Position and style info


Checking this button will cause the driver to save additional formatting information in the text file.
The text output is stored in the [[X,Y][P][B,U,I]] text format. The format starts with double
brackets and ends with double brackets. The brackets can be used to parse the file. The format
information has the following meaning:
X
Y
P
B
U
I

= The horizontal text coordinate.


= The vertical text coordinate.
= The font size in points.
= The font in the text is bold.
= The font in the text is underlined.
= The font in the text is italic.

295
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Filename Generation sheet

296
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Name Generation Method


Select how you want the filename to be generated from the options in the combo box. The
following options are available:

Use this prefix and extension


Prefix and extension from the registry
Prefix and extension from the INI file
Exact filename
Exact filename from the registry
Exact filename from the INI file
Use the document name

36. Use this prefix and extension: the output filename will be generated from random
characters. The first three characters will be the characters specified in the Filename
Prefix edit box and random numbers will be added.
NOTE: Only the first 3 characters from the Filename Prefix field will be used, if it is
longer the string will be truncated.
37. Prefix and extension from the registry: The file name prefix and the extension will be
read from the specified registry key. The registry path must be under the
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER root key. Use the File
Name Prefix value name for the file prefix and the File Name extension value name for
the extension.

297
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

38. Prefix and extension from the INI file: In this case the filename and the prefix will be
read from the specified INI file. The driver will search in the INI file for a section width
the printer name. Use the File Name Prefix key for the file prefix and the File Name
extension key for the extension.
You can search for an existing INI file, create a new one or edit the selected file using the
browse [] and edit [Edit] buttons.
[Black Ice Color Printer]
File name prefix=ABC
File name extension=TIFF
39. Exact filename: The printed file will be generated with the same name specified in the
Enter the filename edit box.

40. Exact filename from the registry: The filename will be read from the specified registry
key. The registry path must be under the HKEY_LOCAL_MACHINE or
HKEY_CURRENT_USER root key. The value name containing the filename must be
"File Name". The file name can be specified with the path or without.
298
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

41. Exact filename from the INI file: In this case the filename will be read from the specified
INI file. The driver will search the INI file for a section with the printers name. Use the
File Name key for the Filename. The file name can be specified with the path or
without.
[Black Ice Color Printer]
File name =C:\Output\page.tiff
42. Use the document name: The driver will use the document name the application passes
to the driver when generating the name of the output image.

Filename
Enter the INI file name here, the registry path, or the file name depending on the selected file name
generation method.

Filename Prefix
This is the prefix for the generated files if the Use this prefix and extension setting is selected for the
filename generation method. If the prefix is longer than 3 characters it will be truncated to the first 3
characters.

Filename Extension
This shows the current extension of the files. If the Use custom extension setting is selected the
default extension is changed with the string entered here.

Use custom extension


Enable/disable the custom file extension. If this is checked, the files will be generated with the extension
entered in the Filename Extension field. If it is unchecked, the default extension for the selected file
format will be used.

Keep existing files


When the Fixed filename or Use document name methods are selected for filename generation, the
files that exist in the output directory will be overwritten. Check this option to keep the files, so the
new images will be added to the file. As a result, multi-page images will be created.

Output directory
In this edit box you can specify the path where the driver will save the generated image files.
The printer driver can handle long directory names like C:\My Documents\Printed Files\

299
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Group File Options


Settings referring to how the group files are handled. Check the Group File Options section for more
details about the Group Files.

Disable Group File


If this option is set, the driver will not generate the group files.

Delete group file after printing


If this box is checked, the driver will automatically delete the group file when printing is finished.
If the Start Application is checked, the printer driver will wait for the application to start and
will then delete the group file.

300
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Start Application sheet

Enable Start Application


On the Start Application tab, you can specify if the driver should launch an application when the
user prints a document. The application can capture the printer messages, or can manipulate the
301
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

generated image files. Please refer to the Messaging Interface, Programming Interface and
Group Files Description section in this manual for more detail.
Check the Enable start application check box to enable the driver to launch an application or
uncheck it to disable the application launching.
If the specified application is already running, the printer driver will not start it again.

Application
The name of the application to be started. You must specify a valid application name and the full
pathname (location of the application exe) (for example: e:\fax\test.exe). The printer driver can
handle long file and directory names.

Start Before Printing


Select this option to start the specified application before the printer driver starts printing.
In this case the application will be able to capture and process the printer messages. Please refer
to the Messaging Interface section in this manual for more detail.

Start After Printing


Select this option to start your application after the printer driver finishes printing. This is the best
solution when the application must manipulate the files that were created. For example: copying
and processing, etc. Information about the generated files is saved by the driver in the group file.
Please refer to the Group Files Description and the Programming Interface section in this
manual for more detail.

Pass Parameters
If this is option is checked, the driver will pass parameters to the application that is started. Please
refer to the Programming Interface section in this manual for more detail.

Show Application Window


Determines how the application will be started. The available selections are:
Normal
Minimized
Hidden

Disable Messaging Interface


Checking this option will stop the driver from broadcasting messages. Please refer to the
Messaging Interface section in this manual for more detail.

302
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The Programming Interface


Programming Interface
The Black Ice printer driver has a programming interface. Through this interface all the printer
settings can be read, changed and written programmatically, however they should never be
accessed directly, just through the designated functions. All these functions are declared in the
devmode.h file and are implemented in the devmode.cpp file.
The printer driver settings are stored in a data structure named BlackIceDEVMODE. The
BlackIceDEVMODE data structure contains information about the device initialization and
environment of a printer.

Windows DEVMODE
The Black Ice Printer Drivers are using a BlackIceDEVMODE data structure based on the default
Windows DEVMODE data structure:
typedef struct _devicemode {
BCHAR dmDeviceName[CCHDEVICENAME];
WORD
dmSpecVersion;
WORD
dmDriverVersion;
WORD
dmSize;
WORD
dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
};
POINTL dmPosition;
};
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BCHAR dmFormName[CCHFORMNAME];
WORD
dmLogPixels;

303
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
}
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
} DEVMODE;

Members OF THE WINDOWS DEVMODE


dmDeviceName
Specifies the the "friendly" name of the printer; for example, "PCL/HP LaserJet" in the
case of a PCL/HP LaserJet. This string is unique among device drivers. Note that this
name may be truncated to fit in the dmDeviceName array.
dmSpecVersion
Specifies the version number of the initialization data specification on which the structure
is based. To ensure the correct version is used for any operating system, use
DM_SPECVERSION.
dmDriverVersion
Specifies the printer driver version number assigned by the printer driver developer.
dmSize
Specifies the size, in bytes, of the DEVMODE structure, not including any private driverspecific data that might follow the structure's public members. Set this member to
sizeof(DEVMODE) to indicate the version of the DEVMODE structure being used.
dmDriverExtra
Contains the number of bytes of private driver-data that follow this structure. If a device
driver does not use device-specific information, set this member to zero.
dmFields
Specifies whether certain members of the DEVMODE structure have been initialized. If a
member is initialized, its corresponding bit is set, otherwise the bit is clear. A printer
driver supports only those DEVMODE members that are appropriate for the printer
technology.
The following values are defined, and are listed here with the corresponding structure
members.
Value
DM_ORIENTATION

Structure member
dmOrientation

304
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DM_PAPERSIZE
DM_PAPERLENGTH
DM_PAPERWIDTH
DM_POSITION
DM_SCALE
DM_COPIES
DM_DEFAULTSOURCE
DM_PRINTQUALITY
DM_COLOR
DM_DUPLEX
DM_YRESOLUTION
DM_TTOPTION
DM_COLLATE
DM_FORMNAME
DM_LOGPIXELS
DM_BITSPERPEL
DM_PELSWIDTH
DM_PELSHEIGHT
DM_DISPLAYFLAGS
DM_NUP
DM_DISPLAYFREQUENCY
DM_ICMMETHOD
DM_ICMINTENT
DM_MEDIATYPE
DM_DITHERTYPE
DM_PANNINGWIDTH
DM_PANNINGHEIGHT

dmPaperSize
dmPaperLength
dmPaperWidth
dmPosition
dmScale
dmCopies
dmDefaultSource
dmPrintQuality
dmColor
dmDuplex
dmYResolution
dmTTOption
dmCollate
dmFormName
dmLogPixels
dmBitsPerPel
dmPelsWidth
dmPelsHeight
dmDisplayFlags
dmNup
dmDisplayFrequency
dmICMMethod
dmICMIntent
dmMediaType
dmDitherType
Windows 2000 or later: dmPanningWidth
Windows 2000 or later: dmPanningHeight

dmOrientation
For printer devices only, selects the orientation of the paper. This member can be either
DMORIENT_PORTRAIT (1) or DMORIENT_LANDSCAPE (2).
dmPaperSize
For printer devices only, selects the size of the paper to print on. This member can be set
to zero if the length and width of the paper are both set by the dmPaperLength and
dmPaperWidth members. Otherwise, the dmPaperSize member can be set to one of the
following predefined values.
#define DMPAPER_FAX
#define DMPAPER_VARIABLE
#define DMPAPER_VARIABLE_PIXEL
#define DMPAPER_LETTER
#define DMPAPER_LETTERSMALL

DMPAPER_USER+1
DMPAPER_USER+2
DMPAPER_USER+3
1
2

/* Letter 8 1/2 x 11 in
/* Letter Small 8 1/2 x 11 in

305
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

*/
*/

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

DMPAPER_TABLOID
3
DMPAPER_LEDGER
4
DMPAPER_LEGAL
5
DMPAPER_STATEMENT
6
DMPAPER_EXECUTIVE
7
DMPAPER_A3
8
DMPAPER_A4
9
DMPAPER_A4SMALL
10
DMPAPER_A5
11
DMPAPER_B4
12
DMPAPER_B5
13
DMPAPER_FOLIO
14
DMPAPER_QUARTO
15
DMPAPER_10X14
16
DMPAPER_11X17
17
DMPAPER_NOTE
18
DMPAPER_ENV_9
19
DMPAPER_ENV_10
20
DMPAPER_ENV_11
21
DMPAPER_ENV_12
22
DMPAPER_ENV_14
23
DMPAPER_CSHEET
24
DMPAPER_DSHEET
25
DMPAPER_ESHEET
26
DMPAPER_ENV_DL
27
DMPAPER_ENV_C5
28
DMPAPER_ENV_C3
29
DMPAPER_ENV_C4
30
DMPAPER_ENV_C6
31
DMPAPER_ENV_C65
32
DMPAPER_ENV_B4
33
DMPAPER_ENV_B5
34
DMPAPER_ENV_B6
35
DMPAPER_ENV_ITALY
36
DMPAPER_ENV_MONARCH
37
DMPAPER_ENV_PERSONAL
38
DMPAPER_FANFOLD_US
39
DMPAPER_FANFOLD_STD_GERMAN 40
DMPAPER_FANFOLD_LGL_GERMAN 41
DMPAPER_ISO_B4
42
DMPAPER_JAPANESE_POSTCARD
43
DMPAPER_9X11
44
DMPAPER_10X11
45
DMPAPER_15X11
46
DMPAPER_ENV_INVITE
47
DMPAPER_RESERVED_48
48
DMPAPER_RESERVED_49
49
DMPAPER_LETTER_EXTRA
50
DMPAPER_LEGAL_EXTRA
51
DMPAPER_TABLOID_EXTRA
52
DMPAPER_A4_EXTRA
53
DMPAPER_LETTER_TRANSVERSE
54
DMPAPER_A4_TRANSVERSE
55
DMPAPER_LETTER_EXTRA_TRANSVERSE
DMPAPER_A_PLUS
57
DMPAPER_B_PLUS
58
DMPAPER_LETTER_PLUS
59
DMPAPER_A4_PLUS
60
DMPAPER_A5_TRANSVERSE
61
DMPAPER_B5_TRANSVERSE
62

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
56
/*
/*
/*
/*
/*
/*

Tabloid 11 x 17 in
Ledger 17 x 11 in
Legal 8 1/2 x 14 in
Statement 5 1/2 x 8 1/2 in
Executive 7 1/4 x 10 1/2 in
A3 297 x 420 mm
A4 210 x 297 mm
A4 Small 210 x 297 mm
A5 148 x 210 mm
B4 (JIS) 257 x 364 mm
B5 (JIS) 182 x 257 mm
Folio 8 1/2 x 13 in
Quarto 215 x 275 mm
10 x 14 in
11 x 17 in
Note 8 1/2 x 11 in
Envelope #9 3 7/8 x 8 7/8 in
Envelope #10 4 1/8 x 9 1/2 in
Envelope #11 4 1/2 x 10 3/8 in
Envelope #12 4 3/4 x 11 in
Envelope #14 5 x 11 1/2 in
C size sheet
D size sheet
E size sheet
Envelope DL 110 x 220 mm
Envelope C5 162 x 229 mm
Envelope C3 324 x 458 mm
Envelope C4 229 x 324 mm
Envelope C6 114 x 162 mm
Envelope C65 114 x 229 mm
Envelope B4 250 x 353 mm
Envelope B5 176 x 250 mm
Envelope B6 176 x 125 mm
Envelope 110 x 230 mm
Envelope Monarch 3 7/8 x 7 1/2 in
6 3/4 Envelope 3 5/8 x 6 1/2 in
US Standard Fanfold 14 7/8 x 11 in
German Standard Fanfold 8 1/2 x 12
German Legal Fanfold 8 1/2 x 13 in
B4 (ISO) 250 x 353 mm
Japanese Postcard 100 x 148 mm
9 x 11 in
10 x 11 in
15 x 11 in
Envelope Invite 220 x 220 mm
RESERVED--DO NOT USE
RESERVED--DO NOT USE
Letter Extra 9 1/2 x 12 in
Legal Extra 9 1/2 x 15 in
Tabloid Extra 11.69 x 18 in
A4 Extra 9.27 x 12.69 in
Letter Transverse 8 1/2 x 11 in
A4 Transverse 210 x 297 mm
/*Letter Extra Transverse 9 1/2x12
SuperA/SuperA/A4 227 x 356 mm
SuperB/SuperB/A3 305 x 487 mm
Letter Plus 8.5 x 12.69 in
A4 Plus 210 x 330 mm
A5 Transverse 148 x 210 mm
B5 (JIS) Transverse 182 x 257 mm

306
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
in */
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
in*/
*/
*/
*/
*/
*/
*/

#define DMPAPER_A3_EXTRA
#define DMPAPER_A5_EXTRA

63
64

/* A3 Extra 322 x 445 mm


/* A5 Extra 174 x 235 mm

#define DMPAPER_A0
#define DMPAPER_A1

DMPAPER_USER+4 /* A0 840 x 1180 mm


DMPAPER_USER+5 /* A0 594 x 840 mm

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

DMPAPER_USER+6
DMPAPER_USER+7
DMPAPER_USER+8
DMPAPER_USER+9
DMPAPER_USER+11
DMPAPER_USER+12
DMPAPER_USER+13
DMPAPER_USER+14
DMPAPER_USER+15
DMPAPER_USER+16
DMPAPER_USER+17
DMPAPER_USER+18

DMPAPER_ASHEET
DMPAPER_BSHEET
DMPAPER_FSHEET
DMPAPER_GSHEET
DMPAPER_HSHEET
DMPAPER_JSHEET
DMPAPER_KSHEET
DMPAPER_AASHEET
DMPAPER_BASHEET
DMPAPER_CASHEET
DMPAPER_DASHEET
DMPAPER_EASHEET

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

A Sheet 215 x 279


B Sheet 239 x 431
F Sheet 711 x 1016
G Sheet 279 x 571
H Sheet 711 x 1117
J Sheet 863 x 1397
K Sheet 1016 x 1592
AA Sheet 228 x 304
BA Sheet 304 x 457
CA Sheet 457 x 609
DA Sheet 609 x 965
EA Sheet 965 x 1219

*/
*/
*/
*/
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm
mm

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

dmPaperLength
For printer devices only, this overrides the length of the paper specified by the
dmPaperSize member, either for custom paper sizes or for devices such as dot-matrix
printers that can print on a page of arbitrary length. These values, along with all other
values in this structure that specify a physical length, are in tenths of a millimeter.
dmPaperWidth
For printer devices only, this overrides the width of the paper specified by the
dmPaperSize member.
dmPosition
Windows 95/98/ME, Windows 2000/XP or later: For display devices only, a POINTL
structure that indicates the positional coordinates of the display device in reference to the
desktop area. The primary display device is always located at coordinates (0,0).
dmScale
Specifies the factor by which the printed output is to be scaled. The apparent page size is
scaled from the physical page size by a factor of dmScale/100. For example, a letter-sized
page with a dmScale value of 50 will contain as much data as a 17 by 22 inch page,
because the output text and graphics would be half their original height and width.
dmCopies
Selects the number of copies printed if the device supports multiple-page copies.
dmDefaultSource
Specifies the paper source. To retrieve a list of the available paper sources for a printer,
use the DeviceCapabilities function with the DC_BINS flag.
This member can be one of the following values, or it can be a device-specific value
greater than or equal to DMBIN_USER.
DMBIN_ONLYONE
DMBIN_LOWER
DMBIN_MIDDLE
DMBIN_MANUAL
DMBIN_ENVELOPE
307
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DMBIN_ENVMANUAL
DMBIN_AUTO
DMBIN_TRACTOR
DMBIN_SMALLFMT
DMBIN_LARGEFMT
DMBIN_LARGECAPACITY
DMBIN_CASSETTE
DMBIN_FORMSOURCE
dmPrintQuality
Specifies the printer resolution. There are four predefined device-independent values:
DMRES_HIGH
DMRES_MEDIUM
DMRES_LOW
DMRES_DRAFT
If a positive value is specified, it specifies the number of dots per inch (DPI) and is
therefore device dependent.
dmColor
Switches between color and monochrome on color printers. The following values are
possible:
DMCOLOR_COLOR
DMCOLOR_MONOCHROME
dmDuplex
Selects duplex or double-sided printing for printers capable of duplex printing. The
following values are possible:
Value
DMDUP_SIMPLEX
DMDUP_HORIZONTAL
DMDUP_VERTICAL

Meaning
Normal (non-duplex) printing.
Short-edge binding, that is, the long edge of
the page is horizontal.
Long-edge binding, that is, the long edge of
the page is vertical.

dmYResolution
Specifies the y-resolution, in dots per inch, of the printer. If the printer initializes this
member, the dmPrintQuality member specifies the x-resolution, in dots per inch of the
printer.
dmTTOption
Specifies how TrueType fonts should be printed. This member can be one of the
following values.
308
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Value
DMTT_BITMAP

Meaning
Prints TrueType fonts as graphics. This is the default
action for dot-matrix printers.
DMTT_DOWNLOAD
Downloads TrueType fonts as soft fonts. This is the
default action for Hewlett-Packard printers that use
Printer Control Language (PCL).
DMTT_DOWNLOAD_OUTLINE Window 95/98, Windows NT 4.0, and later:
Downloads TrueType fonts as outline soft fonts.
DMTT_SUBDEV
Substitutes device fonts for TrueType fonts. This is the
default action for PostScript printers.
dmUnusedPadding
Used to align the structure to a DWORD boundary. This should not be used or
referenced. Its name and usage is reserved and can change in future releases.
dmCollate
Specifies whether collation should be used when printing multiple copies. (This member is
ignored unless the printer driver indicates support for collation by setting the dmFields
member to DM_COLLATE.) This member can be be one of the following values.
Value
Meaning
DMCOLLATE_TRUE Collate when printing multiple copies.
DMCOLLATE_FALSE Do not collate when printing multiple copies.
Using DMCOLLATE_TRUE provides faster, more efficient output for collation, since the
data is sent to the device driver just once, no matter how many copies are required. The
printer is told to simply print the page again.
dmFormName
Windows XP/W2K and NT or later: Specifies the name of the form to use; for example,
"Letter" or "Legal". A complete set of names can be retrieved by using the EnumForms
function.
Windows 95: Printer drivers do not use this member.
dmLogPixels
Specifies the number of pixels per logical inch. Printer drivers do not use this member.
dmBitsPerPel
Specifies the color resolution, in bits per pixel, of the display device (for example: 4 bits
for 16 colors, 8 bits for 256 colors, or 16 bits for 65,536 colors). For example, display
drivers use this member in the ChangeDisplaySettings function. Printer drivers do not
use this member.
dmPelsWidth
309
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Specifies the width, in pixels, of the visible device surface. For example, display drivers
use this member in the ChangeDisplaySettings function. Printer drivers do not use this
member.
dmPelsHeight
Specifies the height, in pixels, of the visible device surface. For example, display drivers
use this member in the ChangeDisplaySettings function. Printer drivers do not use this
member.
dmDisplayFlags
Specifies the device's display mode. This member can be a combination of the following
values.
Value
DM_GRAYSCALE
DM_INTERLACED

Meaning
Specifies that the display is a non-color device. If this flag is not
set, color is assumed.
Specifies that the display mode is interlaced. If the flag is not set,
non-interlaced is assumed.

For example, display drivers use this member in the ChangeDisplaySettings function.
Printer drivers do not use this member.
dmNup
Specifies where the NUP is done. It can be one of the following.
Value
DMNUP_SYSTEM
DMNUP_ONEUP

Meaning
The print spooler does the NUP.
The application does the NUP.

dmDisplayFrequency
Specifies the frequency, in hertz (cycles per second), of the display device in a particular
mode. This value is also known as the display device's vertical refresh rate. Display drivers
use this member. For example, it is used in the ChangeDisplaySettings function. Printer
drivers do not use this member.
When you call the EnumDisplaySettings function, the dmDisplayFrequency member
may return with a value of 0 or 1. These values represent the display hardware's default
refresh rate. This default rate is typically set by switches on a display card or computer
motherboard or by a configuration program that does not use Win32 display functions
such as ChangeDisplaySettings.
dmICMMethod
Windows 95/98/ME and later; Windows XP/W2K and NT or later:
Specifies how ICM is handled. For a non-ICM application, this member determines if ICM
is enabled or disabled. For ICM applications, the system examines this member to
determine how to handle ICM support. This member can be one of the following
310
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

predefined values, or a driver-defined value greater than or equal to the value of


DMICMMETHOD_USER.
Value
DMICMMETHOD_NONE
DMICMMETHOD_SYSTEM
DMICMMETHOD_DRIVER
DMICMMETHOD_DEVICE

Meaning
Specifies that ICM is disabled.
Specifies that ICM is handled by Windows.
Specifies that ICM is handled by the device driver.
Specifies that ICM is handled by the destination
device.

The printer driver must provide a user interface for setting this member. Most printer
drivers support only the DMICMMETHOD_SYSTEM or DMICMMETHOD_NONE
value. Drivers for PostScript printers support all values.
dmICMIntent
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies which color matching method or intent should be used by default. This member
is primarily for non-ICM applications. ICM applications can establish intents by using the
ICM functions. This member can be one of the following predefined values or a driver
defined value greater than or equal to the value of DMICM_USER.
Value
Meaning
DMICM_ABS_COLORIMETRIC Color matching should optimize to match the exact
color requested without white point mapping. This
value is most appropriate for use with proofing.
DMICM_COLORMETRIC
Color matching should optimize to match the exact
color requested. This value is most appropriate for use
with business logos or other images when an exact
color match is desired.
DMICM_CONTRAST
Color matching should optimize for color contrast.
This value is the most appropriate choice for scanned
or photographic images when dithering is desired.
DMICM_SATURATE
Color matching should optimize for color saturation.
This value is the most appropriate choice for business
graphs when dithering is not desired.
dmMediaType
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies the type of media being printed on. The member can be one of the following
predefined values or a driver-defined value greater than or equal to the value of
DMMEDIA_USER.
Value

Meaning

311
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DMMEDIA_STANDARD
Plain paper.
DMMEDIA_GLOSSY
Glossy paper.
DMMEDIA_TRANSPARENCY Transparent film.
Whistler:
To retrieve a list of the available media types for a printer, use the DeviceCapabilities
function with the DC_MEDIATYPES flag.
dmDitherType
Windows 95/98/ME, Windows XP/W2K and NT or later:
Specifies how dithering is to be done. The member can be one of the following predefined
values, or a driver-defined value greater than or equal to the value of
DMDITHER_USER.
Value
DMDITHER_NONE
DMDITHER_COARSE
DMDITHER_FINE
DMDITHER_LINEART

Meaning
No dithering.
Dithering with a coarse brush.
Dithering with a fine brush.
Line art dithering, a special dithering method that
produces well defined borders between black, white,
and gray scalings. It is not suitable for images that
include continuous graduations in intensisty and hue,
such as scanned photographs.
DMDITHER_ERRORDIFFUSION Windows 95/98/ME: Dithering in which an
algorithm is used to spread, or diffuse, the error of
approximating a specified color over adjacent pixels.
In contrast, DMDITHER_COARSE,
DMDITHER_FINE, and DMDITHER_LINEART
use patterned half toning to approximate a color..
DMDITHER_GRAYSCALE
Device does gray scaling.
dmReserved1
Windows 95/98/ME, Windows XP/W2K and NT or later: Not used; must be zero.
dmReserved2
Windows 95/98/ME, Windows XP/W2K and NT or later: Not used; must be zero.

Black Ice DEVMODE


The BlackIceDEVMODE is defined in the 'devmode.h' file located in the
Resource Toolkit under the Install\InstallDll\ directory. (by default
C:\Program Files\Black Ice Software, Inc\TIFF Printer Driver Resource
Toolkit\Install\InstallDLL\devmode.h)

312
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The BlackIceDEVMODE data structure contains the Windows DEVMODE and additional members:
On Windows XP/W2K and NT the application that uses this structure should set
the structure member alignment to 1 in the project settings and the following
value should be defined in the project: _WIN32_WINNT=0x0400. Without this,
the size of the of the BlackIceDEVMODE structure will not be correct and some
structure members will be shifted.
The BlackIceDEVMODE is defined in the 'devmode.h' file located in the Resource Toolkit under the
Install\InstallDll\ directory. (by default C:\Program Files\Black Ice Software, Inc\TIFF Printer Driver
Resource Toolkit\Install\InstallDLL\devmode.h)
Access the members of the BlackIceDEVMODE through the functions defined in the devmode.cpp file,
located in the RTK in the Install\InstallDll\ directory.

Example:
The InterfaceName member of the devmode can be accessed through the
DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode) and
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR InterfaceName);
TCHAR InterfaceName[MAX_PATH]:
A TCHAR string type member.
The InterfaceName member stores the name of the messaging interface.
For Windows 95/98/ME is the name of the Windows Message broadcasted by
the driver.
Access functions:
LPCTSTR
DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR
InterfaceName);

The definition of the BlackIceDEVMODE structure


typedef struct
{
DEVMODE
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
TCHAR
DWORD
DWORD
TCHAR
TCHAR

DM;
BliceMode;
Format;
ColorMode;
FAXheader;
LossRatio;
Dithering;
Brightness;
PaperWidthInPixels;
PaperHeightInPixels;
ApplicationPath[MAX_PATH];
LaunchFlags;
FileNameGenerationFlags;
OutputDirectory[MAX_PATH];
ImageFileName[MAX_PATH];

313
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TCHAR
TCHAR
TCHAR
TCHAR
TCHAR
TCHAR
TCHAR
DWORD
DWORD
TCHAR
TCHAR
}BlackIceDEVMODE,

FileNamePrefix[MAX_PREFIX_LENGTH+1];
FileExtension[MAX_FILE_EXTENSION_LENGTH+1];
InterfaceName[MAX_PATH];
INIFileName[MAX_PATH];
TIFFDLLName[MAX_PATH];
JPEGDLLName[MAX_PATH];
ResourceDLLName[MAX_PATH];
SessionID;
UserFlags;
szUser1[128];
szUser2[128];
*LPBlackIceDEVMODE;

MEMBERS OF THE BlackIceDEVMODE STRUCTURE


All the members can be read, changed or set programmatically; however they should never be
accessed directly, only through the designated functions. All these functions are declared in the
devmode.h file and are implemented in the devmode.cpp file.
DEVMODE DM :
The Windows DEVMODE data structure.
DWORD BliceMode :
A DWORD type member.
Each bit of BliceMode represents a flag used by the printer driver. If the bit is set the value
is TRUE, if it is not the value is FALSE. The flags and their values are the following:
BLF_INTERNETTIFF
0x00000004
BLF_PAGENUMBERING
0x00000008
BLF_REVERSEFILLORDER
0x00000010
BLF_MULTIIMAGE
0x00000020
BLF_WRITETEXT
0x00000040
BLF_UNICODETEXT
0x00000080
BLF_MAILMERGE
0x00000100
BLF_ADVANCEDTEXT
0x00000200
BLF_DISABLEIMAGE
0x00000400
BLF_DISABLEGROUPFILE
0x00000800
BLF_ADOBEDETECT
0x00001000
BLF_SENDMESSAGE
0x00002000
BLF_ENABLETIFFDLL
0x00004000
BLF_ENABLEJPEGDLL
0x00008000
BLF_FAXOUTPUT
0x00010000
BLF_GLYPHSUPPORT
0x00020000
BLF_ROTATEPAPER
0x00040000
BLF_DELETEGROUPFILE
0x00080000
BLF_KEEPFILES
0x00100000
BLF_ADVANCEDPAPERSIZE
0x00200000
BLF_CUSTOMEXT
0x00400000

Description of the flags:


314
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BLF_INTERNETTIFF : The value of the Internet TIFF format checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsInternetTiffFormatEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableInternetTiffFormat(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

BLF_PAGENUMBERING: The value of the Add Page Numbering Tag checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsPageNumberingEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnablePageNumbering(BlackIceDEVMODE* pDevMode);
DEVMODE_DisablePageNumbering(BlackIceDEVMODE* pDevMode);

BLF_REVERSEFILLORDER: The value of the Reverse Bit Order in TIFF checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsReverseBitOrderEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableReverseBitOrder(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableReverseBitOrder(BlackIceDEVMODE* pDevMode);

BLF_MULTIIMAGE: The value of the Create Multipage Image checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsAppendImageEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableAppendImage(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAppendImage(BlackIceDEVMODE* pDevMode);

BLF_WRITETEXT: The value of the WriteText File checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableWriteText(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableWriteText(BlackIceDEVMODE* pDevMode);

BLF_UNICODETEXT: Used only by the NT driver.


BLF_MAILMERGE: The value of the Mail Merge checkbox.
Access functions:
BOOL
void
void

DEVMODE_IsMailMergeEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableMailMerge(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableMailMerge(BlackIceDEVMODE* pDevMode);

BLF_ADVANCEDTEXT: The value of the Save position and style checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsAdvancedTextEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableAdvancedText(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAdvancedText(BlackIceDEVMODE* pDevMode);

BLF_DISABLEIMAGE: The value of the Disable Image checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsImageDisabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableDisableImage(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableDisableImage(BlackIceDEVMODE* pDevMode);

315
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BLF_DISABLEGROUPFILE: The value of the Disable Group File checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsGroupFileDisabled(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableGroupFile(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableGroupFile(BlackIceDEVMODE* pDevMode);

BLF_SENDMESSAGE: The value of the Disable the Messaging Interface checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsMessagingInterfaceEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableMessagingInterface(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableMessagingInterface(BlackIceDEVMODE* pDevMode);

BLF_ENABLETIFFDLL: If set the using of the TIFF32.DLL is enabled. Can be set only
programmatically.
Access functions:
BOOL
void
void

DEVMODE_IsTiffDllEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableTiffDll(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableTiffDll(BlackIceDEVMODE* pDevMode);

BLF_FAXOUTPUT: The value of the Create Faxable Image checkbox


Access functions:
BOOL
void
void

DEVMODE_IsFaxOutputEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableFaxOutput(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableFaxOutput(BlackIceDEVMODE* pDevMode);

BLF_GLYPHSUPPORT: The value of the Eastern Character Support checkbox


Access functions:
BOOL
void
void

DEVMODE_IsEasternCharSupportEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableEasternCharSupport(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableEasternCharSupport(BlackIceDEVMODE* pDevMode);

BLF_ROTATEPAPER: The value of the Rotate Landscape image to Portrait


checkbox
Access functions:
BOOL
void
void

DEVMODE_IsRotatePaperEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableRotatePaper(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableRotatePaper(BlackIceDEVMODE* pDevMode);

BLF_DELETEGROUPFILE: The value of the Delete Group File After Printing


checkbox
Access functions:
BOOL
void
void

DEVMODE_IsDeleteGroupFileEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableDeleteGroupFile(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

BLF_KEEPFILES: The value of the Keep existing files checkbox


Access functions:
BOOL
void

DEVMODE_IsKeepExistingFilesEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableKeepExistingFiles(BlackIceDEVMODE* pDevMode);

316
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void

DEVMODE_DisableKeepExistingFiles(BlackIceDEVMODE* pDevMode) ;

BLF_ADVANCEDPAPERSIZE: The value of the Advanced Papersize checkbox


Access functions:
BOOL
void
void

DEVMODE_IsAdvancedPaperSizeEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

BLF_CUSTOMEXT: The value of the Use Custom Extension checkbox


Access functions:
BOOL
void
void

DEVMODE_IsCustomExtensionEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableCustomExtension(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableCustomExtension(BlackIceDEVMODE* pDevMode)

DWORD Format :
A DWORD type member.
Specifies the file format used by the driver. The available file formats are enumerated in
the devmode.h
enum TEFileFormats{ FFR_BMP,
FFR_PCX,
FFR_DCX,
FFR_TIFF_UNC,
FFR_TIFF_G31D,
FFR_TIFF_G31DNOEOL,
FFR_TIFF_G32D,
FFR_TIFF_G4,
FFR_TIFF_PACK,
FFR_TIFF_LZW,
FFR_TIFF_JPEG,
FFR_CALS,
FFR_RAW_G31D,
FFR_RAW_G31DNOEOL,
FFR_RAW_G32D,
FFR_RAW_G4,
FFR_JPEG,
FFR_JPEG_LAB,
FFR_EMF,
FFR_MMR,
FFR_END
};

Access functions:
DWORD DEVMODE_GetFileFormat(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileFormat(BlackIceDEVMODE* pDevMode, DWORD Format);

NOTE: In the Monochrome driver only the monochrome file formats are available, such as
TIFF. The Metafile driver creates only Enhanced Metafile Format (EMF).
DWORD ColorMode:
A DWORD type member.
Specifies the color depth used by the printer. The values are enumerated in the devmode.h
317
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

enum ColorMode {

BITS_1,
BITS_8GRAY,
BITS_8,
BITS_24,
BITS_END

};

Access functions:
DWORD DEVMODE_GetColorDepth(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetColorDepth(BlackIceDEVMODE* pDevMode, DWORD ColorDepth);

NOTE: In the Monochrome driver only the BITS_1 ColorMode is available. The Metafile
driver accepts only the BITS_24 value..
DWORD FAXheader:
A DWORD type member.
Specifies the height in pixels of the fax header.
Access functions:
DWORD DEVMODE_GetFaxHeader(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFaxHeader(BlackIceDEVMODE* pDevMode, DWORD nPixels);

DWORD LossRatio:
A DWORD type member.
Specifies the loss ratio of the jpeg image.
Access functions:
DWORD DEVMODE_GetLossRatio(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetLossRatio(BlackIceDEVMODE* pDevMode, DWORD dwLossRatio);

DWORD Dithering:
A DWORD type member.
Specifies the dithering method for the monochrome image. The available values are
defined in the devmode.h
#define
#define
#define
#define
#define
#define

DITHER_NONE
DITHER_FS4
DITHER_JJN
DITHER_SMOOTH
DITHER_SHARP
DITHER_STUCKI

0
1
2
3
4
5

Access functions:
DWORD DEVMODE_GetDithering(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetDithering(BlackIceDEVMODE* pDevMode, DWORD dwDithering);

DWORD Brightness:
A DWORD type member.
Specifies the brightness value.
318
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Access functions:
DWORD DEVMODE_GetBrightness(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetBrightness(BlackIceDEVMODE* pDevMode, DWORD dwBrightness);

DWORD PaperWidthInPixels:
A DWORD type member.
Specifies the Paper Width value in pixels.
Access functions:
DWORD DEVMODE_GetPageWidthInPixels(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetPaperWidthInPixel(BlackIceDEVMODE* pDevMode, DWORD nPixels);

DWORD PaperHeightInPixels:
A DWORD type member.
Specifies the Paper Width value in pixels.
Access functions:
DWORD DEVMODE_GetPageHeightInPixels(BlackIceDEVMODE* pDevMode);
void DEVMODE_SetPaperHeightInPixel(BlackIceDEVMODE* pDevMode, DWORD nPixels);

TCHAR ApplicationPath[MAX_PATH]:
A string type member.
Specifies the name and the path of the application to be started after printing.
Access functions:
LPCTSTR DEVMODE_GetApplicationPath(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetApplicationPath(BlackIceDEVMODE* pDevMode, LPCTSTR
ApplicationPath);

DWORD LaunchFlags :
A DWORD type member.
Each bit of LaunchFlags represents a flag used by the printer driver. If the bit is set the
value is TRUE, if it is not the value is FALSE. The flags and their values are the
following:
BLF_LAUNCHAPP
0x00000001
BLF_STARTBEFOREPRINT
0x00000002
BLF_PASSPARAMETERS
0x00000004
BLF_STARTNORMAL
0x00000008
BLF_STARTMINIMIZED
0x00000010
BLF_STARTHIDDEN
0x00000020

BLF_LAUNCHAPP: The value of the Enable Start Application checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsStartApplicationEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartApplication(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartApplication(BlackIceDEVMODE* pDevMode);

319
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BLF_STARTBEFOREPRINT: The value of the Start Before Printing and Start


After Printing radio button. If TRUE the Start Before Printing radio button is selected,
otherwise the Start After Printing radio button is selected.
Access functions:
BOOL
void
void

DEVMODE_IsStartBeforePrint(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartBeforePrint(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartBeforePrint(BlackIceDEVMODE* pDevMode) ;

BLF_PASSPARAMETERS: The value of the Pass Parameters checkbox.


Access functions:
BOOL
void
void

DEVMODE_IsPassParametersEnabled(BlackIceDEVMODE* pDevMode);
DEVMODE_EnablePassParameters(BlackIceDEVMODE* pDevMode);
DEVMODE_DisablePassParameters(BlackIceDEVMODE* pDevMode) ;

BLF_STARTNORMAL: The value of the Normal radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartNormal(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartNormal(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartNormal(BlackIceDEVMODE* pDevMode) ;

BLF_STARTMINIMIZED: The value of the Minimized radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartMinimized(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartMinimized(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartMinimized(BlackIceDEVMODE* pDevMode) ;

BLF_STARTHIDDEN: The value of the Hidden radio button.


Access functions:
BOOL
void
void

DEVMODE_IsStartHidden(BlackIceDEVMODE* pDevMode);
DEVMODE_EnableStartHidden(BlackIceDEVMODE* pDevMode);
DEVMODE_DisableStartHidden(BlackIceDEVMODE* pDevMode) ;

DWORD FileNameGenerationFlags :
A DWORD type member.
The FileNameGenerationFlags member represents the method used by the printer driver
to generate the files. This setting is in the Name generation Method combo. The
available values are defined in the devmode.h and must be one of the followings:
enum {

FILENAME_PREFIX_DEVMODE,
FILENAME_PREFIX_REGISTRY,
FILENAME_PREFIX_INI,
FILENAME_EXACT_DEVMODE,
FILENAME_EXACT_REGISTRY,
FILENAME_EXACT_INI,
FILENAME_DOCUMENT_NAME,
FILENAME_LAST
};

Access functions:
DWORD DEVMODE_GetFileGenerationMethod(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileGenerationMethod(BlackIceDEVMODE* pDevMode,
DWORD dwGenMethod);

320
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TCHAR OutputDirectory[MAX_PATH]:
A TCHAR string type member.
The OutputDirectory member stores the path where the printer driver generates the files.
Access functions:
void
DEVMODE_SetOutputDirectory(BlackIceDEVMODE* pDevMode, LPCTSTR
OutputDir);
LPCTSTR DEVMODE_GetOutputDirectory(BlackIceDEVMODE* pDevMode);

TCHAR FileImageName[MAX_PATH]:
A TCHAR string type member.
The FileImageName member stores the file name if the file generation method is Exact
Filename.
Access functions:
LPCTSTR
DEVMODE_GetImageFileName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetImageFileName(BlackIceDEVMODE* pDevMode, LPCTSTR
ImageFileName);

TCHAR FileNamePrefix[MAX_PREFIX_LENGTH +1]:


A TCHAR string type member.
The FileNamePrefix member stores the prefix of the generated file name if the file
generation method is FILENAME_PREFIX_DEVMODE. The max length of the prefix is 3
characters, if it is longer, it will be truncated to the first 3 characters.
Access functions:
LPCTSTR
DEVMODE_GetFileNamePrefix(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileNamePrefix(BlackIceDEVMODE* pDevMode, LPCTSTR
FileNamePrefix);

TCHAR FileExtension[MAX_FILE_EXTENSION_LENGTH +1]:


A TCHAR string type member.
The FileExtension member stores the extension of the generated file name if the file
generation method is FILENAME_PREFIX_DEVMODE. The max length of the extension is 3
characters, if it is longer, it will be truncated to the first 3 characters.
Access functions:
LPCTSTR
DEVMODE_GetFileExtension(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetFileExtension(BlackIceDEVMODE* pDevMode, LPCTSTR
FileExtension);

TCHAR InterfaceName[MAX_PATH]:
A TCHAR string type member.
The InterfaceName member stores the name of the messaging interface. For Windows
95/98/ME is the name of the Windows Message broadcasted by the driver.
Access functions:
LPCTSTR

DEVMODE_GetInterfaceName(BlackIceDEVMODE* pDevMode);

321
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

void
DEVMODE_SetInterfaceName(BlackIceDEVMODE* pDevMode, LPCTSTR
InterfaceName);

TCHAR INIFileName[MAX_PATH]:
A TCHAR string type member.
The INIFileName member stores the name of the INI file which contains the information
depending on the filename generation information.
For FILENAME_PREFIX_INI,

the content of the INI file should be like:

[Black Ice Color Printer]


File name prefix=ABC
File name extension=TIFF
For FILENAME_EXACT_INI,

the content of the INI file should be like:

[Black Ice Color Printer]


File name =C:\Output\page.tiff
Access functions:
LPCTSTR
DEVMODE_GetINIFileName(BlackIceDEVMODE* pDevMode);
Void
DEVMODE_SetINIFileName(BlackIceDEVMODE* pDevMode, LPCTSTR
INIFileName);

TCHAR TIFFDLLName[MAX_PATH]:
A TCHAR string type member.
The TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL
encodes the TIFF files. The file is needed for TIFF output.
Access functions:
LPCTSTR
DEVMODE_GetTIFFDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetTIFFDLLName (BlackIceDEVMODE* pDevMode, LPCTSTR
TIFFDLLName);

TCHAR JPEGDLLName[MAX_PATH]:
A TCHAR string type member.
The JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL
encodes the Jpeg files. The file is needed for Jpeg output.
Access functions:
LPCTSTR
DEVMODE_GetJPEGDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetJPEGDLLName (BlackIceDEVMODE* pDevMode, LPCTSTR
JPEGDLLName);

TCHAR ResourceDLLName[MAX_PATH]:
A TCHAR string type member.
322
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The resources of the driver such as the driver property dialogs - are stored in a separate
DLL file. The look of the property sheets of the printer driver can be modified by moving
or hiding controls. Also, all the names of the paper formats, DPI setting and file name
generation methods are stored in this DLL and can be changed as well.
The ResourceDLLName member stores the name and path of the driver resource DLL.
Access functions:
LPCTSTR
DEVMODE_GetResourceDLLName(BlackIceDEVMODE* pDevMode);
void
DEVMODE_SetResourceDLLName(BlackIceDEVMODE* pDevMode, LPCTSTR
ResourceDLLName);

DWORD SessionID:
Reserverd.
DWORD UserFlags::
A DWORD value.
Reserved for extra programming possibilities.
TCHAR szUser1[128]:
A TCHAR string type member.
Reserved for extra programming possibilities.
TCHAR szUser2[128]:
A TCHAR string type member.
Reserved for extra programming possibilities.

323
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Messaging Interface
All the Black Ice Printer Drivers have a messaging interface. The printer driver can communicate
with applications through this interface. The applications capture and process the messages sent
by the driver.
The driver can communicate with an application two different ways.
4. Method I: Through the WM_COPYDATA Windows message.
The WM_COPYDATA message is sent by the driver to a specific window. The driver has
to know the applications window handle. To pass the window handle to the driver, the
application, when it starts, should write its window handle using the WritePrinterData()
function to the PRINTER_DATA_WINDOW_HANDLE_KEY key.
The driver sends a WM_COPYDATA message to the applications window. The
application extracts the information from the data structure arrived with the message.
Before the application exits, it should overwrite the window handle in the registry to 0 by
setting the PRINTER_DATA_WINDOW_HANDLE_KEY to 0.
5. Method II. Through a windows message registered with RegisterWindowMessage ().
The driver registers a message with the RegisterWindowMessage () function and then
starts broadcasting the message. The application has to register the same message as the
driver. To accomplish this, use the string from the InterfaceName member of the
BlackIceDEVMODE structure. The application will then capture and process the
messages. The data will be written to an ini file by the driver defined in devmode.h.
#define BLACK_ICE_DEFAULT_INIFILE

TEXT("bi_group.ini")

The application will read the ini file when the BLACKICE_MESSAGE_STARTDOC
message arrives in order to get the name of the group file.. The driver writes all the
information about the generated images in the group file. See the Description of the Black
Ice Printer Messages and the Group File Description sections in this manual for more
detail.

The WM_COPYDATA Windows Message


An application sends the WM_COPYDATA message to pass data to another application.
To send this message, call the SendMessage function with the following parameters (do
not call the PostMessage function).
SendMessage(
(HWND) hWnd,
WM_COPYDATA,
(WPARAM) wParam,
(LPARAM) lParam
);

//
//
//
//

handle to destination window


message to send
handle to window (HWND)
data (PCOPYDATASTRUCT)

324
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Parameters
wParam
Handle to the window passing the data.
lParam
Pointer to a COPYDATASTRUCT structure that contains the data to be passed.
Return Values
If the receiving application processes this message, it should return TRUE; otherwise, it should
return FALSE.
Remarks
The data being passed must not contain pointers or other references to objects not accessible to
the application receiving the data.
While this message is being sent, the referenced data must not be changed by another thread of
the sending process.
The receiving application should consider the data read-only. The lParam parameter is valid only
during the processing of the message. The receiving application should not free the memory
referenced by lParam. If the receiving application must access the data after SendMessage
returns, it must copy the data into a local buffer.
When you send a WM_COPYDATA message, SendMessage allocates a block of memory
cbData bytes in size and copies the data from the caller's address space to this block. It then
sends the message to the destination window. When the receiving window procedure processes
this message, the lParam parameter is a pointer to a COPYDATASTRUCT structure that exists
in the address space of the receiving process. The lpData member is a pointer to the copied block
of memory and the address reflects the memory location in the receiving process's address space.

The COPYDATASTRUCT structure


The COPYDATASTRUCT structure contains data to be passed to another application by the
WM_COPYDATA message.
typedef struct tagCOPYDATASTRUCT {
ULONG_PTR dwData;
DWORD
cbData;
PVOID
lpData;
} COPYDATASTRUCT, *PCOPYDATASTRUCT;

Members
325
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

dwData
Specifies data to be passed to the receiving application.
cbData
Specifies the size, in bytes, of the data pointed to by the lpData member.
lpData
Pointer to data to be passed to the receiving application. This member can be NULL.

The BLACKICE_PRINTER_MESSAGE structure


The BLACKICE_PRINTER_MESSAGE structure contains data to be passed to another
application. The data is passed by the WM_COPYDATA message. The dwData member of the
COPYDATASTRUCT structure is a pointer to a BLACKICE_PRINTER_MESSAGE
structure.
The BLACKICE_PRINTER_MESSAGE structure is defined in the devmode.h header file.
typedef struct _BLACKICE_PRINTER_MESSAGE
{
DWORD dwBlackIceFlag;
DWORD dwSize;
DWORD dwMessage;
TCHAR szFileName[MAX_PATH];
TCHAR szInterfaceName[MAX_PATH];
}BLACKICE_PRINTER_MESSAGE;

Members

DWORD dwBlackIceFlag:
This constant value identifies the message. The value of this member should be BLACK_ICE_FLAG
(defined in devmode.h).
DWORD dwSize:
The size of the BLACKICE_PRINTER_MESSAGE structure.
DWORD dwMessage:

The ID of the message. The messages are defined in the devmode.h.


#define BLACKICE_MESSAGE_STARTDOC
0x00000001
#define BLACKICE_MESSAGE_STARTPAGE
0x00000002
#define BLACKICE_MESSAGE_ENDPAGE
0x00000003
#define BLACKICE_MESSAGE_ENDDOC
0x00000004
#define BLACKICE_MESSAGE_ABORT 0x00000005
TCHAR szFileName[MAX_PATH]:
A string passed with the message. The string content depends on the message. It can be the group file
name, the image name, or an error code.

326
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

TCHAR szInterfaceName[MAX_PATH]:
This string identifies a printer driver (can be than more than one printer driver). The printer driver fills
the szInterfaceName[MAX_PATH] member with the value of the InterfaceName member of the
BlackIceDEVMODE structure. When the application captures the WM_COPYDATA message, the
application should compare the InterfaceName member of the designated printer drivers devmode data
structure with the szInterfaceName.

Description of the Black Ice Printer Messages


The BLACKICE_MESSAGE_STARTDOC message:
The driver sends this message when it starts to print a new document.
Method I. When this message arrives the driver writes the name of the group file in the
bi_group.ini file defined in the devmode.h. When this message arrives, the application can
read the name of the group file. The driver will write all other information into this group
file.
#define BLACK_ICE_DEFAULT_INIFILE

TEXT("bi_group.ini")

Method II. With this message the driver sends the name of the group file in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure .

The BLACKICE_MESSAGE_STARTPAGE message:


The driver sends this message at the beginning of each new page.
Method I. Nothing is written to the group file now. The application can increment the
number of pages here.
Method II.
With this message the driver sends the name of the image file in the szFileName member of
the BLACKICE_PRINTER_MESSAGE structure .

The BLACKICE_MESSAGE_ENDPAGE message:


The driver sends this message when it is finished printing a page.
Method I. The name of the image file is already written to the group file. The application
can read the name of the generated image from the group file.
Method II.
With this message the driver sends the name of the image file in the szFileName member of
the BLACKICE_PRINTER_MESSAGE structure .

The BLACKICE_MESSAGE_ENDDOC message:


The driver sends this message when it finishes printing a document.
Method I. When this message arrives the driver is finished printing. If the Delete Group
File after printing option is checked, the group file will be deleted.
327
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Method II. With this message the driver sends the name of the group file in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure.

The BLACKICE_MESSAGE_ABORT message:


The driver sends this message when an error occurs or the user cancels the document printing.
Method I. The driver writes the error code into the group file to the
GROUPFILE_ERROR_KEY section, defined in the devmode.h.
#define GROUPFILE_ERROR_KEY
TEXT("Print status")
Method II. With this message the driver sends the error code as a string in the
szFileName member of the BLACKICE_PRINTER_MESSAGE structure.

328
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Command Line Parameters


The printer driver can start an application before or after printing. This can be set by
checking the Start Application checkbox, or programmatically set the the BLF_LAUNCHAPP flag in
the LaunchFlags member of the devmode of the printer.
If the driver is configured to launch the application after the printing and the Pass
Parameters checkbox is checked. the parameters are passed in the command line to the
application.
The passed parameters are separated by a space character. The string type parameters are
between quotes. The following parameters are passed by the driver:
Document name
- STRING
Group file name
- STRING
Printer name
- STRING
Numer of pages
- NUMBER
Multipage
- NUMBER, the value is 1 of 0. The 1 means the image is
multipage, 0 the image is not multipage
Orientation
- NUMBER, the value is 1 of 0. The 1 means the image orientation
is portrait, 0 the image orientation is landscape.
Examlpe:
MyApp.exe Cutomer.doc customer.grp Black Ice Color 4 0 1

329
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Group File Description


Group files are generated for every document printed unless the Disable Group File option is
set on the File Name Generation sheet of the properties. The group file contains critical
information about the printed images and it offers an easy, simple way to communicate with the
driver. The group file may be created for temporary if the Delete group file after printing option
is set on the File Name Generation sheet of the properties. Please read Delete group file after
printing section for details.

Group File Content.


The following listing is a typical group file.
[Color Printer]
Image Format=JPEG
Append Image Enabled=No
Bits Per Pixel=24
Print status=Printing finished successfully
Total number of pages=3
Document Name=Document1
[Page 1]
FileName=c:\temp\AAA13340001.JPG
TextFileName=c:\temp\AAA13340001.TXT
[Page 2]
FileName=c:\temp\AAA43840002.JPG
TextFileName=c:\temp\AAA43840002.TXT
[Page 3]
FileName=c:\temp\AAA60D30003.JPG
TextFileName=c:\temp\AAA60D30003.TXT

Group file header section


[Color Printer]
The printer driver type. The printer driver type can be Monochrome, Color, or Metafile.
330
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Image Format=JPEG
Image format can be
Microsoft Bitmap format
Paint Brush format
Intel format

Color Fax Format

- BMP"
- "PCX"
- "DCX"
- "TIFF Group 3 1D No EOL"
- "TIFF Uncompressed"
- "TIFF Group 3 2D"
- "TIFF Group 4"
- "TIFF Packed"
- "TIFF LZW"
- "TIFF JPEG"
- "TIFF Group 3 1D"
- "CALS"
- "RAW TIFF Group 3 1D"
- "RAW TIFF Group 3 1D No EOL"
- "RAW TIFF Group 3 2D"
- "RAW TIFF Group 4"
- "JPEG"
- "JPEG L*a*b"
- "Extended Metafile"

Append Image Enabled=No


The Append Image Enabled field shows that the printer driver generated a single files with
multiple images in it, or a separate file for every page. If a single file is generated with multiple
images then there would be a single image per page. Also the file name will be repeated for every
page in the Page section of the group file. See detail below.
Bits Per Pixel=24
The Bits Per Pixel field shows the generated image color depth. The values can be 1 for
monochrome, 8 and 24 for color images.
Print status=Printing finished successfully
The printed job status. In case of failed printing and error message will appear in the status field.
The message "Printing finished successfully" shown on successful printing.
The message "Internal error 99" followed by two numbers shown when an internal error occurs.
Please contact technical support with error number for details.
The message "Out of memory" shown when the driver fail to allocate memory. Resolution is to
add more physical memory and make sure that there is enough disk space for virtual memory.
The message "TIFF32.DLL cannot be loaded" shown if driver failed to load the TIFF3 DLL.
331
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The message "JPEG32.DLL cannot be loaded" shown f driver failed to load the
JPEG DLL.

Total number of pages=3


The total number of pages printed in the print job.

Group file body


For every page printed in the document a page number section is created.
[Page 1]
The page number.
FileName=c:\temp\AAA13340001.JPG
The FileName is the generated raster image file name with full path. If Create a multi page image is
selected on the File Formats sheet, the file name will be the same for every page.
TextFileName=c:\temp\AAA13340001.TXT
The TextFileName is the generated text file name with full path. If Create a multi page image is
selected on the File Formats sheet, the file name will be the same for every page. The driver will create
TextFileName section entry only if Write Text File is selected on the File Formats sheet.

[Page 2]
FileName=c:\temp\AAA43840002.JPG
TextFileName=c:\temp\AAA43840002.TXT

[Page 3]
FileName=c:\temp\AAA60D30003.JPG
TextFileName=c:\temp\AAA60D30003.TXT

332
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Message Capture OCX Control


The Message Capture OCX control is provided to help VB, Delphi, Visual FoxPro programmers
handle printer driver messages easily from their application. The name of the OCX control is
BiPrnDrv.ocx and it should be installed into the SYSTEM directory.
The Capture OCX can be found in the OCX directory in your RTK installation folder.
To redistribute the OCX, you have to register the OCX with regsvr32.exe or with your
installation package.
The OCX does not have any Black Ice DLL or OCX file dependency.
The BiPrnDrv.ocx file loads the following system DLLs:
-MFC42.DLL
-MSVCRT.DLL
-ADVAPI32.DLL
-OLEAUT32.DLL
-KERNEL32.DLL
-GDI32.DLL
-USER32.DLL
-WINSPOOL.DRV
-OLE32.DLL
If any of the above DLL is missing, the BiPrnDrv.ocx will not register correctly.
The Message Capture OCX control does not require a license file.
The OCX control exports the following Properties and Events:

PrinterName Property
This property contains the name of the printer the application wants to capture messages from.

StartDoc event
The StartDoc event is fired when the selected printer starts to print a document. The parameter of this
event is the name (with the full path) of the generated group file.

StartPage event
The StartPage event is fired when the selected printer starts to print a new page. The parameter of this
event is the actual page number.

EndPage event
The EndPage event is fired when the selected printer finishes printing a page. The parameter of this
event is the name (with the full path) of the generated image file.
333
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

EndDoc event
The EndDoc event is fired when the selected printer finishes printing a document. The parameter of this
event is the name (with the full path) of the generated group file.
-

334
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Sample code for changing the printer


settings programmatically
Changing the DEVMODE structure under Win 95/98 & ME
The following sample code demonstrates how to change the printer settings under Windows
95/98 and ME. The preferred way to do this is by using the DocumentProperties() Win32 API
call.
3. Open the printer.
TCHAR s[255];
PRINTER_DEFAULTS
printerDefaults;
ACCESS_MASK
DesiredAccess = PRINTER_ALL_ACCESS;
printerDefaults.DesiredAccess = DesiredAccess;
printerDefaults.pDevMode = pdevModeTemp = NULL;
printerDefaults.pDatatype= NULL;
//Open the printer
if (!OpenPrinter(PRINTER_NAME,&hPrinter, &printerDefaults))
{
wsprintf(s,TEXT("Error opening \" %s \" printer. Error: %d"),
PRINTER_NAME, GetLastError());
OutputDebugString(s);
return false;
}
4. Retrieve the size of the DEVMODE structure of the printer.
DWORD Size= DocumentProperties(NULL, hPrinter, PRINTER_NAME, NULL,
NULL, NULL);
if ( Size <0 )
{
wsprintf(s,TEXT("DocumentProperties failed, Error: %d\n"), GetLastError());
OutputDebugString (s);
}
5. The returned size should be the same as the size of the BlackIceDEVMODE structure. If
the returned size is not the same as the size of the BlackIceDEVMODE structure, please
check the following:
a. Make sure that the printer handle you specified as the second parameter in the
DocumentProperties function call was obtained by calling the OpenPrinter function
335
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

with a Black Ice printer. Non Black Ice printers will have a different DEVMODE
structure and this is the reason why the size is not correct.
6. Allocate memory for the BlackIceDEVMODE structure.
BlackIceDEVMODE* pdevModeTemp= (BlackIceDEVMODE*) new BYTE[Size];
if ( !pdevModeTemp )
{
OutputDebugString(TEXT("Not enough memory."));
return false ;
}
7. Retrieve the printers current BlackIceDEVMODE structure. This structure will contain
the current printer settings.
DocumentProperties(m_hWnd, hPrinter, PRINTER_NAME, pdevModeTemp, NULL,
DM_OUT_BUFFER);
8. Modify the printer settings by modifying members of the BlackIceDEVMODE structure.
The devmode.h and devmode.cpp file provides a set of functions that access and modify
members of the structure. It is not recommended modifying any structure member directly,
but through the functions from the devmode.h file.
The following code sample sets the output directory to c:\temp and sets the printer to
use the image.tif file name as image file name for the printed document.
DEVMODE_SetOutputDirectory(pDevMode, TEXT("C:\\TEMP"));
DEVMODE_SetFileGenerationMethod(pDevMode,
FILENAME_EXACT_DEVMODE);
DEVMODE_SetImageFileName(pDevMode, TEXT(IMAGE.TIF));
9. Save the new printer settings.
lRet = DocumentProperties(m_hWnd, hPrinter, PRINTER_NAME, NULL,
(DEVMODE*)pDevMode, DM_IN_BUFFER|DM_UPDATE );
if ( lRet <0 )
{
wsprintf(s,TEXT("DocumentProperties failed, Error: %d\n"), GetLastError());
OutputDebugString(s);
}

336
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Fax Boards
GammaLink Fax Boards
In order to generate images for the GammaFax board use the following settings:
File Format = Tiff Group 3. 1 Dimension with Fillbits
Paper Size =Fax Paper or Create faxable Image checkbox checked.
Graphic Resolution = Fine FAX Resolution or Standard FAX Resolution
At this point the DPI setting has to be 204 x 98 or 204 x 196.
The Reverse Bit Order checkbox should be checked.

Dialogic VFX Fax Boards


The driver settings for Dialogic fax boards are the same as the GammaLink settings above.

Bicom Fax Board


The Win95 printer driver settings must be the following:
File Format = Tiff Group 3 1 Dimension with Fillbits
Paper Size =Fax Paper or Create faxable Image checkbox checked.
Graphic Resolution = Fine FAX Resolution or Standard FAX Resolution
At this point the DPI setting has to be 204 x 98 or 204 x 196.
The Reverse Bit Order checkbox should be unchecked.

Commetrex Fax Board


Same as Bicom Fax Boards.

337
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Natural Micro Systems Fax Board


Same as Bicom Fax Boards.

338
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Win95/98 and ME Resource Toolkit


Directory structure of the Resource
Toolkit
Run Setup.exe on the installation CD to install the Resource Toolkit. In the specified destination
directory you will have the following subdirectories (see the Components of the Resource
Toolkit chapter below for a detailed description about the contents of the individual directories):
Driver Install Project\Install Shield project:

Sample InstallShield project that


demonstrates how to install the printer
driver.
Driver Install Project \InstallDLL:
Sample installation DLL that is used by
InstallShield to install the printer driver.
Driver Install Project \UninstallDLL:
Sample un-installation DLL that is used by
InstallShield to remove the printer driver.
OCX
The BiPrnDrv.ocx file. This OCX is used to capture printer
driver messages.
Message Capture Sample:
Visual C++ application that demonstrates how to capture
printer driver messages.
ResourceDLL:
The source code for the resource DLL used by the driver.
VB Message Capture Sample:
VB 6 application that demonstrates how to capture printer
driver messages.

339
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Components of the Resource Toolkit


1. Install
The Install directory contains samples that demonstrate how to install the printer driver. There is
an Install DLL, Uninstall DLL and an Install Shield project.
The Install Shield project calls functions that are implemented in the Install DLL. The DLL can be
compiled with Visual C++ and it should be placed into the Setup Files\Compressed
Files\Language Independent\OS Independent folder in the Install Shield projects directory
structure.

1.1 The Install DLL


The Install DLL (MyDll.dll) is used by the Install Shield project. The Install DLL contains functions to
add and remove components of the driver like the Port Monitor, Print Processor, Driver and Printer.
The functions of the Install DLL can also be used to change the DEVMODE members values and set
the printer driver settings at install time.
NOTE: For the ME/98/95 driver, the Install DLL has to be compiled with the following project
settings:
The Structure Alignment must be 1 byte.
To change a member of the DEVMODE at install time, follow the steps below:
5. Call the dSetParameter() function from the Install DLL to set a member of the DEVMODE
structure.
6. Repeat step 1 for each member of the DEVMODE you wish to set.
When all the members are set to the required values, call the dDocumentProperties() function
from the Install DLL to write the new settings to the printer.

1.2 The dSetParameter() function


Call the dSetParameter() function from the Install DLL to set a member of the DEVMODE.
dSetParameter(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp)
The parameters of the function are:
HWND
MainWnd
- a window handle (can be NULL)
LPLONG
lpLong
- a pointer to a long value. Represents the member of the
DEVMODE to be changed. The valid values are defined in the setup.h file
// Parameters to

call dSetParameter()

340
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

#define
default
#define
#define
#define
#define
#define
#define
#define
#define
#define

PAR_INIC_PARAMETERS
values.
PAR_DRIVER_VERZIO
PAR_DRIVER_NAME
PAR_DRIVER_DRIVERFILE
PAR_DRIVER_DATAFILE
PAR_DRIVER_CONFIGFILE
PAR_PRINTER_NAME
PAR_PRINTER_PORT
PAR_PRINTER_PROCESS
PAR_PRINTER_DATATYPE

// clear ALL parameters & set

1
2
3
4
5
101
102
103
104

//
//
//
//
//
//
//
//
//

numeric
string
string
string
string
string
string
string
string

// members of the Windows DEVMODE (BlackIceDEVMODE.DM)


#define PAR_DEVMODE_ORIENT
201 // numeric (VAL_LANDSCAPE or
VAL_PORTRAIT)
#define PAR_DEVMODE_PAPERSIZE
202 // numeric (VAL_PAPER_xxx)
#define PAR_DEVMODE_PAPERLENGTH
203 // numeric
#define PAR_DEVMODE_PAPERWIDTH
204 // numeric
#define PAR_DEVMODE_DITHER
205 // numeric (VAL_DITHER_xx)
#define PAR_DEVMODE_XDPI
206 // numeric
#define PAR_DEVMODE_YDPI
207 // numeric
// members of the BlackIceDEVMODE
#define PAR_DEVMODE_FILEFORMAT
301 // mumeric (VAL_xxx_INDX(_xxx))
#define PAR_DEVMODE_RENAMEDLGBOX
302 // VAL_YES or VAL_NO
#define PAR_DEVMODE_OUTDIR
303 // string
#define PAR_DEVMODE_FAXHEADER
304 // numeric
#define PAR_DEVMODE_APPENDIMAGE
305 // VAL_YES or VAL_NO
#define PAR_DEVMODE_STARTAPPLICATION
306 // VAL_YES or VAL_NO
#define PAR_DEVMODE_APPLICATIONPATH 307 // string
#define PAR_DEVMODE_SERVERKEY
308 // string
#define PAR_DEVMODE_PAGENUMBERING
309 // VAL_YES or VAL_NO
#define PAR_DEVMODE_WRITETEXT
310 // VAL_YES or VAL_NO
#define PAR_DEVMODE_ADVTEXT
311 // VAL_YES or VAL_NO
#define PAR_DEVMODE_REVERSEFILLORDER
312 // VAL_YES or VAL_NO
#define PAR_DEVMODE_CREATEFAXABLEIMAGE
313 // VAL_YES or VAL_NO
#define PAR_DEVMODE_FILENAMEGEN
314 // numeric
#define PAR_DEVMODE_GLYPHSUPPORT
315 // numeric
#define PAR_DEVMODE_DITHERING
316 // numeric
#define PAR_DEVMODE_BRIGHTNESS
317 // numeric
#define PAR_DEVMODE_COLORDEPTH
318 // numeric
#define PAR_DEVMODE_RESOURCEDLLNAME 319 // string
#define PAR_DEVMODE_APPLICATION_STARTBEFOREPRINT
320 // VAL_YES or
VAL_NO
#define PAR_DEVMODE_PASSPARAMETERS
321 // VAL_YES or VAL_NO
#define PAR_DEVMODE_SHOWAPPLICATIONWINDOW 322 // numeric
VAL_START_NORMAL
#define PAR_DEVMODE_DISABLE_MESSAGING_INTERFACE 323 // VAL_YES or VAL_NO
#define PAR_DEVMODE_EXTENSION
324 // string
#define PAR_DEVMODE_INTERFACENAME
325 // string

341
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

LPSTR
lpStringTmp - Represents the new value of the DEVMODE member specified in
the lpLong parameter.
Return Value
The dSetParameter() will return FALSE if the value passed in the lpLong parameter is not valid
(code to set the specified DEVMODE member is not present in the dSetParameter() function) ,
otherwise TRUE. Check the How to add code to set a member of the DEVMODE section for
more information on how to implement your own code to set the DEVMODE members.

1.3 The dDocumentProperties() function


The dDocumentProperties() function is called from the Install DLL by the Install Shield project to
write the changes of the devmode to the printer.
dDocumentProperties(HWND MainWnd, LPLONG lpLong, LPTSTR lpString)
HWND MainWnd
LPLONG lpLong
LPTSTR lpString

- handle to a window (can be NULL)


- pointer to a long value. The value is not used, can be NULL;
- pointer to a string value. The value is not used, can be NULL;

All of these parameters are only necessary, because of the Install Shield DLL calling format.

1.4 Example to set a member of the DEVMODE at install time


For example, we will set the horizontal DPI for the printer driver in the Install Shield RUL file to
300 DPI.:
STRING
STRING
STRING
LONG
NUMBER

G_DllFileName;
DllProc;
ParamValue;
tmpLong;
nResult;

G_DllFileName =
DllProc
tmpLong
ParamValue
CallDLLFx(

SUPPORTDIR ^ "MYDLL.DLL";

= "dSetParameter";
= PAR_DEVMODE_XDPI;
= "300";
G_DllFileName, DllProc, tmpLong, ParamValue);

DllProc
= "dDocumentProperties";
tmpLong
= 0;
ParamValue = "";
CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue );

342
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

1.5 How to add code to set a member of the DEVMODE


You can add code to the Install DLL and/or to your Install Shield project to set any member of
the DEVMODE.
For example, set the printer at install time to enable text output. To enable text output we have to
set the BLF_WRITETEXT flag of the BliceMode member of the BlackIceDEVMODE structure.
The BlackIceDEVMODE structure is defined in the devmode.h file in the Install DLL project.
In the devmode.cpp file there are several functions defined to access the members of the
BlackIceDEVMODE structure. You can use the following functions to access the BliceMode
member:
BOOL DEVMODE_IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);
void
DEVMODE_EnableWriteText(BlackIceDEVMODE* pDevMode);
void
DEVMODE_DisableWriteText(BlackIceDEVMODE* pDevMode)
1. Define a new value in the setup.h file in the Install DLL project for each member you want to
access:
#define PAR_DEVMODE_ADVTEXT

311

2. Modify the dSetParameter() function in the setupdll.cpp file in the Install DLL project. Add
the following to the switch statement:
case PAR_DEVMODE_ADVTEXT:
if ( _ttoi(lpString))
DEVMODE_ EnableWriteText (&BliceDevMode);
else
DEVMODE_ DisableWriteText (&BliceDevMode);
break;

7. Modify the dDocumentProperties() function in the setupdll.cpp file in the Install DLL
project. Add the following code to the dDocumentProperties(), before the last call of the
DocumentProperties() function:
if (DEVMODE_IsWriteTextEnabled(&BliceDevMode))
DEVMODE_EnableWriteText (pInPut);
else
DEVMODE_DisableWriteText (pInPut);

8. Rebuild the Install DLL and copy the file to the Install Shield project Setup Files\Compressed
Files\Language Independent\OS Independent folder.
Open the Install Shield project and the script file. Add the following code to the RUL file:
343
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

STRING
STRING
STRING
LONG
NUMBER

G_DllFileName;
DllProc;
ParamValue;
tmpLong;
nResult;

G_DllFileName =
DllProc
tmpLong
ParamValue
CallDLLFx(

SUPPORTDIR ^ "MYDLL.DLL";

= "dSetParameter";
= PAR_DEVMODE_ADVTEXT;
= VAL_YES;
G_DllFileName, DllProc, tmpLong, ParamValue);

DllProc
= "dDocumentProperties";
tmpLong
= 0;
ParamValue = "";
CallDLLFx( G_DllFileName, DllProc, tmpLong, ParamValue );

NOTE: Important! The printer must be installed correctly before you call the dSetParameter()
and dDocumentProprieties() functions to change the settings.

1.6 Functions of the Install DLL


The Install directory contains samples that demonstrate how to install the printer driver. There is
an Install DLL, Uninstall DLL and an Install Shield project.
The Install Shield project calls functions that are implemented in the Install DLL. The Install DLL
can be compiled with Visual C++ and it should be placed into the Setup Files\Compressed
Files\Language Independent\OS Independent folder in the Install Shield projects directory
structure.
The Install DLL (MyDll.dll) is used by the Install Shield project. The Install DLL contains functions to
add and remove components of the driver like the Port Monitor, Print Processor, Driver and Printer.
The functions of the Install DLL can be also be used to change the DEVMODE members values and
set the printer driver settings at install time.
dIsInstalledPrinterDriver(LPSTR szDriverName)
-Returns TRUE if the printer driver is already installed.
dDeletePrinterDriver(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp))
deletes the specified printer driver
MainWnd
- windows handle
LpLong
- not used, the value can be NULL;
lpStringTmp - Specifies the name of the printer driver to be deleted.
Return FALSE if the printer driver could not be deleted.
dIsPrintProcessorInstalled(LPSTR lpPrintProcessorName)
- Return TRUE if the specified print processor is already installed
dDeletePrintProcessor(LPSTR lpPrintProcessor)
- Deletes the specified print processor.
- Returns TRUE if the print processor was deleted, otherwise return the GetLastError() value.
344
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

dAddPrintProcessor(LPSTR lpProcessorDllName, LPSTR lpProcessorName)


- Adds the specified print processor to the system.
- lpProcessorDllName
- the name of the print processor dll
- lpProcessorName
- the name of the print processor
- Returns 0 on success GetLastError() otherwise.
dIsPortMonitorInstalled(LPSTR lpMonitorName)
- Returns TRUE if the specified port monitor is installed
dAddPortMonitor(LPSTR lpMonitorDllName, LPSTR lpMonitorName)
- adds the specified port monitor to the system
- lpMonitorDllName
- the dll file name
- lpMonitorName
- the name of the port monitor
- Returns 0 if the port monitor was successfully added, otherwise returns the GetLastError();
dIsPortInstalled(LPSTR lpPortName, LPSTR lpMonitorName)
- Returns TRUE if the port is already installed, otherwise FALSE
- lpPortName
- the name of the port
- lpMonitorName - the name of the port monitor
dAddPort(LPSTR lpPortName, LPSTR lpMonitorName)
- Adds the specified port to the specified port monitor
- lpPortName
- the name of the port to be added
- lpMonitorName - the name of the port monitor to add the port to
dAddPrinterDriver(HWND MainWnd, LPLONG lpLong, LPSTR lpStrTemp)
- Adds the specified printer driver to the system
- MainWnd
- handle to a window
- lpLong
- pointer to a long value. Not used, the value can be 0.
- lpStrTemp- the name of the driver to be installed
- Returns 1 if the driver is already installed. Returns GetLastError() if adding the driver failed.
Returns 0 on success.
dAddPrinter( LPSTR szPrinterNameTmp, LPSTR szPrinterPortTmp,
LPSTR szDriverNameTmp, LPSTR szPrintProcessorTmp )
- Adds the specified printer to the system
- szPrinterName - the name of the printer to be added
- szPrinterPort
- specifies the name of the port the printer will be connected to
- szDriverName
- the name of the printer driver
- szPrintProcessor - the name of the print processor
NOTE: The printer driver, the port and the print processor must be installed before calling the
dAddprinter() function.
dDocumentProperties(HWND MainWnd, LPLONG lpLong, LPTSTR lpString)
- writes the settings modified by the dSetParameters() function to the installed printer
345
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

MainWnd - handle to a window. Not used.


lpLong - pointer to a value. Not used, the value can be null.
lpString - a string value. Not used.

dSetParameter(HWND MainWnd, LPLONG lpLong, LPSTR lpStringTmp)


- Modifies the settings of the printer, one at a time. After calling this function for all the
required settings, the dDocumentProperties() must be called to write the settings to the
printer.
- MainWnd- handle to a window
- lpLong
- pointer to a long value. Represents the member of the DEVMODE to be
changed. The valid values are defined in the setup.h file See 1.2 The dSetParameter() for
details
- lpStringTmp
- Represents the new value of the DEVMODE member specified in the
lpLong parameter.
- Return Value
- The dSetParameter() will return FALSE if the value passed in the lpLong
parameter is not valid (code to set the specified DEVMODE member is not present in the
dSetParameter() function) , otherwise TRUE. Check the How to add code to set a member
of the DEVMODE section for more information on implementing your own code to set the
DEVMODE members.

Which are the right parameters for the dSetParameter()


function to install the printer driver ?
To correctly install the Win95 driver from an Install Shield script call the dSetParameter() function from
the install DLL with the following parameters. Use the install dll (mydll.dll) from the Win95 resource
toolkit.
DllProc = "dSetParameter";
tmpLong = PAR_INIC_PARAMETERS;
ParamValue = VAL_INIC_BLICENT;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, ParamValue);
DriverFiles = G_DriverDir ^ @DRIVER_FILE; // the driver file name with full path (BiMDrv95.drv)
tmpLong = PAR_DRIVER_CONFIGFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = G_DriverDir ^ @DRIVER_FILE; // the driver file name with full path (BiMDrv95.drv)
tmpLong = PAR_DRIVER_DRIVERFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = G_DriverDir ^ @DRIVER_FILE; // the driver file name with full path (BiMDrv95.drv)
tmpLong = PAR_DRIVER_DATAFILE;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = @PROCESSOR_NAME; // the print processor name "TIFF Print Processor"
tmpLong = PAR_PRINTER_PROCESS;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
DriverFiles = @PORT_NAME; // the port name IcePortMR:

346
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

tmpLong = PAR_PRINTER_PORT;
nResult = CallDLLFx(G_DllFileName, DllProc, tmpLong, DriverFiles);
Then call the following function to install the printer:
dAddPrintProcessor(PrintProcessorFileName, PrintProcessorName); The name of the print
processor file is BiMPro95.dll
dAddPortMonitor(PortMonitorFileName, PortMonitorName); The name of the monitor file is
BiMMon95.dll
dAddPort( PORT_NAME, MONITOR_NAME)
and
dAddPrinter() passing the printer name in the string parameter.

Where to find the most recent driver files ?


In order to build a new installation for the driver use the Install Shiled sample project
shipped with the driver located in the Resource Toolkit. Please remember that the Install Shield
project is only a sample to show how to install the printer driver. The sample project may NOT
contain the most recent version of the driver files.
The most recent version of the driver files are always installed with the printer driver.
They are located by default in the "C:\Program Files\Black Ice Software, Inc\Black Ice Color
Printer\Distribution" folder. (for the color driver for example)
Replace the driver files from the Install Shield sample project with the most recent driver files
from the "Distribution" folder.
Description of the files for the color driver:
...\Distribution\ BiCDrv95.drv
- Driver file for ME/98/95
...\Distribution\ BiCMon95.dll
- Port Monitor file for ME/98/95
...\Distribution\ BiCRes95.dll
- Resource file for ME/98/95
...\Distribution\ BiCRmv95.dll
- Library for the driver uninstall for ME/98/95
...\Distribution\ BiCPro95.dll
- Print processor file for ME/98/95
...\Distribution\ BiImg.dll
- file for ME/98/95
...\Distribution\ JPEG32.DLL
- file for ME/98/95
...\Distribution\ TIFF32.DLL
- file for ME/98/95
Description of the files for the TIFF (monochrome) driver:
...\Distribution\ BiMDrv95.drv
- Driver file for ME/98/95
...\Distribution\ BiMMon95.dll
- Port Monitor file for ME/98/95
...\Distribution\ BiMRes95.dll
- Resource file for ME/98/95
...\Distribution\ BiMRmv95.dll
- Library for the driver uninstall for ME/98/95
...\Distribution\ BiMPro95.dll
- Print processor file for ME/98/95
...\Distribution\ BiImg.dll
- file for ME/98/95
...\Distribution\ JPEG32.DLL
- file for ME/98/95
...\Distribution\ TIFF32.DLL
- file for ME/98/95
Description of the files for the EMF (Enhanced metafile) driver:
347
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

...\Distribution\ BiEDrv95.drv
...\Distribution\ BiEMon95.dll
...\Distribution\ BiERes95.dll
...\Distribution\ BiERmv95.dll
...\Distribution\ BiEPro95.dll
...\Distribution\ BiImg.dll
...\Distribution\ JPEG32.DLL
...\Distribution\ TIFF32.DLL

- Driver file for ME/98/95


- Port Monitor file for ME/98/95
- Resource file for ME/98/95
- Library for the driver uninstall for ME/98/95
- Print processor file for ME/98/95
- file for ME/98/95
- file for ME/98/95
- file for ME/98/95

How to install the printer driver with a different package other


than Install Shield?
To install the printer driver with another installation building package other than Install Shield,
please follow the steps below:
3. Make sure that the installation builder you are using can call functions from external DLLs. In
order to install and configure the printer driver, you will need to call functions from the Install
DLL.
4. Before trying to install the printer driver, make sure that the driver is not currently installed.
To check, call the dIsInstalledPrinterDriver function from the Install DLL. If the driver is
currently installed you need to delete the printer driver by calling the dDeletePrinterDriver
function. Copy the printer driver files to the right location. The following table shows the files
needed by each printer driver and the location where the files should be copied.

348
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Printer driver
Monochrome
printer driver for
Windows 95/98/ME

Color printer driver


for Windows
95/98/ME

Metafile printer
driver for Windows
95/98/ME

File description
Driver file
Print processor file
Port monitor file
User Interface DLL
Driver Remove DLL
TIFF DLL

Filename
BiMDrv95.drv
BiMProc95.dll
BiMMon95.dll
BiMRes95.dll
BiMRmv95.dll
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Driver file
Print processor file
Port monitor file
User Interface DLL
Driver Remove DLL
TIFF DLL

BiCDrv95.drv
BiCProc95.dll
BiCMon95.dll
BiCRes95.dll
BiCRmv95.dll
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Driver file
Print processor file
Port monitor file
User Interface DLL
Driver Remove DLL
TIFF DLL

BiEDrv95.drv
BiEProc95.dll
BiEMon95.dll
BiERes95.dll
BiERmv95.dll
Tiff32.dll

JPEG DLL

JPEG32.dll

Port monitor utility DLL

BiImg.dll

Target location
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>
<SYSTEM>,
<WINDOWS>

<SYSTEM> The default location for the driver files is the \WINDOWS\system directory.
<WINDOWS>The Windows directory.
10.

Set the printer driver installation parameters by using the


dSetParameters function from the InstallDLL. The following parameters should be set:
349
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

- Initialize default values by calling dSetParameter with PAR_INIC_PARAMETERS and


VAL_INIC_BLICENT.
- Set the name of the printer driver user interface DLL file by calling dSetParameter with
PAR_DRIVER_CONFIGFILE and specify the name of the DLL.
- Set the name of the driver file by calling dSetParameter with PAR_DRIVER_FILE and
specify the name of the driver file.
- Set the name of the driver config file by calling dSetParameter
PAR_DRIVER_DRIVERFILE.
- Set the print processor name by calling dSetParameter with
PAR_PRINTER_PROCESS
- Set the port name by calling dSetParameter with
PAR_PRINTER_PORT
11.

Install the printer driver by calling the "dAddPrinterDriver" function


with the name of the Printer driver you want to use.
12.
Install the Black Ice print processor by calling the dAddPrintProcessor
function from the InstallDLL.
13.
Install the Black Ice port monitor by calling the dAddPortMonitor
function from the InstallDLL.
14.
Install a new Black Ice port by calling the dAddPort function from the
InstallDLL.
15.
Install the printer by calling the "dAddPrinter" function with the name
of the printer you want to install.
16.
To modify values in the DEVMODE structure and make changes in the
printer driver settings, call the dSetParameter function. The different values that can be
changed are listed in the devmode.h file in the InstallDLL project.
17.
After modifying the printer driver settings, call "dDocumentProperties"
to store the modified settings.
18.
Close the printer by calling dClosePrinter.

How to install the printer with a custom name?


If you want to install the printer and all the printer components with a custom name, please follow
these steps:
1. Open the sample InstallShield project provided in the printer driver Resource Toolkit.
2. The project contains a String table with the names of all the printer driver files and printer
driver components.
3. Make the modifications you want. Also, if you renamed one or more files do not forget to
rename the files themselves and update the File groups that contain the renamed files.
4. Rebuild the installation kit.

How to install more than one printers?


Please follow the steps below to install more than one printer:
350
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

You have to rename all the printer files except for BiImg.DLL.
During the installation process, specify a separate print processor, port monitor, printer driver,
port and printer names for each printer.(VERY IMPORTANT)
Follow these steps for each printer.

2. Message Capture Sample


The Message Capture Sample directory contains a Visual C++ sample which demonstrates
how to handle window messages sent by the printer driver and how to retrieve the name of the
group file and the name and location of the generated image file.

3. Source of the User Interface DLL


This DLL contains the dialog box templates and all the string resources used by the printer driver.
The resources can be modified, but no resource can be deleted. Deleting a resource will produce
unpredictable results. If one or more controls from a dialog box should be hidden, do not delete
the control, but hide it.
The source code of this DLL can be located in the ResourceDLL folder.

4. Message Capture OCX Control


The Message Capture OCX control is provided to help VB, Delphi, Visual FoxPro programmers
handle printer driver messages easily from their application. The name of the OCX control is
BiPrnDrv.ocx and it should be installed into the SYSTEM directory.
The Capture OCX can be found in the OCX directory in your RTK installation folder.
To redistribute the OCX, you have to register the OCX with regsvr32.exe or with your
installation package.
The OCX does not have any Black Ice DLL or OCX file dependency.
The BiPrnDrv.ocx file loads the following system DLLs:
-MFC42.DLL
-MSVCRT.DLL
-ADVAPI32.DLL
-OLEAUT32.DLL
-KERNEL32.DLL
-GDI32.DLL
-USER32.DLL
-WINSPOOL.DRV
-OLE32.DLL
If any of the above DLL is missing, the BiPrnDrv.ocx will not register correctly.
351
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The Message Capture OCX control does not require a license file.
The OCX control exports the following Properties and Events:

PrinterName Property
This property contains the name of the printer the application wants to capture messages from.

StartDoc event
The StartDoc event is fired when the selected printer starts to print a document. The parameter of this
event is the name (with the full path) of the generated group file.

StartPage event
The StartPage event is fired when the selected printer starts to print a new page. The parameter of this
event is the actual page number.

EndPage event
The EndPage event is fired when the selected printer finishes printing a page. The parameter of this
event is the name (with the full path) of the generated image file.

EndDoc event
The EndDoc event is fired when the selected printer finishes printing a document. The parameter of this
event is the name (with the full path) of the generated group file.

5. VB Message Capture Sample


This sample demonstrates how to handle window messages sent by the printer driver and how to
retrieve the name of the group file and the name and location of the generated image file.
The VB 6 source code of this sample can be found in the VB Message Capture sample folder.

6 The BlackIceDEVMODE.DLL
The BlackiceDEVMODE.DLLis a tool to retrieve, modify and set the values of the printer
DEVMODE. Setting the values of the printer DEVMODE will change the settings of the printer.
The BlackiceDEVMODE.DLL can be found in the Resource Toolkit

6.1 Description of the DLL


This DLL contains functions that can be used to modify the DevMode structure. You can set or
retrieve the printer DevMode using the functions of the BlackIceDEVMODE.dll. You can open
the DevMode, read and update values of members of DevMode structure and you can save
changes to the selected Black Ice printer.
352
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.2 How to use the BlackIceDEVMODE.dll


The BlackIceDEVMODE.DLL can be linked statically or dynamically.
For a static link, use the BlackIceDEVMODE.lib file. For a dynamic link, load the library with the
LoadLibrary() API function and then use the GetProcAddress() API function to load the required
functions from the BlackIceDEVMODE.DLL.
/* retrieve a function address from the dll */
BOOL InitDll()
{
HMODULE hDLL;
hDLL = LoadLibrary( DLL_PATH);
if (hDLL)
{
GetOrientation = (_GetOrientation)GetProcAddress(hDLL,szGetOrientation);
if (!GetOrientation)
{
AfxMessageBox("Error loading function"),MB_OK,0);
return FALSE;
}
}
/* declare a pointer to the BlackIceDEVMODE structure. The LoadBlackIceDEVMODE()
function will allocate the required amount of memory for the pointer. */
BlackIceDEVMODE* pDevMode;

/* Before use other functions, load the devmode from the printer with the
LoadBlackIceDEVMODE() function. */
pDevMode = LoadBlackIceDEVMODE(Black Ice Color);
if (!pDevMode) {
sprintf(szMessage, "Error loading the devmode. Error no.: %d,
BlackIce_GetLastError());
AfxMessageBox(szMessage,MB_OK,0);
return(0);
}
if (!GetOrientation)
{
AfxMessageBox("Function not loaded from the DLL,MB_OK,0);
}
else
{
if( GetOrientation(pDevMode) == 1)
{
// Portrait
}
else
{
if( GetOrientation(pDevMode) == 2)
{

353
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

// Landscape
)
else
{
// wrong value;
}
}
}

/* To save the printer settings call the SaveBlackIceDEVMODE function. */


bSuccess = SaveBlackIceDEVMODE(Black Ice Color, pDevMode);
if (!bSuccess)
{
wsprintf(szMessage, "Error saving the devmode. Error no.: %d",
BlackIce_GetLastError());
AfxMessageBox(szMessage,MB_OK,0);
}

/* At the end you should release the DEVMODE buffer allocated by the
LoadBlackIceDEVMODE() function. You can use the ReleaseBlackIceDEVMODE function */
ReleaseBlackIceDEVMODE(pDevMode);

6.3 DLL Functions


6.3.1

The initialization functions

The BlackIceDEVMODE.DLL contains functions for loading and saving the DEVMODE.
6.3.1.1

BlackIce_GetLastError

Returns the error code that occurred last in the system. This function helps to debug programs.
DWORD BlackIce_GetLastError();

Return value - The error code


6.3.1.2

LoadBlackIceDEVMODE

This function returns a pointer to a BlackIceDEVMODE structure. The settings of the specified
printer can be accessed through the BlackIceDEVMODE structure. The function allocates the
required amount of memory for the structure. The allocated memory must be freed by calling the
ReleaseBlackIceDEVMODE() function.
BlackIceDEVMODE*

LoadBlackIceDEVMODE(LPCTSTR printername);

Input value: printer name


Return value

- Printer Name (string)


- pointer to the BlackIceDEVMODE structure or NULL if loading
the DevMode failed.

354
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.1.3

ReleaseBlackIceDEVMODE

This function releases the memory allocated by the LoadBlackIceDEVMODE () function.


void

ReleaseBlackIceDEVMODE(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure


6.3.1.4

SaveBlackIceDEVMODE

Use this function to save the new settings to the printer.


BOOL

SaveBlackIceDEVMODE(LPTSTR szPrinterName, BlackIceDEVMODE* pDevMode);

Input value: szPrinterName


Input value: pDevMode
Return value

6.3.2

- Printer Name (string).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the DevMode was successfully updated, otherwise
FALSE.

Change the values of the DEVMODE

The description of the functions from the BlackIceDEVMODE.DLL are organized as the controls
of the Printer Driver User Interface.
The Black Ice Printer Driver User Interface driver has 4 tab controls.
1. Device Settings
2. File Formats
3. Filename Generation
4. Start Application

All the values from the user interface can be set programmatically using the functions from the
BlackIceDEVMODE.DLL.

6.3.3

The Device Settings functions

6.3.3.1

GetPaperSize

Returns the value of the dmPaperSize member of the DevMode. Represents the value of the
'Paper Size' combo box.
int

GetPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper size (integer number)
355
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.2

SetPaperSize

Sets the dmPaperSize member of the DevMode. Sets the value of the 'Paper Size' combo box.
BOOL

SetPaperSize(int papersize,BlackIceDEVMODE* pDevMode);

Input value: papersize


Input value: pDevMode
Return value
6.3.3.3

- paper size (integer number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPageWidthInPixels

Returns the value of the PaperWidthInPixels member of the BlackIceDEVMODE. Represents the
value of the 'Paper Width' edit box.
DWORD GetPageWidthInPixels(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper width in pixels (DWORD number)
6.3.3.4

SetPaperWidthInPixel

Sets the PaperWidthInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Width' edit box.
BOOL

SetPaperWidthInPixel(DWORD paperwidth,BlackIceDEVMODE* pDevMode);

Input value: paperwidth


Input value: pDevMode
Return value
6.3.3.5

- paper width in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPageHeightInPixels

Returns the value of the PaperHeightInPixels member of the BlackIceDEVMODE. Represents


the value of the 'Paper Height' edit box.
DWORD GetPageHeightInPixels(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - paper height in pixels (DWORD number)
6.3.3.6

SetPaperHeightInPixel

Sets the PaperHeightInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Height' edit box.
BOOL

SetPaperHeightInPixel(DWORD paperheight, BlackIceDEVMODE* pDevMode);

Input value: paperheight


Input value: pDevMode
Return value

- paper height in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

356
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.7

GetFaxHeader

Returns the value of the FAXheader member of the BlackIceDEVMODE. Represents the value of
the 'Fax header' edit box.
DWORD GetFaxHeader(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - fax header in pixels (DWORD number)
6.3.3.8

SetFaxHeader

Sets the FAXheader member of the BlackIceDEVMODE. Sets the value of the 'Fax header' edit
box.
BOOL

SetFaxHeader(DWORD faxheader, BlackIceDEVMODE* pDevMode);

Input value: faxheader


Input value: pDevMode
Return value
6.3.3.9

- fax header in pixels (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsFaxOutputEnabled

Returns the value of the BLF_FAXOUTPUT flag. Represents the value of the Create Faxable
Image checkbox.
BOOL

IsFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the FaxOutput is used, otherwise FALSE
6.3.3.10

EnableFaxOutput

Sets the BLF_FAXOUTPUT flag. Sets the value of the Create Faxable Image checkbox.
BOOL

EnableFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.11

DisableFaxOutput

Sets the BLF_FAXOUTPUT flag to 0 (false). Sets the value of the Create Faxable Image
checkbox UNCHECKED.
BOOL

DisableFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
357
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.12

IsAdvancedPaperSizeEnabled

Returns the value of the BLF_ADVANCEDPAPERSIZE flag. Represents the value of the
Advanced Papersize checkbox.
BOOL

IsAdvancedPaperSizeEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Advanced Papersize is used, otherwise FALSE
6.3.3.13

EnableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag. Sets the value of the Advanced Papersize
checkbox.
BOOL

EnableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.14

DisableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag to 0 (false). Sets the value of the Advanced
Papersize checkbox UNCHECKED.
BOOL

DisableAdvancedPaperSize(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.3.15

GetOrientation

Returns the value of the dmOrientation member of the DevMode. Represents the value of the
'Orientation' radio button.
int

GetOrientation(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - If the value is 1: the orientation is Portrait, if the value is 2: the orientation is
Landscape
6.3.3.16

SetOrientation

Sets the dmOrientation member of the DevMode. Sets the value of the 'Orientation' radio button.
BOOL

SetOrientation(int Orientation, BlackIceDEVMODE* pDevMode);

Input value: Orientation


Input value: pDevMode
Return value

- Orientation (integer number) 1: Portrait, 2: Landscape.


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

358
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.17

IsRotatePaperEnabled

Returns the value of the BLF_ROTATEPAPER flag. Represents the value of the Rotate
Landscape image to Portrait checkbox.
BOOL

IsRotatePaperEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Rotate Landscape image to Portrait is used, otherwise FALSE
6.3.3.18

EnableRotatePaper

Sets the BLF_ROTATEPAPER flag. Sets the value of the Rotate Landscape image to Portrait
checkbox.
BOOL

EnableRotatePaper(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.3.19

DisableRotatePaper

Sets the BLF_ROTATEPAPER flag to 0 (false). Sets the value of the Rotate Landscape image
to Portrait checkbox UNCHECKED.
BOOL

DisableRotatePaper(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.3.20

GetXDPI

Returns the value of the dmPrintQuality member of the DevMode. Represents the value of the
'Horizontal Resolution' edit box.
int

GetXDPI(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Horizontal Resolution (integer number)
6.3.3.21

SetXDPI

Sets the dmPrintQuality member of the DevMode. Sets the value of the 'Horizontal Resolution'
edit box.
BOOL

SetXDPI(int xdpi, BlackIceDEVMODE* pDevMode);

Input value: xdpi


Input value: pDevMode
Return value

- Horizontal Resolution (integer number)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

359
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.22

GetYDPI

Returns the value of the dmYResolutionmember of the DevMode. Represents the value of the
'Vertical Resolution' edit box.
int

GetYDPI(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Vertical Resolution (integer number)
6.3.3.23

SetYDPI

Sets the dmYResolutionmember of the DevMode. Sets the value of the 'Vertical Resolution' edit
box.
BOOL

SetYDPI(int ydpi, BlackIceDEVMODE* pDevMode);

Input value: ydpi


- Vertical Resolution (integer number)
Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value
- TRUE if the member was successfully set, otherwise FALSE.
he flag was successfully set, otherwise FALSE.

6.3.3.24

IsFaxLowOutputEnabled

Returns the value of the BLF_LOWFAXRES flag. If true, the low fax resolution (204x98) is
selected, if false the Fine Fax resolution (204x196) is selected when the Create Faxable Image
option is selected.
BOOL

IsLowFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Low Fax Output is used, otherwise FALSE
6.3.3.25

EnableLowFaxOutput

Sets the BLF_ LOWFAXRES flag. Sets the value of the fax resolution when the Create Faxable
Image checkbox is selected.
BOOL

EnableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.

360
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.3.26

DisableLowFaxOutput

Sets the BLF_ LOWFAXRES flag 0 (false). Sets the value of the fax resolution when the Create
Faxable Image checkbox is selected.
BOOL

DisableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

6.3.4

The File Formats functions

6.3.4.1

GetFileFormat

Returns the value of the Format member of the BlackIceDEVMODE. Represents the value of the
'File Format' combo box.
DWORD GetFileFormat(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Format (DWORD number)
6.3.4.2

SetFileFormat

Sets the Format member of the BlackIceDEVMODE. Sets the value of the 'File Format' combo
box.
BOOL

SetFileFormat(DWORD fileformat, BlackIceDEVMODE* pDevMode);

Input value: fileformat - File Format (DWORD number).


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value
- TRUE if the member was successfully set, otherwise FALSE.
6.3.4.3

GetLossRatio

Returns the value of the LossRatio member of the BlackIceDEVMODE. Represents the value of
the 'JPEG loss ratio' slider.
DWORD GetLossRatio(BlackIceDEVMODE* pDevMode);

361
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- pointer to the BlackIceDEVMODE structure
Return value - JPEG loss ratio (DWORD number)
6.3.4.4

SetLossRatio

Sets the LossRatio member of the BlackIceDEVMODE. Sets the value of the 'JPEG loss ratio'
slider.
BOOL

SetLossRatio(DWORD lossratio, BlackIceDEVMODE* pDevMode);

Input value: lossratio


Input value: pDevMode
Return value
6.3.4.5

- JPEG loss ratio (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetColorDepth

Returns the value of the ColorMode member of the BlackIceDEVMODE. Represents the value of
the 'Color Depth' radio button.
DWORD GetColorDepth(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Color Depth (DWORD number)
6.3.4.6

SetColorDepth

Sets the ColorMode member of the BlackIceDEVMODE. Sets the value of the 'Color Depth'
radio button.
BOOL

SetColorDepth(DWORD colordepth, BlackIceDEVMODE* pDevMode);

Input value: colordepth


Input value: pDevMode
Return value
6.3.4.7

- Color Depth (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsMultipageImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
BOOL

IsMultipageImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Create Multipage Image is used, otherwise FALSE
6.3.4.8

EnableMultipageImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox.
BOOL

EnableMultipageImage(BlackIceDEVMODE* pDevMode);

362
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.9

DisableMultipageImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multipage Image
checkbox UNCHECKED.
BOOL

DisableMultipageImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.10

IsAppendImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
BOOL

IsAppendImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Create Multipage Image is used, otherwise FALSE
6.3.4.11

EnableAppendImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox.
BOOL

EnableAppendImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.12

DisableAppendImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multipage Image
checkbox UNCHECKED.
BOOL

DisableAppendImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.13

IsDisableImageEnabled

Returns the value of the BLF_DISABLEIMAGE flag. Represents the value of the 'Disable Image'
checkbox.
BOOL

IsDisableImageEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Disable Image is used, otherwise FALSE
363
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.14

EnableDisableImage

Sets the BLF_DISABLEIMAGE flag. Sets the value of the 'Disable Image' checkbox.
BOOL

EnableDisableImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.15

DisableDisableImage

Sets the BLF_DISABLEIMAGE flag to 0 (false). Sets the value of the 'Disable Image' checkbox
UNCHECKED.
BOOL

DisableDisableImage(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.16

IsEasternCharSupportEnabled

Returns the value of the BLF_GLYPHSUPPORT flag. Represents the value of the 'Eastern
Character Support' checkbox.
BOOL

IsEasternCharSupportEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Eastern Character Support is used, otherwise FALSE
6.3.4.17

EnableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag. Sets the value of the 'Eastern Character Support'
checkbox.
BOOL

EnableEasternCharSupport(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.18

DisableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag to 0 (false). Sets the value of the 'Eastern Character
Support' checkbox UNCHECKED.
BOOL

DisableEasternCharSupport(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

364
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.19

IsWriteTextEnabled

Returns the value of the BLF_WRITETEXT flag. Represents the value of the 'Write Text File'
checkbox.
BOOL

IsWriteTextEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Write Text File is used, otherwise FALSE
6.3.4.20

EnableWriteText

Sets the BLF_WRITETEXT flag. Sets the value of the 'Write Text File' checkbox.
BOOL

EnableWriteText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.21

DisableWriteText

Sets the BLF_WRITETEXT flag to 0 (false). Sets the value of the 'Write Text File' checkbox
UNCHECKED.
BOOL

DisableWriteText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.22

IsMailMergeEnabled

Returns the value of the BLF_MAILMERGE flag. Represents the value of the Mail Merge
checkbox.
BOOL

IsMailMergeEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the WriteText File is used, otherwise FALSE
6.3.4.23

EnableMailMerge

Sets the BLF_MAILMERGE flag. Sets the value of the Mail Merge checkbox.
BOOL

EnableMailMerge(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.24

DisableMailMerge

Sets the BLF_MAILMERGE flag to 0 (false). Sets the value of the Mail Merge checkbox
UNCHECKED.
365
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BOOL

DisableMailMerge(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.25

IsAdvancedTextEnabled

Returns the value of the BLF_ADVANCEDTEXT flag. Represents the value of the 'Save
position and style' checkbox.
BOOL

IsAdvancedTextEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Save position and style is used, otherwise FALSE
6.3.4.26

EnableAdvancedText

Sets the BLF_ADVANCEDTEXT flag. Sets the value of the 'Save position and style' checkbox.
BOOL

EnableAdvancedText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.27

DisableAdvancedText

Sets the BLF_ADVANCEDTEXT flag to 0 (false). Sets the value of the 'Save position and style'
checkbox UNCHECKED.
BOOL

DisableAdvancedText(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.28

IsInternetTiffFormatEnabled

Returns the value of the BLF_INTERNETTIFF flag. Represents the value of the Internet TIFF
format checkbox.
BOOL

IsInternetTiffFormatEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Internet TIFF format is used, otherwise FALSE
6.3.4.29

EnableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag. Sets the value of the Internet TIFF format checkbox.
BOOL

EnableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure.

366
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.30

DisableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag to 0 (false). Sets the value of the Internet TIFF format
checkbox UNCHECKED.
BOOL

DisableInternetTiffFormat(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.31

IsReverseBitOrderEnabled

Returns the value of the BLF_REVERSEFILLORDER flag. Represents the value of the Reverse
Bit Order in TIFF checkbox.
BOOL

IsReverseBitOrderEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Reverse Bit Order in TIFF is used, otherwise FALSE
6.3.4.32

EnableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag. Sets the value of the Reverse Bit Order in the TIFF
checkbox.
BOOL

EnableReverseBitOrder(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.33

DisableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag to 0 (false). Sets the value of the Reverse Bit Order
in the TIFF checkbox UNCHECKED.
BOOL

DisableReverseBitOrder(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.34

IsPageNumberingEnabled

Returns the value of the BLF_PAGENUMBERING flag. Represents the value of the Add Page
Numbering Tag checkbox.
BOOL

IsPageNumberingEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Add Page Numbering Tag is used, otherwise FALSE
367
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.35

EnablePageNumbering

Sets the BLF_PAGENUMBERING flag. Sets the value of the Add Page Numbering Tag
checkbox.
BOOL

EnablePageNumbering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.4.36

DisablePageNumbering

Sets the BLF_PAGENUMBERING flag to 0 (false). Sets the value of the Add Page Numbering
Tag checkbox UNCHECKED.
BOOL

DisablePageNumbering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.4.37

GetDithering

Returns the value of the Dithering member of the BlackIceDEVMODE. Represents the value of
the 'Photo Quality' radio button.
DWORD GetDithering(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Photo Quality (DWORD number)
6.3.4.38

SetDithering

Sets the Dithering member of the BlackIceDEVMODE. Sets the value of the 'Photo Quality' radio
button.
BOOL

SetDithering(DWORD dithering, BlackIceDEVMODE* pDevMode);

Input value: dithering


Input value: pDevMode
Return value
6.3.4.39

- Photo Quality (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetBrightness

Returns the value of the Brightness member of the BlackIceDEVMODE. Represents the value of
the 'Intensity' slider.
DWORD GetBrightness(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Intensity (DWORD number)
368
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.4.40

SetBrightness

Sets the Brightness member of the BlackIceDEVMODE. Sets the value of the 'Intensity' slider.
BOOL

SetBrightness(DWORD brightness, BlackIceDEVMODE* pDevMode);

Input value: brightness


Input value: pDevMode
Return value

6.3.5

- Intensity (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

The Filename Generation functions

6.3.5.1

GetFileGenerationMethod

Returns the value of the FileNameGenerationFlags member of the BlackIceDEVMODE.


Represents the value of the 'File Name Generation Method' combo box.
DWORD GetFileGenerationMethod(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Name Generation Method (DWORD number)
6.3.5.2

SetFileGenerationMethod

Sets the FileNameGenerationFlags member of the BlackIceDEVMODE. Sets the value of the 'File
Name Generation Method' combo box.
BOOL

SetFileGenerationMethod(DWORD fnamegen, BlackIceDEVMODE* pDevMode);

Input value: fnamegen


Input value: pDevMode
Return value
6.3.5.3

- File Name Generation Method (DWORD number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetFileNamePrefix

Returns the value of the FileNamePrefix member of the BlackIceDEVMODE. Represents the
value of the 'File Name Prefix' edit box.
LPCTSTR

GetFileNamePrefix(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Name Prefix (string)
6.3.5.4

SetFileNamePrefix

Sets the FileNamePrefix member of the BlackIceDEVMODE. Sets the value of the 'File Name
Prefix' edit box.
BOOL

SetFileNamePrefix(LPCTSTR fnamepref, BlackIceDEVMODE* pDevMode);

Input value: fnamepref

- File Name Prefix (string)

369
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pDevMode


Return value
6.3.5.5

- pointer to the BlackIceDEVMODE structure.


- TRUE if the member was successfully set, otherwise FALSE.
GetFileExtension

Returns the value of the FileExtension member of the BlackIceDEVMODE. Represents the value
of the 'File Name Extension' edit box.
LPCTSTR

GetFileExtension(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - File Name Extension (string)
6.3.5.6

SetFileExtension

Sets the FileExtension member of the BlackIceDEVMODE. Sets the value of the 'File Name
Extension' edit box.
BOOL

SetFileExtension(LPCTSTR fnameext, BlackIceDEVMODE* pDevMode);

Input value: fnameext

- File Name Extension (string)

Input value: pDevMode


Return value

- pointer to the BlackIceDEVMODE structure.


- TRUE if the member was successfully set, otherwise FALSE.

6.3.5.7

IsCustomExtensionEnabled

Returns the value of the BLF_CUSTOMEXT flag. Represents the value of the 'Use Custom
Extension' checkbox.
BOOL

IsCustomExtensionEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Use Custom Extension is used, otherwise FALSE
6.3.5.8

EnableCustomExtension

Sets the BLF_CUSTOMEXT flag. Sets the value of the 'Use Custom Extension' checkbox.
BOOL

EnableCustomExtension(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.9

DisableCustomExtension

Sets the BLF_CUSTOMEXT flag to 0 (false). Sets the value of the 'Use Custom Extension'
checkbox UNCHECKED.
BOOL

DisableCustomExtension(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure.

370
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.5.10

GetINIFileName

Returns the value of the INIFileName member of BlackIceDEVMODE. Represents the value of
the 'INI File Name'/'Registry path'/etc. edit box.
LPCTSTR

GetINIFileName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - INI File Name/Registry Path/etc. (string)
6.3.5.11

SetINIFileName

Sets the INIFileName member of the BlackIceDEVMODE. Sets the value of the 'INI File
Name'/'Registry path'/etc. edit box.
BOOL

SetINIFileName(LPCTSTR inifname, BlackIceDEVMODE* pDevMode);

Input value: inifname


Input value: pDevMode
Return value
6.3.5.12

- INI File Name/Registry Path/etc. (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetImageFileName

Returns the value of the FileImageName member of the BlackIceDEVMODE. Represents the
value of the 'File Image Name' edit box if the Filename Generation method is Exact filename.
LPCTSTR

GetImageFileName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Image Filename (string)
6.3.5.13

SetImageFileName

Sets the FileImageName member of the BlackIceDEVMODE. Sets the value of the 'File Image
Name' edit box if the Filename Generation method is Exact filename.
BOOL

SetImageFileName(LPCTSTR filename, BlackIceDEVMODE* pDevMode);

Input value: filename


Input value: pDevMode
Return value
6.3.5.14

- Exact Filename (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsKeepExistingFilesEnabled

Returns the value of the BLF_KEEPFILES flag. Represents the value of the 'Keep existing files'
checkbox.
BOOL

IsKeepExistingFilesEnabled(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure

371
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if Keep existing files is used, otherwise FALSE


6.3.5.15

EnableKeepExistingFiles

Sets the BLF_KEEPFILES flag. Sets the value of the 'Keep existing files' checkbox.
BOOL

EnableKeepExistingFiles(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.16

DisableKeepExistingFiles

Sets the BLF_KEEPFILES flag 0 (false). Sets the value of the 'Keep existing files' checkbox
UNCHECKED.
BOOL

DisableKeepExistingFiles(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.5.17

GetOutputDirectory

Returns the value of the OutputDirectory member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
LPCTSTR

GetOutputDirectory(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Output Directory (string)
6.3.5.18

SetOutputDirectory

Sets the OutputDirectory member of the BlackIceDEVMODE. Sets the value of the 'Output
Directory' edit box.
BOOL

SetOutputDirectory(LPCTSTR outputdir, BlackIceDEVMODE* pDevMode);

Input value: outputdir


Input value: pDevMode
Return value
6.3.5.19

- Output Directory (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsGroupFileDisabled

Returns the value of the BLF_DISABLEGROUPFILE flag. Represents the value of the 'Disable
Group File' checkbox.
BOOL

IsGroupFileDisabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Disable Group File is used, otherwise FALSE
372
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.5.20

DisableGroupFile

Sets the BLF_DISABLEGROUPFILE flag. Sets the value of the 'Disable Group File' checkbox.
BOOL

DisableGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.21

EnableGroupFile

Sets the BLF_DISABLEGROUPFILE flag to 0 (false). Sets the value of the 'Disable Group File'
checkbox UNCHECKED.
BOOL

EnableGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.5.22

IsDeleteGroupFileEnabled

Returns the value of the BLF_DELETEGROUPFILE flag. Represents the value of the 'Delete
Group File After Printing' checkbox.
BOOL

IsDeleteGroupFileEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Delete Group File After Printing is used, otherwise FALSE
6.3.5.23

EnableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag. Sets the value of the 'Delete Group File After Printing'
checkbox.
BOOL

EnableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.5.24

DisableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag to 0 (false). Sets the value of the 'Delete Group File
After Printing' checkbox UNCHECKED.
BOOL

DisableDeleteGroupFile(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

373
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6

The Start Application functions

6.3.6.1

IsStartApplicationEnabled

Returns the value of the BLF_LAUNCHAPP flag. Represents the value of the 'Enable Start
Application' checkbox.
BOOL

IsStartApplicationEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Enable Start Application is used, otherwise FALSE
6.3.6.2

EnableStartApplication

Sets the BLF_LAUNCHAPP flag. Sets the value of the 'Enable Start Application' checkbox.
BOOL

EnableStartApplication(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.3

DisableStartApplication

Sets the BLF_LAUNCHAPP flag to 0 (false). Sets the value of the 'Enable Start Application'
checkbox UNCHECKED.
BOOL

DisableStartApplication(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.4

GetApplicationPath

Returns the value of the ApplicationPath member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
LPCTSTR

GetApplicationPath(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Application Path (string)
6.3.6.5

SetApplicationPath

Sets the ApplicationPath member of the BlackIceDEVMODE. Sets the value of the 'Application
Path' edit box.
BOOL

SetApplicationPath(LPCTSTR applicationpath, BlackIceDEVMODE* pDevMode);

Input value: applicationpath - Application Path (string)


Input value: pDevMode
- pointer to the BlackIceDEVMODE structure.
Return value
- TRUE if the member was successfully set, otherwise FALSE.
374
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.6

IsStartBeforePrint

Returns the value of the BLF_STARTBEFOREPRINT flag. Represents the value of the 'Start
Before Printing' radio button.
BOOL

IsStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Start Before Printing is used, otherwise FALSE (The driver will start
the application after printing)
6.3.6.7

EnableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag. Sets the value of the 'Start Before Printing' radio
button.
BOOL

EnableStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.8

DisableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag to 0 (false). Sets the value of the 'Start Before
Printing' radio button UNCHECKED. (Sets the value of the 'Start After Printing' radio button
CHECKED)
BOOL

DisableStartBeforePrint(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.9

IsPassParametersEnabled

Returns the value of the BLF_PASSPARAMETERS flag. Represents the value of the 'Pass
Parameters' checkbox.
BOOL

IsPassParametersEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Pass Parameters is used, otherwise FALSE
6.3.6.10

EnablePassParameters

Sets the BLF_PASSPARAMETERS flag. Sets the value of the 'Pass Parameters' checkbox.
BOOL

EnablePassParameters(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
375
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.11

DisablePassParameters

Sets the BLF_PASSPARAMETERS flag to 0 (false). Sets the value of the 'Pass Parameters'
checkbox UNCHECKED.
BOOL

DisablePassParameters(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.12

IsStartNormal

Returns the value of the BLF_STARTNORMAL flag. Represents the value of the 'Normal' radio
button.
BOOL

IsStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Start Application In a Normal Window is used, otherwise FALSE
6.3.6.13

EnableStartNormal

Sets the BLF_STARTNORMAL flag. Sets the value of the 'Normal' radio button. The driver will
start the application In a Normal window
BOOL

EnableStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.14

DisableStartNormal

Sets the BLF_STARTNORMAL flag to 0 (false). Sets the value of the 'Normal' radio button
UNCHECKED.
BOOL

DisableStartNormal(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.15

IsStartMinimized

Returns the value of the BLF_STARTMINIMIZED flag. Represents the value of the 'Minimized'
radio button.
BOOL

IsStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Start Application In a Minimized Window is used, otherwise FALSE

376
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.16

EnableStartMinimized

Sets the BLF_STARTMINIMIZED flag. Sets the value of the 'Minimized' radio button. The
driver will start the application In a Minimized window
BOOL

EnableStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.17

DisableStartMinimized

Sets the BLF_STARTMINIMIZED flag to 0 (false). Sets the value of the 'Minimized' radio
button UNCHECKED.
BOOL

DisableStartMinimized(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.6.18

IsStartHidden

Returns the value of the BLF_STARTHIDDEN flag. Represents the value of the 'Hidden' radio
button.
BOOL

IsStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if Start Application Hidden is used, otherwise FALSE
6.3.6.19

EnableStartHidden

Sets the BLF_STARTHIDDEN flag. Sets the value of the 'Hidden' radio button. The driver will
start the application Hidden
BOOL

EnableStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.20

DisableStartHidden

Sets the BLF_STARTHIDDEN flagb to 0 (false). Sets the value of the 'Hidden' radio button
UNCHECKED.
BOOL

DisableStartHidden(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

377
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.6.21

IsMessagingInterfaceEnabled

Returns the value of the BLF_SENDMESSAGE flag. Represents the value of the 'Disable the
Messaging Interface' checkbox.
BOOL

IsMessagingInterfaceEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the Messaging Interface is used (the check box is unchecked), otherwise
FALSE (Messaging Interface will not be used and the check box is checked)
6.3.6.22

EnableMessagingInterface

Sets the BLF_SENDMESSAGE flag. Sets the value of the 'Disable the Messaging Interface'
checkbox UNCHECKED. The driver will use the Messaging Interface.
BOOL

EnableMessagingInterface(BlackIceDEVMODE* pDevMode);

Input value

- pointer to the BlackIceDEVMODE structure.

Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.6.23

DisableMessagingInterface

Sets the BLF_SENDMESSAGE flag to 0 (false). Sets the value of the 'Disable the Messaging
Interface' checkbox. The driver will not use the Messaging Interface.
BOOL

DisableMessagingInterface(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

6.3.7

Functions which arent in preferences form

6.3.7.1

GetInterfaceName

Returns the value of the InterfaceName member of the BlackIceDEVMODE. The InterfaceName
member stores the name of the messaging interface.
LPCTSTR

InterfaceName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Interface Name (string)
6.3.7.2

SetInterfaceName

Sets the InterfaceName member of the BlackIceDEVMODE. The InterfaceName member stores
the name of the messaging interface.
BOOL

SetInterfaceName(LPCTSTR intfname, BlackIceDEVMODE* pDevMode);

378
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: intfname


Input value: pDevMode
Return value
6.3.7.3

- Interface Name (string)


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetPaperLength

Returns the value of the dmPaperLength member of the DevMode. (DM.dmPaperLength member
of the BlackIceDEVMODE ) This value represents the 'Actual paper length'.
int

GetPaperLength(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Actual paper length (integer number)
6.3.7.4

SetPaperLength

Sets the dmPaperLength member of the DevMode. (DM.dmPaperLength member of the


BlackIceDEVMODE ) This value represents the 'Actual paper length'.
BOOL

SetPaperLength(int paperlength, BlackIceDEVMODE* pDevMode);

Input value: paperlength


Input value: pDevMode
Return value
6.3.7.5

- Actual paper length (integer number).


- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
IsTiffDllEnabled

Returns the value of the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will
load the TIFF32.DLL. This flag can only be set programmatically.
BOOL

IsTiffDllEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the TIFF32.DLL is enabled, otherwise FALSE
6.3.7.6

EnableTiffDll

Sets the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will load the
TIFF32.DLL. This flag can only be set programmatically.
BOOL

EnableTiffDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.7.7

DisableTiffDll

Sets the BLF_ENABLETIFFDLL flag to 0 (false). If the flag is set, the printer driver will load the
JPEG32.DLL. This flag can only be set programmatically.
BOOL

DisableTiffDll(BlackIceDEVMODE* pDevMode);

379
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.7.8

IsJpegDllEnabled

Returns the value of the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will
load the JPEG32.DLL. This flag can only be set programmatically.
BOOL

IsJpegDllEnabled(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TRUE if the JPEG32.DLL is enabled, otherwise FALSE
6.3.7.9

EnableJpegDll

Sets the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will load the
JPEG32.DLL. This flag can only be set programmatically.
BOOL

EnableJpegDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
6.3.7.10

DisableJpegDll

Sets the BLF_ENABLEJPEGDLL flag to 0 (false). If the flag is set, the printer driver will load
the JPEG32.DLL. This flag can only be set programmatically.
BOOL

DisableJpegDll(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
6.3.7.11

GetTIFFDLLName

Returns the value of the TIFFDLLName member of the BlackIceDEVMODE. The


TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL encodes the
TIFF files. The file is needed for TIFF output.
LPCTSTR

GetTIFFDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - TIFFDLLName (string)
6.3.7.12

SetTIFFDLLName

Sets the TIFFDLLName member of the BlackIceDEVMODE. The TIFFDLLName member


stores the name and path of the TIFF32.DLL. This DLL encodes the TIFF files. The file is needed
for TIFF output.
380
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

BOOL

SetTIFFDLLName(LPCTSTR stringtiffdll, BlackIceDEVMODE* pDevMode);

Input value: stringtiffdll


Input value: pDevMode
Return value
6.3.7.13

- TIFFDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetJPEGDLLName

Returns the value of the JPEGDLLName member of the BlackIceDEVMODE. The


JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL encodes the
Jpeg files. The file is needed for Jpeg output.
LPCTSTR

GetJPEGDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - JPEGDLLName (string)
6.3.7.14

SetJPEGDLLName

Sets the JPEGDLLName member of the BlackIceDEVMODE. The JPEGDLLName member


stores the name and path of the JPEG32.DLL. This DLL encodes the Jpeg files. The file is
needed for Jpeg output.
BOOL

SetJPEGDLLName(LPCTSTR stringjpegdll, BlackIceDEVMODE* pDevMode);

Input value: stringjpegdll


Input value: pDevMode
Return value
6.3.7.15

- JPEGDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.
GetResourceDLLName

Returns the value of the ResourceDLLName member of the BlackIceDEVMODE. The


ResourceDLLName member stores the name and path of the driver resource DLL
LPCTSTR

GetResourceDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - ResourceDLLName (string)
6.3.7.16

SetResourceDLLName

Sets the ResourceDLLName member of the BlackIceDEVMODE. The ResourceDLLName


member stores the name and path of the driver resource DLL
BOOL

SetResourceDLLName(LPCTSTR stringresdll, BlackIceDEVMODE* pDevMode);

Input value: stringresdll


Input value: pDevMode
Return value

- ResourceDLLName (string)
- pointer to the BlackIceDEVMODE structure.
- TRUE if the member was successfully set, otherwise FALSE.

381
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

6.3.7.17

GetBitsPerPixel

Returns the value of the color depth in pixels.


If the Color Depth is BITS_1, the return value is 1
If the Color Depth is BITS_8, the return value is 8
If the Color Depth is BITS_8GRAY, the return value is 8
If the Color Depth is BITS_24, the return value is 24
DWORD

GetResourceDLLName(BlackIceDEVMODE* pDevMode);

Input value
- pointer to the BlackIceDEVMODE structure
Return value - Color depth in pixels (DWORD number)

382
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

7 C++ Sample - how to modify the printer


settings programmatically
This sample demonstrates how to use the BlackIceDEVMODE. DLL functions. The sample
shows how to programmatically change the printer settings.

The PrinterSettings program allows users to change settings of the Black Ice printers. It is a
dialog based MFC application.
There are five button in the form:
OK:
saves the settings and exits the program.
Cancel:
exits the program without changing the printer settings
Apply:
save the settings without exiting. You can continue to modify the controls.
Open printer:
closes the currently opened printer and tries to open the printer specified in
the Printer Name edit box.

383
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

7.1 How the PrinterSettings program works:


The InitDll() function is called to load the BlackIceDEVMODE.dll functions. Then the
OpenAndFill() function is called..
The OpenAndFill() function opens the printer and fills the controls with the values of the printer
settings (values from the retrieved DEVMODE structure).
If all of value are correct, the new values of the DEVMODE are saved to the printer using the
SaveBlackIceDEVMODE( ) function.

8 The BlackIceDEVMODE.OCX
The BlackceDEVMODE.OCX is distributed in the Resource Toolkit.

8.1 Description of the OCX


This is an Active X Control for Visual Basic, Delphi or any development tool that can use an
OCX control.
The BlackIceDEVMODE.OCX contains methods that can be used to modify the DevMode
structure. You can reach the printer devmode through the methods of the
BlackIceDEVMODE.OCX. You can open the devmode, read and update the values of the
members of the devmode structure and you can save the changes to the selected Black Ice printer.
NOTE:
The BlackIceDEVMODE.OCX calls functions from the BlackIceDEVMODE.DLL, therefore the
BlackIceDEVMODE.DLL has to be in the directory of the OCX or in the system path. The
BlackIceDEVMODE OCX will not work without the BlackIceDEVMODE.DLL.

8.2 How to use the BlackIceDEVMODE.ocx


The BlackIceDEVMODE.OCX can be used like any other standard OCX control.
First load the printer settings using the LoadBlackIceDEVMODE() method.
Dim pBlackIceDEVMODE As Long 'pointer to the devmode
pBlackIceDEVMODE = Form1.BlackIceDEVMODE1.LoadBlackIceDEVMODE(PrinterName)
If pBlackIceDEVMODE = 0 Then
MsgBox "Cannot open '" & PrinterName & "' Printer driver", _
vbExclamation + vbOKOnly
End
End If

In the sample below you can see how to read or modify the page orientation of the printer.
'read the Orientation
If Form1.BlackIceDEVMODE1.GetOrientation(pBlackIceDEVMODE) = 1 Then
'Portrait

384
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

. . .
Else
'Landscape
. . .
End If
'set to Portrait
bSuccess = Form1.BlackIceDEVMODE1.SetOrientation(1, pBlackIceDEVMODE)
If (bSuccess = False) Then
MsgBox "Error in calling Active X function: 'SetOrientation'"
End If

To save settings call SaveBlackIceDEVMODE function. The return value sign whether the saving
was successful or not.
bSuccess = Form1.BlackIceDEVMODE1.SaveBlackIceDEVMODE(PrinterName, pBlackIceDEVMODE)
If (bSuccess = False) Then
MsgBox ("Error saving the devmode")
Exit Sub
End If

When you are finished you have to release the memory allocated by the
LoadBlackIceDEVMODE method. You can use the ReleaseBlackIceDEVMODE method:
Call Form1.BlackIceDEVMODE1.ReleaseBlackIceDEVMODE(pBlackIceDEVMODE)

8.3 Methods of the BlackIceDEVMODE.OCX


Modifying these members and flags of the devmode structure will call next functions
The return values of the IsEnabled(pBlackIceDEVMODE) functions are the values of the
flags.
The return values of the Enable.(pBlackIceDEVMODE) and Disable
(pBlackIceDEVMODE) functions are the error the handling values. If the return value is True,
the modifications were successful, if False the modifications were unsuccessful.
The return value of the Get(pBlackIceDEVMODE) function is the value of the member of
DevMode.
The return value of the Set(param1, pBlackIceDEVMODE) function is the error handling
value. If the return value is True, the member was successfully set to param1, if False the member
was unsuccessfully set to param1.

8.3.1

The initialization functions

To set the Printer Driver settings you have to set the values of the printer DEVMODE. The
BlackIceDEVMODE.OCX contains methods to load, save and modify the printer settings.

385
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.1.1

LoadBlackIceDEVMODE

This method returns a long value that represents the BlackIceDEVMODE handle. This handle is
used by the rest of the methods to read and modify the settings of the printer.
The LoadBlackIceDEVMODE method allocates the memory space required for the DevMode
structure ( for the printer settings).
NOTE: The memory must be freed using the ReleaseBlackIceDEVMODE method.
LoadBlackIceDEVMODE(PrinterName As String) As Long

Input value: PrinterName


Return value
8.3.1.2

- Printer Name
- handle to the BlackIceDEVMODE. If the return value is 0, the
DevMode loading failed.
ReleaseBlackIceDEVMODE

This method frees the memory allocated for the printer settings representetd by the
BlackIceDEVMODE handle.
ReleaseBlackIceDEVMODE(pBlackIceDEVMODE) As Long

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE


8.3.1.3

SaveBlackIceDEVMODE

This method will save the new printer settings.


SaveBlackIceDEVMODE(szPrinterName As String, pBlackIceDEVMODE As Long) As Boolean

Input value: szPrinterName


- Printer Name.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE structure.
Return value
- TRUE if the DevMode was successfully updated,
otherwise FALSE.

8.3.2

Change the printer settings

The methods from the BlackIceDEVMODE.OCX are grouped as the controls of the Printer
Driver User Interface. The Black Ice Printer Driver User Interface has 4 tab controls.
1. Device Settings
2. File Formats
3. Filename Generation
4. Start Application
All the values from the user interface can be set programmatically using the functions from the
BlackIceDEVMODE.OCX.

386
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.3

The Device Settings methods

8.3.3.1

GetPaperSize

Returns the value of the dmPaperSize member of the DevMode. Represents the value of the
'Paper Size' combo box.
GetPaperSize(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - paper size (integer number)
8.3.3.2

SetPaperSize

Sets the dmPaperSize member of the DevMode. Sets the value of the 'Paper Size' combo box.
SetPaperSize(papersize As Integer, pBlackIceDEVMODE As Long ) As Boolean

Input value: papersize


- paper size
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.3

GetPageWidthInPixels

Returns the value of the PaperWidthInPixels member of the BlackIceDEVMODE. Represents the
value of the 'Paper Width' edit box.
GetPageWidthInPixels(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - paper width in pixels ( As a Long number)
8.3.3.4

SetPaperWidthInPixel

Sets the PaperWidthInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Width' edit box.
SetPaperWidthInPixel(paperwidth As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: paperwidth


- paper width in pixels.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.5

GetPageHeightInPixels

Returns the value of the PaperHeightInPixels member of the BlackIceDEVMODE. Represents


the value of the 'Paper Height' edit box.
GetPageHeightInPixels(pBlackIceDEVMODE As Long) As Long

387
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE
Return value - paper height in pixels
8.3.3.6

SetPaperHeightInPixel

Sets the PaperHeightInPixels member of the BlackIceDEVMODE. Sets the value of the 'Paper
Height' edit box.
SetPaperHeightInPixel(paperheight As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: paperheight


- paper height in pixels.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.7

GetFaxHeader

Returns the value of the FAXheader member of the BlackIceDEVMODE. Represents the value of
the 'Fax header' edit box.
GetFaxHeader(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - fax header in pixels
8.3.3.8

SetFaxHeader

Sets the FAXheader member of the BlackIceDEVMODE. Sets the value of the 'Fax header' edit
box.
Boolean SetFaxHeader( As Long faxheader, pBlackIceDEVMODE As Long) As

Input value: faxheader


- fax header in pixels ( As Long number).
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.9

IsFaxOutputEnabled

Returns the value of the BLF_FAXOUTPUT flag. Represents the value of the Create Faxable
Image checkbox.
IsFaxOutputEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if FaxOutput is used, otherwise FALSE

388
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.3.10

EnableFaxOutput

Sets the BLF_FAXOUTPUT flag. Sets the value of the Create Faxable Image checkbox.
EnableFaxOutput(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.3.11

DisableFaxOutput

Sets the BLF_FAXOUTPUT flag to 0 (false). Sets the value of the Create Faxable Image
checkbox UNCHECKED.
DisableFaxOutput(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.3.12

IsAdvancedPaperSizeEnabled

Returns the value of the BLF_ADVANCEDPAPERSIZE flag. Represents the value of the
Advanced Papersize checkbox.
IsAdvancedPaperSizeEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Advanced Papersize is used, otherwise FALSE
8.3.3.13

EnableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag. Sets the value of the Advanced Papersize
checkbox.
EnableAdvancedPaperSize(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.3.14

DisableAdvancedPaperSize

Sets the BLF_ADVANCEDPAPERSIZE flag to 0 (false). Sets the value of the Advanced
Papersize checkbox UNCHECKED.
DisableAdvancedPaperSize(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

389
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.3.15

GetOrientation

Returns the value of the dmOrientation member of the DevMode. Represents the value of the
'Orientation' radio button.
GetOrientation(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - If the value is 1: the orientation is Portrait, if the value is 2: the orientation is
Landscape
8.3.3.16

SetOrientation

Sets the dmOrientation member of the DevMode. Sets the value of the 'Orientation' radio button.
SetOrientation(Orientation As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: Orientation


- Orientation 1:Portrait, 2:Landscape.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.17

IsRotatePaperEnabled

Returns the value of the BLF_ROTATEPAPER flag. Represents the value of the Rotate
Landscape image to Portrait checkbox.
IsRotatePaperEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Rotate Landscape image to Portrait is used, otherwise FALSE
8.3.3.18

EnableRotatePaper

Sets the BLF_ROTATEPAPER flag. Sets the value of the Rotate Landscape image to Portrait
checkbox.
EnableRotatePaper(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.3.19

DisableRotatePaper

Sets the BLF_ROTATEPAPER flag to 0 (false). Sets the value of the Rotate Landscape image
to Portrait checkbox UNCHECKED.
DisableRotatePaper(pBlackIceDEVMODE As Long) As Boolean

Input value

- handle to the BlackIceDEVMODE.

390
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.3.20

GetXDPI

Returns the value of the dmPrintQuality member of the DevMode. Represents the value of the
'Horizontal Resolution' edit box.
GetXDPI(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Horizontal Resolution (integer number)
8.3.3.21

SetXDPI

Sets the dmPrintQuality member of the DevMode. Sets the value of the 'Horizontal Resolution'
edit box.
SetXDPI(xdpi As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: xdpi


- Horizontal Resolution
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.22

GetYDPI

Returns the value of the dmYResolutionmember of the DevMode. Represents the value of the
'Vertical Resolution' edit box.
GetYDPI(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Vertical Resolution
8.3.3.23

SetYDPI

Sets the dmYResolutionmember of the DevMode. Sets the value of the 'Vertical Resolution' edit
box.
SetYDPI(ydpi As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: ydpi


- Vertical Resolution
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.

391
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.3.24

IsFaxLowOutputEnabled

Returns the value of the BLF_LOWFAXRES flag. If true, the low fax resolution (204x98) is
selected, if false the Fine Fax resolution (204x196) is selected when the Create Faxable Image
option is selected.
BOOL

IsLowFaxOutputEnabled(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if Low Fax resolution is selected, otherwise
FALSE.
8.3.3.25

EnableLowFaxOutput

Sets the BLF_ LOWFAXRES flag. Sets the value of the fax resolution when the Create Faxable
Image checkbox is selected.
BOOL

EnableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.3.26

DisableLowFaxOutput

Sets the BLF_ LOWFAXRES flag 0 (false). Sets the value of the fax resolution when the Create
Faxable Image checkbox is selected.
BOOL

DisableLowFaxOutput(BlackIceDEVMODE* pDevMode);

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.

392
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.4

The File Formats methods

8.3.4.1

GetFileFormat

Returns the value of the Format member of the BlackIceDEVMODE. Represents the value of the
'File Format' combo box.
GetFileFormat(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - File Format
8.3.4.2

SetFileFormat

Sets the Format member of the BlackIceDEVMODE. Sets the value of the 'File Format' combo
box.
SetFileFormat(fileformat As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: fileformat


- File Format
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.4.3

GetLossRatio

Returns the value of the LossRatio member of the BlackIceDEVMODE. Represents the value of
the 'JPEG loss ratio' slider.
GetLossRatio(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - JPEG loss ratio
8.3.4.4

SetLossRatio

Sets the LossRatio member of the BlackIceDEVMODE. Sets the value of the 'JPEG loss ratio'
slider.
SetLossRatio(lossratio As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: lossratio


- JPEG loss ratio
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.

393
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.4.5

GetColorDepth

Returns the value of the ColorMode member of the BlackIceDEVMODE. Represents the value of
the 'Color Depth' radio button.
GetColorDepth(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Color Depth
8.3.4.6

SetColorDepth

Sets the ColorMode member of the BlackIceDEVMODE. Sets the value of the 'Color Depth'
radio button.
SetColorDepth(colordepth As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: colordepth


- Color Depth
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.4.7

IsMultipageImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
IsMultipageImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Create Multipage Image is used, otherwise FALSE
8.3.4.8

EnableMultipageImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox.
EnableMultipageImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.9

DisableMultipageImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multipage Image
checkbox UNCHECKED.
DisableMultipageImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
394
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.4.10

IsAppendImageEnabled

Returns the value of the BLF_MULTIIMAGE flag. Represents the value of the Create
Multipage Image checkbox.
IsAppendImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Create Multipage Image is used, otherwise FALSE
8.3.4.11

EnableAppendImage

Sets the BLF_MULTIIMAGE flag. Sets the value of the Create Multipage Image checkbox.
EnableAppendImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.12

DisableAppendImage

Sets the BLF_MULTIIMAGE flag to 0 (false). Sets the value of the Create Multipage Image
checkbox UNCHECKED.
DisableAppendImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.13

IsDisableImageEnabled

Returns the value of the BLF_DISABLEIMAGE flag. Represents the value of the 'Disable Image'
checkbox.
IsDisableImageEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Disable Image is used, otherwise FALSE
8.3.4.14

EnableDisableImage

Sets the BLF_DISABLEIMAGE flag. Sets the value of the 'Disable Image' checkbox.
EnableDisableImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.15

DisableDisableImage

Sets the BLF_DISABLEIMAGE flag to 0 (false). Sets the value of the 'Disable Image' checkbox
UNCHECKED.
395
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DisableDisableImage(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.16

IsEasternCharSupportEnabled

Returns the value of the BLF_GLYPHSUPPORT flag. Represents the value of the 'Eastern
Character Support' checkbox.
IsEasternCharSupportEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Eastern Character Support is used, otherwise FALSE
8.3.4.17

EnableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag. Sets the value of the 'Eastern Character Support'
checkbox.
EnableEasternCharSupport(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.18

DisableEasternCharSupport

Sets the BLF_GLYPHSUPPORT flag to 0 (false). Sets the value of the 'Eastern Character
Support' checkbox UNCHECKED.
DisableEasternCharSupport(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.19

IsWriteTextEnabled

Returns the value of the BLF_WRITETEXT flag. Represents the value of the 'Write Text File'
checkbox.
IsWriteTextEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Write Text File is used, otherwise FALSE
8.3.4.20

EnableWriteText

Sets the BLF_WRITETEXT flag. Sets the value of the 'Write Text File' checkbox.
EnableWriteText(pBlackIceDEVMODE As Long) As Boolean

396
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.21

DisableWriteText

Sets the BLF_WRITETEXT flag to 0 (false). Sets the value of the 'Write Text File' checkbox
UNCHECKED.
DisableWriteText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.22

IsMailMergeEnabled

Returns the value of the BLF_MAILMERGE flag. Represents the value of the Mail Merge
checkbox.
IsMailMergeEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if WriteText File is used, otherwise FALSE
8.3.4.23

EnableMailMerge

Sets the BLF_MAILMERGE flag. Sets the value of the Mail Merge checkbox.
EnableMailMerge(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.24

DisableMailMerge

Sets the BLF_MAILMERGE flag to 0 (false). Sets the value of the Mail Merge checkbox
UNCHECKED.
DisableMailMerge(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.25

IsAdvancedTextEnabled

Returns the value of the BLF_ADVANCEDTEXT flag. Represents the value of the 'Save
position and style' checkbox.
IsAdvancedTextEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Save position and style is used, otherwise FALSE
397
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.4.26

EnableAdvancedText

Sets the BLF_ADVANCEDTEXT flag. Sets the value of the 'Save position and style' checkbox.
EnableAdvancedText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.27

DisableAdvancedText

Sets the BLF_ADVANCEDTEXT flag to 0 (false). Sets the value of the 'Save position and style'
checkbox UNCHECKED.
DisableAdvancedText(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.28

IsInternetTiffFormatEnabled

Returns the value of the BLF_INTERNETTIFF flag. Represents the value of the Internet TIFF
format checkbox.
IsInternetTiffFormatEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Internet TIFF format is used, otherwise FALSE
8.3.4.29

EnableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag. Sets the value of the Internet TIFF format checkbox.
EnableInternetTiffFormat(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.30

DisableInternetTiffFormat

Sets the BLF_INTERNETTIFF flag to 0 (false). Sets the value of the Internet TIFF format
checkbox UNCHECKED.
DisableInternetTiffFormat(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.31

IsReverseBitOrderEnabled

Returns the value of the BLF_REVERSEFILLORDER flag. Represents the value of the Reverse
Bit Order in TIFF checkbox.
398
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

IsReverseBitOrderEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Reverse Bit Order in TIFF is used, otherwise FALSE
8.3.4.32

EnableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag. Sets the value of the Reverse Bit Order in TIFF
checkbox.
EnableReverseBitOrder(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.33

DisableReverseBitOrder

Sets the BLF_REVERSEFILLORDER flag to 0 (false). Sets the value of the Reverse Bit Order
in TIFF checkbox UNCHECKED.
DisableReverseBitOrder(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.34

IsPageNumberingEnabled

Returns the value of the BLF_PAGENUMBERING flag. Represents the value of the Add Page
Numbering Tag checkbox.
IsPageNumberingEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Add Page Numbering Tag is used, otherwise FALSE
8.3.4.35

EnablePageNumbering

Sets the BLF_PAGENUMBERING flag. Sets the value of the Add Page Numbering Tag
checkbox.
EnablePageNumbering(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.4.36

DisablePageNumbering

Sets the BLF_PAGENUMBERING flag to 0 (false). Sets the value of the Add Page Numbering
Tag checkbox UNCHECKED.
DisablePageNumbering(pBlackIceDEVMODE As Long) As Boolean

399
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.4.37

GetDithering

Returns the value of the Dithering member of the BlackIceDEVMODE. Represents the value of
the 'Photo Quality' radio button.
GetDithering(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Photo Quality
8.3.4.38

SetDithering

Sets the Dithering member of the BlackIceDEVMODE. Sets the value of the 'Photo Quality' radio
button.
SetDithering(dithering As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: dithering


- Photo Quality
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.4.39

GetBrightness

Returns the value of the Brightness member of the BlackIceDEVMODE. Represents the value of
the 'Intensity' slider.
GetBrightness(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Intensity
8.3.4.40

SetBrightness

Sets the Brightness member of the BlackIceDEVMODE. Sets the value of the 'Intensity' slider.
SetBrightness(brightness As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: brightness


- Intensity
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value - TRUE if the member was successfully set, otherwise FALSE.

400
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.5

The Filename Generation methods

8.3.5.1

GetFileGenerationMethod

Returns the value of the FileNameGenerationFlags member of the BlackIceDEVMODE.


Represents the value of the 'File Name Generation Method' combo box.
GetFileGenerationMethod(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Generation Method
8.3.5.2

SetFileGenerationMethod

Sets the FileNameGenerationFlags member of the BlackIceDEVMODE. Sets the value of the 'File
Name Generation Method' combo box.
SetFileGenerationMethod(fnamegen As Long, pBlackIceDEVMODE As Long) As Boolean

Input value: fnamegen


- File Name Generation Method
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.5.3

GetFileNamePrefix

Returns the value of the FileNamePrefix member of the BlackIceDEVMODE. Represents the
value of the 'File Name Prefix' edit box.
GetFileNamePrefix(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Prefix
8.3.5.4

SetFileNamePrefix

Sets the FileNamePrefix member of the BlackIceDEVMODE. Sets the value of the 'File Name
Prefix' edit box.
SetFileNamePrefix(fnamepref As String, pBlackIceDEVMODE As Long) As Boolean

Input value: fnamepref


- File Name Prefix
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.

401
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.5.5

GetFileExtension

Returns the value of the FileExtension member of the BlackIceDEVMODE. Represents the value
of the 'File Name Extension' edit box.
GetFileExtension(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - File Name Extension
8.3.5.6

SetFileExtension

Sets the FileExtension member of the BlackIceDEVMODE. Sets the value of the 'File Name
Extension' edit box.
SetFileExtension(fnameext As String, pBlackIceDEVMODE As Long) As Boolean

Input value: fnameext


- File Name Extension
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.5.7

IsCustomExtensionEnabled

Returns the value of the BLF_CUSTOMEXT flag. Represents the value of the 'Use Custom
Extension' checkbox.
IsCustomExtensionEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Use Custom Extension is used, otherwise FALSE
8.3.5.8

EnableCustomExtension

Sets the BLF_CUSTOMEXT flag. Sets the value of the 'Use Custom Extension' checkbox.
EnableCustomExtension(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.5.9

DisableCustomExtension

Sets the BLF_CUSTOMEXT flag to 0 (false). Sets the value of the 'Use Custom Extension'
checkbox UNCHECKED.
DisableCustomExtension(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
402
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.5.10

GetINIFileName

Returns the value of the INIFileName member of the BlackIceDEVMODE. Represents the value
of the 'INI File Name'/'Registry path'/etc. edit box.
GetINIFileName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - INI File Name/Registry Path/etc
8.3.5.11

SetINIFileName

Sets the INIFileName member of the BlackIceDEVMODE. Sets the value of the 'INI File
Name'/'Registry path'/etc. edit box.
SetINIFileName(inifname As String, pBlackIceDEVMODE As Long) As Boolean

Input value: inifname


- INI File Name/Registry Path/etc.
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.5.12

GetImageFileName

Returns the value of the FileImageName member of the BlackIceDEVMODE. Represents the
value of the 'File Image Name' edit box if the Filename Generation method is Exact filename.
GetImageFileName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Image Filename
8.3.5.13

SetImageFileName

Sets the FileImageName member of the BlackIceDEVMODE. Sets the value of the 'File Image
Name' edit box if the Filename Generation method is Exact filename.
SetImageFileName(filename As String, pBlackIceDEVMODE As Long) As Boolean

Input value: filename


- Exact Filename
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.5.14

IsKeepExistingFilesEnabled

Returns the value of the BLF_KEEPFILES flag. Represents the value of the 'Keep existing files'
checkbox.
IsKeepExistingFilesEnabled(pBlackIceDEVMODE As Long) As Boolean

403
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Keep existing files is used, otherwise FALSE
8.3.5.15

EnableKeepExistingFiles

Sets the BLF_KEEPFILES flag. Sets the value of the 'Keep existing files' checkbox.
EnableKeepExistingFiles(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.5.16

DisableKeepExistingFiles

Sets the BLF_KEEPFILES flag to 0 (false). Sets the value of the 'Keep existing files' checkbox
UNCHECKED.
DisableKeepExistingFiles(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.5.17

GetOutputDirectory

Returns the value of the OutputDirectory member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
GetOutputDirectory(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Output Directory
8.3.5.18

SetOutputDirectory

Sets the OutputDirectory member of the BlackIceDEVMODE. Sets the value of the 'Output
Directory' edit box.
SetOutputDirectory(outputdir As String, pBlackIceDEVMODE As Long) As Boolean

Input value: outputdir


- Output Directory
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.5.19

IsGroupFileDisabled

Returns the value of the BLF_DISABLEGROUPFILE flag. Represents the value of the 'Disable
Group File' checkbox.
IsGroupFileDisabled(pBlackIceDEVMODE As Long) As Boolean

Input value

- handle to the BlackIceDEVMODE

404
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Return value - TRUE if Disable Group File is used, otherwise FALSE


8.3.5.20

DisableGroupFile

Sets the BLF_DISABLEGROUPFILE flag. Sets the value of the 'Disable Group File' checkbox.
DisableGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.5.21

EnableGroupFile

Sets the BLF_DISABLEGROUPFILE flag to 0 (false). Sets the value of the 'Disable Group File'
checkbox UNCHECKED.
EnableGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.5.22

IsDeleteGroupFileEnabled

Returns the value of the BLF_DELETEGROUPFILE flag. Represents the value of the 'Delete
Group File After Printing' checkbox.
IsDeleteGroupFileEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Delete Group File After Printing is used, otherwise FALSE
8.3.5.23

EnableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag. Sets the value of the 'Delete Group File After Printing'
checkbox.
EnableDeleteGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.5.24

DisableDeleteGroupFile

Sets the BLF_DELETEGROUPFILE flag to 0 (false). Sets the value of the 'Delete Group File
After Printing' checkbox UNCHECKED.
DisableDeleteGroupFile(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
405
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.6

The Start Application method

8.3.6.1

IsStartApplicationEnabled

Returns the value of the BLF_LAUNCHAPP flag. Represents the value of the 'Enable Start
Application' checkbox.
IsStartApplicationEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Enable Start Application is used, otherwise FALSE
8.3.6.2

EnableStartApplication

Sets the BLF_LAUNCHAPP flag. Sets the value of the 'Enable Start Application' checkbox.
EnableStartApplication(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.3

DisableStartApplication

Sets the BLF_LAUNCHAPP flag to 0 (false). Sets the value of the 'Enable Start Application'
checkbox UNCHECKED.
DisableStartApplication(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.6.4

GetApplicationPath

Returns the value of the ApplicationPath member of the BlackIceDEVMODE. Represents the
value of the 'Output Directory' edit box.
GetApplicationPath(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Application Path
8.3.6.5

SetApplicationPath

Sets the ApplicationPath member of the BlackIceDEVMODE. Sets the value of the 'Application
Path' edit box.
SetApplicationPath(applicationpath As String ,pBlackIceDEVMODE As Long) As Boolean

Input value: applicationpath

- Application Path

406
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.6.6

IsStartBeforePrint

Returns the value of the BLF_STARTBEFOREPRINT flag. Represents the value of the 'Start
Before Printing' radio button.
IsStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Before Printing is used, otherwise FALSE (The driver will start
application after printing)
8.3.6.7

EnableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag. Sets the value of the 'Start Before Printing' radio
button.
EnableStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.8

DisableStartBeforePrint

Sets the BLF_STARTBEFOREPRINT flag to 0 (false). Sets the value of the 'Start Before
Printing' radio button UNCHECKED. (Sets the value of the 'Start After Printing' radio button
CHECKED)
DisableStartBeforePrint(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.6.9

IsPassParametersEnabled

Returns the value of the BLF_PASSPARAMETERS flag. Represents the value of the 'Pass
Parameters' checkbox.
IsPassParametersEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Pass Parameters is used, otherwise FALSE
8.3.6.10

EnablePassParameters

Sets the BLF_PASSPARAMETERS flag. Sets the value of the 'Pass Parameters' checkbox.
EnablePassParameters(pBlackIceDEVMODE As Long) As Boolean

407
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.11

DisablePassParameters

Sets the BLF_PASSPARAMETERS flag to 0 (false). Sets the value of the 'Pass Parameters'
checkbox UNCHECKED.
DisablePassParameters(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.6.12

IsStartNormal

Returns the value of the BLF_STARTNORMAL flag. Represents the value of the 'Normal' radio
button.
IsStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Application In a Normal Window is used, otherwise FALSE
8.3.6.13

EnableStartNormal

Sets the BLF_STARTNORMAL flag. Sets the value of the 'Normal' radio button. The driver will
start the application In a Normal window
EnableStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.14

DisableStartNormal

Sets the BLF_STARTNORMAL flag to 0 (false). Sets the value of the 'Normal' radio button
UNCHECKED.
DisableStartNormal(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.6.15

IsStartMinimized

Returns the value of the BLF_STARTMINIMIZED flag. Represents the value of the 'Minimized'
radio button.
IsStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Start Application In Minimized Window is used, otherwise FALSE
408
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.6.16

EnableStartMinimized

Sets the BLF_STARTMINIMIZED flag. Sets the value of the 'Minimized' radio button. The
driver will start the application In a Minimized window
EnableStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.17

DisableStartMinimized

Sets the BLF_STARTMINIMIZED flag to 0 (false). Sets the value of the 'Minimized' radio
button UNCHECKED.
DisableStartMinimized(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.6.18

IsStartHidden

Returns the value of the BLF_STARTHIDDEN flag. Represents the value of the 'Hidden' radio
button.
IsStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if Start Application Hidden is used, otherwise FALSE
8.3.6.19

EnableStartHidden

Sets the BLF_STARTHIDDEN flag. Sets the value of the 'Hidden' radio button. The driver will
start the application Hidden
EnableStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.20

DisableStartHidden

Sets the BLF_STARTHIDDEN flag to 0 (false). Sets the value of the 'Hidden' radio button
UNCHECKED.
DisableStartHidden(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

409
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.6.21

IsMessagingInterfaceEnabled

Returns the value of the BLF_SENDMESSAGE flag. Represents the value of the 'Disable the
Messaging Interface' checkbox.
IsMessagingInterfaceEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the Messaging Interface is used (the check box is unchecked), otherwise
FALSE (the Messaging Interface will not be used and the check box is checked)
8.3.6.22

EnableMessagingInterface

Sets the BLF_SENDMESSAGE flag. Sets the value of the 'Disable the Messaging Interface'
checkbox UNCHECKED. The driver will use the Messaging Interface.
EnableMessagingInterface(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.6.23

DisableMessagingInterface

Sets the BLF_SENDMESSAGE flag to 0 (false). Sets the value of the 'Disable the Messaging
Interface' checkbox. The driver will not use the Messaging Interface.
DisableMessagingInterface(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.

8.3.7

Miscellaneous methods

8.3.7.1

GetInterfaceName

Returns the value of the InterfaceName member of the BlackIceDEVMODE. The InterfaceName
member stores the name of the messaging interface.
InterfaceName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - Interface Name
8.3.7.2

SetInterfaceName

Sets the InterfaceName member of the BlackIceDEVMODE. The InterfaceName member stores
the name of the messaging interface.
SetInterfaceName(intfname As String, pBlackIceDEVMODE As Long) As Boolean

Input value: intfname

- Interface Name

410
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.


Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.7.3

GetPaperLength

Returns the value of the dmPaperLength member of the DevMode. (DM.dmPaperLength member
of the BlackIceDEVMODE ) This value represent the 'Actual paper length'.
GetPaperLength(pBlackIceDEVMODE As Long) As Integer

Input value
- handle to the BlackIceDEVMODE
Return value - Actual paper length
8.3.7.4

SetPaperLength

Sets the dmPaperLength member of the DevMode. (DM.dmPaperLength member of the


BlackIceDEVMODE ) This value represent the 'Actual paper length'.
SetPaperLength(paperlength As Integer, pBlackIceDEVMODE As Long) As Boolean

Input value: paperlength


- Actual paper length
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.7.5

IsTiffDllEnabled

Returns the value of the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will
load the TIFF32.DLL. This flag can only be set programmatically.
IsTiffDllEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the TIFF32.DLL is enabled, otherwise FALSE
8.3.7.6

EnableTiffDll

Sets the BLF_ENABLETIFFDLL flag. If the flag is set, the printer driver will load the
TIFF32.DLL. This flag can only be set programmatically.
EnableTiffDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.7.7

DisableTiffDll

Sets the BLF_ENABLETIFFDLL flag to 0 (false). If the flag is set, the printer driver will load the
TIFF32.DLL. This flag can only be set programmatically.
411
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

DisableTiffDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set to 0 (false), otherwise FALSE.
8.3.7.8

IsJpegDllEnabled

Returns the value of the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will
load the TIFF32.DLL. This flag can only be set programmatically.
IsJpegDllEnabled(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE
Return value - TRUE if the JPEG32.DLL is enabled, otherwise FALSE
8.3.7.9

EnableJpegDll

Sets the BLF_ENABLEJPEGDLL flag. If the flag is set, the printer driver will load the
JPEG32.DLL. This flag can only be set programmatically.
EnableJpegDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set, otherwise FALSE.
8.3.7.10

DisableJpegDll

Sets the BLF_ENABLEJPEGDLL flag to 0 (false). If the flag is set, the printer driver will load
the JPEG32.DLL. This flag can only be set programmatically.
DisableJpegDll(pBlackIceDEVMODE As Long) As Boolean

Input value
- handle to the BlackIceDEVMODE.
Return value - TRUE if the flag was successfully set 0 (false), otherwise FALSE.
8.3.7.11

GetTIFFDLLName

Returns the value of the TIFFDLLName member of the BlackIceDEVMODE. The


TIFFDLLName member stores the name and path of the TIFF32.DLL. This DLL encodes the
TIFF files. The file is needed for TIFF output.
GetTIFFDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - TIFFDLLName

412
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

8.3.7.12

SetTIFFDLLName

Sets the TIFFDLLName member of the BlackIceDEVMODE. The TIFFDLLName member


stores the name and path of the TIFF32.DLL. This DLL encodes the TIFF files. The file is needed
for TIFF output.
SetTIFFDLLName(stringtiffdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringtiffdll


- TIFFDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.7.13

GetJPEGDLLName

Returns the value of the JPEGDLLName member of the BlackIceDEVMODE. The


JPEGDLLName member stores the name and path of the JPEG32.DLL. This DLL encodes the
Jpeg files. The file is needed for Jpeg output.
GetJPEGDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - JPEGDLLName
8.3.7.14

SetJPEGDLLName

Sets the JPEGDLLName member of the BlackIceDEVMODE. The JPEGDLLName member


stores the name and path of the JPEG32.DLL. This DLL encodes the Jpeg files. The file is
needed for Jpeg output.
SetJPEGDLLName(stringjpegdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringjpegdll


- JPEGDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise q
FALSE.
8.3.7.15

GetResourceDLLName

Returns the value of the ResourceDLLName member of the BlackIceDEVMODE. The


ResourceDLLName member stores the name and path of the driver resource DLL
GetResourceDLLName(pBlackIceDEVMODE As Long) As String

Input value
- handle to the BlackIceDEVMODE
Return value - ResourceDLLName
8.3.7.16

SetResourceDLLName

Sets the ResourceDLLName member of the BlackIceDEVMODE. The ResourceDLLName


member stores the name and path of the driver resource DLL
413
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

SetResourceDLLName(stringresdll As String, pBlackIceDEVMODE As Long) As Boolean

Input value: stringresdll


- ResourceDLLName
Input value: pBlackIceDEVMODE - handle to the BlackIceDEVMODE.
Return value
- TRUE if the member was successfully set, otherwise
FALSE.
8.3.7.17

GetBitsPerPixel

Returns the value of the color depth in pixels.


If the Color Depth is BITS_1, the return value is 1
If the Color Depth is BITS_8, the return value is 8
If the Color Depth is BITS_8GRAY, the return value is 8
If the Color Depth is BITS_24, the return value is 24
GetResourceDLLName(pBlackIceDEVMODE As Long) As Long

Input value
- handle to the BlackIceDEVMODE
Return value - Color depth in pixels

9 Visual Basic Sample how to modify the


printer settings
This sample demonstrates how to use the methods of the BlackIceDEVMODE.OCX. The sample
shows how to read, modify and save the printer settings programmatically.

414
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

The PrinterSettings program allows users to change settings of the Black Ice printers.
OK:
save the settings and exit.
Cancel:
exit the program without changing the settings.
Apply:
save the settings without exiting. You can continue to modify the controls.
Open printer:
close previously opened printer, and try to open the new printer specified
in the Printer name text box.

415
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

416
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Differences between Win95/98/ME and


XP/W2K/NT Drivers
The following is a brief list of differences between the Win95/98/ME and XP/W2K/NT Printer
Drivers:

Instead of one dialog box, the settings are divided into two groups that can be found in two
separate dialogs on Xpand W2K: Properties and Printing Preferences. On NT 4.0 it is
named Properties and Document Defaults.
Properties: this dialog can be opened by clicking on the Black Ice printer with the right
mouse button and choosing Properties. The parameters available in this dialog will be used by
every printing application when printing to this printer. The last property sheet contains Black
Ice specific settings.
Document Defaults: another group of settings can be found by clicking on the Black Ice
printer with the right mouse button and selecting Document Defaults. This dialog contains
default values for document related and other settings. However; if a printing application
wants to modify some of these settings it can call the DocumentProperties() function to do so.
Even two or more applications running simultaneously can use different settings.
The XP/W2K and NT driver writes information to a named pipe instead of sending actual
messages.
The user needs Administrator privileges to be able to modify the printers settings on XP/W2K
and NT.

417
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

419
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Technical Support
For Technical support contact us via E-mail or Fax:
E-mail: driversupport@blackice.com;
Fax (603) 672-4112
E-mail is the most expedient method of communication and provides a more reliable answer to
your issues, because it reduces miscommunication and provides a log of the questions and
answers for future reference.
Please include the version number of the product that you are using and the platform on which it
is installed.

420
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

421
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Printing tips
How to print a document to a fax compatible
image without repaginating the document.
When the printer driver is set to Fax paper size and 204x196 or 204x98 DPI resolution, the application
(i.e. MS WORD) will repaginate the document to reflect the printer driver settings. This can cause
problems in the document, because parts of the documents can be shifted from one page to another,
single line texts will not fit to a single line anymore, etc.
In order to avoid the repagination, but still generate a faxable image, please follow the steps below:
1. On the Device settings tab of the Printers Document defaults or Printing Preferences dialog
box check the Create faxable image.
2. Set the paper size and the resolution to the same paper size and resolution your document was
formatted with.
3. Print the document.
This way when the application will check what the printer settings are, it will find that the printer setting
are similar to the document settings, therefore there is no need to repaginate the document. When the
document is printed, the printer driver will print the document with the document settings and at the
very end will resize the generated image to fax size.

How to print images with exact size in


pixels
Sometimes it is important to generate images with a predefined exact size in pixels. To print the
document to an image with a size of X by Y pixels, please do the following:
1. On the Device settings tab of the Printers Document defaults or Printing Preferences dialog
box, select Variable paper size in pixels as the paper size.
2. In the Paper width field, enter the desired width of the image in pixels.
3. In the Paper height field, enter the desired height of the image in pixels.
422
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

4. Print the document.

How to print using very large paper size ?


The Black Ice Printer Drivers besides the standard paper sizes supports custom paper sizes too. The
custom paper size can be specifies in tents of a millimeter or hundreds of an inch. Due to the limitation
of the Windows operating system the maximum value of the paper size (both width and height of the
paper) can be 32767 in tents of a millimeter or 12900 in hundreds of inch.
Practically this means that the maximum paper size can be 129 inch x 129 inch or 327 cm x 327 cm.
The size (in megabytes) of the image depends also on the resolution setting (DPI setting). For the same
paper size higher resolution will produce bigger image file. Your system must have enough system
resource (memory and hard disk space) to allow the printer driver to generate an image of that size.

423
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Troubleshooting
Creating Installations For Users
To configure the printer driver, with default settings, for individual users under Windows 2000
and XP you have to modify the INI file shipped with the driver. For details, please see the
Components of the Resource Tool Kit chapter and the How to set the printer setting at install
time using an INI file section. To verify the correct settings, install the printer driver as
administrator. When the printer driver is installed, select the installed printer driver Properties.
Click on the Advanced Tab. When the advanced window opens, click on the Printing Default...
button to display, verify or change the settings for a system user.

"Printing Defaults..." button


The Problem:
On Windows 2000, If I install a Black Ice printer, and then open the Printers screen from the control
panel, right-click on the Black Ice printer, and choose "Properties", I get a Properties dialog box with 7
property pages. On the "General" property page, if I hit "Printing Preferences", I get the standard Black
Ice 4-property-page printing preferences dialog with all the settings I had set as the defaults during
installation. If, however, I go back to the Properties dialog, go to the "Advanced" property page, and
hit the "Printing Defaults..." button, I get a Black Ice dialog which looks EXACTLY like the printing
preferences dialog I'd just seen EXCEPT WITH DIFFERENT SETTINGS! These "printing default"
settings do not seem to be used anywhere. What are they used for, should they be set along with the
Printing Preferences settings, and if so, how should I set them from InstallShield? (MyDLL_NT.dll in
the Resource Tool Kit only seems to affect the preferences settings, not the defaults settings.)
The "Printing Default" settings can be set from the default install INI file. For details, please see the
Components of the Resource Tool Kit chapter and the How to set the printer setting at install time
using an INI file section. The default setting is read from the INI file by the driver when the driver is
added to the system and before the configuration settings are applied from the MYDLL.DLL. The
"Printing Default" settings are used by the system for system users logged into the same pc without
administrative privileges and the Black Ice printer driver is already installed. The User inherits the
"Printing Default" settings of the Black Ice printer driver.

424
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Setting changes when Black Ice is not the


default printer.
The resolution of the Black Ice printer is set to 100 x 100 DPI in the Device Settings page of the
Printing Preferences dialog (the same default resolution I set at installation). Yet when I run an
application, invoke Print, choose the Black Ice Printer, and bring up its Printing Properties screen, the
resolution is almost always something different. (Usually 200x200 or 600x600.) Note that the Black
Ice Printer is not installed as the system's default printer. What are we doing wrong?
A printing application always uses the default printer settings for a document. When one tries to print
the document to another printer, the printing application uses the settings of the default printer. If the
default printer settings are in the range of the destination printer driver device capabilities, then the
destination printer will use the settings of the default printer. You can test this with 2 printers by setting
default printer "A" to landscape and the second printer "B" to portrait mode. Print the document and
select the second printer and just print. The second printer will print in landscape mode even though it
is configured in portrait mode. The same is true for Dot Per Inch (DPI) resolution, but it is not visible
and sometimes one cannot tell the difference.

Why the printed image parameters are


different then printer driver settings?
When printing certain documents to a Tiff formatted file, the preferences used to configure the print
driver are reset to their default values and subsequent print requests use those default values.
The printing application will store the print settings of the printer driver the document was last
formatted and saved with. The print settings are stored in the DEVMODE and the Extended
DEVMODE data structure.
The Excel document you sent to us was configured with the Black Ice Printer driver and with the
setting of print a single multi page TIFF file. Excel saves the settings of the DEVMODE and the
Extended DEVMODE data structure. If you change the printer driver settings outside Excel by turning
of the single multipage tiff, Excel will use the original DEVMODE and the Extended DEVMODE data
structure (with single multipage TIFF). This makes sense, because Excel stores DEVMODE and the
Extended DEVMODE data structures and has Page Setup to configure the document. This technique
also applies to other printer driver features.

425
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Printer driver does not generate any output.


The printing User has write privileges for the output directory but the printer driver does not generate
any output.
The group file and the image file are saved by the port monitor. Because the port monitor runs on the
local SYSTEM account, inherits the privileges of the SYSTEM account and does not "know" anything
about the printing user. In order to generate output files, the port monitor should have write permission
to the output directory. This means that the local SYSTEM account should have write permission to
the output folder.

How to set file format (Group 3,Group4) in


runtime?
You can change printer settings through the DEVMODE and extended DEVMODE data
structures using MS C or C++. You can change the page size or DPI though the DEVMODE
data structure before printing is started. There is documentation in the manual about the extended
DEVMODE data structure and you can find the DEVMODE data structure documentation in the
MS Visual C++ or Delphi manual.

Does the printer driver support Multithreading?


- Yes.

Can Black Ice printer driver handle


concurrent requests specifying different file
format and resolution?
- Yes.

426
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Why the printer messages are captured by


the administrator account when printing
Test Page on Terminal Server?
On Terminal Server when a Windows Test Page is printed, the test page is printed by the
spooler. In that particular case the messages will be captured on the server machine by the
administrator account, not by the user who prints.

Why the printer generates the output files on


the windows directory when printing Test
Page on Terminal Server?
On Terminal Server when a Windows Test Page is printed, the test page is printed by the
spooler. In that particular case the output files are generated in the windows directory, not in the output
directory which was set up for the user who print.

Why the printer reports the Invalid printer


driver data type error when printing?
The Invalid printer driver data type error is generated by the printer driver when the data type used
by the printer driver is changed from the default NT EMF 1.003 to a different (i.e. RAW) data type.
The Black Ice printer only supports the NT EMF 1.003 data type and will not print with any other
data types.
The error is generated in the following situations:
1. The User, who has printed the document, checked the Print to file check box on the Print
dialog box. The Black Ice printer driver converts the printed document to an image file without
checking the Print to file check box. The User must not check the Print to file check box,
because by checking it the system will force the printer driver to use the RAW data type. Also,
by checking the Print to file check box, the system will connect the printer to the FILE port
instead of the default Black Ice port, therefore the printing will not succeed.
SOLUTION: Do not check the Print to file check box on the Print dialog box.

427
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

2. The Enable advanced printing features check box on the Advanced tab of the printers
Properties dialog box has been unchecked. By unchecking the Enable advanced printing
features check box, the system will force the printer driver to use the RAW data type.
SOLUTION: Open the Black Ice printers Properties dialog box and select the Advanced tab.
Make sure that the Enable advanced printing features check box is checked. Click the Print
Processor button and select NT EMF 1.003 as the data type.
3. The printers data type was manually changed to a data type different than NT EMF 1.003.
SOLUTION: Open the Black Ice printers Properties dialog box and select the Advanced tab.
Click the Print Processor button and select NT EMF 1.003 as the data type.

Why the printer reports the Cannot print


directly to the printer error when printing?
Problem description:
The printer will display the Cannot print directly to the printer message. No files are generated.
Solution:
This error occurs when the spooler is turned off. The Black Ice Printer Driver do not work with the
spooler turned off. At the Spool options select the Spool print documents option instead of Print
directly to the printer

HKEY_LOCAL_MACHINE\SOFTWARE\Black
Ice Software, Inc\ Cannot Created message
Problem description:
The HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc\ registry key cannot be
created message is received at installation time on the Terminal Server.
Solution:
This message is received at installation time if the install cannot create the
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc\ registry key for some
reason. This registry key is vital to use the printer drivers Launch Application option on the
Terminal Server. If the install could not create the key in the registry the system administrator has
to create this key manually. When the key is created, add READ and WRITE permission to the
key for all the users who will use the Black Ice printer to launch an application.
428
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Domain users cannot use the launch the


application feature on the Terminal Server
Problem description:
The printer driver will launch the specified application only if the user who prints has
administrator rights. For users with non-administrative the printer will not launch the application.
Solution:
The system administrator must allow READ and WRITE permission to the
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc\ registry key.
If the key does not exist, the system administrator must create the key manually.

The default settings are not set for all users


after installation on Win2000 and XP.
Problem description:
The settings specified in the Install Shield project are not set for all users, only for the user who
installed the printer.
Solution:
1. The default settings for all users can be set manually after the installation. Go to the printer
Properties, select the Advanced tab. Select the Printing Defaults button. The Printer
Preferences dialog box will appear. All the settings you specify here will be set as the default
settings for all users.
2. To specify the default settings for all users at install time, specify the required settings in the INI
file. (i.e. BiMIniNT.ini in the case of the TIFF Printer Driver). All the settings you specify in the
INI file will be set as the default settings for all users at installation time.

The printer is not using the selected DPI


settings.
Problem description:
The document is printed with another DPI other than what is set in the Printer Preferences.
429
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Solution:
The document was created using the DPI settings of the default printer. Most applications (for
example, Word, Excel, etc.) store the printer settings in the document.
For example if the default printer was set to print at 600 DPI when the document was created, the 600
DPI setting is saved in the document. Because the Black Ice Printer Driver supports the 600 DPI
setting, the application will send the document to the printer with the documents DPI setting. To use
the Black Ice printer settings in the application, go to the Page Setup and change the DPI setting to the
required value and save the document. If the application does not have a Page Setup option, try the
Print or Printing Options, select the Black Ice Printer and save the document. In this case the document
will be saved with the Black Ice Printer DPI settings.

Distorted images from MS Word and Excel


Problem description:
When I print from MS Word or Excel using different DPI settings for the horizontal and vertical
resolution, the image is distorted or parts of the images or tables from the document are missing.
Solution:
This problem can occur on any operating system. If the driver is set up to print with fax compatible
resolution ( 204x98 or 204x196 DPI ) or different horizontal and vertical resolution (i.e.300x600 DPI)
and the printed document contains bitmaps or tables, these objects may be printed slightly smaller or
bigger than the rest of the page.
The reason for this is that these applications expect the printer to have the same vertical and horizontal
resolution values (300x300 or 150x150 DPI).
To fix the problem, set the same horizontal and vertical resolution at the DPI settings in the Printer
Preferences window under the Device Settings tab.
If you need to use FAX resolution (204x98 or 204x196 DPI), first set the printer to use the same
vertical and horizontal resolution values at the DPI settings in the Printer Preferences window under
the Device Settings tab. Then check the Create Faxable Image checkbox. The printer driver will
generate the output image using the fax resolution, but the application will use the same vertical and
horizontal resolution values.

The printer driver does not start the


application
430
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Problem description:
I am logged in as regular user with no administrative rights. The Start application option at the printer
Printinng Preferences is checked but the application does not start.
The same application is started by the printer driver if I am logged in as administrator.
Solution:
This problem can occur on NT/Win2000/Xp and Terminal Server systems.
The printer driver writes information about the application to be started into the
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc. registry key.
That part of the printer driver which writes this information into the registry key runs on the
current user account. If the current user account does not have write permission to the
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc. registry key, the
application cannot be started.
In order to allow the printer driver to start applications for regular users, before or after printing,
the system administrator has to give write permission to the
HKEY_LOCAL_MACHINE\SOFTWARE\Black Ice Software, Inc. registry key.

431
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

432
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

Index
A
Add Fax header....................56, 76, 268, 288
Add Page Numbering Tag. . .43, 65, 256, 276
AdvancedPaperSize........................................
DisableAdvancedPaperSize................171, 206, 358, 389
EnableAdvancedPaperSize.................171, 206, 358, 389
IsAdvancedPaperSizeEnabled.............171, 206, 358, 389

AdvancedText................................................
DisableAdvancedText.........................180, 215, 366, 398
EnableAdvancedText..........................180, 215, 366, 398
IsAdvancedTextEnabled.....................180, 215, 366, 397

AppendImage.................................................
DisableAppendImage..........................178, 213, 363, 395
EnableAppendImage...........................177, 212, 363, 395
IsAppendImageEnabled......................177, 212, 363, 395

Application ............51, 72, 90, 264, 284, 302


ApplicationPath..............................................
GetApplicationPath.............................191, 226, 374, 406
GetInterfaceName...............................195, 231, 378, 410
SetApplicationPath.............................191, 226, 374, 406

B
Bicom...............................................134, 337
BlackIceDEVMODE C++ Sample. .199, 383
BlackIceDEVMODE VB Sample............414
BlackIceDEVMODE.DLL...............164, 352
BlackIceDEVMODE.OCX..............200, 384
BLICECTR.DLL.....................................127
Brightness.......................................................
GetBrightness.....................................183, 218, 368, 400
SetBrightness......................................183, 218, 369, 400

C
Changing DEVMODE with DLL functions
.......................................................167, 355
Changing DEVMODE with OCX functions
.......................................................202, 386
Color Depth ......................................61, 273
ColorDepth....................................................
GetColorDepth....................................176, 211, 362, 394
SetColorDepth....................................176, 211, 362, 394

Commetrex.......................................134, 337
configuration on Windows 95/98/ME....265,
285
Configuration on Windows XP/W2K and NT
.................................................................73

Configuration on Windows XP/W2K/NT


and Terminal Server ...............................53
CustomExtension...........................................
DisableCustomExtension....................186, 221, 370, 402
EnableCustomExtension.....................186, 221, 370, 402
IsCustomExtensionEnabled................186, 221, 370, 402

D
default page orientation 36, 57, 77, 249, 269,
289
Default resolution. .36, 58, 78, 250, 270, 289
Default settings are not set for all users after
installation on Win2000 and XP ........429
DeleteGroupFile.............................................
DisableDeleteGroupFile.....................189, 224, 373, 405
EnableDeleteGroupFile......................189, 224, 373, 405
IsDeleteGroupFileEnabled..................189, 224, 373, 405

Device Settings - functions....168, 203, 355,


387
Differences.......................................238, 417
Digital half-toning................43, 65, 256, 277
Disable Messaging Interface 51, 72, 90, 264,
284, 302
DisableImage..................................................
DisableDisableImage..........................178, 213, 364, 395
EnableDisableImage...........................178, 213, 364, 395
IsDisableImageEnabled......................178, 213, 363, 395

DisableLowFaxOutput.....................361, 392
Distorted images from MS Word and Excel
...............................................................430
dithering...............................43, 65, 256, 277
Dithering........................................................
GetDithering.......................................182, 217, 368, 400
SetDithering........................................183, 218, 368, 400

DLL Functions.................................166, 354


Document Properties................................335
DocumentProperties.................................129
E
EasternCharSupport.......................................
DisableEasternCharSupport................179, 214, 364, 396
EnableEasternCharSupport.................179, 214, 364, 396
IsEasternCharSupportEnabled............178, 213, 364, 396

Enable start application50, 72, 90, 263, 284,


302
EnableLowFaxOutput......................360, 392

433
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

EndWaitPrnPipe.......................................128
F
Fax Boards.......................................134, 337
Fax header..........................................35, 248
FaxHeader......................................................
GetFaxHeader.....................................170, 205, 357, 388
SetFaxHeader.....................................170, 205, 357, 388

FaxLowOutput...............................................
DisableFaxOutput...............................................173, 209
EnableFaxOutput................................................173, 208
IsLowFaxOutputEnabled....................................173, 208

FaxOutput......................................................
DisableFaxOutput...............................170, 205, 357, 389
EnableFaxOutput................................170, 205, 357, 389
IsFaxOutputEnabled...........................170, 205, 357, 388

File Format...........................40, 60, 252, 272


File Formats - functions...........210, 361, 393
FileExtension..................................................
GetFileExtension................................185, 220, 370, 402
SetFileExtension.................................185, 220, 370, 402

FileFormat......................................................
GetFileFormat.....................................175, 210, 361, 393
SetFileFormat.....................................176, 211, 361, 393

FileGenerationMethod...................................
GetFileGenerationMethod..................184, 219, 369, 401
SetFileGenerationMethod...................185, 220, 369, 401

Filename.................48, 69, 87, 261, 281, 299


Filename Generation - functions....184, 219,
369, 401
FileNamePrefix...............................................
GetFileNamePrefix.............................185, 220, 369, 401
SetFileNamePrefix..............................185, 220, 369, 401

filters....................................43, 65, 256, 277


Fine FAX mode.....37, 58, 78, 250, 270, 290
Floyd-Steinberg....................43, 65, 256, 277
G
GammaLink......................................134, 337
GetBitsPerPixel................198, 234, 382, 414
GetLastError....................................166, 354
Graphics Resolution window 36, 58, 78, 250,
270, 290
Group file body................................124, 332
Group File Description.....................122, 330
Group file header section.................122, 330
Group File Options 49, 70, 88, 262, 282, 300
GroupFileDisabled.........................................
DisableGroupFile................................188, 223, 373, 405
EnableGroupFile.................................188, 223, 373, 405
IsGroupFileDisabled...........................188, 223, 372, 404

I
ImageFileName..............................................

GetImageFileName.............................187, 222, 371, 403


SetImageFileName..............................187, 222, 371, 403

INI file......................................................153
INIFileName...................................................
GetINIFileName..................................186, 221, 371, 403
SetINIFileName..................................186, 221, 371, 403

Initialize DEVMODE......166, 201, 354, 385


Installing the driver on NT/W2K and XP...27
Installing the driver on Win95/98 and ME
...............................................................240
Intel DCX Image Format.....40, 61, 253, 273
InterfaceName................................................
SetInterfaceName................................195, 231, 378, 410

InternetTiffFormat..........................................
DisableInternetTiffFormat..................181, 216, 367, 398
EnableInternetTiffFormat...................181, 216, 366, 398
IsInternetTiffFormatEnabled...............181, 216, 366, 398

Invalid printer driver data type .....427, 428


IsFaxLowOutputEnabled.................360, 392
J
Jarvis-Judice-Ninke..............43, 65, 256, 277
JpegDll...........................................................
DisableJpegDll....................................197, 233, 380, 412
EnableJpegDll.....................................197, 232, 380, 412
IsJpegDllEnabled................................196, 232, 380, 412

JPEGDLLName.............................................
GetJPEGDLLName.............................198, 233, 381, 413
SetJPEGDLLName.............................198, 233, 381, 413

K
Keep existing files..48, 69, 87, 261, 281, 299
KeepExistingFiles...........................................
DisableKeepExistingFiles..................187, 222, 372, 404
EnableKeepExistingFiles....................187, 222, 372, 404
IsKeepExistingFilesEnabled...............187, 222, 371, 403

L
Landscape..............36, 57, 77, 249, 269, 289
LoadBlackIceDEVMODE.....166, 201, 354,
386
LossRatio.......................................................
GetLossRatio......................................176, 211, 361, 393
SetLossRatio.......................................176, 211, 362, 393

M
MailMerge......................................................
DisableMailMerge..............................180, 215, 365, 397
EnableMailMerge...............................180, 215, 365, 397
IsMailMergeEnabled..........................180, 215, 365, 397

Messaging Interface.......................................
Change the name.........................................................161

Messaging Interface ........................114, 324


MessagingInterface........................................
DisableMessagingInterface.................195, 230, 378, 410
EnableMessagingInterface..................195, 230, 378, 410

434
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

IsMessagingInterfaceEnabled.............194, 229, 378, 410

Microsoft DIB......................40, 61, 253, 273


Most recent driver files....................145, 347
MultipageImageEnabled.................................
DisableMultipageImage......................177, 212, 363, 394
EnableMultipageImage.......................177, 212, 362, 394
IsMultipageImageEnabled..................177, 212, 362, 394

N
Natural Micro Systems.....................135, 338
O
OCX Functions................................201, 385
OpenPrinter..............................................335
Orientation.....................................................
GetOrientation....................................171, 206, 358, 390
SetOrientation.....................................171, 206, 358, 390

output directory..............................................
different output directory for each user.......................160

Output directory....48, 69, 87, 261, 281, 299


output files.....................................................
in wrong place.............................................................427

OutputDirectory.............................................
GetOutputDirectory............................188, 223, 372, 404
SetOutputDirectory.............................188, 223, 372, 404

P
Page Sizes Supported. .55, 75, 247, 267, 287
PageHeightInPixels........................................
GetPageHeightInPixels.......................169, 204, 356, 387
SetPaperHeightInPixel........................169, 204, 356, 388

PageNumbering..............................................
DisablePageNumbering......................182, 217, 368, 399
EnablePageNumbering.......................182, 217, 368, 399
IsPageNumberingEnabled...................182, 217, 367, 399

PageWidthInPixels.........................................
GetPageWidthInPixels........................169, 204, 356, 387
SetPaperWidthInPixel.........................169, 204, 356, 387

paper size...............34, 55, 75, 247, 267, 287


How to print using very large paper size....................423

Paper size.......................................................
advanced paper size......................................................36

Paper Sizes.....................................................
supported......................................................................34

PaperLength...................................................
GetPaperLength..................................195, 231, 379, 411
SetPaperLength...................................196, 231, 379, 411

PaperSize........................................................
GetPaperSize......................................168, 203, 355, 387
SetPaperSize.......................................169, 204, 356, 387

PassParameters...............................................
DisablePassParameters.......................192, 227, 376, 408
EnablePassParameters........................192, 227, 375, 407
IsPassParametersEnabled...................192, 227, 375, 407

Photo Quality.......................43, 65, 256, 277


Portrait...................36, 57, 77, 249, 269, 289

Print to file check box ..........................427


Printer is not using the selected DPI settings
on Win2000 and XP ..........................429
printer messages.............................................
to the administrator account........................................427

Project settings...........................................91
Project Settings..............................................
XP/W2k/NT and Terminal Server................................91

R
ReleaseBlackIceDEVMODE. 166, 202, 355,
386
Resource Toolkit..............................137, 339
ResourceDLLName.......................................
GetResourceDLLName.......................198, 234, 381, 413
SetResourceDLLName........................198, 234, 381, 413

Reverse bit order in TIFF.....43, 64, 256, 276


ReverseBitOrder............................................
DisableReverseBitOrder.....................182, 217, 367, 399
EnableReverseBitOrder......................181, 216, 367, 399
IsReverseBitOrderEnabled.................181, 216, 367, 398

RotatePaper....................................................
DisableRotatePaper............................172, 207, 359, 390
EnableRotatePaper..............................172, 207, 359, 390
IsRotatePaperEnabled.........................172, 207, 359, 390

S
Sample Code....................................129, 335
SaveBlackIceDEVMODE167, 202, 355, 386
SetListeningPriority..................................128
SetYDPI...................................................360
Sharp....................................43, 65, 256, 277
Smooth.................................43, 65, 256, 277
spatial dithering....................43, 65, 256, 277
Specifying Graphic Resolution.....36, 58, 78,
250, 270, 289
Specifying Page Orientation.36, 57, 77, 249,
269, 289
Specifying Paper Size. .34, 55, 75, 247, 267,
287
Specifying the File Format...40, 60, 80, 252,
272, 292
Standard FAX mode....37, 58, 78, 250, 270,
290
Start Application - functions....225, 374, 406
StartApplication.............................................
DisableStartApplication......................191, 226, 374, 406
EnableStartApplication.......................191, 226, 374, 406
IsStartApplicationEnabled..................190, 225, 374, 406

StartBeforePrint.............................................
DisableStartBeforePrint......................192, 227, 375, 407
EnableStartBeforePrint.......................192, 227, 375, 407

435
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

IsStartBeforePrint...............................191, 226, 375, 407

StartHidden....................................................
DisableStartHidden.............................194, 229, 377, 409
EnableStartHidden..............................194, 229, 377, 409
IsStartHidden......................................194, 229, 377, 409

StartMinimized...............................................
DisableStartMinimized.......................194, 229, 377, 409
EnableStartMinimized........................193, 228, 377, 409
IsStartMinimized................................193, 228, 376, 408

StartNormal....................................................
DisableStartNormal............................193, 228, 376, 408
EnableStartNormal.............................193, 228, 376, 408
IsStartNormal......................................193, 228, 376, 408

Stucki...................................44, 65, 256, 277


T
TIFF Driver....................................................
NT/W2k/XP and terminal Server.................................32

TIFF Uncompressed............40, 61, 253, 273


TiffDll.............................................................
DisableTiffDll.....................................196, 232, 379, 411
EnableTiffDll......................................196, 232, 379, 411
IsTiffDllEnabled.................................196, 232, 379, 411

TIFFDLLName..............................................
GetTIFFDLLName..............................197, 233, 380, 412
SetTIFFDLLName..............................197, 233, 380, 413

transmit color pictures.........44, 65, 257, 277


TSPrnMessage structure..........................127
U
Units......................34, 55, 75, 247, 267, 287
W
WaitForPrnPipe........................................128
Win95/98 and ME Monochrome Driver. .244
Write Text File.......41, 62, 81, 254, 274, 293
WriteText.......................................................
DisableWriteText...............................179, 214, 365, 397
EnableWriteText.................................179, 214, 365, 396
IsWriteTextEnabled............................179, 214, 365, 396

X
XDPI..............................................................
GetXDPI.............................................172, 207, 359, 391
SetXDPI..............................................172, 207, 359, 391

Y
YDPI..............................................................
GetYDPI.............................................173, 208, 360, 391
SetYDPI......................................................173, 208, 391

Z
ZSoft PCX Image Format....40, 61, 253, 273
Advanced Papersize ...57, 77, 249, 269, 289
Black Ice DEVMODE ...................102, 312
BLACKICE_PRINTER_MESSAGE . .117,
326

Changing DEVMODE under Windows


95/98......................................................335
Changing the DEVMODE structure under
Windows NT/2000/XP .........................129
Command Line Parameters ............121, 329
COPYDATASTRUCT ..................117, 325
Create Faxable Image.. .35, 36, 57, 249, 269
Create Faxable Image 35, 57, 77, 249, 269,
288
Create multipage image .....40, 62, 253, 274
CreateRegistryKeyForApplicationStarting(
DWORD PrinterType); ........................144
Delete group file after printing ...49, 70, 88,
262, 282, 300
Device Settings sheet ...32, 54, 74, 266, 286
Disable Group File .....49, 70, 88, 262, 282,
300
Disable image .......40, 62, 81, 253, 274, 293
Eastern Character Support 41, 62, 81, 253,
274, 293
Enable Start Application ....50, 71, 89, 263,
283, 301
File Formats sheet ..............39, 60, 252, 272
Filename Extension ..41, 48, 62, 69, 81, 87,
254, 261, 274, 281, 293, 299
Filename Generation Method ...67, 85, 279,
297
Filename Generation sheet . 66, 84, 278, 296
Filename Prefix ....48, 69, 87, 261, 281, 299
Force FAX Resolution 36, 57, 77, 249, 269,
289
Generated Image Size 37, 59, 79, 251, 271,
291
Group File Content.........................122, 330
Horizontal Resolution 37, 59, 78, 250, 270,
290
How is Page size computed 36, 57, 77, 249,
269, 289
How is performance affected by the Photo
Quality output?................................44, 257
Internet TIFF format ..........43, 64, 256, 276
Intesity ...............................44, 65, 256, 277
JPEG Loss Ratio ..............................61, 273
Mail Merge ..........41, 63, 81, 254, 275, 293

436
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 - 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

MEMBERS OF THE BlackIceDEVMODE


STRUCTURE ..............................104, 314
Metafile Driver for XP/W2K/NT and
Terminal Server ......................................73
Name Generation Method ..67, 85, 279, 297
Name Generation Methods ..............46, 259
Options.................40, 62, 80, 253, 274, 292
Paper Height ........33, 55, 75, 247, 267, 287
Paper Width .........33, 54, 74, 246, 266, 286
Pass Parameters ...51, 72, 90, 264, 284, 302
Programming Interface ....................91, 303
Rotate Landscape Image to Portrait 36, 58,
77, 250, 269, 289
Save Position and style info 43, 64, 83, 255,
276, 295
SaveDefaultBlackIceDEVMODE ..167, 202
Show Application Window 51, 72, 90, 264,
284, 302
Start After Printing ....51, 72, 90, 264, 284,
302

Start Application sheet .....71, 89, 263, 283,


301
Start Before Printing ..51, 72, 90, 264, 284,
302
TIFF Options......................43, 64, 256, 276
Use custom extension 48, 69, 87, 261, 281,
299
Vertical Resolution ....37, 59, 78, 251, 271,
290
What is Fax Paper Size ....................36, 249
What is Fax Paper Size?....................77, 289
What is Fax Paper Size? ...................57, 269
When should Photo Quality Output be used?
.........................................................44, 256
Win95/98 and ME Color Driver ............265
Win95/98 and ME Metafile Driver ........285
Windows DEVMODE .....................93, 303
WM_COPYDATA Message .........116, 324
XP/W2K/NT and Terminal Server Color
Driver .....................................................53

437
292 Route 101, Amherst, NH 03031 Tel: (603)673-1019 Fax: (603)672-4112
1989 2001 Black Ice Software Inc.
Information Contained Is Not For Reproduction Or Distribution

S-ar putea să vă placă și