LEADTOOLS Basic Data Types

LEADTOOLS has defined the following basic data types for portability:

Data Type

Definition and Usage

L_WCHAR

Defined as WCHAR; used as a 16-bit UNICODE character.

L_CHAR

Defined as char; used as a signed 8-bit integer.

L_UCHAR

Defined as unsigned char; used as an unsigned 8-bit integer.

 

 

Integer types

 

L_INT8

Defined as signed char; used as an 8-bit signed integer.

L_INT16

Defined as signed short; used as a 16-bit signed integer.

L_INT32

Defined as signed int; used as a 32-bit signed integer.

L_INT64

Defined as signed __int64; used as a 64-bit signed integer.

L_UINT8

Defined as unsigned char; used as an 8-bit unsigned integer.

L_UINT16

Defined as unsigned short; used as a 16-bit unsigned integer.

L_UINT32

Defined as unsigned int; used as a 32-bit unsigned integer.

L_UINT64

Defined as unsigned __int64; used as a 64-bit unsigned integer.

L_INT

Defined as int; used as a 32-bit signed integer.

L_UINT

Defined as unsigned int; used as a 32-bit unsigned integer.

 

 

Long and Short

 

L_LONG

Defined as long; used as a signed integer, 32-bits or larger.

L_ULONG

Defined as unsigned long; used as an unsigned integer, 32-bits or larger.

L_USHORT

Defined as unsigned short; used as a 16-bit unsigned integer.

 

 

Float types

 

L_FLOAT

Defined as float; used as a floating point number.

L_DOUBLE

Defined as double; used as a double precision floating point number.

 

 

32/64 Types

 

L_INT_PTR

Defined as INT_PTR; Guaranteed to be the same size as a pointer. The size changes with pointer size (32/64). Used where a pointer is cast to an integer type.

L_UINT_PTR

Defined as UINT_PTR; Unsigned variation of L_INT_PTR.

L_LONG_PTR

Defined as LONG_PTR; Guaranteed to be the same size as a pointer. The size changes with pointer size (32/64). Used where a pointer is cast to an integer type.

L_ULONG_PTR

Defined as ULONG_PTR; Unsigned variation of L_LONG_PTR.

 

 

L_SIZE_T

Defined as SIZE_T; Maximum number of bytes to which a pointer can refer.

L_SSIZE_T

Signed version of L_SIZE_T.

 

 

Other types

 

L_VOID

Defined as void; used as a void.

L_BITFIELD

Defined as L_UINT; used as a bit field.

L_COLOREF

Defined as COLORREF; See Windows SDK.

 

 

Booleans

 

L_BOOL

Defined as BOOL; used as a boolean value.

 

 

UNICODE types

 

L_TCHAR

Defined as either char or TCHAR. If FOR_UNICODE is defined, then L_TCHAR will be defined as TCHAR.

 

 

Handles

 

L_HANDLE

Defined as HANDLE; See Windows SDK.

L_HFILE

Defined as HANDLE; See Windows SDK.

L_HWND

Defined as HWND; See Windows SDK.

L_HGDIOBJ

Defined as HGDIOBJ; See Windows SDK.

L_HDC

Defined as HDC; See Windows SDK.

L_HRGN

Defined as HRGN; See Windows SDK.

L_HPALETTE

Defined as HPALETTE; See Windows SDK.

L_HBITMAP

Defined as HBITMAP; See Windows SDK.

L_HCURSOR

Defined as HCURSOR; See Windows SDK.

L_HICON

Defined as HICON; See Windows SDK.

L_HMETAFILE

Defined as HMETAFILE; See Windows SDK.

L_HENHMETAFILE

Defined as HENHMETAFILE; See Windows SDK.

L_HDIB

Defined as HDIB; See Windows SDK.

L_HINSTANCE

Defined as HINSTANCE; See Windows SDK.

L_HPEN

Defined as HPEN; See Windows SDK.

L_HFONT

Defined as HFONT; See Windows SDK.

L_HBRUSH

Defined as HBRUSH; See Windows SDK.

L_HGLOBAL

Defined as HGLOBAL; See Windows SDK.

 

 

Structures

 

L_POINT

Defined as POINT; See Windows SDK.

L_RECT

Defined as RECT; See Windows SDK.

L_BITMAPINFOHEADER

Defined as BITMAPINFOHEADER; See Windows SDK.

L_BITMAPINFO

Defined as BITMAPINFO; See Windows SDK.

L_RGBQUAD

Defined as RGBQUAD; See Windows SDK.

L_RGBQUAD16

typedef struct tagL_RGBQUAD16
{
   L_UINT16 rgbBlue;  // 16-bit blue component
   L_UINT16 rgbGreen; // 16-bit green component
   L_UINT16 rgbRed;   // 16-bit red component
   L_UINT16 rgbReserved; // reserved - use 0
}
L_RGBQUAD16;

 

 

Calling Convention

 

L_xxx_API

Defined as __declspec(dllimport) __stdcall.  NOTE: xxx is the module designation. Examples: L_LTDIS_API - LTDIS, L_LTKRN_API - LTKRN