AddPaperSizeEx

 

 

#include “BlackIceDEVMODE.h”

 

DWORD        AddPaperSizeEx(BlackIceDEVMODE* pDevMode, LPCTSTR szPaperName, DWORD dwWidth, DWORD dwHeight, DWORD dwUnit, BOOL bRollPaper);

 

Description

 

The function adds a new paper size to the paper list of the printer driver's current user in the registry. The printing application must be restarted for the changes to take effect.

 

Paper sizes added using the AddPaperSize or AddPaperSizeEx function or from the Printing Preferences dialog will be deleted when the user presses the Restore Defaults button on the Printing Preferences dialog. To add a paper size permanently for all users, the new paper size should be added to the Printer Driver’s INI files.

 

Parameters

 

BlackIceDEVMODE* pDevMode:

Pointer to the BlackIceDEVMODE structure of the printer.

 

LPCTSTR szPaperName:

Name of the new paper size.

 

DWORD dwWidth:

Width of the new paper size. The dwUnit parameter specifies the units.

 

DWORD dwHeight:

Height of the new paper size. The dwUnit parameter specifies the units.

 

DWORD dwUnit:

Specifies the units of dwWidth and dwHeight, which can be one of the following values:

0: hundredths of inches

1: tenths of millimeters

2: pixels

BOOL bRollPaper:

Specifies if the added paper size is a roll paper size. For roll paper sizes, the Printer Driver automatically cuts off the empty space below the printed page content. The dwHeight parameter will specify the maximum height of the page.

 

Return value

 

On success: The Windows paper code of the newly added paper that can be used with the SetPaperSize function.

The function returns 0 if an error happens or if a paper with the given name already exists.

 

Programming Notes

 

None

 

Code Example

 

// load the DEVMODE structure

BlackIceDEVMODE* pDevMode = LoadBlackIceDEVMODE(szPrinterName);

// add or modify paper size

DWORD dwPaperCode = AddPaperSizeEx(pDevMode, _T("Roll Paper"), 800, 3000, 1, TRUE);

if (dwPaperCode == 0)

{

  dwPaperCode = ModifyPaperSizeEx(pDevMode, _T("Roll Paper"),

    _T("Roll Paper"), 800, 3000, 1, TRUE);

}

// Set the new paper size and other settings

SetPaperSize(dwPaperCode, pDevMode);

...

// save the settings for the current user and release the structure

SaveBlackIceDEVMODE(szPrinterName, pDevMode);

ReleaseBlackIceDEVMODE(pDevMode);

// copy the current user's settings to all users on the system

CopySettingsForAllUsers(szPrinterName);