Foxit PDF SDK
fx_system.h File Reference

Header file for system related definitions. More...

Go to the source code of this file.

Macros

OS Defines
#define _CRT_SECURE_NO_WARNINGS
 Disable the security enhancements in the CRT.
 
#define _FX_ANDROID_   12
 Android.
 
#define _FX_EMBEDDED_   8
 Embedded OS.
 
#define _FX_IOS_   15
 IOS.
 
#define _FX_LINUX_DESKTOP_   4
 Linux Desktop OS.
 
#define _FX_LINUX_EMBEDDED_   5
 Embedded Linux OS.
 
#define _FX_MACOSX_   7
 MAC OS X.
 
#define _FX_MTK_   14
 Media Tech.
 
#define _FX_NETBSD_   11
 NetBSD.
 
#define _FX_PALMOS_   10
 PalmOS (5.0 or later)
 
#define _FX_SOLARIS_   9
 Solaris 8 or later.
 
#define _FX_SYMBIAN_   6
 Symbian OS (from 7.0)
 
#define _FX_VXWORKS_   13
 VxWorks.
 
#define _FX_WIN32_DESKTOP_   1
 Windows desktop OS (from Windows 95)
 
#define _FX_WIN32_MOBILE_   2
 Windows Mobile OS (from Windows CE 4.0)
 
#define _FX_WIN64_   3
 Windows 64 bit.
 
#define _FX_WINAPI_PARTITION_DESKTOP_
 
#define _FXM_PLATFORM_   _FXM_PLATFORM_WINDOWS_
 
#define _FXM_PLATFORM_ANDROID_   4
 Android OS platformas.
 
#define _FXM_PLATFORM_APPLE_   3
 Apple OS platformas.
 
#define _FXM_PLATFORM_LINUX_   2
 Linux OS platformas.
 
#define _FXM_PLATFORM_WINDOWS_   1
 Windows OS platformas.
 
#define NOMINMAX
 
Compiler Defines
#define _FX_ADS_   5
 ADS 1.2 Compiler.
 
#define _FX_GCC_   4
 GNU C++ Compiler.
 
#define _FX_IARCC_   7
 IAR C/C++ Compiler.
 
#define _FX_METROWERKS_   9
 Metrowerks C/C++ Compiler (with MSL)
 
#define _FX_MIPS_SDE_   12
 MIPS SDE.
 
#define _FX_NOKIA_X86_   8
 Nokia X86 Compiler.
 
#define _FX_PACC_   10
 Protein C/C++ Compiler (used by PalmOS)
 
#define _FX_RVCT_   6
 RVCT 2.1 Compiler.
 
#define _FX_TMS470_   11
 TMS470.
 
#define _FX_VC6_   1
 Microsoft Visual C++ 6.0.
 
#define _FX_VC7_   2
 Microsoft Visual Studio.Net 2003.
 
#define _FX_VC8_   3
 Microsoft Visual Studio.Net 2005.
 
CPU Defines
#define _FX_ARM64_   8
 ARM64.
 
#define _FX_ARM_   2
 ARM.
 
#define _FX_IA64_   5
 IA64.
 
#define _FX_MIPS64_   9
 MIPS64.
 
#define _FX_MIPS_   6
 MIPS.
 
#define _FX_POWERPC_   3
 Power PCPower PC.
 
#define _FX_SPARC_   4
 Sparc.
 
#define _FX_X64_   7
 64-bit x86 CPU
 
#define _FX_X86_   1
 32-bit x86 CPU
 
Word Size Defines
#define _FX_W32_   1
 32-bit instruct
 
#define _FX_W64_   2
 64-bit instruct
 
#define _FX_WORDSIZE_   _FX_W32_
 
Byte Order Defines
#define _FX_BIG_ENDIAN_   1
 big endian
 
#define _FX_ENDIAN_
 Current Byte Order. More...
 
#define _FX_LITTLE_ENDIAN_   2
 little endian
 
#define GetFullPathName
 Get the full path and file name of a specified file. GetFullPathNameW defined for unicode-mode, GetFullPathNameA for ansi-mode.
 
#define GetModuleFileName
 Get the fully-qualified path for specified module. GetModuleFileNameW defined for unicode-mode, GetModuleFileNameA for ansi-mode.
 
#define GetObject
 Get object information. GetObjectW defined for unicode-mode, GetObjectA for ansi-mode.
 
Target Defines
#define _FPDF_STREAM_RENDER_
 
#define _FX_BREW_   1
 Brew SDK.
 
#define _FX_DEFAULT_TARGET_   0
 The default sdk information.
 
#define _FX_ENABLE_OVERPRINT_
 
#define _FX_JPEG_TURBO_
 
#define _FX_LARGEFILE_SUPPORT_
 
#define _FX_NO_OPENSSL_
 
#define _FXM_SIMD_
 
#define WITH_SIMD
 
Byte string operations
#define FXSYS_snprintf
 Write formatted data to a ANSIC string, with max length.
 
#define FXSYS_sprintf
 Write formatted data to a ANSIC string.
 
#define FXSYS_strchr
 Find a character in a ANSIC string.
 
#define FXSYS_strcmp
 Compare ANSIC strings.
 
#define FXSYS_strcpy
 Copy an ANSIC string.
 
#define FXSYS_strlen
 Get the length of a ANSIC string.
 
#define FXSYS_strncmp
 Compare characters of two ANSIC strings.
 
#define FXSYS_strncpy
 Copy an ANSIC string with length limitation.
 
#define FXSYS_strstr
 Find a substring.
 
#define FXSYS_vsnprintf   vsnprintf
 
#define FXSYS_vsprintf
 Write formatted output using a pointer to a list of arguments.
 
File operations
#define FXSYS_fclose
 Close a file.
 
#define FXSYS_fflush
 Flush file.
 
#define FXSYS_FILE
 File structure.
 
#define FXSYS_fopen
 Open a file.
 
#define FXSYS_fprintf
 Print formatted data to a file.
 
#define FXSYS_fread
 Reads data from a file.
 
#define FXSYS_fseek
 Moves the file pointer to a specified location.
 
#define FXSYS_ftell
 Gets the current position of a file pointer.
 
#define FXSYS_fwrite
 Writes data to a file.
 
#define FXSYS_SEEK_END
 End of file.
 
#define FXSYS_SEEK_SET
 Beginning of file.
 
#define FXSYS_wfopen
 Open a file using wide-string parameters. Only supported on Windows platforms now.
 
Wide string operations
#define FXSYS_mbstowcs
 Converts a sequence of multi-byte characters to a corresponding sequence of wide characters.
 
#define FXSYS_vswprintf
 Write formatted output wide character string using a pointer to a list of arguments.
 
#define FXSYS_wcschr
 Find a wide-character in a wide-character string.
 
#define FXSYS_wcscmp
 Compare wide-character strings.
 
#define FXSYS_wcslen
 Get the length of a wide-character string.
 
#define FXSYS_wcsncmp
 Compare characters of two wide-character strings.
 
#define FXSYS_wcsstr
 Find a sub-wide-character-string.
 
#define FXSYS_wcstombs
 Converts a sequence of wide characters to a corresponding sequence of multi-byte characters.
 
Memory block operations
#define FXSYS_bsearch
 Performs a binary search of a sorted array. A generic algorithm.
 
#define FXSYS_GetACP
 Retrieve the current ANSI code-page identifier for the system.
 
#define FXSYS_GetFullPathName
 Get the full path and file name of a specified file.
 
#define FXSYS_GetModuleFileName
 Get the fully-qualified path for specified module.
 
#define FXSYS_itoa
 Convert an integer to a ANSIC string.
 
#define FXSYS_memchr
 Search for a byte in a memory block.
 
#define FXSYS_memcmp
 Compares two buffers.
 
#define FXSYS_memcpy
 Copy from one buffer to another.
 
#define FXSYS_memmove
 Moves one buffer to another. If some regions of the source area and the destination overlap, ::FXSYS_memmove ensures that the original source bytes in the overlapping region are copied before being overwritten.
 
#define FXSYS_memset
 Use given character to initialize the buffer.
 
#define FXSYS_MultiByteToWideChar
 Maps a character string to a wide-character string.
 
#define FXSYS_qsort
 Performs a quick sort. A generic algorithm.
 
#define FXSYS_stricmp
 Compare two ANSIC strings. case-insensitive.
 
#define FXSYS_strlwr
 Convert a ANSIC string to lowercase.
 
#define FXSYS_strupr
 Convert a ANSIC string to uppercase.
 
#define FXSYS_wcsicmp
 Compare two wide character strings. case-insensitive.
 
#define FXSYS_wcslwr
 Convert a wide-character string to lowercase.
 
#define FXSYS_wcsupr
 Convert a wide-character string to uppercase.
 
#define FXSYS_WideCharToMultiByte
 Maps a wide-character string to a character string.
 

Functions

Memory utilities
FX_INT32 FXSYS_memcmp32 (const void *buf1, const void *buf2, size_t size)
 Compare data in two buffers. More...
 
void * FXSYS_memcpy32 (void *dst, const void *src, size_t size)
 Copy buffer data from source to destination. More...
 
void * FXSYS_memmove32 (void *dst, const void *src, size_t size)
 Move source buffer data into destination. More...
 
void * FXSYS_memset32 (void *dst, FX_INT32 v, size_t size)
 Set buffer data to specified value. More...
 
void * FXSYS_memset8 (void *dst, FX_BYTE v, size_t size)
 Set buffer data to specified value. More...
 
Mutex
Note
Mutex is disabled under single-thread mode or FPDFAPI_MT isn't defined, do not call the following functions under this condition. Mutex supports recursive calls in same thread.
void FX_Mutex_Destroy (FX_MUTEX *pMutex)
 Destroy a mutex. More...
 
FX_BOOL FX_Mutex_Initialize (FX_MUTEX *pMutex)
 Initialize a mutex. More...
 
void FX_Mutex_Lock (FX_MUTEX *pMutex)
 Lock a mutex. More...
 
FX_BOOL FX_Mutex_TryLock (FX_MUTEX *pMutex)
 Try to lock a mutex. More...
 
void FX_Mutex_Unlock (FX_MUTEX *pMutex)
 Unlock a mutex. More...
 

BASIC DATA TYPES

#define _FX_CRT_MALLOC_LIMIT_   0x7fffffffL
 A macrio to malloc size limit.
 
#define ASSERT(a)
 Assertion for debug mode, do nothing for release mode.
 
#define FALSE   0
 Keyword which value is 0.
 
typedef int FX_BOOL
 Boolean variable (should be TRUE or FALSE).
 
typedef unsigned char FX_BYTE
 Byte (8 bits).
 
typedef char FX_CHAR
 8-bit Windows (ANSI) character.
 
#define FX_DEFINEHANDLE(name)   typedef struct _##name {FX_LPVOID pData;} * name;
 Macro to define a handle type.
 
typedef unsigned long FX_DWORD
 32-bit unsigned integer. More...
 
typedef int FX_ERR
 Error indicator.
 
#define FX_FAILED(Status)   ((FX_ERR)(Status) < 0)
 Determine whether a status is failure.
 
typedef float FX_FLOAT
 32-bit floating-point number.
 
typedef short FX_INT16
 Signed 16bits integer.
 
typedef int FX_INT32
 32-bit signed integer.
 
typedef long long int FX_INT64
 
typedef signed char FX_INT8
 Signed 8bits integer.
 
typedef INT_PTR FX_INTPTR
 Signed integral type for pointer precision.
 
typedef unsigned char * FX_LPBYTE
 Pointer to a FX_BYTE.
 
typedef unsigned char const * FX_LPCBYTE
 Pointer to a constant FX_BYTE.
 
typedef char const * FX_LPCSTR
 Pointer to constant 8-bit Windows (ANSI) characters.
 
typedef void const * FX_LPCVOID
 Pointer to any constant type.
 
typedef unsigned short const * FX_LPCWORD
 Pointer to a WORD.
 
typedef wchar_t const * FX_LPCWSTR
 Pointer to constant Unicode characters.
 
typedef unsigned long * FX_LPDWORD
 Pointer to a DWORD.
 
typedef char * FX_LPSTR
 Pointer to 8-bit Windows (ANSI) characters.
 
typedef void * FX_LPVOID
 Pointer to any type.
 
typedef unsigned short * FX_LPWORD
 Pointer to a WORD.
 
typedef wchar_t * FX_LPWSTR
 Pointer to Unicode characters.
 
#define FX_MAX(a, b)   (((a) > (b)) ? (a) : (b))
 A macro that returns the maximum of a and b.
 
#define FX_MIN(a, b)   (((a) < (b)) ? (a) : (b))
 A macro that returns the minimum of a and b.
 
#define FX_PI   3.1415926535897932384626433832795f
 A macro to PI.
 
typedef void * FX_POSITION
 A value used to denote the position of an element in a collection.
 
typedef FX_UINT64 FX_QWORD
 unsigned quad-word integer.
 
typedef short FX_SHORT
 Short integer (16 bits).
 
#define FX_SUCCEEDED(Status)   ((FX_ERR)(Status) >= 0)
 Determine whether a status is successful.
 
typedef unsigned short FX_UINT16
 Unsigned 16bits integer.
 
typedef FX_DWORD FX_UINT32
 unsigned 32bits integer.
 
typedef unsigned long long FX_UINT64
 
typedef unsigned char FX_UINT8
 Unsigned 8bits integer.
 
typedef UINT_PTR FX_UINTPTR
 Unsigned integral type for pointer precision.
 
typedef wchar_t FX_WCHAR
 Compiler dependant Unicode character (16-bit for Microsoft Compiler, 32-bit for gcc).
 
typedef unsigned short FX_WORD
 16-bit unsigned integer.
 
#define FXSYS_assert
 Assertion.
 
#define NULL   0
 The null-pointer value.
 
#define TRUE   1
 Keyword which value is 1.
 

Math functions

#define _FX_LSB_FIRST_
 
#define FX_CRITICAL_SECTION   FX_MUTEX
 
#define FX_DeleteCriticalSection(a)   FX_Mutex_Destroy(a)
 
#define FX_EnterCriticalSection(a)   FX_Mutex_Lock(a)
 
#define FX_InitializeCriticalSection(a)   FX_Mutex_Initialize(a)
 
#define FX_LeaveCriticalSection(a)   FX_Mutex_Unlock(a)
 
typedef CRITICAL_SECTION FX_MUTEX
 Definition for mutex/critical section and read-write lock.
 
typedef void * FX_SPINLOCK
 Definition for spinlock.
 
#define FX_TryEnterCriticalSection(a)   FX_Mutex_TryLock(a)
 
#define FXDWORD_FROM_LSBFIRST(i)   (i)
 
#define FXDWORD_FROM_MSBFIRST(i)   ( ((FX_BYTE)(i) << 24) | ((FX_BYTE)((i) >> 8) << 16) | ((FX_BYTE)((i) >> 16) << 8) | (FX_BYTE)((i) >> 24) )
 
#define FXDWORD_GET_LSBFIRST(p)   ((((FX_LPBYTE)(p))[3] << 24) | (((FX_LPBYTE)(p))[2] << 16) | (((FX_LPBYTE)(p))[1] << 8) | (((FX_LPBYTE)(p))[0]))
 
#define FXDWORD_GET_MSBFIRST(p)   ((((FX_LPBYTE)(p))[0] << 24) | (((FX_LPBYTE)(p))[1] << 16) | (((FX_LPBYTE)(p))[2] << 8) | (((FX_LPBYTE)(p))[3]))
 
#define FXSYS_abs
 A macro that return the absolute value.
 
#define FXSYS_acos
 Calculate the arccosine of a floating-point number, in radians.
 
#define FXSYS_atan2
 Calculate the arctangent. FXSYS_atan2(y,x) means atan(y/x).
 
FX_INT32 FXSYS_atoi (FX_LPCSTR str)
 Convert an ANSI string to an integer. More...
 
FX_INT64 FXSYS_atoi64 (FX_LPCSTR str)
 Convert an ANSI string to an integer. More...
 
#define FXSYS_ceil
 Calculate the ceiling of a value.
 
#define FXSYS_cos
 Calculate the cosine of a floating-point number from a radian argument.
 
#define FXSYS_Div(a, b)   ((a) / (b))
 Division between two numbers.
 
#define FXSYS_fabs
 Calculate the absolute. FXSYS_fabs(x) means |x|.
 
#define FXSYS_floor
 Calculate the floor of a value.
 
#define FXSYS_fmod
 Calculate the floating-point remainder.
 
#define FXSYS_HIBYTE(word)   ((FX_BYTE)((word) >> 8))
 
#define FXSYS_HIWORD(dword)   ((FX_WORD)((dword) >> 16))
 
FX_LPCSTR FXSYS_i64toa (FX_INT64 value, FX_LPSTR str, int radix)
 Convert an integer to an ANSI string. More...
 
FX_LPCWSTR FXSYS_i64tow (FX_INT64 value, FX_LPWSTR str, int radix)
 Convert an integer to an wide string. More...
 
#define FXSYS_LOBYTE(word)   ((FX_BYTE)(word))
 
#define FXSYS_log
 Calculate the natural logarithm (base e) of a floating-point number.
 
#define FXSYS_log10
 Calculate the common logarithm (base 10) of a floating-point number.
 
#define FXSYS_LOWORD(dword)   ((FX_WORD)(dword))
 
#define FXSYS_Mul(a, b)   ((a) * (b))
 Multiply two numbers.
 
#define FXSYS_MulDiv(a, b, c)   ((a) * (b) / (c))
 Fist do multiplication, then do division.
 
#define FXSYS_pow
 Calculate the power. FXSYS_pow(x,y) means x^y.
 
int FXSYS_round (FX_FLOAT f)
 Get nearest integer. More...
 
#define FXSYS_sin
 Calculate the sine of a floating-point number from a radian argument.
 
#define FXSYS_sqrt
 Calculate the square root. FXSYS_sqrt(x) means sqrt(x).
 
#define FXSYS_sqrt2(a, b)   (FX_FLOAT)FXSYS_sqrt((a)*(a) + (b)*(b))
 sqrt(a^2 + b^2).
 
#define FXSYS_strtol   strtol
 Convert string to long integer.
 
FX_INT32 FXSYS_wtoi (FX_LPCWSTR str)
 Convert a wide string to an integer. More...
 
FX_INT64 FXSYS_wtoi64 (FX_LPCWSTR str)
 Convert a wide string to an integer. More...
 

Detailed Description

Header file for system related definitions.

Copyright (C) 2003-2024, Foxit Software Inc.. All Rights Reserved.

http://www.foxitsoftware.com

The following code is copyrighted and is the proprietary of Foxit Software Inc.. It is not allowed to distribute any parts of Foxit PDF SDK to third party or public without permission unless an agreement is signed between Foxit Software Inc. and customers to explicitly grant customers permissions.