sh_real_name_system/libs/win64/IvsDrawer.h

707 lines
21 KiB
C
Raw Normal View History

2025-08-11 14:47:30 +08:00
#ifndef IVS_DRAWER_H
#define IVS_DRAWER_H
#include <time.h>
#ifdef _WIN32
#define IVSDRAWER_API
#define CALLMETHOD __stdcall
#else
#define IVSDRAWER_API
#define CALLMETHOD
#endif
#ifdef _WIN32
#include <windows.h>
#define IVS_BOOL BOOL
#define IVS_WND_REF HWND
#define IVS_DC_REF HDC
#define IVS_COLOR COLORREF
#define IVS_RECT RECT
typedef POINT IVSPOINT;
#else
#define IVS_BOOL int
#define IVS_WND_REF void*
#define IVS_DC_REF void*
typedef struct __IVS_MAC_WND
{
int nWidth;
int nHeight;
}IVS_WND;
typedef struct __IVS_COLOR
{
float cgred;
float cggreen;
float cgblue;
}IVS_COLOR;
typedef struct __IVSPOINT
{
float x;
float y;
}IVSPOINT;
typedef struct __IVS_RECT
{
float left;
float bottom;
float right;
float top;
}IVS_RECT;
#endif
#ifdef _WIN32
#define INT64 __int64
#else
#define DWORD unsigned int
#define INT64 long long
#endif
typedef enum
{
SHOW_NONE = 0,
SHOW_RULE = (1 << 0),
SHOW_ALARM = (1 << 1),
SHOW_TRACK = (1 << 2),
SHOW_ALL = (SHOW_RULE | SHOW_ALARM | SHOW_TRACK),
}SHOW_TYPE;
typedef enum
{
DRAW_JSON = 0,
DRAW_TRACK,
DRAW_ALARM,
DRAW_RULE,
DRAW_ALARMRULE,
DRAW_ALARMEX,
DRAW_TRACKEX,
DRAW_MOVE_CHECK,
DRAW_TEST = 9,
DRAW_WEB_RULE = 11,
DRAW_WEB_ALARM,
DRAW_FLOW_INFO,
DRAW_TRACKEX2,
DRAW_WUXI235_TRACKEX2,
DRAW_TRACKEXA1,
DRAW_TRACKEX2_TYPE_HUMAN,
DRAW_TRACKEX2_TYPE_VEHICLE,
DRAW_TRACKEX2_TYPE_NONMOTOR,
DRAW_TRACKEX2_TYPE_SHOPPRESENCE,
DRAW_TRACKEX2_TYPE_FLOWBUSINESS,
DRAW_INTELFLOW,
DRAW_SMARTMOTION,
DRAW_END,
}DRAW_TYPE;
typedef enum
{
IVS_LINGER = 0,
IVS_TRACKTAIL, // <20>켣β<ECBCA3><CEB2>
IVS_GET_OBJECT,
IVS_DISABLE_VIDEO_TIME, // <20><>ֹ<EFBFBD><D6B9>ƵŨ<C6B5><C5A8><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬Ĭ<E4A3AC>Ͽ<EFBFBD><CFBF><EFBFBD>
IVS_DISABLE_VIDEO_OBJECT,
IVS_TRACK_OBJECT = 6,
IVS_SET_PEN_HEIGHT,
IVS_TRACK_OBJECT_EX = 8,
}IVS_CMD_TYPE;
typedef enum
{
DRAW_PEN_DEFAULT = -1,
DRAW_PEN_SOLID = 0,
DRAW_PEN_DASH,
DRAW_PEN_DOT,
DRAW_PEN_DASHDOT,
DRAW_PEN_DASHDOTDOT,
DRAW_PEN_NULL,
DRAW_PEN_INSIDEFRAME,
DRAW_PEN_USERSTYLE,
DRAW_PEN_ALTERNATE,
}DRAW_PEN_STYLE;
#define IVS_MAX_ACTION_NUM 4
#define IVS_MAX_EVENT_NUM 64
#define IVS_MAX_POLYLINE_NUM 32
#define IVS_MAX_OBJECT_NUM 64
#define IVS_NAME_NUM 128
// <20><>ά<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>
typedef struct
{
short nx;
short ny;
} DH_IVS_SPOINT, *LPDH_IVS_SPOINT;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӦͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
typedef struct
{
DWORD dwOffSet; // <20>ļ<EFBFBD><C4BC>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>е<EFBFBD>ƫ<EFBFBD><C6AB>λ<EFBFBD><CEBB>, <20><>λ:<3A>ֽ<EFBFBD>
DWORD dwFileLenth; // <20>ļ<EFBFBD><C4BC><EFBFBD>С, <20><>λ:<3A>ֽ<EFBFBD>
WORD wWidth; // ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>, <20><>λ:<3A><><EFBFBD><EFBFBD>
WORD wHeight; // ͼƬ<CDBC>߶<EFBFBD>, <20><>λ:<3A><><EFBFBD><EFBFBD>
char* pszFilePath; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷԭ<CAB7><D4AD>,<2C>ó<EFBFBD>Աֻ<D4B1><D6BB><EFBFBD>¼<EFBFBD><C2BC>ϱ<EFBFBD>ʱ<EFBFBD><CAB1>Ч
// <20>ļ<EFBFBD>·<EFBFBD><C2B7>
// <20>û<EFBFBD>ʹ<EFBFBD>ø<EFBFBD><C3B8>ֶ<EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE bIsDetected; // ͼƬ<CDBC>Ƿ<EFBFBD><C7B7><EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ύʶ<E1BDBB><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʱ<EFBFBD><CAB1><EFBFBD>ⶨλ<E2B6A8><CEBB>ͼ,1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0:û<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
BYTE bReserved[3]; // Ԥ<><D4A4><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
int nFilePathLen; // <20>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>pszFilePath <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
DH_IVS_SPOINT stuPoint; // Сͼ<D0A1><CDBC><EFBFBD>Ͻ<EFBFBD><CFBD>ڴ<EFBFBD>ͼ<EFBFBD><CDBC>λ<EFBFBD>ã<EFBFBD>ʹ<EFBFBD>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
}DH_IVS_PIC_INFO;
typedef struct tagDH_IVS_TIME_EX
{
DWORD dwYear; // <20><>
DWORD dwMonth; // <20><>
DWORD dwDay; // <20><>
DWORD dwHour; // ʱ
DWORD dwMinute; // <20><>
DWORD dwSecond; // <20><>
DWORD dwMillisecond; // <20><><EFBFBD><EFBFBD>
DWORD dwUTC; // utcʱ<63><CAB1>(<28><>ȡʱ0<CAB1><30>ʾ<EFBFBD><CABE>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>0<EFBFBD><30>Ч <20>·<EFBFBD><C2B7><EFBFBD>Ч)
DWORD dwReserved[1]; // Ԥ<><D4A4><EFBFBD>ֶ<EFBFBD>
} DH_IVS_TIME_EX,*LPDH_IVS_TIME_EX;
// <20><><EFBFBD>򣻸<EFBFBD><F2A3BBB8>߾ఴ<DFBE><E0B0B4><EFBFBD><EFBFBD>8192<39>ı<EFBFBD><C4B1><EFBFBD>
typedef struct
{
long left;
long top;
long right;
long bottom;
} DH_IVS_LRECT, *LPDH_IVS_LRECT;
#pragma pack(push)
#pragma pack(4)
// <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B9B9>
typedef struct
{
int nObjectID; // <20><><EFBFBD><EFBFBD>ID,ÿ<><C3BF>ID<49><44>ʾһ<CABE><D2BB>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char szObjectType[128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nConfidence; // <20><><EFBFBD>Ŷ<EFBFBD>(0~255),ֵԽ<D6B5><D4BD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>Ŷ<EFBFBD>Խ<EFBFBD><D4BD>
int nAction; // <20><><EFBFBD><EFBFBD><E5B6AF>:1:Appear 2:Move 3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
DH_IVS_LRECT BoundingBox; // <20><>Χ<EFBFBD><CEA7>
DH_IVS_SPOINT Center; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nPolygonNum; // <20><><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DH_IVS_SPOINT Contour[16]; // <20>Ͼ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD rgbaMainColor; // <20><>ʾ<EFBFBD><CABE><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>ֽڱ<D6BD>ʾ,<2C>ֱ<EFBFBD>Ϊ<EFBFBD><EFBFBD>̡<EFBFBD><CCA1><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>:RGBֵΪ(0,255,0),͸<><CDB8><EFBFBD><EFBFBD>Ϊ0ʱ, <20><>ֵΪ0x00ff0000.
char szText[128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĴ<D8B5>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>,<2C><><EFBFBD><EFBFBD><E7B3B5>,<2C><>װ<EFBFBD><D7B0><EFBFBD>ŵȵ<C5B5>
char szObjectSubType[62]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD>ݲ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
WORD wColorLogoIndex; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wSubBrand; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7> <20><>Ҫͨ<D2AA><CDA8>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7> ӳ<><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>
BYTE byReserved1;
bool bPicEnble; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӦͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
DH_IVS_PIC_INFO stPicInfo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӦͼƬ<CDBC><C6AC>Ϣ
bool bShotFrame; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>ץ<EFBFBD><D7A5><EFBFBD>ŵ<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bColor; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(rgbaMainColor)<29>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
BYTE byReserved2;
BYTE byTimeType; // ʱ<><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>EM_TIME_TYPE˵<45><CBB5>
DH_IVS_TIME_EX stuCurrentTime; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵŨ<C6B5><C5A8>,<2C><>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD>Ļ<EFBFBD>ʶ<EFBFBD><CAB6>ʱ,<2C><EFBFBD><E1BDAB>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƶ֡<C6B5><D6A1>jpegͼƬ<CDBC><C6AC>,<2C><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC>Ƶ<EFBFBD>еij<D0B5><C4B3><EFBFBD>ʱ<EFBFBD>
DH_IVS_TIME_EX stuStartTime; // <20><>ʼʱ<CABC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<E5BFAA><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DH_IVS_TIME_EX stuEndTime; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DH_IVS_LRECT stuOriginalBoundingBox; // <20><>Χ<EFBFBD><CEA7>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
DH_IVS_LRECT stuSignBoundingBox; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7>
DWORD dwCurrentSequence; // <20><>ǰ֡<C7B0><D6A1><EFBFBD>ţ<EFBFBD>ץ<EFBFBD><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֡<EFBFBD><D6A1>
DWORD dwBeginSequence; // <20><>ʼ֡<CABC><D6A1><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>ʼ<E5BFAA><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֡<EFBFBD><D6A1><EFBFBD>ţ<EFBFBD>
DWORD dwEndSequence; // <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֡<EFBFBD><D6A1><EFBFBD>ţ<EFBFBD>
INT64 nBeginFileOffset; // <20><>ʼʱ<CABC>ļ<EFBFBD>ƫ<EFBFBD><C6AB>, <20><>λ: <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD>ʼ<E5BFAA><CABC><EFBFBD><EFBFBD>ʱ,<2C><>Ƶ֡<C6B5><D6A1>ԭʼ<D4AD><CABC>Ƶ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD>
INT64 nEndFileOffset; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>ƫ<EFBFBD><C6AB>, <20><>λ: <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,<2C><>Ƶ֡<C6B5><D6A1>ԭʼ<D4AD><CABC>Ƶ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD>
BYTE byColorSimilar[8]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ƶ<EFBFBD>,ȡֵ<C8A1><D6B5>Χ<EFBFBD><CEA7>0-100,<2C><><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ɫ,<2C><><EFBFBD><EFBFBD>EM_COLOR_TYPE
BYTE byUpperBodyColorSimilar[8]; // <20>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ƶ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1>Ч)
BYTE byLowerBodyColorSimilar[8]; // <20>°<EFBFBD><C2B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ƶ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʱ<EFBFBD><CAB1>Ч)
int nRelativeID; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szSubText[20]; // "ObjectType"Ϊ"Vehicle"<22><><EFBFBD><EFBFBD>"Logo"ʱ,<2C><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ijһ<C4B3><D2BB>ϵ,<2C><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>A6L,<2C><><EFBFBD>ڳ<EFBFBD>ϵ<EFBFBD>϶<EFBFBD>,SDKʵ<4B><CAB5>ʱ͸<CAB1><CDB8><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>,<2C><EFBFBD><E8B1B8>ʵ<EFBFBD><CAB5>д<EFBFBD><D0B4>
WORD wBrandYear; // <20><><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ҫͨ<D2AA><CDA8>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ӳ<><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>
} DH_IVS_OBJECT_INFO;
#pragma pack(pop)
typedef struct IVS_CONFIG_EVENT
{
char szEventName[IVS_NAME_NUM]; // <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>"<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>"
char szRuleName[IVS_NAME_NUM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DH_IVS_OBJECT_INFO stuObject;
char Context[28];
int alarmAction; // <20><>NetSDK<44><4B><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
int alarmType;
}IVS_CONFIG_EVENT_INFO;
typedef struct IVS_CONFIG_EVENTEX
{
char szEventName[IVS_NAME_NUM]; // <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>"<22>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>"
char szRuleName[IVS_NAME_NUM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char Context[28];
int alarmAction; // <20><>NetSDK<44><4B><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
int alarmType;
int nObjectNum;
DH_IVS_OBJECT_INFO stuObject[IVS_MAX_OBJECT_NUM]; // <20><><EFBFBD><EFBFBD><E2B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nContext; // <20><><EFBFBD>ֶ<EFBFBD>δ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
void* pContext;
}IVS_CONFIG_EVENT_INFOEX;
typedef struct
{
int nEventsNum; // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IVS_CONFIG_EVENT_INFO stuEventInfo[IVS_MAX_EVENT_NUM]; // <20>¼<EFBFBD><C2BC><EFBFBD>Ϣ
}IVS_CFG_ANALYSEVENTS_INFO;
typedef struct
{
int nEventsNum; // <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IVS_CONFIG_EVENT_INFOEX stuEventInfo[IVS_MAX_EVENT_NUM]; // <20>¼<EFBFBD><C2BC><EFBFBD>Ϣ
}IVS_CFG_ANALYSEVENTS_INFOEX;
typedef struct
{
int nX; // 8192<39><32><EFBFBD><EFBFBD>ϵ
int nY;
}IVS_CFG_POLYLINE;
typedef struct __IVS_WEB_RULE
{
int size;
int nRuleType;
int nRuleEnable;
int ndirect1;
int ndirect2;
int nPoint1;
int nPoint2;
unsigned char bActionType[4];
DH_IVS_OBJECT_INFO objectMsg;
char szRuleName[IVS_NAME_NUM];
IVS_CFG_POLYLINE stuDetectLine1[IVS_MAX_POLYLINE_NUM]; //Line
IVS_CFG_POLYLINE stuDetectLine2[IVS_MAX_POLYLINE_NUM]; //Region
int nRuleID;
IVS_CFG_POLYLINE stuDirectionLine[2]; //Direction
char szRevered[236];
}IVS_WEB_RULE;
typedef struct __IVS_WEB_RULE_ARRAY
{
int size;
int nCount;
IVS_WEB_RULE* pRule;
}IVS_WEB_RULE_ARRAY;
typedef struct
{
int objectid;
struct tm startTime;
struct tm endTime;
INT64 nBeginFileOffset; // <20><>ʼʱ<CABC>ļ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(<28><><EFBFBD>ʼ<E5BFAA><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ƶ֡<C6B5><D6A1>ԭʼ<D4AD><CABC>Ƶ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>)
INT64 nEndFileOffset; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ƶ֡<C6B5><D6A1>ԭʼ<D4AD><CABC>Ƶ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>)
int classid;
}IVSOBJECT;
typedef struct
{
IVS_BOOL trackex2objtype; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0:<3A><><EFBFBD><EFBFBD>1:<3A><>ʾ<EFBFBD><CABE>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ʾ
IVS_BOOL trackex2attribute88; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ0x88<38><38><EFBFBD>԰<EFBFBD><D4B0><EFBFBD>0:<3A><><EFBFBD><EFBFBD>1:<3A><>ʾ<EFBFBD><CABE>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>ʾ
IVS_BOOL trackex2objid; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ID<49><44>0:<3A><><EFBFBD><EFBFBD>1:<3A><>ʾ<EFBFBD><CABE>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ʾ
IVS_BOOL trackex2humanage; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䣬0:<3A><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>1:<3A><>ʾ<EFBFBD><CABE><EFBFBD>䣬Ĭ<E4A3AC><C4AC><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}TrackEx2Configure;
typedef union
{
IVSOBJECT object;
IVSPOINT xPt;
char szReverd[128];
}ObjectContex;
typedef struct _DH_IVS_POINT
{
/*************************************************
** <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
** <EFBFBD><EFBFBD><EFBFBD><EFBFBD>X,Y<EFBFBD><EFBFBD>XSize,YSize<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ
** (X-XSize, Y-YSize, X+XSize, Y+YSize)
**************************************************/
short x;
short y;
short xSize;
short ySize;
}DH_IVS_POINT;
typedef struct _RuleColor
{
int ruletype;
IVS_COLOR crColor;
}RuleColor;
#ifdef __cplusplus
extern "C" {
#endif
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IVSDraw(ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IvsDrawer<EFBFBD><EFBFBD><EFBFBD><EFBFBD>json<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
IVSDRAWER_API int CALLMETHOD DRAW_Startup();
/**
* <EFBFBD>˳<EFBFBD>IVSDraw
*/
IVSDRAWER_API void CALLMETHOD DRAW_Cleanup();
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @return BOOL<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TRUE<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>FALSE
*/
IVSDRAWER_API BOOL CALLMETHOD DRAW_Open(int nPort);
/**
* <EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_Close(int nPort);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_TYPE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_TRACK,DRAW_ALARM,DRAW_RULE<EFBFBD><EFBFBD>Ч
* @return BOOL<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TRUE<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>FALSE
*/
IVSDRAWER_API BOOL CALLMETHOD DRAW_Reset(int nPort, int nType);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>jason<EFBFBD><EFBFBD>ʽ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] pJsonData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputJsonData(int nPort, unsigned char* pJsonData, int nDataLen, int nFrameSeq);
/**
* <EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nRuleColor <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ͹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
* @param[in] nRuleNum <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetRuleColor(int nPort,RuleColor* nRuleColor, int nRuleNum);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jason<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType Ŀǰû<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
* @param[in] pRuleData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nframe ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputRuleData(int nPort, int nType, unsigned char* pRuleData, int nframe);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡0xF1(<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡)0x05(<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType Ŀǰû<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
* @param[in] pTrackData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputTrackData(int nPort, int nType, unsigned char* pTrackData, int nDataLen,int nFrameSeq);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ֡0xF1(<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡)0x0E(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>NVRŨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType nType=7<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>nType=19<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾNVRŨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] pTrackData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputTrackDataEx2(int nPort, int nType, unsigned char* pTrackData, int nDataLen,int nFrameSeq);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jason<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType Ŀǰû<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
* @param[in] pAlarmData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputAlarmData(int nPort, int nType, unsigned char* pAlarmData, int nDataLen);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>jason<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_InputAlarmData<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD>ͬ
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType Ŀǰû<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
* @param[in] pAlarmData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputAlarmDataEx(int nPort, int nType, unsigned char* pAlarmData, int nDataLen);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType Ŀǰû<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
* @param[in] pData <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] nDataLen <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_InputMoveCheckData(int nPort, int nType, unsigned char* pData, int nDataLen, int nFrameSeq);
/**
* ָ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD>β<EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] pTextData <EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַ
* @param[in] nTextNumPos pTextData<EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>Ӧ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
typedef struct
{
const char* pText; // <20><>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
IVSPOINT hPos; // <20><>ʾλ<CABE><CEBB>
int nFontsize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
int nRed; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
int nGreen; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
int nBlue; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
int nAlignMode; // <20><><EFBFBD>ʽ<EBB7BD><CABD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬1<EBA3AC><31><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>룬2<EBA3AC><32><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
}TextData;
IVSDRAWER_API int CALLMETHOD DRAW_InputTextData(int nPort, TextData* pTextData, int nTextNumPos);
/**
* ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] hDC <EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] hWnd <EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Draw(int nPort, IVS_DC_REF hDC, IVS_WND_REF hWnd, int nFrameSeq);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_TYPE
* @param[in] nLifeCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetLifeCount(int nPort, int nType, int nLifeCount);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] type <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_TYPE
* @param[in] bEnable ʹ<EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetEnable(int nPort, int nType, IVS_BOOL bEnable);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] nPenStyle <EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD>ʽ(ʵ<EFBFBD><EFBFBD>or<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DRAW_PEN_STYLE
* @param[in] nWidth <EFBFBD><EFBFBD><EFBFBD>ʿ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] crColor <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetPen(int nPort, int nType, int nPenStyle, int nWidth, IVS_COLOR crColor);
/**
* ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nCmdType <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IVS_CMD_TYPE
* @param[in] pContext <EFBFBD><EFBFBD><EFBFBD><EFBFBD>nCmdTypeΪIVS_TRACK_OBJECT/IVS_TRACK_OBJECT_EX<EFBFBD><EFBFBD>IVS_GET_OBJECT<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ObjectContex<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>int<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] nContextSize pContext<EFBFBD><EFBFBD>Ӧ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Ioctl(int nPort, int nCmdType, void* pContext, int nContextSize);
/**
* ˢ<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_Refresh(int nPort, int nFrameSeq);
/**
* ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ι<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Ĭ<EFBFBD><EFBFBD>255)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>0ʱɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_Idle(int nPort);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nReserved Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_Clean(int nPort, int nReserved);
/**
* <EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD>ʼʱ<EFBFBD><EFBFBD><EFBFBD>ƵŨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nTime ʱ<EFBFBD><EFBFBD>
* @param[in] nObjectId <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTime(int nPort, int nTime, int nObjectId);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>rule<EFBFBD><EFBFBD>alarm<EFBFBD><EFBFBD>track
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nShowType <EFBFBD><EFBFBD><EFBFBD><EFBFBD>SHOW_TYPE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetShowType(int nPort, int nShowType);
/**
* <EFBFBD><EFBFBD>track<EFBFBD>ص<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] pCallBack <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] pUserData <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
typedef void (CALLMETHOD* OnDrawOneTrack)(int nClassID, int nObjID, DH_IVS_POINT* pPoints, int nPointNum, void* pUserData);
IVSDRAWER_API void CALLMETHOD DRAW_SetDrawOneTrackCallback(int nPort, OnDrawOneTrack pCallBack, void* pUserData);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] pTranslateCBFunc <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] pUserData <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
typedef int (CALLMETHOD* fTranslateCallback)(unsigned char* strSrc,int nSrsLen, unsigned char* strDst, int* nDstLen, void* pUserData);
IVSDRAWER_API void CALLMETHOD DRAW_SetTranslateCallback(int nPort, fTranslateCallback pTranslateCBFunc, void* pUserData);
/**
* <EFBFBD>ɴ˹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>track<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] pRuleName <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] bEnable <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetRuleTrackAlarm(int nPort, const char* pRuleName, bool bEnable);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>track<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nType: 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>track<EFBFBD><EFBFBD>Ĭ<EFBFBD>Ϸ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>ʾ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>track
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetShowTrackType(int nPort, int nType);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nFrameSeq ֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetFrameNum(int nPort, int nFrameSeq);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID}<EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ, <EFBFBD><EFBFBD>״
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nClassId <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
* @param[in] nObjectId <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
* @param[in] crColor <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
* @param[in] bSpecialShape 1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״, 0:Ĭ<EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] bSpecialSingle 1:ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD>ص<EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״ 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTrackObjectColor(int nPort, int nClassId, int nObjectId, IVS_COLOR crColor, bool bSpecialShape, bool bSpecialSingle);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>bSpecialShape<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD>״
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] bSpecialShape 1:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״, 0:Ĭ<EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD>
* @return int<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
*/
IVSDRAWER_API int CALLMETHOD DRAW_SetTrackEX2Sharp(int nPort, bool bSpecialShape);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>trackex2config<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾijЩ<EFBFBD>ֶΣ<EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] trackex2config <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ʾijЩ<EFBFBD>ֶ<EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetTrackEx2Config(int nPort, TrackEx2Configure trackex2config);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>bEnable<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] bEnable <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetRuleNameConfig(int nPort, bool bEnable);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nClearType <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IVS_CMD_TYPE
*/
IVSDRAWER_API void CALLMETHOD DRAW_ClearIVSConfigData(int nPort, int nClearType);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>IVS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] rectRegion <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] bEnable <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetIVSDisplayRegion(int nPort, IVS_RECT *rectRegion, bool bEnable);
/**
* NACL<EFBFBD><EFBFBD>IOSƽ̨<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
*
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] nX <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>X<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] nY <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>Y<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] nWidth <EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD>
* @param[in] nHeight <EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD>θ߶<EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetDrawSurfaceParam(int nPort, int nX, int nY, int nWidth, int nHeight);
/**
* MACƽ̨<EFBFBD><EFBFBD><EFBFBD>нӿ<EFBFBD>
* <EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Retina<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>
* @param[in] nPort <EFBFBD><EFBFBD>ͼ<EFBFBD>˿<EFBFBD>
* @param[in] scale <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
IVSDRAWER_API void CALLMETHOD DRAW_SetDisplayScale(int nPort, float scale);
/**
* <EFBFBD><EFBFBD>Ч<EFBFBD>ӿ<EFBFBD>
*/
IVSDRAWER_API int CALLMETHOD DRAW_GetLastError(int nPort);
IVSDRAWER_API int CALLMETHOD DRAW_InputJpegData(int nPort, int nType, unsigned char* pJpegData, int nDataLen, int nFrameSeq);
#ifdef __cplusplus
}
#endif
#endif