#pragma once /* * Device List Option */ #define SMART70_DEVICELIST_USB 0x01 #define SMART70_DEVICELIST_NET 0x02 #define SMART70_DEVICELIST_ALL (SMART70_DEVICELIST_USB | SMART70_DEVICELIST_NET) /* * Device Name */ #define SMART70_OPENDEVICE_BYID 0 #define SMART70_OPENDEVICE_BYDESC 1 /* * Page / Panel */ #define PAGE_P1FRONT 0 #define PAGE_P1BACK 1 #define PAGE_P2FRONT 2 #define PAGE_P2BACK 3 #define PAGE_MAX 4 #define PANEL_COLOR 1 #define PANEL_BLACK 2 #define PANEL_OVERLAY 4 #define PANEL_UV 8 /* * Contactless-PCSC : Auth Side */ #define PCSC_MIFARE_AUTH1A 0x60 // authentication with Mifare key A #define PCSC_MIFARE_AUTH1B 0x61 // authentication with Mifare key B /* * Contactless-DUALi : Mifare Side */ #define DUALI_MIFARE_SIDEA 0x00 // Mifare key A on DUALi #define DUALI_MIFARE_SIDEB 0x04 // Mifare key B on DUALi /* * Device */ #define INTERNALDEV 1 // internal device (IC, RF) #define EXTERNALDEV 2 // external device (SIM, RF) /* * Simple State Code Definition. */ // Action Result #define SS_ACT_SUCCESS 0x00 #define SS_ACT_FAIL 0x01 #define SS_ACT_RESULT 0x01 // mask // Action State #define SS_ACT_IDLE 0x00 #define SS_ACT_RUN 0x02 #define SS_ACT_STATE 0x02 // mask // Card State #define SS_CARD_ABSENT 0x00 #define SS_CARD_EXIST 0x04 #define SS_CARD_STATE 0x04 // mask #define SS_INIT 0x08 // Command State #define SS_CMD_IDLE 0x00 #define SS_CMD_RUN 0x10 #define SS_CMD_STATE 0x10 // mask // Command Result #define SS_CMD_SUCCESS 0x00 #define SS_CMD_FAIL 0x20 #define SS_CMD_RESULT 0x20 // mask /* * SMART Printer Status Code Definition. */ // SMART-70 PRINTER STATUS #define S7PS_M_SBSRUNNING 0x0000000000000001 // SBS(Step by Step) ¸í·É ¼öÇà Áß #define S7PS_M_CARDMOVE 0x0000000000000002 // ÀμâÀ§Ä¡ À̵¿ Áß #define S7PS_M_CARDIN 0x0000000000000004 // Ä«µå ÈíÀÔ Áß #define S7PS_M_CARDOUT 0x0000000000000008 // Ä«µå ¹èÃâ Áß #define S7PS_M_THEAD 0x0000000000000010 // ½á¸Ö Çìµå ¾÷/´Ù¿î Áß #define S7PS_M_SEEKRIBBON 0x0000000000000020 // ¸®º» ã´Â Áß #define S7PS_M_MOVERIBBON 0x0000000000000040 // ¸®º» À̵¿ Áß #define S7PS_M_PRINT 0x0000000000000080 // Àμâ Áß #define S7PS_M_MAGRW 0x0000000000000100 // ¸¶±×³×ƽ Àбâ/¾²±â Áß #define S7PS_M_RECVPRINTDATA 0x0000000000000200 // Àμ⠹öÆÛ ¹Þ´Â Áß #define S7PS_M_INIT 0x0000000000000400 // ÀåÄ¡ ÃʱâÈ­ Áß #define S7PS_S_READY 0x0000000000000800 // ´ë±â»óÅ #define S7PS_S_INSTALLINTENCODER 0x0000000000008000 // ³»ºÎ ÀÎÄÚ´õ ÀåÂø #define S7PS_S_INSTALLEXTHOPPER 0x0000000000010000 // ¿ÜºÎ È£ÆÛ ÀåÂø #define S7PS_S_INSTALLEXTSTACKER 0x0000000000020000 // ¿ÜºÎ ½ºÅÂÄ¿ ÀåÂø #define S7PS_S_INSTALLEXTENCODER 0x0000000000040000 // ¿ÜºÎ ÀÎÄÚ´õ ÀåÂø #define S7PS_S_INSTALLEXTLAMINATOR 0x0000000000080000 // ¿ÜºÎ ¶ó¹Ì³×ÀÌÅÍ ÀåÂø #define S7PS_S_INSTALLEXTFLIPPER 0x0000000000100000 // ¿ÜºÎ Çø®ÆÛ ÀåÂø #define S7PS_S_INSTALLEXTETC 0x0000000000200000 // ¿ÜºÎ ±âŸÀåÄ¡ ÀåÂø #define S7PS_S_CASEOPEN 0x0000000000400000 // ÄÉÀ̽º ¿­¸² »óÅ #define S7PS_S_SOFTLOCKED 0x0000000000800000 // ¼ÒÇÁÆ® ¶ô »óÅ #define S7PS_S_KEYLOCKED 0x0000000001000000 // Ű ¶ô »óÅ #define S7PS_S_DETECTCARD 0x0000000002000000 // ³»ºÎ ¼¾¼­¿¡ Ä«µå °¨Áö (In/Center/Out Sensor) #define S7PS_S_DETECTFRONTDEVICE 0x0000000004000000 // Àü¹æ ÀåÄ¡(Front Device) ¿¬°áµÇ¾îÀÖÀ½ #define S7PS_S_DETECTREARDEVICE 0x0000000008000000 // ÈĹæ ÀåÄ¡(Rear Device) ¿¬°áµÇ¾îÀÖÀ½ #define S7PS_S_CLEANWARNING 0x0000000010000000 // ÇÁ¸°ÅÍ Å¬¸®´× °æ°í #define S7PS_S_HAVEPRINTDATA 0x0000000020000000 // Àμ⠵¥ÀÌÅÍ ¹öÆÛ º¸À¯ Áß #define S7PS_S_SBSMODE 0x0000000040000000 // SBS(Step by Step) ¸ðµå »óÅ #define S7PS_S_TESTMODE 0x0000000080000000 // Å×½ºÆ®¸ðµå »óÅ #define S7PS_M_MASK (S7PS_M_SBSRUNNING|S7PS_M_CARDMOVE|S7PS_M_CARDIN|S7PS_M_CARDOUT|S7PS_M_THEAD|S7PS_M_SEEKRIBBON|S7PS_M_MOVERIBBON|S7PS_M_PRINT|S7PS_M_MAGRW|S7PS_M_INIT) #define S7PS_S_MASK (S7PS_S_INSTALLINTENCODER|S7PS_S_INSTALLEXTHOPPER|S7PS_S_INSTALLEXTSTACKER|S7PS_S_INSTALLEXTENCODER|S7PS_S_INSTALLEXTLAMINATOR|S7PS_S_INSTALLEXTFLIPPER|S7PS_S_INSTALLEXTETC|S7PS_S_CASEOPEN|S7PS_S_SOFTLOCKED|S7PS_S_KEYLOCKED|S7PS_S_DETECTCARD|S7PS_S_DETECTFRONTDEVICE|S7PS_S_DETECTREARDEVICE|S7PS_S_CLEANWARNING|S7PS_S_HAVEPRINTDATA|S7PS_S_SBSMODE|S7PS_S_TESTMODE) #define S7PS_E_CARDIN 0x0000000100000000 // Ä«µå-ÀÎ ¿¡·¯ #define S7PS_E_CARDMOVE 0x0000000200000000 // Ä«µå À̵¿ ¿¡·¯ #define S7PS_E_CARDOUT 0x0000000400000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7PS_E_THEADLIFT 0x0000000800000000 // ½á¸Ö Çìµå ¾÷/´Ù¿î ¿¡·¯ // S7PS_E_THEAD #define S7PS_E_PRINT 0x0000004000000000 // Àμâ Áß ¿¡·¯ #define S7PS_E_MAGRW 0x0000008000000000 // (³»ºÎ) ¸¶±×³×ƽ Æ®·¢ Àбâ/¾²±â ¿¡·¯ #define S7PS_E_MAGREADT1 0x0000010000000000 // (³»ºÎ) ¸¶±×³×ƽ Æ®·¢ 1 Àб⠿¡·¯ #define S7PS_E_MAGREADT2 0x0000020000000000 // (³»ºÎ) ¸¶±×³×ƽ Æ®·¢ 2 Àб⠿¡·¯ #define S7PS_E_MAGREADT3 0x0000040000000000 // (³»ºÎ) ¸¶±×³×ƽ Æ®·¢ 3 Àб⠿¡·¯ #define S7PS_E_CONNECTEXTHOPPER 0x0000080000000000 // ¿ÜºÎ È£ÆÛ ¿¬°á ¿¡·¯ #define S7PS_E_CONNECTEXTSTACKER 0x0000100000000000 // ¿ÜºÎ ½ºÅÂÄ¿ ¿¬°á ¿¡·¯ #define S7PS_E_CONNECTEXTENCODER 0x0000200000000000 // ¿ÜºÎ ÀÎÄÚ´õ ¿¬°á ¿¡·¯ #define S7PS_E_CONNECTEXTLAMINATOR 0x0000400000000000 // ¿ÜºÎ ¶ó¹Ì³×ÀÌÅÍ ¿¬°á ¿¡·¯ #define S7PS_E_CONNECTEXTFLIPPER 0x0000800000000000 // ¿ÜºÎ Çø®ÆÛ ¿¬°á ¿¡·¯ #define S7PS_E_CONNECTEXTETC 0x0001000000000000 // ¿ÜºÎ ±âŸÀåÄ¡ ¿¬°á ¿¡·¯ #define S7PS_E_EXTPRESETMATCH 0x0002000000000000 // ¿ÜºÎ ÇÁ¸®¼Â ÀåÄ¡ ¿¬°á ¿¡·¯ #define S7PS_E_SCHEDULER 0x0020000000000000 // ½ºÄÉÁì·¯ ¼öÇà ¿¡·¯ #define S7PS_E_RIBBONEMPTY 0x0040000000000000 // ¸®º» ÀÜ·® 0 #define S7PS_E_RIBBONSEEK 0x0080000000000000 // ¸®º» ¼­Ä¡ ¿¡·¯ #define S7PS_E_RIBBONMOVE 0x0100000000000000 // ¸®º» À̵¿ ¿¡·¯ #define S7PS_F_THEADABSENT 0x0200000000000000 // Àμâ Çìµå ¹ÌÀåÂø #define S7PS_F_THEADOVERHEAT 0x0400000000000000 // Àμâ Çìµå °ú¿­ #define S7PS_F_RIBBONABSENT 0x0800000000000000 // ¸®º» ¾øÀ½ #define S7PS_F_PRINTDATA 0x1000000000000000 // Àμ⠵¥ÀÌÅÍ ¿À·ù #define S7PS_F_INCORRECTPASSWORRD 0x2000000000000000 // ÆÐ½º¿öµå Ʋ¸² #define S7PS_F_CONFIG 0x4000000000000000 // ¼³Á¤ ½ÇÆÐ #define S7PS_E_MASK (S7PS_E_CARDIN|S7PS_E_CARDMOVE|S7PS_E_CARDOUT|S7PS_E_THEADLIFT|S7PS_E_PRINT|S7PS_E_MAGRW|S7PS_E_MAGREADT1|S7PS_E_MAGREADT2|S7PS_E_MAGREADT3|S7PS_E_CONNECTEXTHOPPER|S7PS_E_CONNECTEXTSTACKER|S7PS_E_CONNECTEXTENCODER|S7PS_E_CONNECTEXTLAMINATOR|S7PS_E_CONNECTEXTFLIPPER|S7PS_E_CONNECTEXTETC|S7PS_E_EXTPRESETMATCH|S7PS_E_RIBBONSEEK|S7PS_E_RIBBONMOVE) #define S7PS_F_MASK (S7PS_F_THEADABSENT|S7PS_F_THEADOVERHEAT|S7PS_F_RIBBONABSENT|S7PS_F_PRINTDATA|S7PS_F_INCORRECTPASSWORRD|S7PS_F_CONFIG) // SMART-70 INPUT-HOPPER (HOPPER) STATUS #define S7IS_M_CARDOUT 0x0000000000000002 // Ä«µå ¹èÃâ Áß #define S7IS_S_READY 0x0000000000010000 // ´ë±â»óÅ #define S7IS_M_PROCESSING 0x0000000000020000 // ¸í·É ¼öÇà Áß #define S7IS_S_CATRIDGENEAREMPTY 0x0000000002000000 // Ä«µå¸®Áö °ÅÀÇ ºñ¾îÀÖÀ½ (Ä«µå ¾ó¸¶ ¾øÀ½) #define S7IS_S_CATRIDGEEMPTY 0x0000000004000000 // Ä«µå¸®Áö ºñ¾îÀÖÀ½ (Ä«µå ¾øÀ½) #define S7IS_S_CATRIDGELOCK 0x0000000008000000 // Ä«µå¸®Áö ¶ô ¼¾¼­ °¨Áö #define S7IS_S_CATRIDGECONTACT 0x0000000010000000 // Ä«µå¸®Áö ÄÁÅà ¼¾¼­ °¨Áö #define S7IS_S_CARDOUT 0x0000000020000000 // Ä«µå ¾Æ¿ô ¼¾¼­ °¨Áö #define S7IS_S_REARHOOK 0x0000000040000000 // ÈĹæ ÈÅ(Hook) °¨Áö #define S7IS_S_FRONTHOOK 0x0000000080000000 // Àü¹æ ÈÅ(Hook) °¨Áö #define S7IS_M_MASK (S7IS_M_CARDOUT|S7IS_M_PROCESSING) #define S7IS_S_MASK (S7IS_S_READY|S7IS_S_CATRIDGENEAREMPTY|S7IS_S_CATRIDGEEMPTY|S7IS_S_CATRIDGELOCK|S7IS_S_CATRIDGECONTACT|S7IS_S_CARDOUT|S7IS_S_REARHOOK|S7IS_S_FRONTHOOK) #define S7IS_E_CARDOUT 0x0000000200000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7IS_F_INIT 0x0001000000000000 // ÃʱâÈ­ ¿¡·¯ #define S7IS_E_MASK (S7IS_E_CARDOUT) #define S7IS_F_MASK (S7IS_F_INIT) // SMART-70 MULTI-HOPPER STATUS #define S7MS_M_INIT 0x0000000000000001 // ÃʱâÈ­ Áß #define S7MS_M_CARDOUT 0x0000000000000002 // Ä«µå ¹èÃâ Áß #define S7MS_S_READY 0x0000000000000004 // ´ë±â»óÅ #define S7MS_M_PROCESSING 0x0000000000000008 // ¸í·É ¼öÇà Áß #define S7MS_S_HOPPER1CONNECT 0x0000000000000010 // 1¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_S_HOPPER2CONNECT 0x0000000000000020 // 2¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_S_HOPPER3CONNECT 0x0000000000000040 // 3¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_S_HOPPER4CONNECT 0x0000000000000080 // 4¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_S_HOPPER5CONNECT 0x0000000000000100 // 5¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_S_HOPPER6CONNECT 0x0000000000000200 // 6¹ø È£ÆÛ ¿¬°á °¨Áö #define S7MS_M_HOPPER1RUN 0x0000000000000400 // 1¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_M_HOPPER2RUN 0x0000000000000800 // 2¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_M_HOPPER3RUN 0x0000000000001000 // 3¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_M_HOPPER4RUN 0x0000000000002000 // 4¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_M_HOPPER5RUN 0x0000000000004000 // 5¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_M_HOPPER6RUN 0x0000000000008000 // 6¹ø È£ÆÛ µ¿ÀÛ Áß #define S7MS_S_LEFTLSENSOR 0x0000000000040000 // ¿ÞÆí ¸®¹Ô ¼¾¼­ #define S7MS_S_RIGHTLSENSOR 0x0000000000080000 // ¿À¸¥Æí ¸®¹Ô ¼¾¼­ #define S7MS_S_SPSENSORA 0x0000000000100000 // ½¬ÇÁÅÍ Æ÷Áö¼Ç ¼¾¼­ A #define S7MS_S_SPSENSORB 0x0000000000200000 // ½¬ÇÁÅÍ Æ÷Áö¼Ç ¼¾¼­ B #define S7MS_S_SPSENSORC 0x0000000000400000 // ½¬ÇÁÅÍ Æ÷Áö¼Ç ¼¾¼­ C #define S7MS_S_SPSENSORD 0x0000000000800000 // ½¬ÇÁÅÍ Æ÷Áö¼Ç ¼¾¼­ D #define S7MS_S_CISENSORA0 0x0000000001000000 // Ä«µå ÀÎ ¼¾¼­ A0 #define S7MS_S_CISENSORA1 0x0000000002000000 // Ä«µå ÀÎ ¼¾¼­ A1 #define S7MS_S_CISENSORB0 0x0000000004000000 // Ä«µå ÀÎ ¼¾¼­ B0 #define S7MS_S_CISENSORB1 0x0000000008000000 // Ä«µå ÀÎ ¼¾¼­ B1 #define S7MS_S_CISENSORC0 0x0000000010000000 // Ä«µå ÀÎ ¼¾¼­ C0 #define S7MS_S_CISENSORC1 0x0000000020000000 // Ä«µå ÀÎ ¼¾¼­ C1 #define S7MS_S_CISENSORD0 0x0000000040000000 // Ä«µå ÀÎ ¼¾¼­ D0 #define S7MS_S_CISENSORD1 0x0000000080000000 // Ä«µå ÀÎ ¼¾¼­ D1 #define S7MS_M_MASK (S7MS_M_INIT|S7MS_M_CARDOUT|S7MS_M_PROCESSING|S7MS_M_HOPPER1RUN|S7MS_M_HOPPER2RUN|S7MS_M_HOPPER3RUN|S7MS_M_HOPPER4RUN|S7MS_M_HOPPER5RUN|S7MS_M_HOPPER6RUN) #define S7MS_S_MASK (S7MS_S_READY|S7MS_S_HOPPER1CONNECT|S7MS_S_HOPPER2CONNECT|S7MS_S_HOPPER3CONNECT|S7MS_S_HOPPER4CONNECT|S7MS_S_HOPPER5CONNECT|S7MS_S_HOPPER6CONNECT|S7MS_S_LEFTLSENSOR|S7MS_S_RIGHTLSENSOR|S7MS_S_SPSENSORA|S7MS_S_SPSENSORB|S7MS_S_SPSENSORC|S7MS_S_SPSENSORD|S7MS_S_CISENSORA0|S7MS_S_CISENSORA1|S7MS_S_CISENSORB0|S7MS_S_CISENSORB1|S7MS_S_CISENSORC0|S7MS_S_CISENSORC1|S7MS_S_CISENSORD0|S7MS_S_CISENSORD1) #define S7MS_F_INIT 0x0000000100000000 // ÃʱâÈ­ ½ÇÆÐ #define S7MS_E_CARDOUT 0x0000000200000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7MS_E_RUN 0x0000000800000000 // ¸í·É ¼öÇà ¿¡·¯ #define S7MS_E_HOPPER1CONTROL 0x0000001000000000 // È£ÆÛ 1 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER2CONTROL 0x0000002000000000 // È£ÆÛ 2 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER3CONTROL 0x0000004000000000 // È£ÆÛ 3 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER4CONTROL 0x0000008000000000 // È£ÆÛ 4 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER5CONTROL 0x0000010000000000 // È£ÆÛ 5 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER6CONTROL 0x0000020000000000 // È£ÆÛ 6 ÄÁÆ®·Ñ ¿¡·¯ #define S7MS_E_HOPPER1EMPTY 0x0000040000000000 // È£ÆÛ 1 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER2EMPTY 0x0000080000000000 // È£ÆÛ 2 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER3EMPTY 0x0000100000000000 // È£ÆÛ 3 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER4EMPTY 0x0000200000000000 // È£ÆÛ 4 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER5EMPTY 0x0000400000000000 // È£ÆÛ 5 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER6EMPTY 0x0000800000000000 // È£ÆÛ 6 Ä«µå ¾øÀ½ #define S7MS_E_HOPPER1 0x0001000000000000 // È£ÆÛ 1 ¿¡·¯ #define S7MS_E_HOPPER2 0x0002000000000000 // È£ÆÛ 2 ¿¡·¯ #define S7MS_E_HOPPER3 0x0004000000000000 // È£ÆÛ 3 ¿¡·¯ #define S7MS_E_HOPPER4 0x0008000000000000 // È£ÆÛ 4 ¿¡·¯ #define S7MS_E_HOPPER5 0x0010000000000000 // È£ÆÛ 5 ¿¡·¯ #define S7MS_E_HOPPER6 0x0020000000000000 // È£ÆÛ 6 ¿¡·¯ #define S7MS_E_MASK (S7MS_E_CARDOUT|S7MS_E_RUN|S7MS_E_HOPPER1CONTROL|S7MS_E_HOPPER2CONTROL|S7MS_E_HOPPER3CONTROL|S7MS_E_HOPPER4CONTROL|S7MS_E_HOPPER5CONTROL|S7MS_E_HOPPER6CONTROL|/*S7MS_E_HOPPER1EMPTY|S7MS_E_HOPPER2EMPTY|S7MS_E_HOPPER3EMPTY|S7MS_E_HOPPER4EMPTY|S7MS_E_HOPPER5EMPTY|S7MS_E_HOPPER6EMPTY|*/S7MS_E_HOPPER1|S7MS_E_HOPPER2|S7MS_E_HOPPER3|S7MS_E_HOPPER4|S7MS_E_HOPPER5|S7MS_E_HOPPER6) #define S7MS_F_MASK (S7MS_F_INIT) // SMART-70 OUTPUT-HOPPER (STACKER) STATUS #define S7OS_M_CARDIN 0x0000000000000001 // Ä«µå-ÀÎ Áß #define S7OS_M_LIFTUP 0x0000000000000004 // ¸®ÇÁÆ®-¾÷ µ¿ÀÛÁß #define S7OS_M_LIFTDOWN 0x0000000000000008 // ¸®ÇÁÆ®-´Ù¿î µ¿ÀÛÁß #define S7OS_S_READY 0x0000000000010000 // ´ë±â»óÅ #define S7OS_M_PROCESSING 0x0000000000020000 // ¸í·É ¼öÇà Áß #define S7OS_S_CARDSTANDBY 0x0000000002000000 // Ä«µå ´ë±â¼¾¼­ °¨Áö #define S7OS_S_CATRIDGEHAVESPACE 0x0000000004000000 // Ä«µå¸®Áö °ø°£ ¿©À¯ ÀÖÀ½ #define S7OS_S_CATRIDGELOCK 0x0000000008000000 // Ä«µå¸®Áö ¶ô ¼¾¼­ °¨Áö #define S7OS_S_CATRIDGECONTACT 0x0000000010000000 // Ä«µå¸®Áö ÄÁÅà ¼¾¼­ °¨Áö ¾ÈµÊ #define S7OS_S_CARDINENABLER 0x0000000020000000 // Ä«µå ÀÎ °¡´É ¼¾¼­ °¨Áö #define S7OS_S_LIFTUP 0x0000000040000000 // ¸®ÇÁÆ® ¾÷ »óÅ #define S7OS_S_DETECTCARDIN 0x0000000080000000 // Ä«µåÀÎ ¼¾¼­¿¡ Ä«µå °¨Áö #define S7OS_M_MASK (S7OS_M_CARDIN|S7OS_M_LIFTUP|S7OS_M_LIFTDOWN|S7OS_M_PROCESSING) #define S7OS_S_MASK (S7OS_S_READY|S7OS_M_PROCESSING|S7OS_S_CARDSTANDBY|S7OS_S_CATRIDGEHAVESPACE|S7OS_S_CATRIDGELOCK|S7OS_S_CATRIDGECONTACT|S7OS_S_CARDINENABLER|S7OS_S_LIFTUP|S7OS_S_DETECTCARDIN) #define S7OS_E_CARDIN 0x0000000100000000 // Ä«µå-ÀÎ ¿¡·¯ #define S7OS_E_LIFTUP 0x0000000400000000 // ¸®ÇÁÆ®-¾÷ ¿¡·¯ #define S7OS_E_LIFTDOWN 0x0000000800000000 // ¸®ÇÁÆ®-´Ù¿î ¿¡·¯ #define S7OS_F_INIT 0x0001000000000000 // ÃʱâÈ­ ¿¡·¯ #define S7OS_E_MASK (S7OS_E_CARDIN|S7OS_E_LIFTUP|S7OS_E_LIFTDOWN) #define S7OS_F_MASK (S7OS_F_INIT) // SMART-70 FLIPPER STATUS #define S7FS_M_CARDIN 0x0000000000000001 // Ä«µå-ÀÎ Áß #define S7FS_M_CARDOUT 0x0000000000000002 // Ä«µå ¹èÃâ Áß #define S7FS_M_FLIPPING 0x0000000000000004 // Çø®ÇÎ Áß #define S7FS_M_CARDMOVE 0x0000000000000008 // Ä«µå À̵¿ Áß #define S7FS_S_SMARTREADERDOWN 0x0000000000000010 // IC ¸®´õ ´Ù¿î »óÅÂ. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_SMARTREADERUP 0x0000000000000020 // IC ¸®´õ ¾÷ »óÅÂ. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_EXTBOARDABSENT 0x0000000000000100 // È®À庸µå ¿¬°á ¾ÈµÇ¾îÀÖÀ½. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_DETECTCARDSCANIN 0x0000000000000200 // ½ºÄµ¸ðµâ Ä«µå ÀÎ(ÇÏ´Ü) ¼¾¼­ Ä«µå°¨Áö. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_DETECTCARDSCANOUT 0x0000000000000400 // ½ºÄµ¸ðµâ Ä«µå ¾Æ¿ô(»ó´Ü) ¼¾¼­ Ä«µå°¨Áö. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_SMARTREADERCAMSENSOR 0x0000000000000800 // IC ¸®´õ Ä· ¼¾¼­. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_NOTINSTALLSCANMOD 0x0000000000001000 // ½ºÄµ¸ðµâ ¿¬°á ¾ÈµÇ¾îÀÖÀ½. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_READY 0x0000000000010000 // ´ë±â»óÅ #define S7FS_M_PROCESSING 0x0000000000020000 // ¸í·É ¼öÇà Áß #define S7FS_S_V2BOARD 0x0000000000200000 // º¸µå Ver. 2 #define S7FS_S_FLIPPERBOTTOM 0x0000000000400000 // Çø®ÆÛ ÇÏÇâ »óÅ #define S7FS_S_FLIPPERTOP 0x0000000000800000 // Çø®ÆÛ »óÇâ »óÅ #define S7FS_S_CATRIDGELOCK 0x0000000001000000 // īƮ¸®Áö ¶ô ¼¾¼­ #define S7FS_S_CASEOPENSENSOR 0x0000000002000000 // ÄÉÀ̽º ¿­¸² °¨Áö ¼¾¼­. (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_S_CATRIDGEFULLSENSOR 0x0000000004000000 // īƮ¸®Áö ²Ë Âü ¼¾¼­ #define S7FS_S_PCSVERTICALSENSOR 0x0000000008000000 // ¼öÁ÷ Çø®ÆÛ À§Ä¡ Á¦¾î ¼¾¼­ #define S7FS_S_PCSHORIZONTALSENSOR 0x0000000010000000 // ¼öÆò Çø®ÆÛ À§Ä¡ Á¦¾î ¼¾¼­ #define S7FS_S_DETECTCARDRIGHT 0x0000000020000000 // ¿ìÃø ¼¾¼­ Ä«µå°¨Áö #define S7FS_S_DETECTCARDCENTER 0x0000000040000000 // Áß¾Ó ¼¾¼­ Ä«µå°¨Áö #define S7FS_S_DETECTCARDLEFT 0x0000000080000000 // ÁÂÃø ¼¾¼­ Ä«µå°¨Áö #define S7FS_M_MASK (S7FS_M_CARDIN|S7FS_M_CARDOUT|S7FS_M_FLIPPING|S7FS_M_PROCESSING) #define S7FS_S_MASK (S7FS_S_READY|S7FS_S_CATRIDGELOCK|S7FS_S_CASEOPEN|S7FS_S_CATRIDGEFULL|S7FS_S_PCSVERTICAL|S7FS_S_PCSHORIZONTAL|S7FS_S_DETECTCARDRIGHT|S7FS_S_DETECTCARDCENTER|S7FS_S_DETECTCARDLEFT) #define S7FS_WA_V2BOARDONLY (S7FS_S_SMARTREADERDOWN|S7FS_S_SMARTREADERUP|S7FS_S_EXTBOARDABSENT|S7FS_S_DETECTCARDSCANIN|S7FS_S_DETECTCARDSCANOUT|S7FS_S_SMARTREADERCAMSENSOR|S7FS_S_NOTINSTALLSCANMOD|S7FS_S_CASEOPENSENSOR) #define S7FS_E_CARDIN 0x0000000100000000 // Ä«µå-ÀÎ ¿¡·¯ #define S7FS_E_CARDOUT 0x0000000200000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7FS_E_FLIP 0x0000000400000000 // Çø³ ¿¡·¯ #define S7FS_E_CARDMOVE 0x0000000800000000 // Ä«µå À̵¿ ¿¡·¯ #define S7FS_E_SMARTREADERDOWN 0x0000001000000000 // IC ¸®´õ ´Ù¿î ¿¡·¯ (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_E_SMARTREADERUP 0x0000002000000000 // IC ¸®´õ ¾÷ ¿¡·¯ (Board Ver.2 ¿¡¼­ »ç¿ë) #define S7FS_F_INIT 0x0001000000000000 // ÃʱâÈ­ ¿¡·¯ #define S7FS_E_MASK (S7FS_E_CARDIN|S7FS_E_CARDOUT|S7FS_E_FLIP) #define S7FS_F_MASK (S7FS_F_INIT) #define S7FS_WF_V2BOARDONLY (S7FS_E_SMARTREADERDOWN|S7FS_E_SMARTREADERUP) #define S7FS_WS_V2BOARDONLY (S7FS_WA_V2BOARDONLY|S7FS_WS_V2BOARDONLY) // SMART-70 LAMINATOR STATUS #define S7LS_M_CARDIN 0x0000000000000001 // Ä«µå-ÀÎ Áß #define S7LS_M_CARDMOVE 0x0000000000000002 // Ä«µå À̵¿ Áß #define S7LS_M_CARDOUT 0x0000000000000004 // Ä«µå ¹èÃâ Áß #define S7LS_M_THEADUP 0x0000000000000008 // Çìµå ¾÷ Áß #define S7LS_M_THEADDOWN 0x0000000000000010 // Çìµå ´Ù¿î Áß #define S7LS_M_THEADHEAT 0x0000000000000020 // Çìµå °¡¿­ Áß #define S7LS_M_LAMINATING 0x0000000000000040 // ¶ó¹Ì³×ÀÌÆÃ Áß #define S7LS_S_INSTALLEXTHOPPER 0x0000000000000080 // ¿ÜºÎ È£ÆÛ ÀåÂø #define S7LS_S_INSTALLEXTSTACKER 0x0000000000000100 // ¿ÜºÎ ½ºÅÂÄ¿ ÀåÂø #define S7LS_S_INSTALLEXTFLIPPER 0x0000000000000200 // ¿ÜºÎ Çø®ÆÛ ÀåÂø #define S7LS_S_READY 0x0000000000010000 // ´ë±â»óÅ #define S7LS_M_PROCESSING 0x0000000000020000 // ¸í·É ¼öÇà Áß #define S7LS_M_PROCESSUSBCMD 0x0000000000040000 // USB ¸í·É ¼öÇà Áß #define S7LS_S_CASEOPEN 0x0000000000100000 // ÄÉÀ̽º ¿­¸² °¨Áö #define S7LS_S_CATRIDGELOCK 0x0000000000200000 // īƮ¸®Áö ¶ô ¼¾¼­ °¨Áö #define S7LS_S_CARDOUT 0x0000000000400000 // ¾Æ¿ô ¼¾¼­ Ä«µå°¨Áö #define S7LS_S_CARDCENTERB 0x0000000000800000 // ¼¾ÅÍ B ¼¾¼­ Ä«µå °¨Áö #define S7LS_S_CARDCENTERA 0x0000000001000000 // ¼¾ÅÍ A ¼¾¼­ Ä«µå °¨Áö #define S7LS_S_CARDIN 0x0000000002000000 // ÀÎ ¼¾¼­ Ä«µå °¨Áö #define S7LS_S_THEAD 0x0000000004000000 // Çìµå ¾÷/´Ù¿î ¼¾¼­ #define S7LS_S_CASEOPENSENSOR 0x0000000008000000 // ÄÉÀ̽º ¿­¸² °¨Áö ¼¾¼­ #define S7LS_S_FILMMARKCHECKB 0x0000000010000000 // Çʸ§ ¸¶Å© üũ B ¼¾¼­ #define S7LS_S_FILMMARKCHECKA 0x0000000020000000 // Çʸ§ ¸¶Å© üũ A ¼¾¼­ #define S7LS_S_ENCODERB 0x0000000040000000 // ÀÎÄÚ´õ B ¼¾¼­ #define S7LS_S_ENCODERA 0x0000000080000000 // ÀÎÄÚ´õ A ¼¾¼­ #define S7LS_M_MASK (S7LS_M_CARDIN|S7LS_M_CARDMOVE|S7LS_M_CARDOUT|S7LS_M_THEADUP|S7LS_M_THEADDOWN|S7LS_M_THEADHEAT|S7LS_M_LAMINATING|S7LS_M_PROCESSING) #define S7LS_S_MASK (S7LS_S_READY|S7LS_S_CASEOPEN|S7LS_S_CATRIDGELOCK|S7LS_S_CARDOUT|S7LS_S_CARDCENTERB|S7LS_S_CARDCENTERA|S7LS_S_CARDIN|S7LS_S_THEAD|/*S7LS_S_CASEOPENSENSOR|*/S7LS_S_FILMMARKCHECKB|S7LS_S_FILMMARKCHECKA|S7LS_S_ENCODERB|S7LS_S_ENCODERA) #define S7LS_E_CARDIN 0x0000000100000000 // Ä«µå-ÀÎ ¿¡·¯ #define S7LS_E_CARDMOVE 0x0000000200000000 // Ä«µå À̵¿ ¿¡·¯ #define S7LS_E_CARDOUT 0x0000000400000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7LS_E_THEADUP 0x0000000800000000 // Çìµå ¾÷ ¿¡·¯ #define S7LS_E_THEADDOWN 0x0000001000000000 // Çìµå ´Ù¿î ¿¡·¯ #define S7LS_E_LAMINATING 0x0000002000000000 // ¶ó¹Ì³×ÀÌÆÃ Áß ¿¡·¯ #define S7LS_E_INSTALLEXTHOPPER 0x0000008000000000 // ¿ÜºÎ Çø®ÆÛ ¿¬°á ¿¡·¯ #define S7LS_E_INSTALLEXTSTACKER 0x0000010000000000 // ¿ÜºÎ ½ºÅÂÄ¿ ¿¬°á ¿¡·¯ #define S7LS_E_INSTALLEXTFLIPPER 0x0000020000000000 // ¿ÜºÎ Çø®ÆÛ ¿¬°á ¿¡·¯ #define S7LS_F_INIT 0x0001000000000000 // ÃʱâÈ­ ½ÇÆÐ #define S7LS_E_PROCESSING 0x0002000000000000 // ¸í·É ¼öÇà ¿¡·¯ #define S7LS_E_PROCESSUSBCMD 0x0004000000000000 // USB ¸í·É ¼öÇà ¿¡·¯ #define S7LS_F_FILMEMPTY 0x0010000000000000 // Çʸ§ ÀÜ·® ¾øÀ½ #define S7LS_F_FILMSEEK 0x0020000000000000 // Çʸ§ ã±â ¿¡·¯ #define S7LS_F_THEAD 0x0040000000000000 // Çìµå ¾ÈÀü ¿¡·¯ (°ú¿­ µî) #define S7LS_F_FILMABSENT 0x0080000000000000 // Çʸ§ ¹ÌÀåÂø #define S7LS_E_MASK (S7LS_E_CARDIN|S7LS_E_CARDMOVE|S7LS_E_CARDOUT|S7LS_E_THEADUP|S7LS_E_THEADDOWN|S7LS_E_PROCESSING|S7LS_E_LAMINATING) #define S7LS_F_MASK (S7LS_F_INIT|S7LS_F_FILMEMPTY|S7LS_F_FILMSEEK|S7LS_F_THEAD|S7LS_F_FILMABSENT) // SMART-70X/LE LASER STATUS #define S7XS_M_CARDIN 0x0000000000000001 // Ä«µå »ðÀÔÁß #define S7XS_M_CARDOUT 0x0000000000000002 // Ä«µå ¹èÃâÁß #define S7XS_M_FLIPPING 0x0000000000000004 // Çø®ÆÛ ȸÀüÁß #define S7XS_M_CARDMOVE 0x0000000000000008 // Ä«µå À̵¿ #define S7XS_M_ICHLIFT 0x0000000000000010 // IC Çìµå ¾÷/´Ù¿îÁß #define S7XS_M_MAGRW 0x0000000000000020 // Magnetic µ¿ÀÛÁß #define S7XS_S_NOICCAM 0x0000000000000800 // IC Reader CAM Sensor ¾øÀ½ #define S7XS_S_LE 0x0000000000008000 // SMART-70LE #define S7XS_S_READY 0x0000000000010000 // ´ë±â »óÅ #define S7XS_M_PROCESSING 0x0000000000020000 // ¸í·É ¼öÇàÁß #define S7XS_S_AUTOCARDIN 0x0000000000040000 // ÀÚµ¿ Ä«µå »ðÀÔ ¼³Á¤ »óÅ #define S7XS_S_RECOVERING 0x0000000000080000 // boot, case(door) close ÈÄ º¹±¸Áß #define S7XS_S_FLPBOTTOM 0x0000000000100000 // Çø®ÆÛ ÇÏÇâ »óÅ #define S7XS_S_FLPTOP 0x0000000000200000 // Çø®ÆÛ »óÇâ »óÅ #define S7XS_S_CASEOPEN 0x0000000001000000 // ÄÉÀ̽º ¿­¸² #define S7XS_S_DETECTOPTOUT 0x0000000004000000 // ¿É¼Ç ¾Æ¿ô ¼¾¼­¿¡¼­ Ä«µå °ËÃâ #define S7XS_S_DETECTFLPREAR 0x0000000008000000 // Çø®ÆÛ ÈÄ¹æ ¼¾¼­¿¡¼­ Ä«µå °ËÃâ #define S7XS_S_DETECTOPTIN 0x0000000010000000 // ¿É¼Ç ÀÎ ¼¾¼­¿¡¼­ Ä«µå °ËÃâ #define S7XS_S_DETECTCARDOUT 0x0000000020000000 // Ä«µå ¾Æ¿ô ¼¾¼­¿¡¼­ Ä«µå °ËÃâ #define S7XS_S_DETECTFLPCENTER 0x0000000040000000 // Çø®ÆÛ Áß¾Ó ¼¾¼­¿¡¼­ Ä«µå °ËÃâ #define S7XS_S_DETECTCARDIN 0x0000000080000000 // Ä«µå ÀÎ ¼¾¼­¿¡¼­ Ä«µå °ËÃâ // // [ LASER-X DEVICE ] // +------------------------+ // | | 1 : Card-In Sensor // | Laser | 2 : Flipper-Center Sensor // | | 3 : Flipper-Rear Sensor // 1 [===2===] 3--4------5--6 4 : Option-In Sensor ¿É¼Ç ÀåÄ¡µéÀÌ ¼³Ä¡µÇ´Â °ø°£ÀÇ ½ÃÀÛ ºÎºÐ // | | 5 : Option-Out Sensor ¿É¼Ç ÀåÄ¡µéÀÌ ¼³Ä¡µÇ´Â °ø°£ÀÇ ³¡ ºÎºÐ // | Flipper Options | 6 : Card-Out Sensor // +------------------------+ #define S7XS_M_MASK (S7XS_M_CARDIN|S7XS_M_CARDOUT|S7XS_M_FLIPPING|S7XS_M_CARDMOVE|S7XS_M_ICHLIFT|S7XS_M_MAGRW|S7XS_M_PROCESSING) #define S7XS_S_MASK (S7XS_S_READY|S7XS_S_AUTOCARDIN|S7XS_S_FLPBOTTOM|S7XS_S_FLPTOP|S7XS_S_FLP_SideNotSure|S7XS_S_CASEOPEN|S7XS_S_FLIPPCS_MissedLittle|S7XS_S_DETECTOPTOUT|S7XS_S_DETECTFLPREAR|S7XS_S_DETECTOPTIN|S7XS_S_DETECTCARDOUT|S7XS_S_DETECTFLPCENTER|S7XS_S_DETECTCARDIN) #define S7XS_E_CARDIN 0x0000000100000000 // Ä«µå-ÀÎ ¿¡·¯ #define S7XS_E_CARDOUT 0x0000000200000000 // Ä«µå ¹èÃâ ¿¡·¯ #define S7XS_E_CARDFLIP 0x0000000400000000 // Ä«µå Çø³ ¿¡·¯ #define S7XS_E_CARDMOVE 0x0000000800000000 // Ä«µå À̵¿ ¿¡·¯ #define S7XS_E_ICHLIFT 0x0000001000000000 // IC Çìµå ¾÷/´Ù¿î ¿¡·¯ #define S7XS_E_MAGRW 0x0000002000000000 // ¸¶±×³×ƽ RW ¿¡·¯ #define S7XS_F_INIT 0x0001000000000000 // ÃʱâÈ­ ¿¡·¯ #define S7XS_E_MASK (S7XS_E_CARDIN|S7XS_E_CARDOUT|S7XS_E_CARDFLIP|S7XS_E_CARDMOVE|S7XS_E_ICHLIFT|S7XS_E_MAGRW) #define S7XS_F_MASK (S7XS_F_INIT) /* * Configuration Item Definition. */ #define SM70EX_CFG_BLOKING 0x0006 #define SM70EX_CFG_PRINTMETHOD 0x000B #define SM70EX_CFG_PRINTFILENAME 0x000C // .prn file name set/get #define SM70EX_CFG_REVERSEOVERLAY 0x000E // overlay reverse #define SM70EX_CFG_REVERSEUV 0x000F // uv reverse #define SM70EX_CFG_IMAGEFLIP 0x0014 // no flip, h-flip, v-flip, rotate-180(h-flip & v-flip) for printing image. // 2018.05.10 #define SM70EX_CFG_LECARDINCARDSIDE 0x0015 // SMART-70LE : card side when card in #define SM70EX_CFG_LECARDOUTCARDSIDE 0x0016 // SMART-70LE : card side when card out #define SM70EX_CFG_ADJUSTCONTACTPOS 0x0018 // adjust contact smart card position. #define SM70EX_CFG_ADJUSTCONTACTLESSPOS 0x0019 // adjust contactless smart card position. /* * Configuration Value Definition. */ // General Configuration #define SM70EX_CFG_USE 0x01 #define SM70EX_CFG_NOTUSE 0x00 // SM70EX_CFG_PRINTMETHOD #define SM70EX_CFG_PRINTONLY 0x00 #define SM70EX_CFG_PRINTNFILE 0x01 // only enabled at DCL mode printing. #define SM70EX_CFG_FILEONLY 0x02 // SM70EX_CFG_IMAGEFLIP #define SM70EX_CFG_NOFLIP 0x00 // no flip #define SM70EX_CFG_VFLIP 0x01 // vertical flip #define SM70EX_CFG_HFLIP 0x02 // horizontal flip #define SM70EX_CFG_ROTATE180 (SM70EX_CFG_VFLIP|SM70EX_CFG_HFLIP) // rotate 180 (hflip + vflip) // @Smart70_CardMovePosition #define SM70_CARDPOS_MAG 1 // magnetic (write) position #define SM70_CARDPOS_CONTACT 2 // contact smartcard position #define SM70_CARDPOS_CONTACTLESS 3 // contactless smartcard position #define SM70_CARDPOS_BASE 4 // flipper position in flipper module. #define SM70_CARDPOS_LASER 5 // laser marking position #define SM70_CARDPOS_MAGREAD 6 // magnetic read position. (in 70X, read position is different from write) // @Smart70_Flip #define SMART70_FLIP_360 0 // complete (360) flip. #define SMART70_FLIP_TOTOP 1 // flip to top sided. #define SMART70_FLIP_TOBOTTOM 2 // flip to bottom sided. #define SMART70_FLIP_180 3 // 180 flip. no matter sided. #define SMART70_FLIP_ANGLE 4 // any angle flip. #define SMART70_PRINTER_MAX 32 typedef struct { WCHAR name[128]; // printer name WCHAR id[64]; // printer ID WCHAR dev[64]; // device connection WCHAR desc[256]; // description int pid; // USB product ID } SMART70_PRINTER_ITEM; typedef struct { int n; SMART70_PRINTER_ITEM item[SMART70_PRINTER_MAX]; } SMART70_PRINTER_LIST; typedef struct { WCHAR port[64]; // usb port WCHAR link[256]; // symbolic link of usb port int is_bridge; // Network module bridge } SMART70_PRINTER_PORT_USB; typedef struct { WCHAR ver[64]; // version of network protocol WCHAR ip[64]; // ip address int port; // tcp port int is_ssl; // ssl protocol } SMART70_PRINTER_PORT_NET; typedef struct { WCHAR name[128]; // printer name WCHAR id[64]; // printer ID WCHAR dev[64]; // device connection int dev_type; // 1=USB, 2=NET int pid; // USB product ID SMART70_PRINTER_PORT_USB usb; SMART70_PRINTER_PORT_NET net; } SMART70_PRINTER_STANDARD; typedef struct { int is_dual; // dual printer WCHAR ic1[64]; // internal contact encoder WCHAR ic2[64]; // external contact SIM encoder WCHAR rf1[64]; // internal contactless encoder WCHAR rf2[64]; // external contactless encoder } SMART70_PRINTER_OPTIONS; typedef struct { SMART70_PRINTER_STANDARD std; SMART70_PRINTER_OPTIONS opt; } SMART70_PRINTER_INFO; #define SMART70_MAX_DEVICE 32 #define SMART70_DEV_INHOPPER 0x10 #define SMART70_DEV_MULINHOPPER 0x20 #define SMART70_DEV_ENCODER 0x30 #define SMART70_DEV_PRINTER 0x40 #define SMART70_DEV_LAMINATOR 0x50 #define SMART70_DEV_FLIPPER 0x60 #define SMART70_DEV_OUTHOPPER 0x70 #define SMART70_DEV_MULOUTHOPPER 0x80 #define SMART70_DEV_LASER 0x60 #define SMART70_DEV_INTENCODER 0x90 // internal encoder. #define SMART70_DEV_OTHER 0xD0 // other devices #define SMART70_DEV_ALL 0xF0 #define SMART70_DEV_IDX 0x0F #define SMART70_DEV_MASK SMART70_DEV_ALL #define SMART70_MOD_LASER (SMART70_DEV_LASER|2) typedef struct { BYTE id; BYTE status; } SMART70_DEVICE_STATUS; typedef struct { int n; SMART70_DEVICE_STATUS dev[SMART70_MAX_DEVICE]; } SMART70_DEVCONNLIST; typedef void* HSMART70; #define SMART70_DEFAULT_LENGTH 1012 #define SMART70_DEFAULT_HEIGHT 636 /* * Supply */ #define SMART70_SUPPLY_AUTO 0x00 #define SMART70_SUPPLY_HOPPER 0x01 /* * Tray */ #define SMART70_TRAY_CR80 0x00 /* * Ribbon Type */ #define SMART70_RIBBON_YMCKO 0 #define SMART70_RIBBON_YMCKOK 1 #define SMART70_RIBBON_hYMCKO 2 #define SMART70_RIBBON_KO 3 #define SMART70_RIBBON_K 4 #define SMART70_RIBBON_BO 5 #define SMART70_RIBBON_B 6 #define SMART70_RIBBON_YMC 7 #define SMART70_RIBBON_YMCKFO 8 #define SMART70_RIBBON_REWRITABLE 9 #define SMART70_RIBBON_hYMCKOKO 11 #define SMART70_RIBBON_YMCKOKR 12 /* * Ribbon - Resin */ #define SMART70_RESIN_BLACKTEXT 0x00 // Extract Black Text to RESIN Panel #define SMART70_RESIN_BLACKDOT 0x01 // Extract Black Dot(Pixel) to RESIN Panel #define SMART70_RESIN_NOTUSE 0x02 // No Extraction. #define SMART70_RESIN_DYNAMIC 0x03 // use DC's ExtEscape(). /* * Ribbon Split */ #define SMART70_RIBBONSPLIT_NORMAL 0x00 #define SMART70_RIBBONSPLIT_FORBACK 0x01 /* * Flip Option */ #define SMART70_FLIP_NORMAL 0 #define SMART70_FLIP_VERTICAL 1 #define SMART70_FLIP_HORIZONTAL 2 #define SMART70_FLIP_ALL 3 /* * Color */ #define SMART70_COLOR_COLOR 0 #define SMART70_COLOR_BLACKNWHITE 1 /* * Dithering */ #define SMART70_DITHER_THRESHOLD 0 #define SMART70_DITHER_RANDOM 1 #define SMART70_DITHER_DIFFUSION 2 #define SMART70_DITHER_HALFTONE 3 #define SMART70_DITHER_HALFTONE2 4 /* * Print */ #define SMART70_PRINT_NOTUSE 0 #define SMART70_PRINT_USE 1 /* * Print Side */ #define SMART70_PRINTSIDE_FRONT 0 #define SMART70_PRINTSIDE_BACK 1 #define SMART70_PRINTSIDE_BOTH 2 /* * Print Side - Media */ #define SMART70_MEDIA_STANDARD 0 #define SMART70_MEDIA_SMART 1 // Exclude IC Chip Area #define SMART70_MEDIA_SMARTRIGHT 2 // Exclude Left of IC Chip Area #define SMART70_MEDIA_MSISO 3 // Exclude MS ISO Track Area #define SMART70_MEDIA_MSJIS 4 // Exclude MS JIS Track Area #define SMART70_MEDIA_SMARTMSJIS 5 // Exclude MS JIS Track and IC Chip Area #define SMART70_MEDIA_NOOVERLAY 6 // No Overlay #define SMART70_MEDIA_USERDEFINED 7 // Use User Defined Bitmap #define SMART70_MEDIA_DYNAMIC 8 // use DC's ExtEscape(). #define SMART70_MEDIA_BITMAP L"cardprinter_mask_" // $SYSTEM32\cardprinter_mask_#.bmp /* * Eject */ #define SMART_EJECT_EJECT_CARD 0 #define SMART_EJECT_HOLD_CARD 1 /* * SMART-70 */ #define SMART70_PRINT_NOTUSE 0 #define SMART70_PRINT_USE 1 #define SMART70_PRINTSIDE_FRONT 0 #define SMART70_PRINTSIDE_BACK 1 #define SMART70_PRINTSIDE_BOTH 2 #define SMART70_QUALITY_STANDARD 0 #define SMART70_QUALITY_PARTIAL 1 #define SMART70_SPEED_NORMAL 1 #define SMART70_SPEED_HIGH 2 #define SMART70_LAMIN_NOTUSE 0 #define SMART70_LAMIN_USE 1 #define SMART70_LAMIN_TOP 0 #define SMART70_LAMIN_BOTTOM 1 #define SMART70_LAMIN_BOTH 2 #define SMART70_LAMIN_OVERLAY_NOTUSE 0 #define SMART70_LAMIN_OVERLAY_USE 1 #define SMART70_MODULE_INTERNAL 0 #define SMART70_MODULE_EXTERNAL 1 #define SMART70_MODULE_BOTH 2 #define SMART70_MAG_COER_AUTO 0 #define SMART70_MAG_COER_LO 1 #define SMART70_MAG_COER_HI 2 #define SMART70_MAG_OPTION_FORWARD 0 #define SMART70_MAG_OPTION_BACKWARD 1 #define SMART70_MAG_OPTION_BITMODE 2 #define SMART70_MAG_FLIP_NOTUSE 0 #define SMART70_MAG_FLIP_USE 1 #define SMART70_MAG_NOTUSE 0 #define SMART70_MAG_USE 1 //#define SMART70_MAG_INTERNAL 0 // ==> SMART70_MODULE_INTERNAL //#define SMART70_MAG_EXTERNAL 1 //#define SMART70_MAG_BOTH 2 #define SMART70_MAG_ENCODING_ISO 0 #define SMART70_MAG_ENCODING_BALLYS 1 typedef struct _OEM_DMEXTRAHEADER { DWORD dwSize; DWORD dwSignature; DWORD dwVersion; } OEM_DMEXTRAHEADER, *POEM_DMEXTRAHEADER; typedef struct tagOEMDEV { OEM_DMEXTRAHEADER dmOEMExtra; //Color Correction DWORD dwASMain; DWORD dwASYellow; DWORD dwASMagenta; DWORD dwASCyan; DWORD dwASBlack; DWORD dwASOverlay; //Resin Black(K) Processing DWORD dwASBPText; DWORD dwASBPDot; DWORD dwASBPThreshold; DWORD dwASBPDitherDegree; DWORD dwASBPResin; //RewritableControl DWORD dwASErase; //Wait Control DWORD dwASWaitInRFUse; DWORD dwASWaitInRFSide; DWORD dwASWaitInRFPos; DWORD dwASWaitInRFTime; DWORD dwASWaitExRFUse; DWORD dwASWaitExRFSide; DWORD dwASWaitExRFPos; DWORD dwASWaitExRFTime; DWORD dwASWaitExICUse; DWORD dwASWaitExICSide; DWORD dwASWaitExICPos; DWORD dwASWaitExICTime; // INPUT / OUTPUT DWORD dwIOSupply; DWORD dwIOTray; DWORD dwIOOutput; // PRINTING 1 DWORD dwPrtUse; DWORD dwPrtSide; DWORD dwPrtColorFront; DWORD dwPrtColorBack; DWORD dwPrtMediaFront; DWORD dwPrtMediaBack; WCHAR strPrtMediaUserFront[1024]; WCHAR strPrtMediaUserBack[1024]; DWORD dwPrtRibbon; DWORD dwPrtQuality; DWORD dwPrtSpeed; DWORD dwPrtHeatControl; DWORD dwPrtFlipFront; DWORD dwPrtFlipBack; DWORD dwPrtDither; DWORD dwPrtRibbonSplit; // PRINTING 2 DWORD dwPrtUse2; DWORD dwPrtSide2; DWORD dwPrtColorFront2; DWORD dwPrtColorBack2; DWORD dwPrtMediaFront2; DWORD dwPrtMediaBack2; WCHAR strPrtMediaUserFront2[1024]; WCHAR strPrtMediaUserBack2[1024]; DWORD dwPrtRibbon2; DWORD dwPrtQuality2; DWORD dwPrtSpeed2; DWORD dwPrtHeatControl2; DWORD dwPrtFlipFront2; DWORD dwPrtFlipBack2; DWORD dwPrtDither2; DWORD dwPrtRibbonSplit2; // LAMINATING 1 DWORD dwLamUse; DWORD dwLamSide; DWORD dwLamOverlay; // LAMINATING 2 DWORD dwLamUse2; DWORD dwLamSide2; DWORD dwLamReserved2; // ENCODING DWORD dwEncUse; DWORD dwEncModule; DWORD dwEncInCoer; DWORD dwEncInOption; DWORD dwEncInMagFlip; DWORD dwEncInEncoding; WCHAR strEncInTrack1[1024]; WCHAR strEncInTrack2[1024]; WCHAR strEncInTrack3[1024]; WCHAR strEncInJISTrack[1024]; DWORD dwEncExCoer; DWORD dwEncExOption; DWORD dwEncExMagFlip; DWORD dwEncExEncoding; WCHAR strEncExTrack1[1024]; WCHAR strEncExTrack2[1024]; WCHAR strEncExTrack3[1024]; WCHAR strEncExJISTrack[1024]; DWORD dwASCorrectColor; DWORD dwASCorrectMono; DWORD dwASCorrectOverlay; DWORD dwEncInMagRepeat; DWORD dwEncExMagRepeat; DWORD dwOptSeparate; DWORD dwASFastAlignment; DWORD dwPrtAntiAliasing; BYTE reserved[32]; } OEMDEV, *POEMDEV; typedef struct { DEVMODEW devmode; #if defined(_MFC_VER) && (_MFC_VER <= 0x0600) DWORD dummy1; DWORD dummy2; #endif BYTE reserved[564]; OEMDEV oemdev; } SMART70_DEVMODE; #define SMART_DEVMODE SMART70_DEVMODE #define SMART70_COUNTPARAM_VER_LATEST 0 typedef struct { int ver; // current version is 0. // [ver == 0] ------------- int img; // image issue count int mag; // magnetic issue count int contact; // contact smart card issue count int sim; // SIM card issue count int contactless_ext; // contactless smart card (external) issue count int contactless_int; // contactless smart card (internal) issue count int cleanskip; // cleaning skip count int cleaning; // cleaning count } COUNTPARAM; #define SMART70_SYSINFO_VER_0 0 #define SMART70_SYSINFO_VER_LASTEST SMART70_SYSINFO_VER_0 #define SMART70_MAX_VER_LEN 32 #define SMART70_MAX_SERIAL_LEN 24 typedef struct { int ver; // structure version (= SMART70_SYSINFO_VER_0) // [ver == 0] ------------- struct { WCHAR ver[SMART70_MAX_VER_LEN]; // printer f/w ver. WCHAR serial[SMART70_MAX_SERIAL_LEN]; // printer serial number WCHAR hserial[SMART70_MAX_SERIAL_LEN]; // thermal header serial number BYTE reserved[32]; } printer; struct { BOOL installed; // flag for laminator installation WCHAR ver[SMART70_MAX_VER_LEN]; // laminator f/w ver. WCHAR serial[SMART70_MAX_SERIAL_LEN]; // laminator serial number BYTE reserved[32]; } laminator; } SMART_SYSINFO; typedef enum { obj_rect, obj_roundrect, obj_oval, obj_line, obj_image, obj_text, obj_bar, } S70ObjType; #ifdef MAKE_LONIBBLE # undef MAKE_LONIBBLE #endif// #ifdef MAKE_HINIBBLE # undef MAKE_HINIBBLE #endif// #ifdef GET_LONIBBLE # undef GET_LONIBBLE #endif// #ifdef GET_HINIBBLE # undef GET_HINIBBLE #endif// #ifdef MAKE_ALIGN # undef MAKE_ALIGN #endif// #ifdef GET_HALIGN # undef GET_HALIGN #endif// #ifdef GET_VALIGN # undef GET_VALIGN #endif// #ifdef SET_HALIGN # undef SET_HALIGN #endif// #ifdef SET_VALIGN # undef SET_VALIGN #endif// #define SMART70_OBJ_ALIGN_LEFT 0x00 #define SMART70_OBJ_ALIGN_CENTER 0x01 #define SMART70_OBJ_ALIGN_RIGHT 0x02 #define SMART70_OBJ_ALIGN_JUSTIFY 0x03 // text object only... #define SMART70_OBJ_ALIGN_HNOALIGN 0x04 #define SMART70_OBJ_ALIGN_TOP 0x00 #define SMART70_OBJ_ALIGN_MIDDLE 0x10 #define SMART70_OBJ_ALIGN_BOTTOM 0x20 #define SMART70_OBJ_ALIGN_VNOALIGN 0x30 #define SMART70_OBJ_ALIGN_HORZMASK 0x0F #define SMART70_OBJ_ALIGN_VERTMASK 0xF0 #define MAKE_LONIBBLE(nb) ( (nb) & 0x0F ) #define MAKE_HINIBBLE(nb) ( ((nb) & 0x0F) << 4 ) #define GET_LONIBBLE(bt) ( (bt) & 0x0F ) #define GET_HINIBBLE(bt) ( ((bt) & 0xF0 ) >> 4 ) #define MAKE_ALIGN(h,v) ( (h) | (v) ) #define SMART70_OBJ_ALIGN_NOALIGN (SMART70_OBJ_ALIGN_VNOALIGN|SMART70_OBJ_ALIGN_HNOALIGN) #define GET_HALIGN(a) ((a)&SMART70_OBJ_ALIGN_HORZMASK) //GET_HINIBBLE(a) #define GET_VALIGN(a) ((a)&SMART70_OBJ_ALIGN_VERTMASK) //GET_LONIBBLE(a) #define SET_HALIGN(a,h) MAKE_ALIGN(h,GET_VALIGN(a)) #define SET_VALIGN(a,v) MAKE_ALIGN(GET_HALIGN(a),v) #define SMART70_IMGSCALE_FITHORZ 0x00 // scale to fit to width of frame #define SMART70_IMGSCALE_FITVERT 0x01 // scale to fit to height of frame #define SMART70_IMGSCALE_FITFRAME 0x02 // scale to fit to frame. #define SMART70_IMGSCALE_USER 0x03 // scale factor is user setted. #define SMART70_IMGSCALE_BEST SMART70_IMGSCALE_FITHORZ #define SMART70_IMGSCALE_BASEAMP 10000 // default amplyfiying value #define SMART70_IMGEFFECT_CONTRASTMIN -100 #define SMART70_IMGEFFECT_CONTRASTMAX 100 //412 #define SMART70_IMGEFFECT_BRIGHTMIN -256 #define SMART70_IMGEFFECT_BRIGHTMAX 255 #define SMART70_IMGEFFECT_CONTRASTMIN -100 #define SMART70_IMGEFFECT_CONTRASTMAX 100 //412 #define SMART70_IMGEFFECT_BRIGHTMIN -256 #define SMART70_IMGEFFECT_BRIGHTMAX 255 #define SMART70_FONT_NORMAL 0x00 #define SMART70_FONT_BOLD 0x01 #define SMART70_FONT_ITALIC 0x02 #define SMART70_FONT_UNDERLINE 0x04 #define SMART70_TEXT_NOFIT 0 // use font size #define SMART70_TEXT_FITHEIGHT 1 // font is sized to frame's height #define SMART70_TEXT_FITWIDTH 2 // font is sized to frame's width #define SMART70_TEXT_FITBOTH 3 // font is sized to frame's width and height #define SMART70_TEXT_AUTOSIZE 4 #define SMART70_TEXT_SIZEMASK 0x000F // border style #define BS_NONE 5 #define BS_SOLID 0 #define BS_DASH 1 #define BS_DOT 2 #define BS_DASHDOT 3 #define BS_DASHDOTDOT 4 #define SMART70_OTB_NONE 0x0000 #define SMART70_OTB_FromEnum(e) (1 << (e)) #define SMART70_OTB_RECT SMART70_OTB_FromEnum(obj_rect) #define SMART70_OTB_ROUNDRECT SMART70_OTB_FromEnum(obj_roundrect) #define SMART70_OTB_OVAL SMART70_OTB_FromEnum(obj_oval) #define SMART70_OTB_LINE SMART70_OTB_FromEnum(obj_line) #define SMART70_OTB_IMAGE SMART70_OTB_FromEnum(obj_image) #define SMART70_OTB_TEXT SMART70_OTB_FromEnum(obj_text) #define SMART70_OTB_BAR SMART70_OTB_FromEnum(obj_bar) #define SMART70_UNITTYPE_TEXT SMART70_OTB_TEXT #define SMART70_UNITTYPE_IMAGE SMART70_OTB_IMAGE #define SMART70_UNITTYPE_BARCODE SMART70_OTB_BAR #define SMART70_UNITINFO_FIRST 0 #define SMART70_UNITINFO_NEXT 1 #define SMART70_MAX_FIELDNAMELEN 32 #define SMART70_MAX_FIELDVALUELEN 1024 #define SMART70_FIELD_PREFIX L'~' #define SMART70_MAX_BARCODENAME 64 typedef struct _tagFontInfo { int size; BYTE style; COLORREF color; WCHAR name[LF_FACESIZE]; } S70FontInfo; typedef struct _tagFontInfo2 { int size; // font size int size2; // font width size (for slim or large sized text...) BYTE style; COLORREF color; WCHAR name[LF_FACESIZE]; } FontInfo2; typedef struct _tagBorder { USHORT type; // using PenStyle. PS_SOLID, ... USHORT width; // mm type.... COLORREF color; } S70Border; typedef struct _tagBackGround { BOOL fill; COLORREF color; BYTE transparency; // % unit. (0:Opaque, 100:transparent) } S70BackGround; typedef struct _tagLaser { int power; int speed; int frequency; int angle; int reserved[16]; } S70Laser; typedef struct { short leftMargin; // spaceLeft short topMargin; // spaceTop short rightMargin; // spaceRight short bottomMargin; // spaceBottom BYTE align; S70FontInfo font; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; } S70UNITTEXT; typedef struct { int widthZoom; int heightZoom; short contrast; short brightness; BOOL grayscale; USHORT align; POINT offset; BYTE scaleMethod; int round; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; } S70UNITIMAGE; typedef struct { int type; int size; int option; SIZE size2D; COLORREF barColor; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; } S70UNITBAR; typedef struct { int index; int type; BYTE page; BYTE panel; int left; int top; int width; int height; int rotate; S70Border border; S70BackGround back; union { S70UNITTEXT txt; S70UNITIMAGE img; S70UNITBAR bar; }; } S70UNITINFO; #define SMART70_UNITINFO2_VER_1 1 #define SMART70_UNITINFO2_VER_2 2 #define SMART70_UNITINFO2_VER SMART70_UNITINFO2_VER_2 typedef struct { short leftMargin; // spaceLeft short topMargin; // spaceTop short rightMargin; // spaceRight short bottomMargin; // spaceBottom BYTE align; S70FontInfo font; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; BYTE reserved[32]; // must be 0 } UNITTEXT2; #define SMART70_UIMG2OPT_OFFSET_ORIGIN 0x0000 // UNITIMAGE2::offset value is original (before-rotating) offset point. #define SMART70_UIMG2OPT_OFFSET_DRAW 0x0001 // UNITIMAGE2::offset value is drawing point (applied-rotation). #define SMART70_UIMG2OPT_OFFSET_MASK 0x0001 typedef struct { int option; int widthZoom; int heightZoom; short contrast; short brightness; BOOL grayscale; USHORT align; POINT offset; BYTE scaleMethod; int round; BOOL autoportrait; BOOL autoeffect; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; BYTE reserved[32]; } UNITIMAGE2; typedef struct { int type; int size; int option; SIZE size2D; COLORREF barColor; WCHAR field[SMART70_MAX_FIELDNAMELEN+1]; BYTE reserved[32]; } UNITBAR2; typedef struct { int ver; int index; // zero-based index from ElementList... int type; // this is not EQUAL with CGObj's one. // objType can have the value within SMART70_UNITTYPE_TEXT, SMART70_UNITTYPE_IMAGE and SMART70_UNITTYPE_BARCODE. BYTE page; BYTE panel; int left; // offsetLeft int top; // offsetTop int width; int height; int rotate; S70Border border; S70BackGround back; union { UNITTEXT2 txt; UNITIMAGE2 img; UNITBAR2 bar; }; S70Laser laser; } UNITINFO2; typedef struct { DWORD oiSize; // entire struct size. struct size + extended data size DWORD oiIndex; // object index BYTE oiPage; BYTE oiPanel; int oiLeft; int oiTop; int oiWidth; int oiHeight; int oiRotate; BOOL oiPrintable; // print or not ... int oiType; // object type S70Border oiBorder; S70BackGround oiBack; union { struct { int oirrRound; } oiRRect; struct { short oitLeftSpace; short oitTopSpace; short oitRightSpace; short oitBottomSpace; BYTE oitAlign; int oitFitOn; FontInfo2 oitFont; int oitField; DWORD oitTextPos; // offset position of wide-char string data.. DWORD oitTextLen; // data length.. ///////////////////////////////// // [ OBJ_INFO ] // - base structure members 0 ~ ... // - oiText strcuture members ... ~ sizeof(OBJ_INFO) // ------------------------------- // + // - text data additional data area... ///////////////////////////////// } oiText; struct { int oiiWidth; int oiiHeight; DWORD oiiZoomWidth; // unit is permil. SMART70_IMGSCALE_BASEAMP: use origin size of image DWORD oiiZoomHeight; // unit is permil. SMART70_IMGSCALE_BASEAMP: use origin size of image short oiiContrast; // -100 ~ . default value is 0. short oiiBrightness; // -256 ~ 255. default value is 0. BOOL oiiGrayscaled; USHORT oiiAlign; POINT oiiOffset; // offset position in left-upper corner of frame BYTE oiiScale; // image scaling method... COLORREF oiiTransColor; int oiiTransRange; int oiiRound; int oiiField; DWORD oiiImgNamePos; // offset position of wide-char string data.. DWORD oiiImgNameLen; // data length.. ///////////////////////////////// // [ OBJ_INFO ] // - base structure members 0 ~ ... // - oiImage strcuture members ... ~ sizeof(OBJ_INFO) // ------------------------------- // + // - image url(file-path) data additional data area... ///////////////////////////////// } oiImage; struct { WCHAR oibName[SMART70_MAX_BARCODENAME]; int oibSize; int oibOpt; short oib2DOpt1; short oib2DOpt2; COLORREF oibColor; int oibField; DWORD oibDataPos; // barcode-data position. DWORD oibDataLen; // barcode-data length. DWORD oibExDataPos; // zip-postal data. it is used only "MaxiCode" type. DWORD oibExDataLen; // zip-postal data. it is used only "MaxiCode" type. ///////////////////////////////// // [ OBJ_INFO ] // - base structure members 0 ~ ... // - oiBar strcuture members ... ~ sizeof(OBJ_INFO) // ------------------------------- // + // - barcode data additional data area... // - zip-postal data (if necessary) ///////////////////////////////// } oiBar; }; } OBJ_INFO; #define OBJINFO2_VER_2 2 #define OBJINFO2_VER OBJINFO2_VER_2 #define LINE_FLIP_HORZ 0x01 #define LINE_FLIP_VERT 0x02 typedef struct { DWORD oiVer; // OBJINFO_VER DWORD oiSize; // base structure size. = sizeof(OBJ_INFO2) DWORD oiWholeSize; // entire struct size. include datas. = sizeof(OBJ_INFO2) + extend data size DWORD oiIndex; // object index BYTE oiPage; BYTE oiPanel; int oiLeft; int oiTop; int oiWidth; int oiHeight; int oiRotate; BOOL oiPrintable; // print or not ... int oiType; // object type S70Border oiBorder; S70BackGround oiBack; S70Laser oiLaser; union { struct { int oirrRound; } oiRRect; struct { short oitLeftSpace; short oitTopSpace; short oitRightSpace; short oitBottomSpace; BYTE oitAlign; int oitOption; FontInfo2 oitFont; int oitField; DWORD oitTextPos; // offset position of wide-char string data.. DWORD oitTextLen; // data length.. } oiText; struct { int oiiWidth; int oiiHeight; DWORD oiiZoomWidth; // unit is permil. IMGSCALE_BASEAMP: use origin size of image DWORD oiiZoomHeight; // unit is permil. IMGSCALE_BASEAMP: use origin size of image short oiiContrast; // -100 ~ . default value is 0. short oiiBrightness; // -256 ~ 255. default value is 0. BOOL oiiGrayscaled; USHORT oiiAlign; POINT oiiOffset; // offset position in left-upper corner of frame BYTE oiiScale; // image scaling method... COLORREF oiiTransColor; int oiiTransRange; int oiiRound; int oiiField; DWORD oiiImgNamePos; // offset position of wide-char string data.. DWORD oiiImgNameLen; // data length.. } oiImage; struct { WCHAR oibName[SMART70_MAX_BARCODENAME]; int oibSize; int oibOpt; short oib2DOpt1; short oib2DOpt2; COLORREF oibColor; int oibField; DWORD oibDataPos; DWORD oibDataLen; DWORD oibExDataPos; // zip-postal data. it is used only "MaxiCode" type. DWORD oibExDataLen; // zip-postal data. it is used only "MaxiCode" type. } oiBar; struct { int oilFlip; // LINE_FLIP_HORZ | LINE_FLIP_VERT } oiLine; }; } OBJ_INFO2; typedef struct { int x; int y; int cx; int cy; int rotate; int align; int fontHeight; int fontWidth; int style; COLORREF color; int option; WCHAR szFaceName[LF_FACESIZE]; //LF_FACESIZE = 32 } DT2INFO; #define SMART70_MAX_FIELDNAMELEN 32 #define SMART70_MAX_FIELDDATALEN 1024 typedef struct { DWORD fiIndex; WCHAR fiName[SMART70_MAX_FIELDNAMELEN]; DWORD fiDataLen; WCHAR fiData[SMART70_MAX_FIELDDATALEN]; } FIELD_INFO; typedef int (WINAPI * Smart70_GetDeviceList)(SMART70_PRINTER_LIST* pDevList); typedef int (WINAPI * Smart70_ExGetDeviceList)(SMART70_PRINTER_LIST* pDevList, int opt); typedef int (WINAPI * Smart70_GetDeviceInfo)(SMART70_PRINTER_INFO* pDevInfo, WCHAR* szdev, int ndevtype ); typedef int (WINAPI * Smart70_OpenDevice)(HSMART70* pHandle, WCHAR* szdev, int ndevtype); typedef int (WINAPI * Smart70_ExOpenDevice)(HSMART70* pHandle, WCHAR* szdev, int ndevtype); typedef int (WINAPI * Smart70_CloseDevice)(HSMART70 hHandle); typedef int (WINAPI * Smart70_GetRibbonInfo)(HSMART70 hHandle, BYTE mod, int* pnType, int* pnRemain, int* pnMax); typedef int (WINAPI * Smart70_GetConnectedDevices)(HSMART70 hSC, SMART70_DEVCONNLIST* pConnList); typedef int (WINAPI * Smart70_GetConnectedModules)(HSMART70 hSC, SMART70_DEVCONNLIST* pConnList); typedef int (WINAPI * Smart70_ICHContact)(HSMART70 hHandle, BYTE mod); typedef int (WINAPI * Smart70_ICHDiscontact)(HSMART70 hHandle, BYTE mod); typedef int (WINAPI * Smart70_OpenDocument)(HSMART70 hHandle, const WCHAR* szCSDName); typedef int (WINAPI * Smart70_CloseDocument)(HSMART70 hHandle); typedef int (WINAPI * Smart70_ClearDocument)(HSMART70 hHandle, int page); typedef int (WINAPI * Smart70_GetFieldCount)(HSMART70 hHandle, int* pnCount); typedef int (WINAPI * Smart70_GetFieldName)(HSMART70 hHandle, int idx, WCHAR* szName, DWORD dwBufLen); typedef int (WINAPI * Smart70_GetFieldValue)(HSMART70 hHandle, const WCHAR* szName, WCHAR* szValue); typedef int (WINAPI * Smart70_SetFieldValue)(HSMART70 hHandle, const WCHAR* szName, const WCHAR* szValue); typedef int (WINAPI * Smart70_DrawImage)(HSMART70 hHandle, BYTE page, BYTE panel, int x, int y, int cx, int cy, WCHAR* szImgPath, RECT* prcArea); typedef int (WINAPI * Smart70_ExDrawImage)(HSMART70 hHandle, BYTE page, BYTE panel, int x, int y, int cx, int cy, int nScaleMethod, BYTE nAlign, WCHAR* szImgPath, RECT* prcArea); typedef int (WINAPI * Smart70_DrawBitmap)(HSMART70 hSC, BYTE page, BYTE panel, int x, int y, int cx, int cy, HBITMAP hbmp, RECT* prcArea); typedef int (WINAPI * Smart70_ExDrawBitmap)(HSMART70 hSC, BYTE page, BYTE panel, int x, int y, int cx, int cy, int nScaleMethod, BYTE nAlign, HBITMAP hbmp, RECT* prcArea); typedef int (WINAPI * Smart70_DrawText)(HSMART70 hHandle, BYTE page, BYTE panel, int x, int y, WCHAR* szFontName, int nFontSize, BYTE nFontStyle, WCHAR* szText, RECT* prcArea); typedef int (WINAPI * Smart70_DrawText2)(HSMART70 hHandle, BYTE page, BYTE panel, DT2INFO* pdt2info, WCHAR* szText); typedef int (WINAPI * Smart70_DrawRect)(HSMART70 hHandle, BYTE page, BYTE panel, int x, int y, int cx, int cy, COLORREF col, RECT* prcArea); typedef int (WINAPI * Smart70_DrawBarcode)(HSMART70 hHandle, BYTE page, BYTE panel, int x, int y, int cx, int cy, COLORREF col, RECT* prcArea, const WCHAR* szName, int nSize, const WCHAR* szData, const WCHAR* szPost); typedef int (WINAPI * Smart70_GetBarcodeTypeCount)(HSMART70 hHandle, int* pnCount); typedef int (WINAPI * Smart70_GetBarcodeTypeName)(HSMART70 hHandle, int idx, WCHAR* szName, int nBufLen); typedef int (WINAPI * Smart70_GetPreviewBitmap)(HSMART70 hHandle, BYTE page, BITMAPINFO** const ppbi); typedef int (WINAPI * Smart70_GetUnitInfo)(HSMART70 hHandle, S70UNITINFO* pUnit, int dir); typedef int (WINAPI * Smart70_GetFieldLinkedUnitInfo)(HSMART70 hHandle, WCHAR* szField, S70UNITINFO* pUnit, int dir); typedef int (WINAPI * Smart70_SetUnitInfo)(HSMART70 hHandle, S70UNITINFO* pUnit); typedef int (WINAPI * Smart70_GetUnitInfo2)(HSMART70 hHandle, UNITINFO2* pUnit, int dir); typedef int (WINAPI * Smart70_GetFieldLinkedUnitInfo2)(HSMART70 hHandle, WCHAR* szField, UNITINFO2* pUnit, int dir); typedef int (WINAPI * Smart70_SetUnitInfo2)(HSMART70 hHandle, UNITINFO2* pUnit); typedef int (WINAPI * Smart70_GetUnitInfo2Direct)(HSMART70 hHandle, UNITINFO2* pUnit); typedef int (WINAPI * Smart70_GetICG)(HSMART70 hHandle, int page, int *pnICG); typedef int (WINAPI * Smart70_SetICG)(HSMART70 hHandle, int page, int nICG); typedef int (WINAPI * Smart70_GetVersion)(HSMART70 hSC, WCHAR* szBuf, int* pnBufLen); typedef int (WINAPI * Smart70_IsBackEnable)(HSMART70 hHandle, BOOL* pbEnabled); typedef int (WINAPI * Smart70_GetCountParam)(HSMART70 hHandle, COUNTPARAM* pParam); typedef int (WINAPI * Smart70_GetCountParamEx)(HSMART70 hHandle, COUNTPARAM * pParams); typedef int (WINAPI * Smart70_GetDisplayInfo)(HSMART70 hHandle, int* pnType, int* pnLang); typedef int (WINAPI * Smart70_GetSystemInfo)(HSMART70 hHandle, SMART_SYSINFO* pSysInfo); typedef int (WINAPI * Smart70_ReadUserMemory)(HSMART70 hHandle, WCHAR* szPW, int addr, BYTE* btdata); typedef int (WINAPI * Smart70_WriteUserMemory)(HSMART70 hHandle, WCHAR* szPW, int addr, BYTE* btdata); typedef int (WINAPI * Smart70_RFPowerOn)(HSMART70 hHandle, int nDev, int* pnCardType, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_RFPowerOn2)(HSMART70 hHandle, BYTE mod, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_RFPowerOff)(HSMART70 hHandle, int nDev); typedef int (WINAPI * Smart70_RFPowerOff2)(HSMART70 hHandle, BYTE mod); typedef int (WINAPI * Smart70_RFTransmit)(HSMART70 hHandle, int nDev, DWORD dwInLen, BYTE* pInBuf, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_RFTransmit2)(HSMART70 hHandle, BYTE mod, DWORD dwInLen, BYTE* pInBuf, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_ExRFPCSC_GetReaderName)(HSMART70 hHandle, int nWhich, WCHAR* szName); typedef int (WINAPI * Smart70_ICPowerOn)(HSMART70 hHandle, int nDev, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_ICPowerOn2)(HSMART70 hHandle, BYTE mod, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_ICPowerOff)(HSMART70 hHandle, int nDev); typedef int (WINAPI * Smart70_ICPowerOff2)(HSMART70 hHandle, BYTE mod); typedef int (WINAPI * Smart70_ICTransmit)(HSMART70 hHandle, int nDev, DWORD dwInLen, BYTE* pInBuf, DWORD* pdwOutLen, BYTE* pOutBuf); typedef int (WINAPI * Smart70_ICTransmit2)(HSMART70 hHandle, BYTE mod, DWORD dwInLen, BYTE* pInBuf, DWORD* pdwOutLen, BYTE* pOutBuf); #ifdef _WIN64 typedef int (WINAPI * Smart70_ExSetConfig)(HSMART70 hHandle, int nID, __int64 nValue); typedef int (WINAPI * Smart70_ExGetConfig)(HSMART70 hHandle, int nID, __int64* pnValue); #else//_WIN64 typedef int (WINAPI * Smart70_ExSetConfig)(HSMART70 hHandle, int nID, int nValue); typedef int (WINAPI * Smart70_ExGetConfig)(HSMART70 hHandle, int nID, int* pnValue); #endif//_WIN64 typedef struct { DWORD side; DWORD orientation; DWORD ribbon; DWORD ribbon_type; DWORD width; DWORD height; } SMART70_SURFACE_PROPERTIES; typedef struct { HDC hdcColor; HDC hdcResin; HDC hdcFluorescent; HDC hdcOverlay; HBITMAP hBmpColor; HBITMAP hBmpResin; HBITMAP hBmpFluorescent; HBITMAP hBmpOverlay; BYTE * lpPRN; } SMART70_SURFACE_BITMAPS; typedef int (WINAPI * Smart70DCL_OpenDevice)(HSMART70 *phHandle, WCHAR* szdev, int ndevtype, int nOrientation); typedef int (WINAPI * Smart70DCL_OpenDevice3)(HSMART70 *phHandle, WCHAR* szDev, int port, BOOL bSSL, int nOrientation); typedef int (WINAPI * Smart70DCL_CloseDevice)(HSMART70 hHandle); typedef int (WINAPI * Smart70DCL_ExOpenDevice)(HSMART70 *phHandle, WCHAR* szdev, int ndevtype, int nOrientation); typedef int (WINAPI * Smart70DCL_Print)(HSMART70 hHandle, int nPrintSide); typedef int (WINAPI * Smart70_GetVersion)(HSMART70 hSC, WCHAR* szBuf, int* pnBufLen); #define SMART70_MAX_MODULES 10 #define SMART70_COMMAND_WAITFINISH 0x00 #define SMART70_COMMAND_ONLY 0x01 #define SMART70_PRINT_EJECT 0x00 #define SMART70_PRINT_HOLD 0x10 #define SMART70_PRINT_PRNONLY 0x20 // for internal use only. you cannot use SMART70_PRINT_PRNONLY and SMART70_PRINT_HOLD both. #define SMART70_LEFTSIDE 0 // left : front #define SMART70_RIGHTSIDE 1 // right : rear // @Smart70_CardMove2 #define SMART70_MHOP_AUTO 0 #define SMART70_MHOP_HOP1 0x10 #define SMART70_MHOP_HOP2 0x20 #define SMART70_MHOP_HOP3 0x30 #define SMART70_MHOP_HOP4 0x40 #define SMART70_MHOP_HOP5 0x50 #define SMART70_MHOP_HOP6 0x60 // @Smart70_CardEject2 #define SMART70_EJECT_MHOP_LEFT 0x00000000 // eject option : multi-hopper eject to left side #define SMART70_EJECT_MHOP_RIGHT 0x00000001 // eject option : multi-hopper eject to right side #define SMART70_EJECT_MHOP_SIDE 0x00000001 // eject option : multi-hopper side mask #define SMART70_EJECT_MHOP_HOP1 0x00010000 // eject option : multi-hopper hopper #1 #define SMART70_EJECT_MHOP_HOP2 0x00020000 // eject option : multi-hopper hopper #2 #define SMART70_EJECT_MHOP_HOP3 0x00030000 // eject option : multi-hopper hopper #3 #define SMART70_EJECT_MHOP_HOP4 0x00040000 // eject option : multi-hopper hopper #4 #define SMART70_EJECT_MHOP_HOPPER 0x00070000 // eject option : multi-hopper hopper mask typedef struct { BYTE from; BYTE to; int res; } MOVECARD; typedef struct { int n; MOVECARD card[SMART70_MAX_MODULES]; } CARDMOVELIST; // Encoder Config #define SMART70_ENCCFG_MAG_COER 0 // [set] set magnetic coercivity. #define SMART70_ENCCFG_MIRU_IMAGE 10 // [get/set] miru image config (set:volatile) #define SMART70_ENCCFG_MIRU 11 // [get] get MIRU config. #define SMART70_ENCCFG_MIRU_GAIN 12 // [set] #define SMART70_ENCCFG_MIRU_OFFSET 13 // [set] #define SMART70_ENCCFG_MIRU_SPEED 14 // [set] #define SMART70_ENCCFG_MIRU_SHADING 15 // [set] // Encoder Specific Command - MIRU #define SMART70_ENC_MIRU_VERSION 10 // [get] get version of miru #define SMART70_ENC_MIRU_IMAGESAVE 11 // [set] miru image config save #define SMART70_ENC_MIRU_IMAGEREAD 12 // [get +bulk] read and get image #define SMART70_ENC_MIRU_READTOPBAR 13 // [get] get top side bar-codes #define SMART70_ENC_MIRU_READBOTBAR 14 // [get] get bottom side bar-codes #define SMART70_ENC_MIRU_SCANAREA 15 // [set] set the scanning area. #define SMART70_ENC_MIRU_RESET 16 // [set] reset the scanner. #define SMART70_ENC_MIRU_DOSHADING 17 // [get] do shading and get the result. #define SMART70_ENC_MIRU_RESTORE 18 // [get] restore defaults and get the result. // when SMART70_ENC_MIRU_IMAGEREAD, buffer is SMART70_MIRU_SAVEFILENAME [out]. typedef struct { WCHAR * sztop; WCHAR * szbottom; } SMART70_MIRU_SAVEFILENAME; #define MIRU_STATUS_DPI_300 300 #define MIRU_STATUS_DPI_600 600 #define MIRU_STATUS_MODE_GRAY 1 #define MIRU_STATUS_MODE_COLOR 3 #define MIRU_STATUS_SIDE_SINGLE 1 #define MIRU_STATUS_SIDE_DUAL 2 #define MIRU_STATUS_FACE_TOP 0 #define MIRU_STATUS_FACE_BOTTOM 1 #define MIRU_STATUS_DROP_NONE 0 #define MIRU_STATUS_DROP_BLUE 1 #define MIRU_STATUS_DROP_GREEN 2 #define MIRU_STATUS_DROP_RED 3 #define MIRU_STATUS_DROP_IR 4 #define MIRU_STATUS_GAIN_MIN 0 #define MIRU_STATUS_GAIN_MAX 63 #define MIRU_STATUS_OFFSET_MIN 0 #define MIRU_STATUS_OFFSET_MAX 511 #define MIRU_STATUS_SPEED_MIN 7400 #define MIRU_STATUS_SPEED_MAX 59200 #define MIRU_SHADING_OFF 0 #define MIRU_SHADING_ON 1 typedef struct { int dpi; int mode; int side; int face; int drop; } MIRU_IMAGE_CONFIG; typedef struct { int dpi; int mode; int side; int face; int drop; int width; int height; int gain; int offset; int speed; int state; int cline; int sline; int b_trigger; int b_shading; int b_monitoring; } MIRU_CONFIG; // Encoder Track #define SMART70_ENC_TRACK_MS1 0x01 #define SMART70_ENC_TRACK_MS2 0x02 #define SMART70_ENC_TRACK_MS3 0x04 #define SMART70_ENC_TRACK_JIS 0x08 #define SMART70_ENC_TRACK_BAR 0x10 // Encoder Option #define SMART70_ENC_OPTION_NORMAL 0x00 #define SMART70_ENC_OPTION_BACKWARD 0x40 #define SMART70_ENC_OPTION_BITMODE 0x80 // Magnetic Coercivity #define SMART70_ENC_MAGCOERCIVITY_LOCO 200 #define SMART70_ENC_MAGCOERCIVITY_HICO 600 #define SMART70_ENC_MAGCOERCIVITY_SPCO 800 #define SMART70_ENC_TRACK_MS1_MAX 76 #define SMART70_ENC_TRACK_MS2_MAX 37 #define SMART70_ENC_TRACK_MS3_MAX 104 #define SMART70_ENC_TRACK_JIS_MAX 69 #define SMART70_ENC_CL_DIR 1 #define JOB_WAIT 0 #define JOB_MOVE 1 #define JOB_PRINT 2 #define JOB_FLIP 3 #define JOB_LAMINATE 4 #define JOB_ERROR 5 #define JOB_LASER 6 #pragma pack(push,1) typedef struct { int jobid; // job-id for request information, and you must fill this before request. int work; // job's current working info. JOB_WAIT, ... BYTE module; // module-id where the card is. int remain; // the number of remain jobs in job pool, EXCEPT jobid. // when the 'jobid' value is 0 'work' and 'module' does not have any information and // 'remain' is ENTIRE jobs count. } JOBINFO; #pragma pack(pop) #pragma pack(push,1) typedef struct { int jobid; // job-id for request information, and you must fill this before request. int work; // job's current working info. JOB_WAIT, ... int opt; // print option BYTE module; // module-id where the card is. void* hsmart; BOOL cancel; // user requests cancel. int remain; // the number of remain jobs in job pool, EXCEPT jobid. // when the 'jobid' value is 0 'work' and 'module' does not have any information and // 'remain' is ENTIRE jobs count. } JOBINFO_EX; #pragma pack(pop) typedef struct { int jobid; int res; BYTE module; // 0xFF : when success, other : res is error and module is errored module-id. } S70CBParam; typedef LRESULT (CALLBACK * S70CBPROC)(S70CBParam* pcbres); typedef int (WINAPI * Smart70_RequestPreemption)(HSMART70 handle, WORD * pwPrmt); typedef int (WINAPI * Smart70_ReleasePreemption)(HSMART70 handle, WORD wPrmt); typedef int (WINAPI * Smart70_GetModuleState)(HSMART70 handle, BYTE mod, BYTE * pstate); typedef int (WINAPI * Smart70_UpdateModuleState)(HSMART70 handle, BYTE mod); typedef int (WINAPI * Smart70_GetStatus)(HSMART70 handle, BYTE mod, __int64 *pstatus); typedef int (WINAPI * Smart70_IsModuleReady)(HSMART70 handle, BYTE mod, int *pnReady); typedef int (WINAPI * Smart70_IsReadyInsertJob)(HSMART70 handle, int *pnReady); typedef int (WINAPI * Smart70_ToggleManualMode)(HSMART70 handle); typedef int (WINAPI * Smart70_UpdateCurrPrintJob)(HSMART70 handle, BYTE mod); typedef int (WINAPI * Smart70_GetCurrPrintJob)(HSMART70 handle, BYTE mod, WORD* pjobid); typedef int (WINAPI * Smart70_DeleteCurrPrintJob)(HSMART70 handle, BYTE mod); typedef int (WINAPI * Smart70_CardIn)(HSMART70 handle, BYTE module, int dir, int opt); typedef int (WINAPI * Smart70_CardOut)(HSMART70 handle, BYTE module, int dir, int opt); typedef int (WINAPI * Smart70_CardMove)(HSMART70 handle, BYTE fromModule, BYTE toModule, int opt); typedef int (WINAPI * Smart70_CardMove2)(HSMART70 handle, BYTE fromModule, BYTE fromOpt, BYTE toModule, BYTE toOpt, int cmdopt); typedef int (WINAPI * Smart70_CardListMove)(HSMART70 handle, CARDMOVELIST * plist); typedef int (WINAPI * Smart70_CardMoveQuick)(HSMART70 handle, BYTE mod, BYTE opt, int cmdopt); typedef int (WINAPI * Smart70_CardPass)(HSMART70 handle, BYTE mod, BYTE opt, int cmdopt); typedef int (WINAPI * Smart70_CardFlipPass)(HSMART70 handle, BYTE mod, BYTE opt, int cmdopt); typedef int (WINAPI * Smart70_CardFlip)(HSMART70 handle, BYTE modfrom, BYTE modflip, BYTE modto); typedef int (WINAPI * Smart70_CardFlip2)(HSMART70 handle, BYTE modfrom, BYTE modflip, BYTE modto); typedef int (WINAPI * Smart70_CardFlipStay)(HSMART70 handle, BYTE modfrom, BYTE modflip); typedef int (WINAPI * Smart70_Flip)(HSMART70 handle, BYTE mod, int opt, int value); typedef int (WINAPI * Smart70_CardMoveSensor)(HSMART70 handle, BYTE module, int opt1, int valule, int opt2); typedef int (WINAPI * Smart70_CardMovePosition)(HSMART70 handle, BYTE mod, int pos); typedef int (WINAPI * Smart70_CardEject)(HSMART70 handle, BYTE mod); typedef int (WINAPI * Smart70_CardEjectBin)(HSMART70 handle, BYTE mod, BYTE modbin); typedef int (WINAPI * Smart70_CardEject2)(HSMART70 handle, BYTE mod, int opt, BYTE modout, int optout); typedef int (WINAPI * Smart70_SetEncConfig)(HSMART70 handle, BYTE module, int config, int value); typedef int (WINAPI * Smart70_GetEncConfig2)(HSMART70 handle, BYTE module, int config, void* pvalue, int* plen); typedef int (WINAPI * Smart70_SetEncConfig2)(HSMART70 handle, BYTE module, int config, void* pvalue, int len); typedef int (WINAPI * Smart70_SetEncBuffer)(HSMART70 handle, BYTE module, BYTE track, int nbuflen, WCHAR* szbuf); typedef int (WINAPI * Smart70_WriteEncoder)(HSMART70 handle, BYTE module, BYTE track, BYTE opt); typedef int (WINAPI * Smart70_ReadEncoder)(HSMART70 handle, BYTE module, BYTE track, BYTE opt); typedef int (WINAPI * Smart70_FetchEncoder)(HSMART70 handle, BYTE module, BYTE track); typedef int (WINAPI * Smart70_GetEncBuffer)(HSMART70 handle, BYTE module, BYTE track, int * pnbufsize, WCHAR* szbuf); typedef int (WINAPI * Smart70_RunEncoder)(HSMART70 handle, BYTE module, BYTE track, int run, void* pbuf, int* pbuflen); typedef int (WINAPI * Smart70_GetPrinterSettings)(HSMART70 handle, BYTE module, SMART70_DEVMODE* pdm); typedef int (WINAPI * Smart70_SetPrinterSettings)(HSMART70 handle, BYTE module, SMART70_DEVMODE* pdm); typedef int (WINAPI * Smart70_PrintDocument)(HSMART70 handle, int opt, int * pjobid); typedef int (WINAPI * Smart70_SetJobCallback)(HSMART70 handle, S70CBPROC pfnCB); // @Smart70_PrintStart( opt ) #define SMART70_PRINT_IMMEDIATE 0x00 #define SMART70_PRINT_WITHCARDIN 0x01 #define SMART70_LAMINATE_IMMEDIATE SMART70_PRINT_IMMEDIATE #define SMART70_LAMINATE_WITHCARDIN SMART70_PRINT_WITHCARDIN #define SMART70_LAMINATE_SIDETOP 0x00 #define SMART70_LAMINATE_SIDEBOTTOM 0x02 //typedef int (WINAPI * Smart70_PrintStart)(HSMART70 handle, BYTE mod, BOOL bCardIn, int cmdopt); typedef int (WINAPI * Smart70_PrintStart)(HSMART70 handle, BYTE mod, int opt, int cmdopt); typedef int (WINAPI * Smart70_GetJobInfo)(HSMART70 handle, JOBINFO* pjobinf); typedef int (WINAPI * Smart70_GetJobInfoEx)(HSMART70 handle, JOBINFO_EX * pjobinf); /* * Job Descriptor Callback Functions */ // error callback typedef int /*LRESULT*/ (CALLBACK * SM70CB_ERROR)(HSMART70 handle, int jobid, BYTE mid, int nres); // magnetic encoding callback typedef int (CALLBACK * SM70CB_MAGNETIC)(HSMART70 handle, int jobid, BYTE mid); // contact smart card encoding callback typedef int (CALLBACK * SM70CB_CONTACT)(HSMART70 handle, int jobid, BYTE mid, BYTE *pATR, int nATRLen); // contactless smart card encoding callback typedef int (CALLBACK * SM70CB_CONTACTLESS)(HSMART70 handle, int jobid, BYTE mid, BYTE *pATR, int nATRLen); // scan image callback typedef struct { int bpp; int width; int height; } IMAGE_INFO; typedef struct { BYTE * ptop; int ntoplen; BYTE * pbottom; int nbottomlen; IMAGE_INFO topinf; IMAGE_INFO bottominf; } SCANIMAGE_RESULT; typedef int (CALLBACK * SM70CB_SCANIMAGE)(HSMART70 handle, int jobid, BYTE mid, SCANIMAGE_RESULT * presult); // scan barcode callback typedef struct { WCHAR * msztop; // multi null-terminated string of barcode text in top side. WCHAR * mszbottom; // multi null-terminated string of barcode text in bottom side. } SCANBARCODE_RESULT; typedef int (CALLBACK * SM70CB_SCANBARCODE)(HSMART70 handle, int jobid, BYTE mid, SCANBARCODE_RESULT * presult); // print a page callback typedef int (CALLBACK * SM70CB_PRINT)(HSMART70 handle, int jobid, BYTE mid, int page); // laminate a page callback typedef int (CALLBACK * SM70CB_LAMINATE)(HSMART70 handle, int jobid, BYTE mid, int page); // user callback typedef int (CALLBACK * SM70CB_USER)(HSMART70 handle, int jobid, BYTE mid, int opt); /* * Job Descriptor Item */ // card insert, move, eject. #define S7JD_MOVE 1 typedef struct { BYTE from_mid; // source module-id to move BYTE from_opt; // option for from_mid BYTE to_mid; // target module-id to move BYTE to_opt; // optio nfor to_mid BYTE reserved[8]; } S7JD_PARAM_MOVE; #define S7JD_MOVE_OPT_MIHAUTO 0x0F // Multi-Input-Hopper Auto #define S7JD_MOVE_OPT_MOHAUTO 0x0F // Multi-Output-Hopper Auto #define S7JD_MOVE_OPT_EJECT 0xFF // card flip #define S7JD_FLIP 2 typedef struct { BYTE from_mid; // source module-id to move for flip BYTE flip_mid; // module-id of flipper BYTE to_mid; // target module-id to move after flip BYTE opt; // flip option BYTE reserved[8]; } S7JD_PARAM_FLIP; // magnetic encoding #define S7JD_MAGNETIC 3 typedef struct { BYTE mid; // module-id of magnetic encoder int coer; // coercivity value BYTE reserved[8]; SM70CB_MAGNETIC pfncb; // callback function for magnetic encoding. // SDK move the card to magnetic position, configure coercivity and // calls this callback function. } S7JD_PARAM_MAGNETIC; // contact smart card encoding #define S7JD_CONTACT 4 typedef struct { BYTE mid; // module-id of contact smart card encoder BYTE reserved[8]; SM70CB_CONTACT pfncb; // callback function for contact smart card encoding. // SDK move the card to contact position, contact header down, power on and // calls this callback function. // after callback function SDK power off and detach contact header. } S7JD_PARAM_CONTACT; // contactless smart card encoding #define S7JD_CONTACTLESS 5 typedef struct { BYTE mid; // module-id of contactless smart card encoder BYTE reserved[8]; SM70CB_CONTACTLESS pfncb; // callback function for contactless smart card encoding. // SDK move the card to contactless position, power on and // calls this callback function. // after callback function SDK power off. } S7JD_PARAM_CONTACTLESS; // scan the image #define S7JD_SCANIMAGE 6 typedef struct { BYTE mid; // module-id of scanner int dpi; // scanning dpi int mode; // scanning color mode int side; // scanning side int opt; // option for scan BYTE reserved[8]; SM70CB_SCANIMAGE pfncb; // callback function for scan the image. // SDK configure scanner, scan image and calls this callback function. } S7JD_PARAM_SCANIMAGE; #define SCANIMAGE_OPT_TOP 0 // acquire top side result only #define SCANIMAGE_OPT_BOTTOM 1 // acquire bottom side result only #define SCANIMAGE_OPT_BOTH 2 // acquire both side results // scan the barcode #define S7JD_SCANBARCODE 7 typedef struct { BYTE mid; // module-id of scanner int dpi; // scanning dpi int mode; // scanning color mode int side; // scanning side int opt; // option for scan BYTE reserved[8]; SM70CB_SCANBARCODE pfncb; // callback function for scan the barcode. // SDK configure scanner, scan barcodes and calls this callback function. } S7JD_PARAM_SCANBARCODE; #define SCANBARCODE_OPT_TOP 0 // acquire top side result only #define SCANBARCODE_OPT_BOTTOM 1 // acquire bottom side result only #define SCANBARCODE_OPT_BOTH 2 // acquire both side results // print #define S7JD_PRINT 8 typedef struct { BYTE mid; // module-id of printer int page; // printing page BYTE reserved[8]; SM70CB_PRINT pfncb; // callback function for print a page. // SDK move card to print position if necessary and calls this callback function. // In print callback function, draw, make print data and send print data to printer. // After callback function, SDK starts printing. } S7JD_PARAM_PRINT; // laminate #define S7JD_LAMINATE 9 typedef struct { BYTE mid; // module-id of laminator int page; // laminating page BYTE reserved[8]; SM70CB_LAMINATE pfncb; // callback function for laminate a page. // SDK laminates page and calls this callback function. } S7JD_PARAM_LAMINATE; // laminate #define S7JD_USER 10 typedef struct { BYTE mid; // module-id of user-defined work int opt; // option BYTE reserved[8]; SM70CB_USER pfncb; // callback function for user-defined work. } S7JD_PARAM_USER; typedef void * HJOBD; typedef int (WINAPI * Smart70_NewJobDescriptor)(HSMART70 handle, HJOBD * phjd, SM70CB_ERROR pfncbErr); typedef int (WINAPI * Smart70_FreeJobDescriptor)(HSMART70 handle, HJOBD hjd); typedef int (WINAPI * Smart70_AddJobItem)(HSMART70 handle, HJOBD hjd, int ji_type, void * ji_param); typedef int (WINAPI * Smart70_AddJobItemMove)(HSMART70 handle, HJOBD hjd, BYTE from_mid, BYTE from_opt, BYTE to_mid, BYTE to_opt); typedef int (WINAPI * Smart70_AddJobItemFlip)(HSMART70 handle, HJOBD hjd, BYTE from_mid, BYTE flip_mid, BYTE to_mid, BYTE opt); typedef int (WINAPI * Smart70_AddJobItemMagnetic)(HSMART70 handle, HJOBD hjd, BYTE mid, int coer, SM70CB_MAGNETIC pfncb); typedef int (WINAPI * Smart70_AddJobItemContact)(HSMART70 handle, HJOBD hjd, BYTE mid, SM70CB_CONTACT pfncb); typedef int (WINAPI * Smart70_AddJobItemContactless)(HSMART70 handle, HJOBD hjd, BYTE mid, SM70CB_CONTACTLESS pfncb); typedef int (WINAPI * Smart70_AddJobItemScanImage)(HSMART70 handle, HJOBD hjd, BYTE mid, int dpi, int mode, int side, int opt, SM70CB_SCANIMAGE pfncb); typedef int (WINAPI * Smart70_AddJobItemScanBarcode)(HSMART70 handle, HJOBD hjd, BYTE mid, int dpi, int mode, int side, int opt, SM70CB_SCANBARCODE pfncb); typedef int (WINAPI * Smart70_AddJobItemPrint)(HSMART70 handle, HJOBD hjd, BYTE mid, int page, SM70CB_PRINT pfncb); typedef int (WINAPI * Smart70_AddJobItemLaminate)(HSMART70 handle, HJOBD hjd, BYTE mid, int page, SM70CB_LAMINATE pfncb); typedef int (WINAPI * Smart70_AddJobItemUser)(HSMART70 handle, HJOBD hjd, BYTE mid, int opt, SM70CB_USER pfncb); typedef int (WINAPI * Smart70_InsertJob)(HSMART70 handle, HJOBD hjd, int * pjobid); typedef int (WINAPI * Smart70_ExGetDevParam2)(HSMART70 handle, BYTE mod, WCHAR* pw, int slot, int* pvalue, int nParams); typedef int (WINAPI * Smart70_ExSetDevParam2)(HSMART70 handle, BYTE mod, WCHAR* pw, int slot, int* pvalue, int nParams); typedef int (WINAPI * Smart70_MagWrite)(HSMART70 handle, BYTE mod, BOOL bT1, WCHAR* szT1, BOOL bT2, WCHAR* szT2, BOOL bT3, WCHAR* szT3, BOOL bJIS, WCHAR* szJIS); typedef int (WINAPI * Smart70_MagRead)(HSMART70 handle, BYTE mod, BOOL bT1, WCHAR* szT1, int nT1, BOOL bT2, WCHAR* szT2, int nT2, BOOL bT3, WCHAR* szT3, int nT3, BOOL bJIS, WCHAR* szJIS, int nJIS); // laser device manager typedef int (WINAPI * Smart70_LaserConnect)(); typedef int (WINAPI * Smart70_LaserDisconnect)(); typedef int (WINAPI * Smart70_LaserCheckPort)(); // draw function for support laser typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; } LLINE, LRECT, LOVAL; typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; int round; } LRRECT; typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; S70FontInfo font; int align; WCHAR* szText; } LTEXT; typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; WCHAR* szBarName; int nSize; COLORREF rgbBar; WCHAR* szData; WCHAR* szPost; bool showString; int opt1; int opt2; } LBAR; typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; WCHAR* szFile; BYTE scale; BYTE align; } LIMG; typedef struct { BYTE page; BYTE panel; int x; int y; int cx; int cy; S70Border border; S70BackGround back; HBITMAP hbmp; BYTE scale; BYTE align; } LBMP; typedef int (WINAPI * Smart70_LDrawLine )(HSMART70 handle, LLINE *pline, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawRect )(HSMART70 handle, LRECT *prect, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawOval )(HSMART70 handle, LOVAL *poval, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawRRect )(HSMART70 handle, LRRECT *prrc, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawText )(HSMART70 handle, LTEXT *ptext, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawBarcode )(HSMART70 handle, LBAR *pbar, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawImage )(HSMART70 handle, LIMG *pimg, S70Laser *plaser, RECT* prc); typedef int (WINAPI * Smart70_LDrawBitmap )(HSMART70 handle, LBMP *pbmp, S70Laser *plaser, RECT* prc);