747 lines
35 KiB
C++
747 lines
35 KiB
C++
/////////////////////////////////////////////////////////////////
|
|
//
|
|
// Filename : milweb.h
|
|
// Revision : 10.60.0776
|
|
// Content : This file contains the defines necessary to use the milwebclient
|
|
//
|
|
// Copyright © Matrox Electronic Systems Ltd., 1992-2023.
|
|
// All Rights Reserved
|
|
//
|
|
/////////////////////////////////////////////////////////////////
|
|
#ifndef __MIL_WEB_CLIENT_H
|
|
#define __MIL_WEB_CLIENT_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#if !defined(MIL_COMPILE_VERSION_HEX) || (MIL_COMPILE_VERSION_HEX== 0)
|
|
#ifdef MIL_COMPILE_VERSION_HEX
|
|
#undef MIL_COMPILE_VERSION_HEX
|
|
#endif
|
|
#define MIL_COMPILE_VERSION_HEX 0x1060
|
|
#endif
|
|
|
|
// Let's put the hex value in decimal.
|
|
#define MIL_COMPILE_VERSION ((((MIL_COMPILE_VERSION_HEX >> 12) & 0xf) * 1000) + (((MIL_COMPILE_VERSION_HEX >> 8) & 0xf) * 100) + (((MIL_COMPILE_VERSION_HEX >> 4) & 0xf) * 10) + (((MIL_COMPILE_VERSION_HEX) & 0xf) ))
|
|
#define MIL_COMPILE_TRUNK_VERSION 1095
|
|
#define MIL_COMPILE_NEXT_MAJOR_VERSION 1100
|
|
|
|
|
|
#define WEB_CLIENT 1
|
|
#define M_CLIENT_VERSION 0x1000000
|
|
|
|
#if defined(__linux__)
|
|
#if defined(__arm__) || defined(__aarch64__)
|
|
#define M_MIL_USE_ARM 1
|
|
#else
|
|
#define M_MIL_USE_ARM 0
|
|
#endif
|
|
#define M_MIL_USE_LINUX 1
|
|
#define M_MIL_USE_WINDOWS 0
|
|
#if defined(__x86_64__) || defined(__aarch64__)
|
|
#define M_MIL_USE_64BIT 1
|
|
#else
|
|
#define M_MIL_USE_64BIT 0
|
|
#endif
|
|
#else
|
|
#define M_MIL_USE_LINUX 0
|
|
#define M_MIL_USE_WINDOWS 1
|
|
#if defined(_WIN64) || defined(WIN64)
|
|
#define M_MIL_USE_64BIT 1
|
|
#else
|
|
#define M_MIL_USE_64BIT 0
|
|
#endif
|
|
#endif
|
|
#define M_NULL 0
|
|
|
|
#if !defined(M_MIL_USE_UNICODE) && !M_MIL_USE_LINUX
|
|
#define M_MIL_USE_UNICODE 1
|
|
#elif !defined (M_MIL_USE_UNICODE)
|
|
#define M_MIL_USE_UNICODE 0
|
|
#endif
|
|
|
|
#if M_MIL_USE_UNICODE
|
|
#if defined(UNICODE)
|
|
#define M_MIL_UNICODE_API 1
|
|
#else
|
|
#define M_MIL_UNICODE_API 0
|
|
#endif
|
|
#endif
|
|
|
|
#if M_MIL_USE_UNICODE && M_MIL_UNICODE_API
|
|
#define MIL_TEXT(quote) L##quote
|
|
typedef wchar_t MIL_TEXT_CHAR;
|
|
#elif M_MIL_USE_WINDOWS || M_MIL_USE_LINUX
|
|
#define MIL_TEXT(quote) quote
|
|
typedef char MIL_TEXT_CHAR;
|
|
#else
|
|
#error Operating system not supported !
|
|
#endif
|
|
typedef MIL_TEXT_CHAR* MIL_TEXT_PTR;
|
|
typedef const MIL_TEXT_CHAR* MIL_CONST_TEXT_PTR;
|
|
|
|
|
|
#if M_MIL_USE_WINDOWS
|
|
#define MFTYPE _stdcall // Exported Function type
|
|
#elif M_MIL_USE_LINUX
|
|
#define MFTYPE // Exported Function type
|
|
#else
|
|
#error Operating system not supported in Mil.h!
|
|
#endif
|
|
|
|
/************************************************************************/
|
|
/* MIL TYPE DEFINITIONS */
|
|
/************************************************************************/
|
|
/* GENERAL RELATED DEFINES */
|
|
/***************************/
|
|
#if M_MIL_USE_WINDOWS
|
|
#if M_MIL_USE_64BIT
|
|
#if defined(_MSC_VER) && (_MSC_VER < 1310)
|
|
typedef __int64 MIL_INT;
|
|
typedef unsigned __int64 MIL_UINT;
|
|
#else
|
|
typedef long long MIL_INT;
|
|
typedef unsigned long long MIL_UINT;
|
|
#endif
|
|
|
|
#define MIL_UINT_MIN 0ULL
|
|
#define MIL_UINT_MAX 18446744073709551615ULL
|
|
#define MIL_INT_MIN (-9223372036854775807LL - 1)
|
|
#define MIL_INT_MAX 9223372036854775807LL
|
|
#else
|
|
#if (_MSC_VER < 1400) // Visual Studio 2003
|
|
typedef long MIL_INT;
|
|
typedef unsigned long MIL_UINT;
|
|
#else // Visual Studio 2005
|
|
// _W64 Lets you mark variables, such that when you compile
|
|
// with /Wp64 the compiler will report any warnings that would
|
|
// be reported if you were compiling with a 64-bit compiler.
|
|
typedef _W64 long MIL_INT;
|
|
typedef _W64 unsigned long MIL_UINT;
|
|
#endif
|
|
#define MIL_UINT_MIN 0UL
|
|
#define MIL_UINT_MAX 4294967295UL
|
|
#define MIL_INT_MIN (-2147483647L-1L)
|
|
#define MIL_INT_MAX 2147483647L
|
|
#endif
|
|
|
|
typedef long MIL_INT32;
|
|
typedef const long MIL_CINT32;
|
|
typedef unsigned long MIL_UINT32;
|
|
typedef const unsigned long MIL_CUINT32;
|
|
#define MIL_UINT32_MIN 0UL
|
|
#define MIL_UINT32_MAX 4294967295UL
|
|
#define MIL_INT32_MIN (-2147483647L-1L)
|
|
#define MIL_INT32_MAX 2147483647L
|
|
#define MIL_UINT32_MIN_FLT 0UL //Min precise value in 32-bit floating point.
|
|
#define MIL_UINT32_MAX_FLT 0xFFFFFF00UL //Max precise value in 32-bit floating point.
|
|
#define MIL_INT32_MIN_FLT (-2147483647L-1L) //Min precise value in 32-bit floating point.
|
|
#define MIL_INT32_MAX_FLT 0x7FFFFF80L //Max precise value in 32-bit floating point.
|
|
|
|
#if defined(_MSC_VER) && (_MSC_VER < 1310)
|
|
typedef __int64 MIL_INT64;
|
|
typedef const __int64 MIL_CINT64;
|
|
typedef unsigned __int64 MIL_UINT64;
|
|
typedef const unsigned __int64 MIL_CUINT64;
|
|
#else
|
|
typedef long long MIL_INT64;
|
|
typedef const long long MIL_CINT64;
|
|
typedef unsigned long long MIL_UINT64;
|
|
typedef const unsigned long long MIL_CUINT64;
|
|
#endif
|
|
#define MIL_UINT64_MIN 0ULL
|
|
#define MIL_UINT64_MAX 18446744073709551615ULL
|
|
#define MIL_INT64_MIN (-9223372036854775807LL - 1)
|
|
#define MIL_INT64_MAX 9223372036854775807LL
|
|
#define MIL_UINT64_MIN_DBL 0ULL //Min precise value in 64-bit floating point.
|
|
#define MIL_UINT64_MAX_DBL 0xFFFFFFFFFFFFF800ULL //Max precise value in 64-bit floating point.
|
|
#define MIL_INT64_MIN_DBL (-9223372036854775807LL - 1LL) //Min precise value in 64-bit floating point.
|
|
#define MIL_INT64_MAX_DBL 0x7FFFFFFFFFFFFC00LL //Max precise value in 64-bit floating point.
|
|
|
|
typedef double MIL_DOUBLE;
|
|
typedef float MIL_FLOAT;
|
|
typedef char MIL_INT8;
|
|
typedef const char MIL_CINT8;
|
|
typedef unsigned char MIL_UINT8;
|
|
typedef const unsigned char MIL_CUINT8;
|
|
typedef short MIL_INT16;
|
|
typedef const short MIL_CINT16;
|
|
typedef unsigned short MIL_UINT16;
|
|
typedef const unsigned short MIL_CUINT16;
|
|
typedef MIL_INT32 MIL_BOOL;
|
|
typedef const MIL_INT32 MIL_CBOOL;
|
|
|
|
#define MIL_UINT8_MIN 0UL
|
|
#define MIL_UINT8_MAX 255UL
|
|
#define MIL_INT8_MIN -128L
|
|
#define MIL_INT8_MAX 127L
|
|
#define MIL_UINT16_MIN 0UL
|
|
#define MIL_UINT16_MAX 65535UL
|
|
#define MIL_INT16_MIN -32768L
|
|
#define MIL_INT16_MAX 32767L
|
|
#define MIL_DOUBLE_MIN DBL_MIN
|
|
#define MIL_DOUBLE_MAX DBL_MAX
|
|
#define MIL_FLOAT_MIN FLT_MIN
|
|
#define MIL_FLOAT_MAX FLT_MAX
|
|
#define MIL_BOOL_MIN 0UL
|
|
#define MIL_BOOL_MAX 1UL
|
|
|
|
#if (M_MIL_USE_UNICODE && M_MIL_UNICODE_API) || defined (_NATIVE_WCHAR_T_DEFINED)
|
|
typedef wchar_t MIL_WCHAR;
|
|
#else
|
|
typedef unsigned short MIL_WCHAR;
|
|
#endif
|
|
|
|
#elif M_MIL_USE_LINUX
|
|
typedef long MIL_INT;
|
|
typedef unsigned long MIL_UINT;
|
|
|
|
#if M_MIL_USE_64BIT
|
|
typedef int MIL_INT32;
|
|
typedef const int MIL_CINT32;
|
|
typedef unsigned int MIL_UINT32;
|
|
typedef const unsigned int MIL_CUINT32;
|
|
|
|
#define MIL_UINT_MIN MIL_UINT64_MIN
|
|
#define MIL_UINT_MAX MIL_UINT64_MAX
|
|
#define MIL_INT_MIN MIL_INT64_MIN
|
|
#define MIL_INT_MAX MIL_INT64_MAX
|
|
#else // M_MIL_USE_64BIT
|
|
typedef long MIL_INT32;
|
|
typedef const long MIL_CINT32;
|
|
typedef unsigned long MIL_UINT32;
|
|
typedef const unsigned long MIL_CUINT32;
|
|
|
|
#define MIL_UINT_MIN MIL_UINT32_MIN
|
|
#define MIL_UINT_MAX MIL_UINT32_MAX
|
|
#define MIL_INT_MIN MIL_INT32_MIN
|
|
#define MIL_INT_MAX MIL_INT32_MAX
|
|
#endif
|
|
|
|
#define MIL_UINT32_MIN 0
|
|
#define MIL_UINT32_MAX 4294967295U
|
|
#define MIL_INT32_MIN (-MIL_INT32_MAX - 1) // -2147483648L does not yield the right value
|
|
#define MIL_INT32_MAX 2147483647
|
|
#define MIL_UINT32_MIN_FLT 0U //Min precise value in 32-bit floating point.
|
|
#define MIL_UINT32_MAX_FLT 0xFFFFFF00U //Max precise value in 32-bit floating point.
|
|
#define MIL_INT32_MIN_FLT (-2147483647-1) //Min precise value in 32-bit floating point.
|
|
#define MIL_INT32_MAX_FLT 0x7FFFFF80 //Max precise value in 32-bit floating point.
|
|
|
|
#if M_MIL_USE_64BIT
|
|
typedef long MIL_INT64;
|
|
typedef const long MIL_CINT64;
|
|
typedef unsigned long MIL_UINT64;
|
|
typedef const unsigned long MIL_CUINT64;
|
|
#else
|
|
typedef long long MIL_INT64;
|
|
typedef const long long MIL_CINT64;
|
|
typedef unsigned long long MIL_UINT64;
|
|
typedef const unsigned long long MIL_CUINT64;
|
|
#endif
|
|
#define MIL_UINT64_MIN 0ULL
|
|
#define MIL_UINT64_MAX 18446744073709551615ULL
|
|
#define MIL_INT64_MAX 9223372036854775807LL
|
|
#define MIL_INT64_MIN (-MIL_INT64_MAX - 1LL) // Using -9223372036854775808LL directly causes weird warnings.
|
|
#define MIL_UINT64_MIN_DBL 0ULL //Min precise value in 64-bit floating point.
|
|
#define MIL_UINT64_MAX_DBL 0xFFFFFFFFFFFFF800ULL //Max precise value in 64-bit floating point.
|
|
#define MIL_INT64_MIN_DBL (-9223372036854775807LL - 1LL) //Min precise value in 64-bit floating point.
|
|
#define MIL_INT64_MAX_DBL 0x7FFFFFFFFFFFFC00LL //Max precise value in 64-bit floating point.
|
|
|
|
typedef double MIL_DOUBLE;
|
|
typedef float MIL_FLOAT;
|
|
typedef char MIL_INT8;
|
|
typedef const char MIL_CINT8;
|
|
typedef unsigned char MIL_UINT8;
|
|
typedef const unsigned char MIL_CUINT8;
|
|
typedef short MIL_INT16;
|
|
typedef const short MIL_CINT16;
|
|
typedef unsigned short MIL_UINT16;
|
|
typedef const unsigned short MIL_CUINT16;
|
|
typedef MIL_INT32 MIL_BOOL;
|
|
typedef const MIL_INT32 MIL_CBOOL;
|
|
|
|
#define MIL_UINT8_MIN 0UL
|
|
#define MIL_UINT8_MAX 255UL
|
|
#define MIL_INT8_MIN -128L
|
|
#define MIL_INT8_MAX 127L
|
|
#define MIL_UINT16_MIN 0UL
|
|
#define MIL_UINT16_MAX 65535UL
|
|
#define MIL_INT16_MIN -32768L
|
|
#define MIL_INT16_MAX 32767L
|
|
#define MIL_DOUBLE_MIN DBL_MIN
|
|
#define MIL_DOUBLE_MAX DBL_MAX
|
|
#define MIL_FLOAT_MIN FLT_MIN
|
|
#define MIL_FLOAT_MAX FLT_MAX
|
|
#define MIL_BOOL_MIN 0UL
|
|
#define MIL_BOOL_MAX 1UL
|
|
|
|
typedef unsigned short MIL_WCHAR;
|
|
|
|
#else
|
|
#error Operating system not supported!
|
|
#endif
|
|
|
|
typedef MIL_UINT64 MIL_DATA_PTR;
|
|
|
|
typedef MIL_DATA_PTR MIL_PHYS_DATA_PTR;
|
|
typedef void* MIL_HOST_DATA_PTR;
|
|
typedef const void* MIL_CONST_HOST_DATA_PTR;
|
|
|
|
typedef MIL_UINT MIL_ADDR; // this type is used to cast a pointer to an integer type for arithmetic conversion
|
|
// for example void *NewPtr = (void*)((MIL_ADDR)OldPtr + Offset);
|
|
|
|
typedef unsigned char MIL_BYTE;
|
|
|
|
#if M_MIL_USE_64BIT
|
|
#define M_MIL_USE_INT64_ID 1
|
|
#endif
|
|
|
|
#if defined(M_MIL_USE_INT64_ID) && M_MIL_USE_INT64_ID
|
|
typedef MIL_INT64 MIL_ID;
|
|
#else
|
|
typedef MIL_INT32 MIL_ID;
|
|
#endif
|
|
|
|
#if M_MIL_USE_LINUX && M_MIL_USE_64BIT
|
|
#define MAKE_INT64(I) (I ## L)
|
|
#define MAKE_UINT64(I) (I ## LU)
|
|
#elif M_MIL_USE_LINUX || (defined(__GNUC__) && __GNUC__)
|
|
#define MAKE_INT64(I) (I ## LL)
|
|
#define MAKE_UINT64(I) (I ## LLU)
|
|
#elif M_MIL_USE_WINDOWS
|
|
#define MAKE_INT64(I) (I##I64)
|
|
#define MAKE_UINT64(I) (I##Ui64)
|
|
#else
|
|
#define MAKE_INT64(I) (I)
|
|
#define MAKE_UINT64(I) (I)
|
|
#endif
|
|
|
|
#if !M_MIL_USE_64BIT
|
|
#define M_PTR_TO_DOUBLE(ptr) ((double) MPtrToInt((void*)(ptr)))
|
|
#define M_STRING_TO_DOUBLE(ptr) M_PTR_TO_DOUBLE((ptr))
|
|
#define M_PTR_TO_MIL_INT(val) ((MIL_INT)MPtrToInt((void*)(val)))
|
|
#else
|
|
#define M_PTR_TO_DOUBLE(ptr) (MIL_INT64)(ptr)
|
|
#define M_STRING_TO_DOUBLE(ptr) M_PTR_TO_DOUBLE(ptr)
|
|
#define M_PTR_TO_MIL_INT(val) ((MIL_INT)((MIL_UINT)val))
|
|
#endif //!M_MIL_USE_64BIT
|
|
#define M_DOUBLE_TO_PTR(val) ((void *)((MIL_UINT)val))
|
|
#define M_CLIENT_ASCII_ENCODING MAKE_INT64(0x0001000000000000)
|
|
#define M_CLIENT_TEXT_ENCODING MAKE_INT64(0x0001000000000000)
|
|
|
|
#if M_MIL_USE_UNICODE && !M_MIL_UNICODE_API
|
|
#define M_CLIENT_ENCODING M_CLIENT_ASCII_ENCODING
|
|
#else
|
|
#define M_CLIENT_ENCODING 0
|
|
#endif
|
|
|
|
#define M_CLIENT_ASCII_ENCODING_SET(X) ((((X) & M_CLIENT_TEXT_ENCODING) == M_CLIENT_ASCII_ENCODING) ? true : false)
|
|
#define M_STRIP_CLIENT_TEXT_ENCODING(X) ((X) & ~M_CLIENT_TEXT_ENCODING)
|
|
|
|
#define M_STRING_SIZE MAKE_INT64(0x0000050000000000)
|
|
#define M_FUNC_INQUIRE_STRING_START 47
|
|
#define M_APP_INQUIRE_OBJ_STRING_STA M_FUNC_INQUIRE_STRING_START // 47
|
|
#define M_OBJECT_NAME ((M_FUNC_INQUIRE_STRING_START+0)|M_CLIENT_ENCODING) //47
|
|
|
|
#define M_OBJECT_NAME_SIZE (M_STRING_SIZE + M_OBJECT_NAME)
|
|
|
|
#define M_OBJ_HOOK_RANGE_START 0x000000800L
|
|
#define M_INVALID -1
|
|
#define M_DEFAULT 0x10000000L
|
|
#define M_UNHOOK 0x04000000L
|
|
#define M_NULL_ERROR 0L
|
|
#define M_NO_ERROR 0L
|
|
|
|
#define M_NO_TIMEOUT 0x00000800
|
|
#define M_BUFFER_TOO_SMALL 1
|
|
#define M_SUCCESS 0x00000000L // Already defined in milreg.h, milcolor.h
|
|
|
|
#define M_CURRENT 0x00000002L
|
|
#define M_CURRENT_FCT 0x00030000L
|
|
#define M_CURRENT_SUB_NB 0x00000004L
|
|
#define M_CURRENT_SUB 0x00050000L
|
|
#define M_CURRENT_SUB_1 0x00050000L
|
|
#define M_CURRENT_SUB_2 0x00060000L
|
|
#define M_CURRENT_SUB_3 0x00070000L
|
|
#define M_GLOBAL 0x00000008L
|
|
#define M_GLOBAL_FCT 0x00090000L
|
|
#define M_GLOBAL_SUB_NB 0x000A0000L
|
|
#define M_GLOBAL_SUB 0x000B0000L
|
|
#define M_GLOBAL_SUB_1 0x000B0000L
|
|
#define M_GLOBAL_SUB_2 0x000C0000L
|
|
#define M_GLOBAL_SUB_3 0x000D0000L
|
|
#define M_PARAM_NB 0x00140000L
|
|
#define M_BUFFER_ID 0x00160000L
|
|
#define M_REGION_OFFSET_X 0x00410000L
|
|
#define M_REGION_OFFSET_Y 0x00420000L
|
|
#define M_REGION_SIZE_X 0x00430000L
|
|
#define M_REGION_SIZE_Y 0x00480000L
|
|
#define M_OBJECT_ID 0x001B0000L
|
|
#define M_PARAM_VALUE 0x08000000L
|
|
#define M_EXTENDED_PARAM_TYPE 0x10000000L
|
|
#define M_PARAM_ATTRIBUTES 0x04000000L
|
|
#define M_PARAM_SIZE 0x01000000L
|
|
#if MIL_COMPILE_VERSION < MIL_COMPILE_TRUNK_VERSION
|
|
#if (M_MIL_USE_UNICODE && !M_MIL_UNICODE_API )
|
|
#define M_MESSAGE (0x20000000L|M_CLIENT_ERROR_ASCII_MODE)
|
|
#else
|
|
#define M_MESSAGE 0x20000000L
|
|
#endif
|
|
#else
|
|
#define M_MESSAGE (0x20000000L | M_CLIENT_ENCODING)
|
|
#endif
|
|
|
|
#if MIL_COMPILE_VERSION < MIL_COMPILE_TRUNK_VERSION
|
|
#define M_OLD_OBJECT_PUBLISH_WEB 34L
|
|
#endif
|
|
|
|
#define M_SILENT 0x00000100L
|
|
|
|
#define M_ERROR 0x40000000L
|
|
#define M_ERROR_CURRENT (M_ERROR|M_CURRENT)
|
|
#define M_CONNECTING 1L
|
|
#define M_DISCONNECT 2L
|
|
#define M_CONNECT 3L
|
|
#define M_TIMEOUT 2077L
|
|
#define M_UPDATE_WEB 3187L
|
|
#define M_UPDATE_END M_OBJ_HOOK_RANGE_START+8L
|
|
#define M_OBJECT_FREE 0x00010000L
|
|
#define M_OBJECT_PUBLISH_WEB 38L
|
|
#define M_COMPONENT_ADD 0x00040000
|
|
#define M_COMPONENT_REMOVE M_OBJ_HOOK_RANGE_START+10L
|
|
#define M_GET_END 32L
|
|
#define M_READ_END 11L
|
|
#define M_UPDATE_INTERACTIVE_STATE 84L
|
|
|
|
#define M_ERROR_MESSAGE_SIZE 320L
|
|
|
|
#define M_INTERNAL_FORMAT 0x00003F00L
|
|
#define M_INTERNAL_FORMAT_SHIFT 8L
|
|
#define M_INTERNAL_COMPLETE_FORMAT 0x7FFFFF80L
|
|
#define M_ANY_INTERNAL_FORMAT (0 << M_INTERNAL_FORMAT_SHIFT)
|
|
#define M_BGRX32 (17 << M_INTERNAL_FORMAT_SHIFT) // Force 32 bits pixels in color BGRX 8.8.8.8 format
|
|
#define M_BGR32 M_BGRX32
|
|
|
|
#define M_APP_INQUIRE_SYS_START 15000L
|
|
#define M_CLOSE_CONNECTION (M_APP_INQUIRE_SYS_START+504L)
|
|
#define M_WEB_PUBLISHED_FORMAT 3206L
|
|
|
|
// Inquires
|
|
#if MIL_COMPILE_VERSION < MIL_COMPILE_TRUNK_VERSION
|
|
#define M_OLD_WEB_PUBLISH 14L
|
|
#define M_OLD_WEB_PUBLISHED_LIST 4
|
|
#define M_OLD_WEB_PUBLISHED_LIST_SIZE 5
|
|
#define M_OLD_WEB_PUBLISHED_NAME (6 | M_CLIENT_ENCODING)
|
|
#endif
|
|
#define M_WEB_PUBLISH 244
|
|
#define M_WEB_PUBLISHED_LIST 12
|
|
#define M_WEB_PUBLISHED_LIST_SIZE 17
|
|
#define M_WEB_PUBLISHED_NAME (7 | M_CLIENT_ENCODING)
|
|
|
|
#define M_TYPE 1008L
|
|
#define M_SIZE_X 1536L
|
|
#define M_SIZE_Y 1537L
|
|
#define M_SIZE_BYTE 5061L
|
|
#define M_MESSAGE_LENGTH 16L
|
|
#define M_INTERACTIVE M_NULL
|
|
|
|
// Object Type
|
|
#define M_APPLICATION 0x00000200L
|
|
#define M_DISPLAY 0x00200000L
|
|
#define M_LUT 0x00040000L
|
|
#define M_KERNEL 0x00400000L
|
|
#define M_EVENT 0x00000080L
|
|
#define M_STRUCT_ELEMENT 0x08000000L
|
|
#define M_ARRAY 0x00000040L
|
|
#define M_GROUP MAKE_INT64(0x0000400000000000)
|
|
#define M_IMAGE 0x00000004L
|
|
#define M_MODIFIED_BUFFER 0x40000000L
|
|
#define M_BUFFER_ID 0x00160000L
|
|
#define M_OBJECT_ID 0x001B0000L
|
|
#define M_GROUP_ID 18L
|
|
#define M_MESSAGE_MAILBOX MAKE_INT64(0x0000800000000000)
|
|
#define M_FUNC_INQUIRE_STRING_START 47
|
|
|
|
#define M_OBJECT_NAME ((M_FUNC_INQUIRE_STRING_START+0)|M_CLIENT_ENCODING)
|
|
#define M_OBJECT_NAME_SIZE (M_STRING_SIZE + M_OBJECT_NAME)
|
|
#define M_OBJECT_TYPE 136
|
|
#define M_COMPONENT_COUNT 17L
|
|
#define M_WEB_CLIENT_INDEX 219L
|
|
#define M_WEB_CLIENT_TYPE 220L
|
|
#define M_READ_WRITE 0x00000010L
|
|
#define M_READ_ONLY 0x00000020L
|
|
#define M_NO 0L
|
|
|
|
#define M_COMPONENT_ID_LIST M_COMPONENT_LIST
|
|
#define M_COMPONENT_LIST 0x00100000
|
|
#define M_ARRAY_ID_MASK 0x000FFFFF
|
|
#define M_ARRAY_ID_SIZE(N) (N & M_ARRAY_ID_MASK)
|
|
#define M_EXTRACT_ARRAY_ID_SIZE(N) ((MIL_INT)(N & M_ARRAY_ID_MASK))
|
|
|
|
#define M_HOST_ADDRESS 0x00010000L
|
|
#define M_IMAGE_HOST_ADDRESS 0x00010000L
|
|
// DataType
|
|
#define M_SIGN 1014L
|
|
#define M_SIZE_BAND 1005L
|
|
#define M_UNSIGNED 0x00000000L
|
|
#define M_SIGNED 0x08000000L
|
|
#define M_FLOAT (0x40000000L | M_SIGNED)
|
|
#define M_USER_DATA_PTR 0x00000001
|
|
|
|
#define M_MESSAGE_PTR 101
|
|
|
|
#define M_MOUSE_LEFT_BUTTON_DOWN 56L
|
|
#define M_MOUSE_RIGHT_BUTTON_DOWN 57L
|
|
#define M_MOUSE_LEFT_BUTTON_UP 58L
|
|
#define M_MOUSE_RIGHT_BUTTON_UP 59L
|
|
#define M_MOUSE_MOVE 64L
|
|
#define M_MOUSE_WHEEL 65L
|
|
#define M_MOUSE_MIDDLE_BUTTON_DOWN 66L
|
|
#define M_MOUSE_MIDDLE_BUTTON_UP 67L
|
|
#define M_KEY_DOWN 68L
|
|
#define M_KEY_UP 69L
|
|
#define M_MOUSE_LEAVE 85L
|
|
|
|
#define M_KEY_SHIFT 0x00010000
|
|
#define M_KEY_CTRL 0x00020000
|
|
#define M_KEY_ALT 0x00040000
|
|
#define M_MOUSE_LEFT_BUTTON 0x00080000
|
|
#define M_MOUSE_MIDDLE_BUTTON 0x00100000
|
|
#define M_MOUSE_RIGHT_BUTTON 0x00200000
|
|
#define M_KEY_WIN 0x00400000
|
|
|
|
#define M_MOUSE_POSITION_X 1L
|
|
#define M_MOUSE_POSITION_Y 2L
|
|
#define M_ANNOTATIONS_DC 3L
|
|
#define M_COMBINATION_KEYS 7L
|
|
#define M_EVENT_VALUE 8L
|
|
|
|
#define M_MOUSE_WHEEL_VALUE M_EVENT_VALUE
|
|
#define M_KEY_VALUE M_EVENT_VALUE
|
|
|
|
|
|
|
|
#define M_FRAMES_PER_SECOND_DEFAULT 10
|
|
|
|
#define M_ENABLE -9997L
|
|
#define M_DISABLE -9999L
|
|
#define M_NOW 29L
|
|
|
|
#define M_PRINT_DISABLE 0L
|
|
#define M_PRINT_ENABLE 1L
|
|
|
|
#define M_FRAME_RATE 6002L
|
|
|
|
#define M_PIXEL_FORMAT 3032L //M_LOCAL_DISPLAY_CONTROL
|
|
#define M_DATA_FORMAT 1041L
|
|
#define M_PITCH 0x20000000L
|
|
#define M_PITCH_BYTE 0x08000000L
|
|
#define M_INTERNAL_FORMAT_SHIFT 8L
|
|
#define M_MONO8 (2 << M_INTERNAL_FORMAT_SHIFT) // Force 8 bits pixels in monochrome format
|
|
#define M_RGBX32 (9 << M_INTERNAL_FORMAT_SHIFT) // Force 32 bits pixels in color RGBX 8.8.8.8 format
|
|
#define M_RGB32 M_RGBX32
|
|
|
|
#define WEB_TIMEOUT 100
|
|
#define WEB_MAX_LOOP_WAIT 20
|
|
|
|
// MIL Web application Type
|
|
#define M_WEB_APPLICATION 1L
|
|
#define M_STANDALONE_APPLICATION 2L
|
|
|
|
typedef MIL_INT (MFTYPE* MIL_HOOK_FUNCTION_PTR)(MIL_INT HookType,
|
|
MIL_ID EventId,
|
|
void* UserData);
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
#if M_MIL_USE_UNICODE
|
|
void MFTYPE MilWebMappOpenConnectionW(MIL_CONST_TEXT_PTR ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr);
|
|
void MFTYPE MilWebMappOpenConnectionA(const char* ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr);
|
|
#if M_MIL_UNICODE_API
|
|
#define MilWebMappOpenConnection MilWebMappOpenConnectionW
|
|
#else
|
|
#define MilWebMappOpenConnection MilWebMappOpenConnectionA
|
|
#endif
|
|
#else
|
|
void MFTYPE MilWebMappOpenConnection(MIL_CONST_TEXT_PTR ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr);
|
|
#endif
|
|
void MFTYPE MilWebMappCloseConnection(MIL_ID ContextAppId);
|
|
MIL_INT MFTYPE MilWebMappInquireConnection(MIL_ID ContextAppId, MIL_INT64 InquireType, MIL_INT64 ControlFlag, MIL_INT64 ExtraFlag, void* UserVarPtr);
|
|
MIL_INT MFTYPE MilWebMappInquire(MIL_ID ContextAppId, MIL_INT64 InquireType, void* ResultPtr);
|
|
void MFTYPE MilWebMappControl(MIL_ID ContextAppId, MIL_INT64 ControlType, MIL_INT ControlFlag);
|
|
void MFTYPE MilWebMappHookFunction(MIL_ID ContextAppId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandlerPtr, void* UserDataPtr);
|
|
MIL_INT MFTYPE MilWebMappGetHookInfo(MIL_ID ContextAppId, MIL_ID EventId, MIL_INT64 InfoType, void* UserPtr);
|
|
|
|
MIL_INT MFTYPE MilWebMdispInquire(MIL_ID DisplayId, MIL_INT64 InquireType, void* ResultPtr);
|
|
void MFTYPE MilWebMdispControl(MIL_ID DisplayId, MIL_INT64 ControlType, MIL_DOUBLE ControlFlag);
|
|
void MFTYPE MilWebMdispMessage( MIL_ID DisplayId, MIL_INT EventType, MIL_INT MousePositionX,MIL_INT MousePositionY, MIL_INT EventValue, MIL_INT CombinationKeys, MIL_INT UserValue);
|
|
void MFTYPE MilWebMdispHookFunction(MIL_ID ObjectId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandler, void *UserDataPtr);
|
|
MIL_INT MFTYPE MilWebMdispGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserVarPtr);
|
|
void MFTYPE MilWebMdispZoom(MIL_ID DisplayId, MIL_DOUBLE XFactor, MIL_DOUBLE YFactor);
|
|
void MFTYPE MilWebMdispPan(MIL_ID DisplayId, MIL_DOUBLE XOffset, MIL_DOUBLE YOffset);
|
|
|
|
MIL_INT MFTYPE MilWebMbufInquire(MIL_ID BufId, MIL_INT64 InquireType, void* ResultPtr);
|
|
void MFTYPE MilWebMbufControl(MIL_ID BufId, MIL_INT64 ControlType, MIL_DOUBLE ControlFlag);
|
|
MIL_INT MFTYPE MilWebMbufGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserPtr);
|
|
void MFTYPE MilWebMbufGet(MIL_ID SrcBufId, void* BufferPtr);
|
|
|
|
MIL_INT MFTYPE MilWebMobjInquire(MIL_ID ObjectId, MIL_INT64 InquireType, void* ResultPtr);
|
|
void MFTYPE MilWebMobjControl(MIL_ID ObjId, MIL_INT64 ControlType, MIL_DOUBLE ControlFlag);
|
|
void MFTYPE MilWebMobjHookFunction(MIL_ID ObjectId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandler, void *UserDataPtr);
|
|
MIL_INT MFTYPE MilWebMobjGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserVarPtr);
|
|
|
|
|
|
MIL_INT64 MFTYPE MilWebMobjMessageRead(MIL_ID MessageId, void* MessagePtr, MIL_INT64 MessageInSize, MIL_INT64 *MessageOutSizePtr, MIL_INT64 *MessageTagPtr, MIL_INT64 *StatusPtr, MIL_INT64 OperationFlag);
|
|
void MFTYPE MilWebMobjMessageWrite(MIL_ID MessageId, const void* MessagePtr, MIL_INT64 MessageSize, MIL_INT64 MessageTag, MIL_INT64 OperationFlag);
|
|
|
|
MIL_UINT MFTYPE MPtrToInt(void *pPtr);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
namespace MilWeb
|
|
{
|
|
#if M_MIL_USE_UNICODE
|
|
#if M_MIL_UNICODE_API
|
|
inline void MappOpenConnection(MIL_CONST_TEXT_PTR ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr)
|
|
{
|
|
MilWebMappOpenConnectionW(ConnectionDescriptor, InitFlag, ControlFlag, RemoteContextAppIdPtr);
|
|
}
|
|
#else
|
|
inline void MappOpenConnection(const char* ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr)
|
|
{
|
|
MilWebMappOpenConnectionA(ConnectionDescriptor, InitFlag, ControlFlag, RemoteContextAppIdPtr);
|
|
}
|
|
#endif
|
|
#else
|
|
inline void MappOpenConnection(MIL_CONST_TEXT_PTR ConnectionDescriptor, MIL_INT64 InitFlag, MIL_INT64 ControlFlag, MIL_ID* RemoteContextAppIdPtr)
|
|
{
|
|
MilWebMappOpenConnection(ConnectionDescriptor, InitFlag, ControlFlag, RemoteContextAppIdPtr);
|
|
}
|
|
#endif
|
|
inline void MappCloseConnection(MIL_ID ContextAppId)
|
|
{
|
|
MilWebMappCloseConnection(ContextAppId);
|
|
}
|
|
|
|
inline MIL_INT MappInquireConnection(MIL_ID ContextAppId, MIL_INT64 InquireType, MIL_INT64 ControlFlag, MIL_INT64 ExtraFlag, void* UserVarPtr)
|
|
{
|
|
return MilWebMappInquireConnection(ContextAppId, InquireType, ControlFlag, ExtraFlag, UserVarPtr);
|
|
}
|
|
|
|
inline MIL_INT MappInquireConnection(MIL_ID ContextAppId, MIL_INT64 InquireType, MIL_CONST_TEXT_PTR ControlFlag, MIL_INT64 ExtraFlag, void* UserVarPtr)
|
|
{
|
|
return MilWebMappInquireConnection(ContextAppId, InquireType, M_PTR_TO_MIL_INT(ControlFlag), ExtraFlag, UserVarPtr);
|
|
}
|
|
|
|
inline MIL_INT MappInquire(MIL_ID ContextAppId, MIL_INT64 InquireType, void* ResultPtr)
|
|
{
|
|
return MilWebMappInquire(ContextAppId, InquireType, ResultPtr);
|
|
}
|
|
|
|
inline void MappControl(MIL_ID ContextAppId, MIL_INT64 ControlType, MIL_INT ControlValue)
|
|
{
|
|
MilWebMappControl(ContextAppId, ControlType, ControlValue);
|
|
}
|
|
|
|
inline void MappHookFunction(MIL_ID ContextAppId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandlerPtr, void* UserDataPtr)
|
|
{
|
|
MilWebMappHookFunction(ContextAppId, HookType, HookHandlerPtr, UserDataPtr);
|
|
}
|
|
|
|
inline MIL_INT MappGetHookInfo(MIL_ID ContextAppId, MIL_ID EventId, MIL_INT64 InfoType, void* UserVarPtr)
|
|
{
|
|
return MilWebMappGetHookInfo(ContextAppId,EventId, InfoType, UserVarPtr);
|
|
}
|
|
|
|
inline MIL_INT MdispInquire(MIL_ID DisplayId, MIL_INT64 InquireType, void* UserVarPtr)
|
|
{
|
|
return MilWebMdispInquire(DisplayId, InquireType, UserVarPtr);
|
|
}
|
|
|
|
inline void MdispControl(MIL_ID DisplayId, MIL_INT64 ControlType, MIL_DOUBLE ControlValue)
|
|
{
|
|
MilWebMdispControl(DisplayId, ControlType, ControlValue);
|
|
}
|
|
|
|
inline void MdispMessage( MIL_ID DisplayId, MIL_INT EventType, MIL_INT MousePositionX,MIL_INT MousePositionY, MIL_INT EventValue, MIL_INT CombinationKeys, MIL_INT UserValue)
|
|
{
|
|
MilWebMdispMessage(DisplayId, EventType, MousePositionX, MousePositionY, EventValue, CombinationKeys, UserValue);
|
|
}
|
|
|
|
inline void MdispHookFunction(MIL_ID ObjectId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandler, void *UserDataPtr)
|
|
{
|
|
MilWebMdispHookFunction(ObjectId, HookType, HookHandler, UserDataPtr);
|
|
}
|
|
|
|
inline MIL_INT MdispGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserVarPtr)
|
|
{
|
|
return MilWebMdispGetHookInfo(EventId, InfoType, UserVarPtr);
|
|
}
|
|
|
|
inline void MdispZoom(MIL_ID DisplayId, MIL_DOUBLE XFactor, MIL_DOUBLE YFactor)
|
|
{
|
|
MilWebMdispZoom(DisplayId, XFactor, YFactor);
|
|
}
|
|
|
|
inline void MdispPan(MIL_ID DisplayId, MIL_DOUBLE XOffset, MIL_DOUBLE YOffset)
|
|
{
|
|
MilWebMdispPan(DisplayId, XOffset, YOffset);
|
|
}
|
|
|
|
inline MIL_INT MbufInquire(MIL_ID BufId, MIL_INT64 InquireType, void* ResultPtr)
|
|
{
|
|
return MilWebMbufInquire(BufId, InquireType, ResultPtr);
|
|
}
|
|
|
|
inline MIL_INT MbufGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserPtr)
|
|
{
|
|
return MilWebMbufGetHookInfo(EventId, InfoType, UserPtr);
|
|
}
|
|
|
|
inline void MbufGet(MIL_ID SrcBufId, void* BufferPtr)
|
|
{
|
|
MilWebMbufGet(SrcBufId, BufferPtr);
|
|
}
|
|
|
|
inline void MbufControl(MIL_ID BufId, MIL_INT64 ControlType, MIL_DOUBLE ControlFlag)
|
|
{
|
|
MilWebMbufControl(BufId, ControlType, ControlFlag);
|
|
}
|
|
|
|
inline MIL_INT MobjInquire(MIL_ID ObjId, MIL_INT64 InquireType, void* ResultPtr)
|
|
{
|
|
return MilWebMobjInquire(ObjId, InquireType, ResultPtr);
|
|
}
|
|
|
|
inline void MobjControl(MIL_ID ObjectId, MIL_INT64 ControlType, MIL_DOUBLE ControlFlag)
|
|
{
|
|
MilWebMobjControl(ObjectId, ControlType, ControlFlag);
|
|
}
|
|
|
|
inline void MobjHookFunction(MIL_ID ObjectId, MIL_INT HookType, MIL_HOOK_FUNCTION_PTR HookHandler, void *UserDataPtr)
|
|
{
|
|
MilWebMobjHookFunction(ObjectId, HookType, HookHandler, UserDataPtr);
|
|
}
|
|
|
|
inline MIL_INT MobjGetHookInfo(MIL_ID EventId, MIL_INT64 InfoType, void* UserVarPtr)
|
|
{
|
|
return MilWebMobjGetHookInfo(EventId, InfoType, UserVarPtr);
|
|
}
|
|
|
|
|
|
inline MIL_INT64 MobjMessageRead(MIL_ID MessageId, void* MessagePtr, MIL_INT64 MessageInSize, MIL_INT64 *MessageOutSizePtr, MIL_INT64 *MessageTagPtr, MIL_INT64 *StatusPtr, MIL_INT64 OperationFlag)
|
|
{
|
|
return MilWebMobjMessageRead(MessageId, MessagePtr, MessageInSize, MessageOutSizePtr, MessageTagPtr, StatusPtr, OperationFlag);
|
|
}
|
|
|
|
inline void MobjMessageWrite(MIL_ID MessageId, const void* MessagePtr, MIL_INT64 MessageSize, MIL_INT64 MessageTag, MIL_INT64 OperationFlag)
|
|
{
|
|
MilWebMobjMessageWrite(MessageId, MessagePtr, MessageSize, MessageTag, OperationFlag);
|
|
}
|
|
}
|
|
#endif // __cplusplus
|
|
#endif //__MIL_WEB_CLIENT_H
|