-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathZBRPrinter.h
executable file
·423 lines (367 loc) · 24.7 KB
/
ZBRPrinter.h
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
#ifndef _ZBR_PRINTER_HEADER_
#define _ZBR_PRINTER_HEADER_
#include <Windows.h>
#include <wchar.h>
#ifdef __cplusplus
extern "C" {
#endif
#define ZBR_PRINTER_DEFAULT_NAME "ZBRPrinter.dll"
// For printer types
enum ZbrPrinterType {
zbrPrinterType_100 = 100,
zbrPrinterType_110 = 110,
zbrPrinterType_120 = 120,
zbrPrinterType_330 = 330,
zbrPrinterType_360 = 360,
zbrPrinterType_420 = 420,
zbrPrinterType_430 = 430,
zbrPrinterType_640 = 640
};
// For card type
enum ZbrCardType {
zbrCardType_Contact = 1,
zbrCardType_ContacLess = 2,
zbrCardType_UHF = 3
};
// For overlay type
enum ZbrOverlayType {
zbrOverlayType_Front = 0,
zbrOverlayType_Back = 1
};
// For magnetic encoding
enum ZbrMagneticEncodingTricks {
zbrMagneticEncoding_Trick1 = 1,
zbrMagneticEncoding_Trick2 = 2,
zbrMagneticEncoding_Trick3 = 3
};
#ifndef _ZBR_GRAPHICS_HEADER_
// For code bar
enum ZbrCodebarRotation {
zbrCodebarRotation_OriginLeft_NoRotation = 0,
zbrCodebarRotation_OriginLeft_Rotation90 = 1,
zbrCodebarRotation_OriginLeft_Rotation180 = 2,
zbrCodebarRotation_OriginLeft_Rotation270 = 3,
zbrCodebarRotation_OriginCenter_NoRotation = 4,
zbrCodebarRotation_OriginCenter_Rotation90 = 5,
zbrCodebarRotation_OriginCenter_Rotation180 = 6,
zbrCodebarRotation_OriginCenter_Rotation270 = 7
};
enum ZbrCodebarType {
zbrCodebarType_Code39 = 0,
zbrCodebarType_2_5Interleave = 1, //no count
zbrCodebarType_2_5Industrial = 2, //no check digits
zbrCodebarType_EAN8 = 3,
zbrCodebarType_EAN13 = 4,
zbrCodebarType_UPC = 5,
zbrCodebarType_Code128C = 7,
zbrCodebarType_Code128B = 8,
zbrCodebarType_Code128C_CheckDigits = 107,
zbrCodebarType_Code128B_CheckDigits = 108
};
enum ZbrCodebarWidthRatio{
zbrCodebarWidthRatio_NarrowBar0 = 0, //0 = narrow bar = 1 dot, wide bar = 2 dots
zbrCodebarWidthRatio_NarrowBar1 = 1, //1 = narrow bar = 1 dot, wide bar = 3 dots
zbrCodebarWidthRatio_NarrowBar2 = 2 //2 = narrow bar = 2 dots, wide bar = 5 dots
};
enum ZbrCodebarTextUnder {
zbrCodebarTextUnder_True = 1,
zbrCodebarTextUnder_Yes = 1,
zbrCodebarTextUnder_False = 0,
zbrCodebarTextUnder_No = 0
};
#endif
// Errors returned by the driver
#define ZBR_ERROR_PRINTER_MECHANICAL_ERROR -1
#define ZBR_ERROR_BROKEN_RIBBON 1
#define ZBR_ERROR_TEMPERATURE 2
#define ZBR_ERROR_MECHANICAL_ERROR 3
#define ZBR_ERROR_OUT_OF_CARD 4
#define ZBR_ERROR_CARD_IN_ENCODER 5
#define ZBR_ERROR_CARD_NOT_IN_ENCODER 6
#define ZBR_ERROR_PRINT_HEAD_OPEN 7
#define ZBR_ERROR_OUT_OF_RIBBON 8
#define ZBR_ERROR_REMOVE_RIBBON 9
#define ZBR_ERROR_PARAMETERS_ERROR 10
#define ZBR_ERROR_INVALID_COORDINATES 11
#define ZBR_ERROR_UNKNOWN_BARCODE 12
#define ZBR_ERROR_UNKNOWN_TEXT 13
#define ZBR_ERROR_COMMAND_ERROR 14
#define ZBR_ERROR_BARCODE_DATA_SYNTAX 20
#define ZBR_ERROR_TEXT_DATA_SYNTAX 21
#define ZBR_ERROR_GRAPHIC_DATA_SYNTAX 22
#define ZBR_ERROR_GRAPHIC_IMAGE_INITIALIZATION 30
#define ZBR_ERROR_GRAPHIC_IMAGE_MAXIMUM_WIDTH_EXCEEDED 31
#define ZBR_ERROR_GRAPHIC_IMAGE_MAXIMUM_HEIGHT_EXCEEDED 32
#define ZBR_ERROR_GRAPHIC_IMAGE_DATA_CHECKSUM_ERROR 33
#define ZBR_ERROR_DATA_TRANSFER_TIME_OUT 34
#define ZBR_ERROR_CHECK_RIBBON 35
#define ZBR_ERROR_INVALID_MAGNETIC_DATA 40
#define ZBR_ERROR_MAG_ENCODER_WRITE 41
#define ZBR_ERROR_READING_ERROR 42
#define ZBR_ERROR_MAG_ENCODER_MECHANICAL 43
#define ZBR_ERROR_MAG_ENCODER_NOT_RESPONDING 44
#define ZBR_ERROR_MAG_ENCODER_MISSING_OR_CARD_JAM 45
#define ZBR_ERROR_ROTATION_ERROR 47
#define ZBR_ERROR_COVER_OPEN 48
#define ZBR_ERROR_ENCODING_ERROR 49
#define ZBR_ERROR_MAGNETIC_ERROR 50
#define ZBR_ERROR_BLANK_TRACK 51
#define ZBR_ERROR_FLASH_ERROR 52
#define ZBR_ERROR_NO_ACCESS 53
#define ZBR_ERROR_SEQUENCE_ERROR 54
#define ZBR_ERROR_PROX_ERROR 55
#define ZBR_ERROR_CONTACT_DATA_ERROR 56
#define ZBR_ERROR_PROX_DATA_ERROR 57
// Errors returned by the SDK
#define ZBR_SDK_ERROR_PRINTER_NOT_SUPPORTED 60
#define ZBR_SDK_ERROR_CANNOT_GET_PRINTER_HANDLE 61
#define ZBR_SDK_ERROR_CANNOT_GET_PRINTER_DRIVER 62
#define ZBR_SDK_ERROR_INVALID_PARAMETER 63
#define ZBR_SDK_ERROR_PRINTER_BUSY 64
#define ZBR_SDK_ERROR_INVALID_PRINTER_HANDLE 65
#define ZBR_SDK_ERROR_CLOSE_HANDLE_ERROR 66
#define ZBR_SDK_ERROR_COMMUNICATION_ERROR 67
#define ZBR_SDK_ERROR_BUFFER_OVERFLOW 68
#define ZBR_SDK_ERROR_READ_DATA_ERROR 69
#define ZBR_SDK_ERROR_WRITE_DATA_ERROR 70
#define ZBR_SDK_ERROR_LOAD_LIBRARY_ERROR 71
#define ZBR_SDK_ERROR_INVALID_STRUCT_ALIGNMENT 72
#define ZBR_SDK_ERROR_GETTING_DEVICE_CONTEXT 73
#define ZBR_SDK_ERROR_SPOOLER_ERROR 74
#define ZBR_SDK_ERROR_OUT_OF_MEMORY 75
#define ZBR_SDK_ERROR_OUT_OF_DISK_SPACE 76
#define ZBR_SDK_ERROR_USER_ABORT 77
#define ZBR_SDK_ERROR_APPLICATION_ABORT 78
#define ZBR_SDK_ERROR_CREATE_FILE_ERROR 79
#define ZBR_SDK_ERROR_WRITE_FILE_ERROR 80
#define ZBR_SDK_ERROR_READ_FILE_ERROR 81
#define ZBR_SDK_ERROR_INVALID_MEDIA 82
#define ZBR_SDK_ERROR_MEMORY_ALLOCATION 83
#define ZBR_SDK_ERROR_UNKNOWN_ERROR 255
//SDK specific functions
typedef void (CALLBACK *PTR_ZBRPRNGetSDKVer)(_Out_ LPINT major, _Out_ LPINT minor, _Out_ LPINT engLevel);
typedef void (CALLBACK *PTR_ZBRPRNGetSDKVsn)(_Out_ LPINT major, _Out_ LPINT minor, _Out_ LPINT engLevel);
typedef INT (CALLBACK *PTR_ZBRPRNGetSDKProductVer)(_Out_ LPSTR productVersion, _Out_ LPINT buffSize);
//Printer driver handle functions
typedef INT (CALLBACK *PTR_ZBRGetHandle)(_Out_ LPHANDLE hPrinter, LPSTR pName, _Out_ INT* printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRCloseHandle)(HANDLE hPrinter, _Out_ LPINT err);
//Printer driver functions
typedef INT (CALLBACK *PTR_ZBRPRNGetMsgSuppressionState)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT state, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSuppressStatusMsgs)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT suppressMsgs, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetOverlayMode)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ ZbrOverlayType overlay, _Out_ LPSTR filename, _Out_ LPINT err);
//Printer driver functions
typedef INT (CALLBACK *PTR_ZBRPRNPrintPrnFile)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ LPSTR filename, _Out_ LPINT err);
//Status functions
typedef INT (CALLBACK *PTR_ZBRPRNCheckForErrors)(_In_ HANDLE hPrinter, _In_ INT printerType);
typedef INT (CALLBACK *PTR_ZBRPRNClrErrStatusLn)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrintCount)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT printCount, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrintStatus)(_In_ HANDLE hPrinter, _In_ INT printerType);
typedef INT (CALLBACK *PTR_ZBRPRNGetPanelsRemaining)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT panels, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPanelsPrinted)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT panels, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrinterSerialNumber)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPSTR serialNum, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrinterSerialNumb)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPSTR serialNum, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrinterOptions)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPSTR options, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrintHeadSerialNumber)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPSTR serialNum, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrintHeadSerialNumb)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPSTR serialNum, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetOpParam)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT paramIDx, _Out_ LPSTR opParam, _Out_ LPINT respSize, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetPrinterStatus)(_Out_ LPINT statusCode);
typedef INT (CALLBACK *PTR_ZBRPRNGetSensorStatus)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPBYTE status, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNIsPrinterReady)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
//Cleaning functions
typedef INT (CALLBACK *PTR_ZBRPRNChkDueForCleaning)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT imgCounter, _Out_ LPINT cleanCounter, _Out_ LPINT cleanCardCounter, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNStartCleaningSeq)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNStartCleaningCardSeq)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetCleaningParam)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT imgCounter, _Out_ LPINT cleanCounter, _Out_ LPINT cleanCardCounter, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetCleaningParam)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT ribbonPanelCounter, _In_ INT cleanCardPass, _Out_ LPINT err);
//Printer setup functions
typedef INT (CALLBACK *PTR_ZBRPRNResetPrinter)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSelfAdj)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetChecksum)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT checksum, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetCardFeedingMode)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT mode, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetPrintHeadResistance)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT resistance, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrMediaPath)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNImmediateParamSave)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetRelativeXOffset)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT offset, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetRelativeYOffset)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT offset, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetStartPrintXOffset)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT offset, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetStartPrintYOffset)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT offset, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNGetIPAddress)(_In_ LPSTR printerName, _Out_ LPSTR ipAddress);
//Image buffer functions
typedef INT (CALLBACK *PTR_ZBRPRNSetColorContrast)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT imgBufIdx, _In_ INT contrast, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetContrastIntensityLvl)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT imgBufIdx, _In_ INT intensity, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetHologramIntensity)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT intensity, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetMonoContrast)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT contrast, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetMonoIntensity)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT intensity, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrSpecifiedBmp)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT colorBufIdx, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrMonoImgBuf)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT clrVarnish, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrMonoImgBufs)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT clrBuffer, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrColorImgBufs)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNClrColorImgBuf)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT imgBufIdx, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintMonoImgBuf)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintMonoImgBufEx)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT printParameter, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintColorImgBuf)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT imgBufIdx, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintClearVarnish)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintVarnish)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintVarnishEx)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT printParameter, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintHologramOverlay)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT printParam, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintCardPanel)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT imgBufIdx, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNPrintMonoPanel)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteBox)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT startX, _In_ INT startY, _In_ INT width,
_In_ INT height, _In_ INT thickness, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteBoxEx)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT startX, _In_ INT startY, _In_ INT width,
_In_ INT height, _In_ INT thickness, _In_ INT gMode, _In_ INT isVarnish, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteText)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT startX, _In_ INT startY, _In_ INT rotation, _In_ INT isBold, _In_ INT height, _In_ LPSTR text, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteTextEx)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT startX, _In_ INT startY, _In_ INT rotation, _In_ INT isBold, _In_ INT width, _In_ INT height, _In_ INT gMode,
_In_ LPSTR text, _In_ INT isVarnish, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetEndOfPrint)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT xWidth, _Out_ LPINT err);
//Position card functions
typedef INT (CALLBACK *PTR_ZBRPRNMovePrintReady)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNReversePrintReady)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNEjectCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNFlipCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNMoveCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT steps, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNMoveCardBkwd)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT steps, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNMoveCardFwd)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT steps, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNResync)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNStartSmartCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT cardType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNEndSmartCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT cardType, _In_ INT moveType, _Out_ LPINT err);
//Test card functions
typedef INT (CALLBACK *PTR_ZBRPRNPrintTestCard)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT cardType, _Out_ LPINT err);
//Barcode functions
typedef INT (CALLBACK *PTR_ZBRPRNWriteBarCode)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT startX, _In_ INT startY,
_In_ ZbrCodebarRotation rotation, _In_ ZbrCodebarType barcodeType, _In_ ZbrCodebarWidthRatio barWidthRatio,
_In_ INT barcodeMultiplier, _In_ INT barcodeHeight,
_In_ ZbrCodebarTextUnder textUnder, _In_ LPSTR barcodeData, _Out_ LPINT err);
//Update functions
typedef INT (CALLBACK *PTR_ZBRPRNUpgradeFirmware)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ LPSTR filename, _Out_ LPINT err);
// Magnetic encoder functions
typedef INT (CALLBACK *PTR_ZBRPRNSetEncodingDir)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT dir, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetTrkDensity)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ ZbrMagneticEncodingTricks trkNumb, _In_ INT density, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNResetMagEncoder)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetEncoderCoercivity)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT coercivity, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSetMagEncodingStd)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT std, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNEnableMagReadDataEncryption)(_In_ HANDLE hPrinter, _In_ INT printerType, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNReadMag)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT trksToRead, LPSTR trk1Buf, _Out_ LPINT trk1BytesNeeded, LPSTR trk2Buf, _Out_ LPINT trk2BytesNeeded, LPSTR trk3Buf, _Out_ LPINT trk3BytesNeeded, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNReadMagByTrk)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT trkNumb, LPSTR trkBuf, _Out_ LPINT trkBytesNeeded, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteMag)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT trksToWrite, LPSTR trk1Data, LPSTR trk2Data, LPSTR trk3Data, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteMagByTrk)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT trkNumb, LPSTR trkData, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNWriteMagPassThru)(HDC hDC, _In_ INT printerType, _In_ INT trksToWrite, LPSTR trk1Data, LPSTR trk2Data, LPSTR trk3Data, _Out_ LPINT err);
//Old functions not in SDK document (to send command see "Programmer's Guide 980415-001")
typedef INT (CALLBACK *PTR_ZBRPRNSendCmd)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ LPSTR cmd, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSendCommand)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ LPSTR cmd, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNSendCmdEx)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ LPSTR cmd, LPSTR response, _Out_ LPINT respBytesNeeded, _Out_ LPINT err);
typedef INT (CALLBACK *PTR_ZBRPRNMultipleCmd)(_In_ HANDLE hPrinter, _In_ INT printerType, _In_ INT numb, _In_ LPSTR cmd, _Out_ LPINT err);
//SDK specific functions
extern PTR_ZBRPRNGetSDKVer ZBRPRNGetSDKVer;
extern PTR_ZBRPRNGetSDKVsn ZBRPRNGetSDKVsn;
extern PTR_ZBRPRNGetSDKProductVer ZBRPRNGetSDKProductVer;
//Printer driver handle functions
extern PTR_ZBRGetHandle ZBRGetHandle;
extern PTR_ZBRCloseHandle ZBRCloseHandle;
//Printer driver functions
extern PTR_ZBRPRNGetMsgSuppressionState ZBRPRNGetMsgSuppressionState;
extern PTR_ZBRPRNSuppressStatusMsgs ZBRPRNSuppressStatusMsgs;
extern PTR_ZBRPRNSetOverlayMode ZBRPRNSetOverlayMode;
//Printer driver functions
extern PTR_ZBRPRNPrintPrnFile ZBRPRNPrintPrnFile;
//Status functions
extern PTR_ZBRPRNCheckForErrors ZBRPRNCheckForErrors;
extern PTR_ZBRPRNClrErrStatusLn ZBRPRNClrErrStatusLn;
extern PTR_ZBRPRNGetPrintCount ZBRPRNGetPrintCount;
extern PTR_ZBRPRNGetPrintStatus ZBRPRNGetPrintStatus;
extern PTR_ZBRPRNGetPanelsRemaining ZBRPRNGetPanelsRemaining;
extern PTR_ZBRPRNGetPanelsPrinted ZBRPRNGetPanelsPrinted;
extern PTR_ZBRPRNGetPrinterSerialNumber ZBRPRNGetPrinterSerialNumber;
extern PTR_ZBRPRNGetPrinterSerialNumb ZBRPRNGetPrinterSerialNumb;
extern PTR_ZBRPRNGetPrinterOptions ZBRPRNGetPrinterOptions;
extern PTR_ZBRPRNGetPrintHeadSerialNumber ZBRPRNGetPrintHeadSerialNumber;
extern PTR_ZBRPRNGetPrintHeadSerialNumb ZBRPRNGetPrintHeadSerialNumb;
extern PTR_ZBRPRNGetOpParam ZBRPRNGetOpParam;
extern PTR_ZBRPRNGetPrinterStatus ZBRPRNGetPrinterStatus;
extern PTR_ZBRPRNGetSensorStatus ZBRPRNGetSensorStatus;
extern PTR_ZBRPRNIsPrinterReady ZBRPRNIsPrinterReady;
//Cleaning functions
extern PTR_ZBRPRNChkDueForCleaning ZBRPRNChkDueForCleaning;
extern PTR_ZBRPRNStartCleaningSeq ZBRPRNStartCleaningSeq;
extern PTR_ZBRPRNStartCleaningCardSeq ZBRPRNStartCleaningCardSeq;
extern PTR_ZBRPRNGetCleaningParam ZBRPRNGetCleaningParam;
extern PTR_ZBRPRNSetCleaningParam ZBRPRNSetCleaningParam;
//Printer setup functions
extern PTR_ZBRPRNResetPrinter ZBRPRNResetPrinter;
extern PTR_ZBRPRNSelfAdj ZBRPRNSelfAdj;
extern PTR_ZBRPRNGetChecksum ZBRPRNGetChecksum;
extern PTR_ZBRPRNSetCardFeedingMode ZBRPRNSetCardFeedingMode;
extern PTR_ZBRPRNSetPrintHeadResistance ZBRPRNSetPrintHeadResistance;
extern PTR_ZBRPRNClrMediaPath ZBRPRNClrMediaPath;
extern PTR_ZBRPRNImmediateParamSave ZBRPRNImmediateParamSave;
extern PTR_ZBRPRNSetRelativeXOffset ZBRPRNSetRelativeXOffset;
extern PTR_ZBRPRNSetRelativeYOffset ZBRPRNSetRelativeYOffset;
extern PTR_ZBRPRNSetStartPrintXOffset ZBRPRNSetStartPrintXOffset;
extern PTR_ZBRPRNSetStartPrintYOffset ZBRPRNSetStartPrintYOffset;
extern PTR_ZBRPRNGetIPAddress ZBRPRNGetIPAddress;
//Image buffer functions
extern PTR_ZBRPRNSetColorContrast ZBRPRNSetColorContrast;
extern PTR_ZBRPRNSetContrastIntensityLvl ZBRPRNSetContrastIntensityLvl;
extern PTR_ZBRPRNSetHologramIntensity ZBRPRNSetHologramIntensity;
extern PTR_ZBRPRNSetMonoContrast ZBRPRNSetMonoContrast;
extern PTR_ZBRPRNSetMonoIntensity ZBRPRNSetMonoIntensity;
extern PTR_ZBRPRNClrSpecifiedBmp ZBRPRNClrSpecifiedBmp;
extern PTR_ZBRPRNClrMonoImgBuf ZBRPRNClrMonoImgBuf;
extern PTR_ZBRPRNClrMonoImgBufs ZBRPRNClrMonoImgBufs;
extern PTR_ZBRPRNClrColorImgBufs ZBRPRNClrColorImgBufs;
extern PTR_ZBRPRNClrColorImgBuf ZBRPRNClrColorImgBuf;
extern PTR_ZBRPRNPrintMonoImgBuf ZBRPRNPrintMonoImgBuf;
extern PTR_ZBRPRNPrintMonoImgBufEx ZBRPRNPrintMonoImgBufEx;
extern PTR_ZBRPRNPrintColorImgBuf ZBRPRNPrintColorImgBuf;
extern PTR_ZBRPRNPrintClearVarnish ZBRPRNPrintClearVarnish;
extern PTR_ZBRPRNPrintVarnish ZBRPRNPrintVarnish;
extern PTR_ZBRPRNPrintVarnishEx ZBRPRNPrintVarnishEx;
extern PTR_ZBRPRNPrintHologramOverlay ZBRPRNPrintHologramOverlay;
extern PTR_ZBRPRNPrintCardPanel ZBRPRNPrintCardPanel;
extern PTR_ZBRPRNPrintMonoPanel ZBRPRNPrintMonoPanel;
extern PTR_ZBRPRNWriteBox ZBRPRNWriteBox;
extern PTR_ZBRPRNWriteBoxEx ZBRPRNWriteBoxEx;
extern PTR_ZBRPRNWriteText ZBRPRNWriteText;
extern PTR_ZBRPRNWriteTextEx ZBRPRNWriteTextEx;
extern PTR_ZBRPRNSetEndOfPrint ZBRPRNSetEndOfPrint;
//Position card functions
extern PTR_ZBRPRNMovePrintReady ZBRPRNMovePrintReady;
extern PTR_ZBRPRNReversePrintReady ZBRPRNReversePrintReady;
extern PTR_ZBRPRNEjectCard ZBRPRNEjectCard;
extern PTR_ZBRPRNFlipCard ZBRPRNFlipCard;
extern PTR_ZBRPRNMoveCard ZBRPRNMoveCard;
extern PTR_ZBRPRNMoveCardBkwd ZBRPRNMoveCardBkwd;
extern PTR_ZBRPRNMoveCardFwd ZBRPRNMoveCardFwd;
extern PTR_ZBRPRNResync ZBRPRNResync;
extern PTR_ZBRPRNStartSmartCard ZBRPRNStartSmartCard;
extern PTR_ZBRPRNEndSmartCard ZBRPRNEndSmartCard;
//Test card functions
extern PTR_ZBRPRNPrintTestCard ZBRPRNPrintTestCard;
//Barcode functions
extern PTR_ZBRPRNWriteBarCode ZBRPRNWriteBarCode;
//Update functions
extern PTR_ZBRPRNUpgradeFirmware ZBRPRNUpgradeFirmware;
// Magnetic encoder functions
extern PTR_ZBRPRNSetEncodingDir ZBRPRNSetEncodingDir;
extern PTR_ZBRPRNSetTrkDensity ZBRPRNSetTrkDensity;
extern PTR_ZBRPRNResetMagEncoder ZBRPRNResetMagEncoder;
extern PTR_ZBRPRNSetEncoderCoercivity ZBRPRNSetEncoderCoercivity;
extern PTR_ZBRPRNSetMagEncodingStd ZBRPRNSetMagEncodingStd;
extern PTR_ZBRPRNEnableMagReadDataEncryption ZBRPRNEnableMagReadDataEncryption;
extern PTR_ZBRPRNReadMag ZBRPRNReadMag;
extern PTR_ZBRPRNReadMagByTrk ZBRPRNReadMagByTrk;
extern PTR_ZBRPRNWriteMag ZBRPRNWriteMag;
extern PTR_ZBRPRNWriteMagByTrk ZBRPRNWriteMagByTrk;
extern PTR_ZBRPRNWriteMagPassThru ZBRPRNWriteMagPassThru;
//Old functions not in SDK document (to send command see "Programmer's Guide 980415-001")
extern PTR_ZBRPRNSendCmd ZBRPRNSendCmd;
extern PTR_ZBRPRNSendCommand ZBRPRNSendCommand;
extern PTR_ZBRPRNSendCmdEx ZBRPRNSendCmdEx;
extern PTR_ZBRPRNMultipleCmd ZBRPRNMultipleCmd;
int ZbrPrinter_LoadFunctionDLL(_In_ HMODULE *hModuleDLL, _In_ LPSTR functionName, _In_ FARPROC *funtionPtr);
int ZbrPrinter_LoadDLL(_In_ LPSTR filename);
void ZbrPrinter_UnloadDLL();
#ifdef __cplusplus
}
#endif
#endif