#ifndef PRINTER_WIN32_TSPL_SDK_H
#define PRINTER_WIN32_TSPL_SDK_H

#ifdef FOR_PB_ENV_EXPORTS
#define SDK_API 
#define CALL_STACK __stdcall
#else
#ifdef __cplusplus
#define SDK_API extern "C" __declspec(dllexport)
#define CALL_STACK __cdecl
#else
#define SDK_API __declspec(dllexport)
#define CALL_STACK __cdecl
#endif
#endif
SDK_API int CALL_STACK PrinterCreator(void** phandle, const TCHAR* model);
SDK_API void* CALL_STACK PrinterCreatorS(char* model);
SDK_API int CALL_STACK PrinterDestroy(void* handle);
SDK_API int CALL_STACK PortOpen(void* handle, const TCHAR* ioSettings);
SDK_API int CALL_STACK PortClose(void* handle);
SDK_API int CALL_STACK DirectIO(void* handle, unsigned char* writedata, unsigned int writeNum, unsigned char* readData, unsigned int readNum, unsigned int* preadedNum);


SDK_API int CALL_STACK TSPL_SelfTest(void* handle);
SDK_API int CALL_STACK TSPL_BitMap(void* handle, int x_pos, int y_pos, int mode, const char* filename);
SDK_API int CALL_STACK TSPL_Setup(void* handle, int label_width, int label_height, int speed, int density, int type, int gap, int offset);
SDK_API int CALL_STACK TSPL_ClearBuffer(void* handle);
SDK_API int CALL_STACK TSPL_Box(void* handle, int x_start, int y_start, int x_end, int y_end, int thickness);
SDK_API int CALL_STACK TSPL_BarCode(void* handle, int x_pos, int y_pos, int code_type, int height, int readable, int rotation, int narrow, int wide, const char* code_data);
SDK_API int CALL_STACK TSPL_QrCode(void* handle, int x_pos, int y_pos, int ecc_level, int width, int mode, int rotation, int model, int mask, const char* data);
SDK_API int CALL_STACK TSPL_Text(void* handle, int x_pos, int y_pos, int font, int rotation, int x_multiplication, int y_multiplication, const char* content);
SDK_API int CALL_STACK TSPL_Print(void* handle, int num, int copies);
SDK_API int CALL_STACK TSPL_FormFeed(void* handle);
SDK_API int CALL_STACK TSPL_SetTear(void* handle, int on_off);
SDK_API int CALL_STACK TSPL_SetRibbon(void* handle, int ribbon);
SDK_API int CALL_STACK TSPL_Offset(void* handle, int distance);
SDK_API int CALL_STACK TSPL_Direction(void* handle, int direction);
SDK_API int CALL_STACK TSPL_Feed(void* handle, int len);
SDK_API int CALL_STACK TSPL_Home(void* handle);
SDK_API int CALL_STACK TSPL_Learn(void* handle);
SDK_API int CALL_STACK TSPL_GetSN(void* handle, char* sn);
SDK_API int CALL_STACK TSPL_GetPrinterStatus(void* handle, int* status);
SDK_API int CALL_STACK TSPL_SetCodePage(void* handle,int codepage);
SDK_API int CALL_STACK TSPL_PDF417(void* handle, int x_pos, int y_pos, int width, int height, int rotate, char* option, const char* data);
SDK_API int CALL_STACK TSPL_Block(void* handle, int x_pos, int y_pos, int width, int height, int font, int rotate, int x_multiplication, int y_multiplication, int space, int alginment, const char* data);

#endif