#pragma once #include #include #include #define PRINTER_DATA_VERSION 1 struct printer_cx_config { bool enable; wchar_t printer_out_path[MAX_PATH]; wchar_t printer_data_path[MAX_PATH]; char printer_firm_version[8]; char printer_camera_version[8]; char printer_config_version[8]; char printer_table_version[8]; }; struct printer_cx_data { uint8_t version; uint64_t print_counter; uint64_t print_counter_since_clean; bool is_transport; }; enum { CX_OK = 0, CX_ERROR_FATAL_3301 = -1, CX_ERROR_USB_COM_3201 = -2, CX_ERROR_PRINT_INTERRUPT_6805_4 = -4, CX_ERROR_CODE_UNREADABLE_3303 = -5, CX_ERROR_INK_LOW_3202 = -6, CX_ERROR_PRINT_INTERRUPT_6805_3 = -7, CX_ERROR_NO_CARD_6801 = -16961536, CX_ERROR_DOOR_OPEN_6808 = -16961792, CX_ERROR_6831 = -16963328, CX_ERROR_6810 = -16964864, CX_ERROR_CLEAN_PRINTER_3999 = -16973056, CX_ERROR_JAM_6805_1 = -17010688, CX_ERROR_REVERSE_JAM_6805_2 = -17010944, CX_ERROR_CAMERA_JAM_6805_3 = -17011200, CX_ERROR_TRANSPORT_JAM_6805_4 = -17011456, CX_ERROR_PAPER_SENSOR_JAM_6805_5 = -17011712, CX_ERROR_RETRANSFER_JAM_6805_6 = -17011968, CX_ERROR_PAPER_RIPPED_6813_3 = -17015040, CX_ERROR_CODE_READ_6811 = -17018112, CX_ERROR_UNAUTHORIZED_INK_6803_1 = -17018880, CX_ERROR_INK_EMPTY_6813_1 = -17019136, CX_ERROR_PRINT_TIMEOUT_6810_3 = -17056768, CX_ERROR_CAMERA_HARDWARE_FAULT_6810_5 = -17083136, CX_ERROR_CAMERA_COM_6810_6 = -17083392, CX_ERROR_ROLLER_6810_15 = -17088768, CX_ERROR_OVER_TEMPERATURE_6810_16 = -17089024, CX_ERROR_POWER_INTERRUPT_6810_1 = -17089280, CX_ERROR_INITIALIZATION_6810_2 = -17094656, CX_ERROR_OVER_TEMPERATURE_6810_10 = -17100800, CX_ERROR_RETRANSFER_ROLLER_6810_11 = -17101056, CX_ERROR_THERMOSTAT_6810_12 = -17101312, CX_ERROR_OVER_TEMPERATURE_6810_20 = -17101568, CX_ERROR_STRAIGHTEN_ROLLER_6810_21 = -17101824, CX_ERROR_THERMOSTAT_6810_22 = -17102080, CX_ERROR_PRINTER_TOO_COLD_6833_1 = -16971264, CX_ERROR_OVER_TEMPERATURE_6810_25 = -17102848, CX_ERROR_CAMERA_NOT_FOUND_6810_7 = -17116672, CX_ERROR_RETRANSFER_ROLL_EMPTY_6802_3 = -21144064, CX_ERROR_INK_ROLL_EMPTY_6802_1 = -21148160, CX_ERROR_NOT_CONNECTED_6804 = -33554432, CX_ERROR_CAMERA_JAM_6805_7 = -17012224, CX_ERROR_INVALID_CLEANING_CARD_6832_1 = -16965376, CX_ERROR_TEMPERATURE_RESOLVED_6833_2 = -16971520, }; void printer_cx_hook_init(const struct printer_cx_config *cfg, HINSTANCE self); void printer_cx_hook_insert_hooks(HMODULE target);