Foxit PDF Conversion SDK

Classes | Macros | Typedefs | Enumerations | Functions
FXCRT

## Classes
struct | FX_HFILE
| File accessing handle. More...
struct | FXMEM_FoxitMgr
| Foxit memory manager. More...
class | CFX_ArchiveLoader
class | CFX_ArchiveSaver
class | CFX_ArrayTemplate< TYPE >
class | CFX_AutoRestorer< T >
class | CFX_BaseSegmentedArray
class | CFX_BasicArray
class | CFX_BinaryBuf
| Dynamic binary buffers designed for more efficient appending. More...
class | CFX_BitStream
class | CFX_BitWriter
class | CFX_ByteString
| BYTE STRING CLASS. More...
class | CFX_ByteStringC
| CONSTANT BYTE STRING CLASS. More...
class | CFX_ByteTextBuf
class | CFX_CachedFileRead
| Cached file read interface. More...
struct | CFX_CharMap
class | CFX_CMapByteStringToPtr
class | CFX_CMapDWordToDWord
class | CFX_CountRef< ObjClass >
class | CFX_DataFilter
class | CFX_ExceptionErrorContext
class | CFX_FileBufferArchive
class | CFX_FixedBufGrow< DataType, FixedSize >
class | CFX_JmpStack
class | CFX_ListArrayTemplate< T1, T2 >
class | CFX_MapByteStringToPtr
class | CFX_MapPtrTemplate< KeyType, ValueType >
class | CFX_MapPtrToPtr
class | CFX_ObjectArray< ObjectClass >
class | CFX_ObjectStack< TYPE >
class | CFX_PrivateData
class | CFX_PtrList
class | CFX_SegmentedArray< ElementType >
class | CFX_SmartPointer< T >
class | CFX_SortListArray< unit >
class | CFX_Stack< TYPE >
class | CFX_Stack< CFX_ByteString >
class | CFX_StringBufBase
| A fixed string buffer holding up to certain number of characters. More...
class | CFX_StringBufTemplate< limit >
| A fixed string buffer template. More...
struct | CFX_StringData
| This class represents the data of a byte string object. More...
struct | CFX_StringDataW
| This class represents the data of a wide string object. More...
class | CFX_TempBuf< DataType >
class | CFX_UTF8Decoder
class | CFX_UTF8Encoder
class | CFX_WideString
| WIDE STRING CLASS. More...
class | CFX_WideStringC
| CONSTANT WIDE STRING CLASS. More...
class | CFX_WideTextBuf
struct | FX_MEMCONFIG
| Structure of fixed memory configuration. More...
struct | FX_PRIVATEDATA
struct | FXMEM_Debugger
| Memory debugger interface. All functions must be implemented. More...
struct | FXMEM_SystemMgr
| System level memory manager. Application can implement their own system memory manager. More...
struct | FXMEM_SystemMgr2
| Fixed memory manager. More...
struct | IFX_Allocator
| Foxit allocator interface. More...
class | IFX_BufferArchive
class | IFX_BufferRead
| IFX_BufferRead stream provides an optimized approach to read stream data. Usually, one stream maintains an internal buffer for data access, this buffer can be used directly to caller, and avoids data-copy. More...
class | IFX_ChunkFileStream
| Chunk-based File stream interface, reading & writing. More...
class | IFX_FileAccess
| File access interface, open file. More...
class | IFX_FileRead
| File reading interface. More...
class | IFX_FileStream
| File stream interface, reading & writing. More...
class | IFX_FileWrite
| File writing interface. More...
class | IFX_MemoryStream
| Memory stream interface. More...
class | IFX_Pause
class | IFX_StreamRead
| Stream reading interface. More...
class | IFX_StreamWrite
| Stream writing interface. More...
class | IFX_Unknown

## Macros
#define | _FX_LARGEFILE_USED_
| Preprocessor for large file support.
#define | FX_Alloc(type, size)
| A macro for Foxit memory allocation operation.
#define | FX_Allocator_Alloc(fxAllocator, type, size) ((fxAllocator) ? (type*)(fxAllocator)->m_Alloc((fxAllocator), (size) * sizeof(type)) : (FX_Alloc(type, size)))
| Release-mode allocation on an allocator.
#define | FX_Allocator_Free(fxAllocator, ptr) ((fxAllocator) ? (fxAllocator)->m_Free((fxAllocator), (ptr)) : (FX_Free(ptr)))
| Free memory block on an allocator.
#define | FX_Allocator_Realloc(fxAllocator, type, ptr, new_size) ((fxAllocator) ? (type*)(fxAllocator)->m_Realloc((fxAllocator), (ptr), (new_size) * sizeof(type)) : (FX_Realloc(type, ptr, new_size)))
| Release-mode re-allocation on an allocator.
#define | FX_AllocNL(type, size)
| A macro for Foxit memory allocation operation with non-leaving (return NULL if OOM).
#define | FX_BSTRC(str) CFX_ByteStringC(str, sizeof str-1)
| All application should use the following macro when specifying a string constant. "str" must be a character string constant. More...
#define | FX_FILESIZE FX_INT64
| Support large file directly.
#define | FX_FIXEDMEM_MIDBLOCKSIZE (4096)
| Size of middle data block, 4KB.
#define | FX_FIXEDMEM_PAGESIZE (4096 * 16)
| Size of memory page, 64KB.
#define | FX_Free(pointer) FXMEM_DefaultFree(pointer, 0)
| A macro for Foxit memory free operation.
#define | FX_IsOdd(a) ((a) & 1)
| Judge whether an integer is odd or even.
#define | FX_Realloc(type, ptr, size)
| A macro for Foxit memory reallocation operation.
#define | FX_ReallocNL(type, ptr, size)
| A macro for Foxit memory reallocation operation with non-leaving (return NULL if OOM).
#define | FX_WSTRC(wstr) CFX_WideStringC((FX_LPCWSTR)wstr, sizeof(wstr) / sizeof(FX_WCHAR) - 1)
| All application should use the following macro when specifying a wide string constant. "wstr" must be a wide string constant. More...
#define | FXMEM_DISCARDABLE 4
| Flag for allocate discardable memory.
#define | FXMEM_MOVABLE 2
| Flag for allocate movable memory.
#define | FXMEM_NONLEAVE 1
| Flag for no calling OOM-handler when memory allocation failed.
#define | FXSYS_bsearch
| Performs a binary search of a sorted array. A generic algorithm.
#define | FXSYS_Div(a, b) ((a) / (b))
| Division between two numbers.
#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_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_MultiByteToWideChar
| Maps a character string to a wide-character string.
#define | FXSYS_qsort
| Performs a quick sort. A generic algorithm.
#define | FXSYS_sqrt2(a, b) (FX_FLOAT)FXSYS_sqrt((a)*(a) + (b)*(b))
| sqrt(a^2 + b^2).
#define | FXSYS_stricmp
| Compare two ANSIC strings. case-insensitive.
#define | FXSYS_strlwr
| Convert a ANSIC string to lowercase.
#define | FXSYS_strtol strtol
| Convert string to long integer.
#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.
#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.

## Typedefs
typedef CFX_ArrayTemplate< FX_BYTE > | CFX_ByteArray
| Type definition for a byte array type.
typedef CFX_ObjectArray< CFX_ByteString > | CFX_ByteStringArray
| Type definition for a CFX_ByteString array type.
typedef CFX_ArrayTemplate< FX_DWORD > | CFX_DWordArray
| Type definition for a double-word array type.
typedef CFX_ListArrayTemplate< CFX_SortListArray< sizeof(FX_DWORD)>, FX_DWORD > | CFX_DWordListArray
| Type definition for FX_DWORD list array.
typedef CFX_ArrayTemplate< FX_INT64 > | CFX_FileSizeArray
| Type definition for file size array type.
typedef CFX_ListArrayTemplate< CFX_SortListArray< sizeof(FX_INT64)>, FX_INT64 > | CFX_FileSizeListArray
| Type definition for file size list array.
typedef CFX_ArrayTemplate< FX_FLOAT > | CFX_FloatArray
| Type definition for float array.
typedef CFX_ArrayTemplate< FX_INT32 > | CFX_Int32Array
| Type definition for INT32 array.
typedef CFX_ArrayTemplate< void * > | CFX_PtrArray
| Type definition for: a typeless pointer array type.
typedef CFX_StringBufTemplate< 256 > | CFX_StringBuf256
| A fixed 256-byte string buffer.
typedef CFX_ArrayTemplate< FX_WCHAR > | CFX_WCHARArray
| Type definition for FX_WHAR array.
typedef CFX_ObjectArray< CFX_WideString > | CFX_WideStringArray
| Type definition for a CFX_WideString array type.
typedef CFX_ArrayTemplate< FX_WORD > | CFX_WordArray
| Type definition for a word array type.
typedef void(* | FPDF_OOM_Handler) (FXMEM_FoxitMgr *pFoxitMgr, void *param)
| the prototype of the Out-Of-Memory handler. More...
typedef const CFX_ByteStringC & | FX_BSTR
| A reference to a constant CFX_ByteStringC object.
typedef CRITICAL_SECTION | FX_MUTEX
| Definition for mutex/critical section and read-write lock.
typedef void * | FX_SPINLOCK
| Definition for spinlock.
typedef int | FX_STRSIZE
| String size is limited to 2^31-1.
typedef const CFX_WideStringC & | FX_WSTR
| Type definition for a reference to a constant CFX_WideStringC object.
typedef void(* | PD_CALLBACK_FREEDATA) (FX_LPVOID pData)

## Enumerations
enum | FX_ProgressiveStatus { Ready, ToBeContinued, Found, NotFound, Failed, Done }
| Enumeration for progressive status. More...

## Functions
| CFX_ByteStringC::CFX_ByteStringC (const CFX_ByteString &src)
| Construct from a byte string. More...
| CFX_WideStringC::CFX_WideStringC (const CFX_WideString &src)
| Construct from a wide string. More...
FX_FLOAT | FX_atof (FX_BSTR str)
| Convert a non-buffered byte string to a floating-point number. More...
void | FX_atonum (FX_BSTR str, FX_BOOL &bInteger, void *pData, int sizeOfData=4)
| Convert a non-buffered byte string to a number. More...
void | FX_CloseFolder (void *handle)
| Close folder handle. More...
IFX_FileAccess * | FX_CreateDefaultFileAccess (FX_WSTR wsPath, IFX_Allocator *pAllocator=0)
| Create a CRT based file I/O interface. More...
IFX_FileRead * | FX_CreateFileRead (FX_LPCSTR filename, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access) Create a CRT based file reading interface. More...
IFX_FileRead * | FX_CreateFileRead (FX_LPCWSTR filename, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access) Create a CRT based file reading interface. More...
IFX_FileStream * | FX_CreateFileStream (FX_LPCSTR filename, FX_DWORD dwModes, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access) Create a CRT based file I/O interface. More...
IFX_FileStream * | FX_CreateFileStream (FX_LPCWSTR filename, FX_DWORD dwModes, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access) Create a CRT based file I/O interface. More...
IFX_FileWrite * | FX_CreateFileWrite (FX_LPCSTR filename, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access (fopen, ...)) Create a CRT based file writing interface. More...
IFX_FileWrite * | FX_CreateFileWrite (FX_LPCWSTR filename, IFX_Allocator *pAllocator=0)
| (Available only for platforms supporting CRT file access (fopen, ...)) Create a CRT based file writing interface. More...
FX_BOOL | FX_CreateFolder (FX_LPCSTR path)
| Create new folder. More...
FX_BOOL | FX_CreateFolder (FX_LPCWSTR path)
| Create new folder. More...
IFX_MemoryStream * | FX_CreateMemoryStream (FX_LPBYTE pBuffer, size_t nSize, FX_BOOL bTakeOver=false, IFX_Allocator *pAllocator=0)
| Creates a stream object by a given memory buffer. This function creates a consecutive memory stream object. More...
IFX_MemoryStream * | FX_CreateMemoryStream (FX_BOOL bConsecutive=false, IFX_Allocator *pAllocator=0)
| Create a memory stream object. Memory buffer will be created internally, and the size will increase when need more space. More...
CFX_WideString | FX_DecodeURI (const CFX_ByteString &bsURI)
| A simple URI Decode. More...
CFX_ByteString | FX_EncodeURI (const CFX_WideString &wsURI)
| A simple URI encode. More...
void | FX_File_Close (FX_HFILE hFile, IFX_Allocator *pAllocator=0)
| Close file. More...
FX_BOOL | FX_File_Copy (FX_BSTR fileNameSrc, FX_BSTR fileNameDst)
| Copy file. More...
FX_BOOL | FX_File_Copy (FX_WSTR fileNameSrc, FX_WSTR fileNameDst)
| Copy file. More...
FX_BOOL | FX_File_Delete (FX_BSTR fileName)
| Delete file. More...
FX_BOOL | FX_File_Delete (FX_WSTR fileName)
| Delete file. More...
FX_BOOL | FX_File_Exist (FX_BSTR fileName)
| Determine whether a file exists or not. More...
FX_BOOL | FX_File_Exist (FX_WSTR fileName)
| Determine whether a file exists or not. More...
FX_BOOL | FX_File_Flush (FX_HFILE hFile)
| Flush internal buffer if need. More...
FX_INT64 | FX_File_GetPosition (FX_HFILE hFile)
| Get the current file accessing position. More...
FX_INT64 | FX_File_GetSize (FX_HFILE hFile)
| Get file size. More...
FX_BOOL | FX_File_Move (FX_BSTR fileNameSrc, FX_BSTR fileNameDst)
| Move file. More...
FX_BOOL | FX_File_Move (FX_WSTR fileNameSrc, FX_WSTR fileNameDst)
| Move file. More...
FX_HFILE | FX_File_Open (FX_BSTR fileName, FX_DWORD dwMode, IFX_Allocator *pAllocator=0)
| Open file with specified accessing mode. More...
FX_HFILE | FX_File_Open (FX_WSTR fileName, FX_DWORD dwMode, IFX_Allocator *pAllocator=0)
| Open file with specified accessing mode. More...
size_t | FX_File_Read (FX_HFILE hFile, void *pBuffer, size_t szBuffer)
| Read data from the current file accessing position. More...
size_t | FX_File_ReadPos (FX_HFILE hFile, void *pBuffer, size_t szBuffer, FX_INT64 pos)
| Read data from specified position. More...
FX_INT64 | FX_File_SetPosition (FX_HFILE hFile, FX_INT64 pos)
| Set the current file accessing position. More...
FX_BOOL | FX_File_Truncate (FX_HFILE hFile, FX_INT64 szFile)
| Truncate file size. More...
size_t | FX_File_Write (FX_HFILE hFile, const void *pBuffer, size_t szBuffer)
| Write data from the current file accessing position. More...
size_t | FX_File_WritePos (FX_HFILE hFile, const void *pBuffer, size_t szBuffer, FX_INT64 pos)
| Write data at specified position. More...
FX_STRSIZE | FX_ftoa (FX_FLOAT f, FX_LPSTR buf, int precision=0)
| Convert float to byte string. More...
FX_WCHAR | FX_GetFolderSeparator ()
| Get folder separator for the system. Most likely it's either /' or '\'. More...
FX_BOOL | FX_GetNextFile (void *handle, CFX_ByteString &filename, FX_BOOL &bFolder, FX_LPCSTR absPath=0)
| Read next entry in the folder. More...
FX_BOOL | FX_GetNextFile (void *handle, CFX_WideString &filename, FX_BOOL &bFolder, FX_LPCSTR absPath=0)
| Read next entry in the folder. More...
FX_BOOL | FX_IsFilePathExist (FX_LPCWSTR path)
| Check if the path exists, including file path and folder path. More...
void * | FX_OpenFolder (FX_LPCSTR path)
| Open a folder for reading. More...
void * | FX_OpenFolder (FX_LPCWSTR path)
| Open a folder for reading. More...
CFX_WideString | FX_UrlDecode (const CFX_ByteString &bsUrl)
| A simple URL decode. More...
CFX_ByteString | FX_UrlEncode (const CFX_WideString &wsUrl)
| A simple URL encode. More...
void | FXMEM_CollectAll (FXMEM_FoxitMgr *pFoxitMgr)
| Release all memory blocks allocated by a Foxit manager. This function is only supported on embedded systems. More...
FXMEM_FoxitMgr * | FXMEM_CreateFixedMgr (void *pMemory, size_t size, FXMEM_SystemMgr2 *pExtender)
| Create a Foxit manager from a pre-allocated, fixed memory buffer. More...
FXMEM_FoxitMgr * | FXMEM_CreateFoxitMgr (FXMEM_SystemMgr *pSystemMgr)
| Create a Foxit manager. A system manager must be provided for actual allocation. More...
FXMEM_FoxitMgr * | FXMEM_CreateMemoryMgr (size_t size, FX_BOOL extensible)
| Create a fixed memory manager as default implementation. More...
FXMEM_FoxitMgr * | FXMEM_CreatePyMgr ()
| Create a Python manager. A fast, special-purpose memory allocator for small blocks, to be used on top of a general-purpose malloc – heavily based on previous art. More...
void | FXMEM_DestroyFoxitMgr (FXMEM_FoxitMgr *pFoxitMgr)
| Destroy a Foxit manager instance. If the platform supports auto-collection, then all allocated memory blocks will be released. More...
size_t | FXMEM_GetBlockSizeInFixedMgr (FXMEM_FoxitMgr *pFoxitMgr, void *ptr)
| Get the size of a memory block to which ptr points. More...
IFX_Allocator * | FXMEM_GetDefAllocator ()
| Get default allocator used by the library. More...
FXMEM_FoxitMgr * | FXMEM_GetDefaultMgr ()
| Get default memory manager for current module. More...
void | FXMEM_OutputDebugTag (FXMEM_FoxitMgr *pFoxitMgr, FX_LPCSTR tag)
| Output a memory debug tag. More...
void | FXMEM_PurgeMgr (FXMEM_FoxitMgr *pFoxitMgr)
| Release all excessive memory without touching any used memory. This is useful for extensible fixed memory manager (FXMEM_SystemMgr2), because we never free those additional memory pool until the memory manager destroyed. More...
void | FXMEM_ReportOOM (FXMEM_FoxitMgr *pFoxitMgr)
| Report Out-of-memory (OOM). More...
void | FXMEM_ResetSystemMgr ()
| Reset Foxit system memory manager for current module. More...
void | FXMEM_SetConfig (const FX_MEMCONFIG *memConfig)
| Set configuration of fixed memory. More...
void | FXMEM_SetDefaultMgr (FXMEM_FoxitMgr *pFoxitMgr)
| Set default Foxit manager for current compile module (EXE, DLL, etc.). More...
void | FXMEM_SetOOMHandler (FXMEM_FoxitMgr *pFoxitMgr, FPDF_OOM_Handler pOOMReportFunc, void *param)
| Setup A Out-Of-Memory handler for a Foxit memory manager. More...
int | FXMEM_SetPyConfig (size_t lowByteRange, size_t highByteRange)
| Set configuration of Python memory. More...
void | FXMEM_UseDebugger (FXMEM_FoxitMgr *pFoxitMgr, FXMEM_Debugger *pDebugger)
| Use a memory debugger which capturing all memory activities. Use NULL for parameter pDebugger to stop debugging. More...
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...
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...
int | FXSYS_round (FX_FLOAT f)
| Get nearest integer. More...
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...
int | FXWCHAR_GetDirection (FX_WCHAR wchar)
| Get text direction. More...
CFX_ByteStringC & | CFX_ByteStringC::operator= (const CFX_ByteString &src)
| Assignment(=) operator overload. From a CFX_ByteString object. More...
CFX_WideStringC & | CFX_WideStringC::operator= (const CFX_WideString &src)
| Assignment(=) operator overload. From a CFX_ByteString object. More...

## Basic memory operations
void * | FXMEM_Alloc (FXMEM_FoxitMgr *pFoxitMgr, size_t size, int flags)
| Foxit basic memory allocation function. More...
void * | FXMEM_AllocDebug (FXMEM_FoxitMgr *pFoxitMgr, size_t size, int flags, FX_LPCSTR file, int line)
| Foxit basic memory allocation function in debug-mode. More...
void * | FXMEM_Realloc (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, size_t new_size, int flags)
| Foxit basic memory reallocation function. More...
void * | FXMEM_ReallocDebug (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, size_t new_size, int flags, FX_LPCSTR file, int line)
| Foxit basic memory reallocation function in debug-mode. More...
void | FXMEM_Free (FXMEM_FoxitMgr *pFoxitMgr, void *pointer, int flags)
| Foxit basic memory free function. More...

## Following base memory functions use default Foxit manager for current module
void * | FXMEM_DefaultAlloc (size_t byte_size, int flags)
| Default allocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultAlloc2 (size_t units, size_t unit_size, int flags)
| Default allocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultAllocDebug (size_t size, int flags, FX_LPCSTR file, int line)
| Default debug-mode allocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultAllocDebug2 (size_t units, size_t unit_size, int flags, FX_LPCSTR file, int line)
| Default debug-mode allocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultRealloc (void *pointer, size_t new_size, int flags)
| Default reallocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultRealloc2 (void *pointer, size_t units, size_t unit_size, int flags)
| Default reallocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultReallocDebug (void *pointer, size_t new_size, int flags, FX_LPCSTR file, int line)
| Default debug-mode reallocation function using default Foxit memory manager for current module. More...
void * | FXMEM_DefaultReallocDebug2 (void *pointer, size_t units, size_t unit_size, int flags, FX_LPCSTR file, int line)
| Default debug-mode reallocation function using default Foxit memory manager for current module. More...
void | FXMEM_DefaultFree (void *pointer, int flags)
| Default free function using default Foxit memory manager for current module. More...

## Macro definitions for File accessing modes
#define | FX_FILEMODE_Write 0
| Write mode. To create automatically if the file doesn't exist.
#define | FX_FILEMODE_ReadOnly 1
| Read-only mode.
#define | FX_FILEMODE_Truncate 2
| Clear existing contents, and size of file is to be 0. For writing mode only.

## Byte string concatenation operation
Both side of the concatenation operator (+) can be: A buffered byte string (const CFX_ByteString&); A non-buffered byte string (const CFX_ByteStringC&, a.k.a FX_BSTR); A zero-terminated C-style string (FX_LPCSTR); A single character or byte (FX_CHAR);
CFX_ByteString | operator+ (FX_BSTR str1, FX_BSTR str2)
| Concatenate a non-buffered byte string and a non-buffered byte string. More...
CFX_ByteString | operator+ (FX_BSTR str1, FX_LPCSTR str2)
| Concatenate a non-buffered byte string and a zero-terminated C-style string. More...
CFX_ByteString | operator+ (FX_LPCSTR str1, FX_BSTR str2)
| Concatenate a zero-terminated C-style string and a non-buffered byte string. More...
CFX_ByteString | operator+ (FX_BSTR str1, FX_CHAR ch)
| Concatenate a non-buffered byte string and a single character or byte. More...
CFX_ByteString | operator+ (FX_CHAR ch, FX_BSTR str2)
| Concatenate a single character or byte and a non-buffered byte string. More...
CFX_ByteString | operator+ (const CFX_ByteString &str1, const CFX_ByteString &str2)
| Concatenate a buffered byte string and a buffered byte string. More...
CFX_ByteString | operator+ (const CFX_ByteString &str1, FX_CHAR ch)
| Concatenate a buffered byte string and a single character or byte. More...
CFX_ByteString | operator+ (FX_CHAR ch, const CFX_ByteString &str2)
| Concatenate a single character or byte and a buffered byte string. More...
CFX_ByteString | operator+ (const CFX_ByteString &str1, FX_LPCSTR str2)
| Concatenate a buffered byte string and a zero-terminated C-style string. More...
CFX_ByteString | operator+ (FX_LPCSTR str1, const CFX_ByteString &str2)
| Concatenate a zero-terminated C-style string and a buffered byte string. More...
CFX_ByteString | operator+ (const CFX_ByteString &str1, FX_BSTR str2)
| Concatenate a buffered byte string and a non-buffered byte string. More...
CFX_ByteString | operator+ (FX_BSTR str1, const CFX_ByteString &str2)
| Concatenate a non-buffered byte string and a buffered byte string. More...

## Wide string concatenation operation
Both side of the concatenation operator (+) can be: A buffered wide string (const CFX_WideString&); A non-buffered wide string (const CFX_WideStringC&); A zero-terminated C-style wide string (FX_LPCWSTR); A single character (FX_WCHAR); But you must have at least one CFX_WideString or CFX_WideStringC on one side.
CFX_WideString | operator+ (const CFX_WideStringC &str1, const CFX_WideStringC &str2)
| Concatenate a non-buffered wide string and a non-buffered wide string. More...
CFX_WideString | operator+ (const CFX_WideStringC &str1, FX_LPCWSTR str2)
| Concatenate a non-buffered byte string and a zero-terminated C-style string. More...
CFX_WideString | operator+ (FX_LPCWSTR str1, const CFX_WideStringC &str2)
| Concatenate a zero-terminated C-style string and a non-buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideStringC &str1, FX_WCHAR ch)
| Concatenate a non-buffered byte string and a single character or byte. More...
CFX_WideString | operator+ (FX_WCHAR ch, const CFX_WideStringC &str2)
| Concatenate a single character or byte and a non-buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideString &str1, const CFX_WideString &str2)
| Concatenate a buffered byte string and a buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideString &str1, FX_WCHAR ch)
| Concatenate a buffered byte string and a single character or byte. More...
CFX_WideString | operator+ (FX_WCHAR ch, const CFX_WideString &str2)
| Concatenate a single character or byte and a buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideString &str1, FX_LPCWSTR str2)
| Concatenate a buffered wide string and a zero-terminated C-style string. More...
CFX_WideString | operator+ (FX_LPCWSTR str1, const CFX_WideString &str2)
| Concatenate a zero-terminated C-style string and a buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideString &str1, const CFX_WideStringC &str2)
| Concatenate a buffered byte string and a non-buffered byte string. More...
CFX_WideString | operator+ (const CFX_WideStringC &str1, const CFX_WideString &str2)
| Concatenate a non-buffered byte string and a buffered byte string. More...

## Wide string compare operation
bool | operator== (const CFX_WideString &s1, const CFX_WideString &s2)
| Comparison(==) operator overload. Case-sensitive. More...
bool | operator== (const CFX_WideString &s1, const CFX_WideStringC &s2)
| Comparison(==) operator overload. Case-sensitive. More...
bool | operator== (const CFX_WideStringC &s1, const CFX_WideString &s2)
| Comparison(==) operator overload. Case-sensitive. More...
bool | operator== (const CFX_WideString &s1, FX_LPCWSTR s2)
| Comparison(==) operator overload. Case-sensitive. More...
bool | operator== (FX_LPCWSTR s1, const CFX_WideString &s2)
| Comparison(==) operator overload. Case-sensitive. More...
bool | operator!= (const CFX_WideString &s1, const CFX_WideString &s2)
| Comparison(!=) operator overload. Case-sensitive. More...
bool | operator!= (const CFX_WideString &s1, const CFX_WideStringC &s2)
| Comparison(!=) operator overload. Case-sensitive. More...
bool | operator!= (const CFX_WideStringC &s1, const CFX_WideString &s2)
| Comparison(!=) operator overload. Case-sensitive. More...
bool | operator!= (const CFX_WideString &s1, FX_LPCWSTR s2)
| Comparison(!=) operator overload. Case-sensitive. More...
bool | operator!= (FX_LPCWSTR s1, const CFX_WideString &s2)
| Comparison(!=) operator overload. Case-sensitive. More...
bool | operator< (const CFX_WideString &lhs, const CFX_WideString &rhs)
| Comparison(<) operator overload. Case-sensitive. More...

## Basic Unicode character attribute routines
FX_WCHAR | FXWCHAR_GetUpper (FX_WCHAR wchar)
| Convert to upper-case letter. More...
FX_WCHAR | FXWCHAR_GetLower (FX_WCHAR wchar)
| Convert to lower-case letter. More...
FX_BOOL | FXWCHAR_IsWordBreak (FX_WCHAR wchar)
| Check if the unicode can break a word. More...
FX_BOOL | FXWCHAR_IsSpace (FX_WCHAR wchar)
| Check if the unicode is space. More...

## text direction defines
#define | FXWCHAR_LTR 0
| Left to right order.
#define | FXWCHAR_RTL 1
| Right to left order.
#define | FXWCHAR_UNKNOWN 2
| Not sure about the order or don't care.

## OS Defines
#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_LINUX_DESKTOP_ 4
| Linux Desktop OS.
#define | _FX_LINUX_EMBEDDED_ 5
| Embedded Linux OS.
#define | _FX_SYMBIAN_ 6
| Symbian OS (from 7.0)
#define | _FX_MACOSX_ 7
| MAC OS X.
#define | _FX_EMBEDDED_ 8
| Embedded OS.
#define | _FX_SOLARIS_ 9
| Solaris 8 or later.
#define | _FX_PALMOS_ 10
| PalmOS (5.0 or later)
#define | _FX_NETBSD_ 11
| NetBSD.
#define | _FX_ANDROID_ 12
| Android.
#define | _FX_VXWORKS_ 13
| VxWorks.
#define | _FX_MTK_ 14
| Media Tech.
#define | _FX_IOS_ 15
| IOS.
#define | _FXM_PLATFORM_WINDOWS_ 1
| Windows OS platformas.
#define | _FXM_PLATFORM_LINUX_ 2
| Linux OS platformas.
#define | _FXM_PLATFORM_APPLE_ 3
| Apple OS platformas.
#define | _FXM_PLATFORM_ANDROID_ 4
| Android OS platformas.
#define | _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_
#define | _CRT_SECURE_NO_WARNINGS
| Disable the security enhancements in the CRT.
#define | NOMINMAX
#define | _FX_WINAPI_PARTITION_DESKTOP_

## Compiler Defines
#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.
#define | _FX_GCC_ 4
| GNU C++ Compiler.
#define | _FX_ADS_ 5
| ADS 1.2 Compiler.
#define | _FX_RVCT_ 6
| RVCT 2.1 Compiler.
#define | _FX_IARCC_ 7
| IAR C/C++ Compiler.
#define | _FX_NOKIA_X86_ 8
| Nokia X86 Compiler.
#define | _FX_METROWERKS_ 9
| Metrowerks C/C++ Compiler (with MSL)
#define | _FX_PACC_ 10
| Protein C/C++ Compiler (used by PalmOS)
#define | _FX_TMS470_ 11
| TMS470.
#define | _FX_MIPS_SDE_ 12
| MIPS SDE.

## CPU Defines
#define | _FX_X86_ 1
| 32-bit x86 CPU
#define | _FX_ARM_ 2
| ARM.
#define | _FX_POWERPC_ 3
| Power PCPower PC.
#define | _FX_SPARC_ 4
| Sparc.
#define | _FX_IA64_ 5
| IA64.
#define | _FX_MIPS_ 6
| MIPS.
#define | _FX_X64_ 7
| 64-bit x86 CPU
#define | _FX_ARM64_ 8
| ARM64.
#define | _FX_MIPS64_ 9
| MIPS64.
#define | _FX_LOONGARCH64_ 10
| Loongarch64.

## 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_LITTLE_ENDIAN_ 2
| little endian
#define | _FX_ENDIAN_
| Current Byte Order. More...

## Target Defines
#define | _FX_DEFAULT_TARGET_ 0
| The default sdk information.
#define | _FX_BREW_ 1
| Brew SDK.

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

## Byte string operations
#define | FXSYS_sprintf
| Write formatted data to a ANSIC string.
#define | FXSYS_snprintf
| Write formatted data to a ANSIC string, with max length.
#define | FXSYS_vsnprintf vsnprintf
#define | FXSYS_vsprintf
| Write formatted output using a pointer to a list of arguments.
#define | FXSYS_strchr
| Find a character in a ANSIC string.
#define | FXSYS_strlen
| Get the length of a ANSIC string.
#define | FXSYS_strncmp
| Compare characters of two ANSIC strings.
#define | FXSYS_strcmp
| Compare ANSIC strings.
#define | FXSYS_strcpy
| Copy an ANSIC string.
#define | FXSYS_strncpy
| Copy an ANSIC string with length limitation.
#define | FXSYS_strstr
| Find a substring.

## File operations
#define | FXSYS_FILE
| File structure.
#define | FXSYS_fopen
| Open a file.
#define | FXSYS_fclose
| Close a file.
#define | FXSYS_SEEK_END
| End of file.
#define | FXSYS_SEEK_SET
| Beginning of 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_fread
| Reads data from a file.
#define | FXSYS_fwrite
| Writes data to a file.
#define | FXSYS_fprintf
| Print formatted data to a file.
#define | FXSYS_fflush
| Flush file.
#define | FXSYS_wfopen
| Open a file using wide-string parameters. Only supported on Windows platforms now.

## Wide string operations
#define | FXSYS_wcslen
| Get the length of a wide-character string.
#define | FXSYS_wcscmp
| Compare wide-character strings.
#define | FXSYS_wcschr
| Find a wide-character in a wide-character string.
#define | FXSYS_wcsstr
| Find a sub-wide-character-string.
#define | FXSYS_wcsncmp
| Compare characters of two wide-character strings.
#define | FXSYS_vswprintf
| Write formatted output wide character string using a pointer to a list of arguments.
#define | FXSYS_mbstowcs
| Converts a sequence of multi-byte characters to a corresponding sequence of wide characters.
#define | FXSYS_wcstombs
| Converts a sequence of wide characters to a corresponding sequence of multi-byte characters.

## Memory block operations
#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_memchr
| Search for a byte in a memory block.

## Memory utilities
void * | FXSYS_memcpy32 (void *dst, const void *src, size_t size)
| Copy buffer data from source to destination. More...
FX_INT32 | FXSYS_memcmp32 (const void *buf1, const void *buf2, size_t size)
| Compare data in two buffers. 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...
void * | FXSYS_memmove32 (void *dst, const void *src, size_t size)
| Move source buffer data into destination. More...

## Math functions
#define | FXSYS_pow
| Calculate the power. FXSYS_pow(x,y) means x^y.
#define | FXSYS_sqrt
| Calculate the square root. FXSYS_sqrt(x) means sqrt(x).
#define | FXSYS_fabs
| Calculate the absolute. FXSYS_fabs(x) means |x|.
#define | FXSYS_atan2
| Calculate the arctangent. FXSYS_atan2(y,x) means atan(y/x).
#define | FXSYS_ceil
| Calculate the ceiling of a value.
#define | FXSYS_floor
| Calculate the floor of a value.
#define | FXSYS_cos
| Calculate the cosine of a floating-point number from a radian argument.
#define | FXSYS_acos
| Calculate the arccosine of a floating-point number, in radians.
#define | FXSYS_sin
| Calculate the sine of a floating-point number from a radian argument.
#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_fmod
| Calculate the floating-point remainder.
#define | FXSYS_abs
| A macro that return the absolute value.

## Detailed Description

## Macro Definition Documentation

## ◆ _FX_ENDIAN_

#define _FX_ENDIAN_

Current Byte Order.

Now it can be:

- _FX_BIG_ENDIAN_
- _FX_LITTLE_ENDIAN_

## ◆ FX_BSTRC

#define FX_BSTRC | ( |  | str | ) | CFX_ByteStringC(str, sizeof str-1)

All application should use the following macro when specifying a string constant. "str" must be a character string constant.

Note
  For example:
  FX_BSTRC("abc").

## ◆ FX_WSTRC

#define FX_WSTRC | ( |  | wstr | ) | CFX_WideStringC((FX_LPCWSTR)wstr, sizeof(wstr) / sizeof(FX_WCHAR) - 1)

All application should use the following macro when specifying a wide string constant. "wstr" must be a wide string constant.

For example:

FX_WSTRC(L"abc").

## Typedef Documentation

## ◆ FPDF_OOM_Handler

typedef void(* FPDF_OOM_Handler) (FXMEM_FoxitMgr *pFoxitMgr, void *param)

the prototype of the Out-Of-Memory handler.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | param | A generic typeless pointer for user data.

Returns
  None.

## ◆ FX_DWORD

typedef unsigned long FX_DWORD

32-bit unsigned integer.

TYPE LP32 ILP32 LP64 ILP64 LLP64 CHAR 8 8 8 8 8 SHORT 16 16 16 16 16 INT 16 32 32 64 32 LONG 32 32 64 64 32 LONG LONG 64 64 64 64 64 POINTER 32 32 64 64 64

## ◆ PD_CALLBACK_FREEDATA

typedef void(* PD_CALLBACK_FREEDATA) (FX_LPVOID pData)

Prototype of callback function provided by custom module for deallocating private data.

## Enumeration Type Documentation

## ◆ FX_ProgressiveStatus

enum FX_ProgressiveStatus

Enumeration for progressive status.

Values of this enumeration should be used alone.

Enumerator
Ready | Ready.
ToBeContinued | To be continued.
Found | Found.
NotFound | Not Found.
Failed | Failed.
Done | Done.

## Function Documentation

## ◆ CFX_ByteStringC()

CFX_ByteStringC::CFX_ByteStringC | ( | const CFX_ByteString & | src | ) |
| inline

Construct from a byte string.

Parameters

  [in] | src | constant ref to a CFX_ByteString object.

## ◆ CFX_WideStringC()

CFX_WideStringC::CFX_WideStringC | ( | const CFX_WideString & | src | ) |
| inline

Construct from a wide string.

Parameters

  [in] | src | constant ref to a CFX_ByteString object.

## ◆ FX_atof()

FX_FLOAT FX_atof | ( | FX_BSTR | str | ) |

Convert a non-buffered byte string to a floating-point number.

Parameters

  [in] | str | A non-buffered byte string.

Returns
  A floating-point number.

## ◆ FX_atonum()

void FX_atonum | ( | FX_BSTR | str,
|  | FX_BOOL & | bInteger,
|  | void * | pData,
|  | int | sizeOfData = `4`
| ) |  |

Convert a non-buffered byte string to a number.

Parameters

  [in] | str | A non-buffered byte string.
  [out] | bInteger | Non-zero values means the string can convert to a number, otherwise can not.
  [out] | pData | It receives the converted number.
  [in] | sizeOfData | Size of pData. Default value: 4.

Returns
  None.

## ◆ FX_CloseFolder()

void FX_CloseFolder | ( | void * | handle | ) |

Close folder handle.

Parameters

  [in] | handle | folder handle returned by FX_OpenFolder function.

Returns
  None.

## ◆ FX_CreateDefaultFileAccess()

IFX_FileAccess* FX_CreateDefaultFileAccess | ( | FX_WSTR | wsPath,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Create a CRT based file I/O interface.

Parameters

  [in] | wsPath | File path.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileAccess interface. NULL means failure. Please call function IFX_FileAccess::Release to destroy the returned object when not use it any more.

## ◆ FX_CreateFileRead() [1/2]

IFX_FileRead* FX_CreateFileRead | ( | FX_LPCSTR | filename,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access) Create a CRT based file reading interface.

Parameters

  [in] | filename | File name, using MBCS file name.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileRead interface. Please call function IFX_FileRead::Release to destroy the returned object when not use it any more.

## ◆ FX_CreateFileRead() [2/2]

IFX_FileRead* FX_CreateFileRead | ( | FX_LPCWSTR | filename,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access) Create a CRT based file reading interface.

Parameters

  [in] | filename | File name, using Unicode file name.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileRead interface. Please call function IFX_FileRead::Release to destroy the returned object when not use it any more.

## ◆ FX_CreateFileStream() [1/2]

IFX_FileStream* FX_CreateFileStream | ( | FX_LPCSTR | filename,
|  | FX_DWORD | dwModes,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access) Create a CRT based file I/O interface.

Parameters

  filename | File name, using MBCS file name.
  dwModes |
  pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileStream interface. NULL means failure. Please call function IFX_FileStream::Release to destroy returned object when not use it any more.

## ◆ FX_CreateFileStream() [2/2]

IFX_FileStream* FX_CreateFileStream | ( | FX_LPCWSTR | filename,
|  | FX_DWORD | dwModes,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access) Create a CRT based file I/O interface.

Parameters

  filename | File name, using Unicode file name.
  dwModes |
  pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileStream interface. NULL means failure. Please call function IFX_FileStream::Release to destroy returned object when not use it any more.

## ◆ FX_CreateFileWrite() [1/2]

IFX_FileWrite* FX_CreateFileWrite | ( | FX_LPCSTR | filename,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access (fopen, ...)) Create a CRT based file writing interface.

Parameters

  [in] | filename | File name, using MBCS file name.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileWrite interface. Please call function IFX_FileWrite::Release to destroy returned object when not use it any more.

## ◆ FX_CreateFileWrite() [2/2]

IFX_FileWrite* FX_CreateFileWrite | ( | FX_LPCWSTR | filename,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

(Available only for platforms supporting CRT file access (fopen, ...)) Create a CRT based file writing interface.

Parameters

  [in] | filename | File name, using unicode file name.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  An instance of IFX_FileWrite interface. Please call function IFX_FileWrite::Release to destroy returned object when not use it any more.

## ◆ FX_CreateFolder() [1/2]

FX_BOOL FX_CreateFolder | ( | FX_LPCSTR | path | ) |

Create new folder.

Parameters

  [in] | path | path name of folder.

Returns
  true means success, while false means failure.

## ◆ FX_CreateFolder() [2/2]

FX_BOOL FX_CreateFolder | ( | FX_LPCWSTR | path | ) |

Create new folder.

Parameters

  [in] | path | path name of folder.

Returns
  true means success, while false means failure.

## ◆ FX_CreateMemoryStream() [1/2]

IFX_MemoryStream* FX_CreateMemoryStream | ( | FX_LPBYTE | pBuffer,
|  | size_t | nSize,
|  | FX_BOOL | bTakeOver = `false`,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Creates a stream object by a given memory buffer. This function creates a consecutive memory stream object.

Parameters

  [in] | pBuffer | A memory buffer to read/write data.
  [in] | nSize | Buffer size, in bytes.
  [in] | bTakeOver | Indicates whether need to take over parameter pBuffer. If this is true, parameter pBuffer will release internally when destroy returned IFX_MemoryStream object. Default value: false.
  [in] | pAllocator | Pointer to IFX_Allocator object, this specifies an allocator. If this is NULL, default allocator is used. Default value: NULL.

Returns
  An instance of IFX_MemoryStream interface. NULL means failure.

## ◆ FX_CreateMemoryStream() [2/2]

IFX_MemoryStream* FX_CreateMemoryStream | ( | FX_BOOL | bConsecutive = `false`,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Create a memory stream object. Memory buffer will be created internally, and the size will increase when need more space.

Parameters

  [in] | bConsecutive | Indicates whether to create a consecutive memory stream. true means to create a consecutive memory stream, while false means to create a non-consecutive stream. Default value: false.
  [in] | pAllocator | Pointer to IFX_Allocator object which specifies an allocator. NULL means to use default allocator. Default value: NULL.

Returns
  An instance of IFX_MemoryStream interface. NULL means failure.

## ◆ FX_DecodeURI()

CFX_WideString FX_DecodeURI | ( | const CFX_ByteString & | bsURI | ) |

A simple URI Decode.

Parameters

  [in] | bsURI | A URI string to be decoded.

Returns
  The decoded URI string.

## ◆ FX_EncodeURI()

CFX_ByteString FX_EncodeURI | ( | const CFX_WideString & | wsURI | ) |

A simple URI encode.

Parameters

  [in] | wsURI | A URI string to be encoded.

Returns
  The encoded URI string.

## ◆ FX_File_Close()

void FX_File_Close | ( | FX_HFILE | hFile,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Close file.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  None.

## ◆ FX_File_Copy() [1/2]

FX_BOOL FX_File_Copy | ( | FX_BSTR | fileNameSrc,
|  | FX_BSTR | fileNameDst
| ) |  |

Copy file.

Parameters

  [in] | fileNameSrc | Source file path name.
  [in] | fileNameDst | Destination file path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Copy() [2/2]

FX_BOOL FX_File_Copy | ( | FX_WSTR | fileNameSrc,
|  | FX_WSTR | fileNameDst
| ) |  |

Copy file.

Parameters

  [in] | fileNameSrc | Source file path name.
  [in] | fileNameDst | Destination file path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Delete() [1/2]

FX_BOOL FX_File_Delete | ( | FX_BSTR | fileName | ) |

Delete file.

Parameters

  [in] | fileName | File path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Delete() [2/2]

FX_BOOL FX_File_Delete | ( | FX_WSTR | fileName | ) |

Delete file.

Parameters

  [in] | fileName | File path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Exist() [1/2]

FX_BOOL FX_File_Exist | ( | FX_BSTR | fileName | ) |

Determine whether a file exists or not.

Parameters

  [in] | fileName | File path name.

Returns
  true means file exists, while false means file does not exist.

## ◆ FX_File_Exist() [2/2]

FX_BOOL FX_File_Exist | ( | FX_WSTR | fileName | ) |

Determine whether a file exists or not.

Parameters

  [in] | fileName | File path name.

Returns
  true means file exists, while false means file does not exist.

## ◆ FX_File_Flush()

FX_BOOL FX_File_Flush | ( | FX_HFILE | hFile | ) |

Flush internal buffer if need.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.

Returns
  true means success, while false means failure.

## ◆ FX_File_GetPosition()

FX_INT64 FX_File_GetPosition | ( | FX_HFILE | hFile | ) |

Get the current file accessing position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.

Returns
  The current file accessing position from the beginning of file. -1 means failure.

## ◆ FX_File_GetSize()

FX_INT64 FX_File_GetSize | ( | FX_HFILE | hFile | ) |

Get file size.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.

Returns
  File size. 0 means file is empty or failure.

## ◆ FX_File_Move() [1/2]

FX_BOOL FX_File_Move | ( | FX_BSTR | fileNameSrc,
|  | FX_BSTR | fileNameDst
| ) |  |

Move file.

Parameters

  [in] | fileNameSrc | Source file path name.
  [in] | fileNameDst | Destination file path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Move() [2/2]

FX_BOOL FX_File_Move | ( | FX_WSTR | fileNameSrc,
|  | FX_WSTR | fileNameDst
| ) |  |

Move file.

Parameters

  [in] | fileNameSrc | Source file path name.
  [in] | fileNameDst | Destination file path name.

Returns
  true means success, while false means failure.

## ◆ FX_File_Open() [1/2]

FX_HFILE FX_File_Open | ( | FX_BSTR | fileName,
|  | FX_DWORD | dwMode,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Open file with specified accessing mode.

Parameters

  [in] | fileName | File path name which specifies a file to be opened.
  [in] | dwMode | File accessing mode. Please refer to values starting from ::FX_FILEMODE_Write and this should be one of these values.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  File handler. NULL means failure.

## ◆ FX_File_Open() [2/2]

FX_HFILE FX_File_Open | ( | FX_WSTR | fileName,
|  | FX_DWORD | dwMode,
|  | IFX_Allocator * | pAllocator = `0`
| ) |  |

Open file with specified accessing mode.

Parameters

  [in] | fileName | File path name which specifies a file to be opened.
  [in] | dwMode | File accessing mode. Please refer to values starting from ::FX_FILEMODE_Write and this should be one of these values.
  [in] | pAllocator | An allocator. Default value: NULL.

Returns
  File handler. NULL means failure.

## ◆ FX_File_Read()

size_t FX_File_Read | ( | FX_HFILE | hFile,
|  | void * | pBuffer,
|  | size_t | szBuffer
| ) |  |

Read data from the current file accessing position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [out] | pBuffer | Buffer to receive data.
  [in] | szBuffer | Buffer size, in bytes.

Returns
  The size of data read from file. 0 means there is no data or failure.

## ◆ FX_File_ReadPos()

size_t FX_File_ReadPos | ( | FX_HFILE | hFile,
|  | void * | pBuffer,
|  | size_t | szBuffer,
|  | FX_INT64 | pos
| ) |  |

Read data from specified position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [out] | pBuffer | Buffer to receive data.
  [in] | szBuffer | Buffer size, in bytes.
  [in] | pos | Position from which to read data, from the beginning of file.

Returns
  The size of data read from file. 0 means there is no data or failure.

## ◆ FX_File_SetPosition()

FX_INT64 FX_File_SetPosition | ( | FX_HFILE | hFile,
|  | FX_INT64 | pos
| ) |  |

Set the current file accessing position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [in] | pos | The new accessing position.

Returns
  The current file accessing position from the beginning of file. -1 means failure.

## ◆ FX_File_Truncate()

FX_BOOL FX_File_Truncate | ( | FX_HFILE | hFile,
|  | FX_INT64 | szFile
| ) |  |

Truncate file size.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [in] | szFile | New file size.

Returns
  true means success, while false means failure.

## ◆ FX_File_Write()

size_t FX_File_Write | ( | FX_HFILE | hFile,
|  | const void * | pBuffer,
|  | size_t | szBuffer
| ) |  |

Write data from the current file accessing position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [in] | pBuffer | Buffer of data.
  [in] | szBuffer | Data size, in bytes.

Returns
  The size of data write into file. If return value is less than szBuffer, that means failure.

## ◆ FX_File_WritePos()

size_t FX_File_WritePos | ( | FX_HFILE | hFile,
|  | const void * | pBuffer,
|  | size_t | szBuffer,
|  | FX_INT64 | pos
| ) |  |

Write data at specified position.

Parameters

  [in] | hFile | File handler returned by function ::FX_File_Open.
  [in] | pBuffer | Buffer of data.
  [in] | szBuffer | Data size, in bytes.
  [in] | pos | Position from which to write data, from the beginning of file.

Returns
  The size of data write into file. If return value is less than szBuffer, that means failure.

## ◆ FX_ftoa()

FX_STRSIZE FX_ftoa | ( | FX_FLOAT | f,
|  | FX_LPSTR | buf,
|  | int | precision = `0`
| ) |  |

Convert float to byte string.

Parameters

  [in] | f | Float number.
  [out] | buf | Buffer of float string, buf should have 32 bytes at least.
  [in] | precision | The number of decimal digits. Default value: 0.

Returns
  Length of formatted float string in buf, in bytes.

## ◆ FX_GetFolderSeparator()

FX_WCHAR FX_GetFolderSeparator | ( |  | ) |

Get folder separator for the system. Most likely it's either /' or '\'.

Returns
  Folder separator.

## ◆ FX_GetNextFile() [1/2]

FX_BOOL FX_GetNextFile | ( | void * | handle,
|  | CFX_ByteString & | filename,
|  | FX_BOOL & | bFolder,
|  | FX_LPCSTR | absPath = `0`
| ) |  |

Read next entry in the folder.

Parameters

  [in] | handle | Folder handle returned by function ::FX_OpenFolder.
  [out] | filename | Receives file name when find a folder item.
  [out] | bFolder | Indicates filename is a sub-folder or normal file.
  [in] | absPath | Absolute path. Default value: NULL.

Returns
  true means success, which false means that reach end of folder.

## ◆ FX_GetNextFile() [2/2]

FX_BOOL FX_GetNextFile | ( | void * | handle,
|  | CFX_WideString & | filename,
|  | FX_BOOL & | bFolder,
|  | FX_LPCSTR | absPath = `0`
| ) |  |

Read next entry in the folder.

Parameters

  [in] | handle | Folder handle returned by function ::FX_OpenFolder.
  [out] | filename | Receives file name when find a folder item.
  [out] | bFolder | Indicates filename is a sub-folder or normal file.
  [in] | absPath | Absolute path. Default value: NULL.

Returns
  true means success, which false means that reach end of folder.

## ◆ FX_IsFilePathExist()

FX_BOOL FX_IsFilePathExist | ( | FX_LPCWSTR | path | ) |

Check if the path exists, including file path and folder path.

Parameters

  [in] | path | Path name of file or folder.

Returns
  true means input path exists, while false means input path does not exist.

## ◆ FX_OpenFolder() [1/2]

void* FX_OpenFolder | ( | FX_LPCSTR | path | ) |

Open a folder for reading.

Parameters

  [in] | path | Path name of folder.

Returns
  Folder handle. NULL means failure.

## ◆ FX_OpenFolder() [2/2]

void* FX_OpenFolder | ( | FX_LPCWSTR | path | ) |

Open a folder for reading.

Parameters

  [in] | path | Path name of folder.

Returns
  Folder handle. NULL means failure.

## ◆ FX_UrlDecode()

CFX_WideString FX_UrlDecode | ( | const CFX_ByteString & | bsUrl | ) |

A simple URL decode.

Parameters

  [in] | bsUrl | A URL string to be decoded.

Returns
  The decoded URL string.

## ◆ FX_UrlEncode()

CFX_ByteString FX_UrlEncode | ( | const CFX_WideString & | wsUrl | ) |

A simple URL encode.

Parameters

  [in] | wsUrl | A URL string to be encoded.

Returns
  The encoded URL string.

## ◆ FXMEM_Alloc()

void* FXMEM_Alloc | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | size_t | size,
|  | int | flags
| ) |  |

Foxit basic memory allocation function.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | size | The size in bytes to allocate.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_AllocDebug()

void* FXMEM_AllocDebug | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | size_t | size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Foxit basic memory allocation function in debug-mode.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | size | The size in bytes to allocate.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_CollectAll()

void FXMEM_CollectAll | ( | FXMEM_FoxitMgr * | pFoxitMgr | ) |

Release all memory blocks allocated by a Foxit manager. This function is only supported on embedded systems.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.

Returns
  None.

## ◆ FXMEM_CreateFixedMgr()

FXMEM_FoxitMgr* FXMEM_CreateFixedMgr | ( | void * | pMemory,
|  | size_t | size,
|  | FXMEM_SystemMgr2 * | pExtender
| ) |  |

Create a Foxit manager from a pre-allocated, fixed memory buffer.

This form of Foxit manager is typically used on embedded systems where memory is limited and can be dedicated to single task. The application is responsible to allocate and free the fixed memory buffer. Buffer size can't be lower than 512KB, there is no upper limit. Now the fixed memory manager supports extensible pool. If parameter pExtender is not NULL, then when current memory pool runs out, it will ask for more from the system.

Parameters

  [in] | pMemory | A pointer to a memory block.
  [in] | size | The size in bytes of the memory block pointed by parameter pMemory.
  [in] | pExtender | A pointer to a FXMEM_SystemMgr2 object.

Returns
  A pointer to a FXMEM_FoxitMgr object.

## ◆ FXMEM_CreateFoxitMgr()

FXMEM_FoxitMgr* FXMEM_CreateFoxitMgr | ( | FXMEM_SystemMgr * | pSystemMgr | ) |

Create a Foxit manager. A system manager must be provided for actual allocation.

On desktop platforms, you don't have to create a Foxit manager to use memory allocation, because FPDFAPI comes with a default Foxit manager (and underlying default system manager). But if your application uses non-default system manager, you will have to create a new Foxit manager that makes use of the custom system manager.

Parameters

  [in] | pSystemMgr | A pointer to a FXMEM_SystemMgr object.

Returns
  A pointer to a FXMEM_FoxitMgr object.

## ◆ FXMEM_CreateMemoryMgr()

FXMEM_FoxitMgr* FXMEM_CreateMemoryMgr | ( | size_t | size,
|  | FX_BOOL | extensible
| ) |  |

Create a fixed memory manager as default implementation.

Parameters

  [in] | size | Initial size of memory pool, in bytes. It should be not less than 8MB(1024 * 1024 * 8).
  [in] | extensible | If it's true, memory pool will extend if need more space. And false means memory cannot be extended.

Returns
  A pointer to a FXMEM_FoxitMgr object.

Note
  If parameter extensible is false and there is no enough space to allocate, FX_Alloc or FX_Realloc will return NULL directly. For extensible memory manager, it will try to request more memory pools to allocate.

## ◆ FXMEM_CreatePyMgr()

FXMEM_FoxitMgr* FXMEM_CreatePyMgr | ( |  | ) |

Create a Python manager. A fast, special-purpose memory allocator for small blocks, to be used on top of a general-purpose malloc – heavily based on previous art.

On desktop platforms, you don't have to create a Foxit manager to use memory allocation, because FPDFAPI comes with a default Foxit manager (and underlying default system manager). But if your application uses non-default system manager, you can create a new Python manager that makes use of the custom system manager.

Returns
  A pointer to a FXMEM_FoxitMgr object.

## ◆ FXMEM_DefaultAlloc()

void* FXMEM_DefaultAlloc | ( | size_t | byte_size,
|  | int | flags
| ) |  |

Default allocation function using default Foxit memory manager for current module.

Parameters

  [in] | byte_size | The size in bytes to allocate.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultAlloc2()

void* FXMEM_DefaultAlloc2 | ( | size_t | units,
|  | size_t | unit_size,
|  | int | flags
| ) |  |

Default allocation function using default Foxit memory manager for current module.

Parameters

  [in] | units | Number of units to allocate.
  [in] | unit_size | The byte size of each unit.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultAllocDebug()

void* FXMEM_DefaultAllocDebug | ( | size_t | size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Default debug-mode allocation function using default Foxit memory manager for current module.

Parameters

  [in] | size | The size in bytes to allocate.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultAllocDebug2()

void* FXMEM_DefaultAllocDebug2 | ( | size_t | units,
|  | size_t | unit_size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Default debug-mode allocation function using default Foxit memory manager for current module.

Parameters

  [in] | units | Number of units to allocate.
  [in] | unit_size | The byte size of each unit.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultFree()

void FXMEM_DefaultFree | ( | void * | pointer,
|  | int | flags
| ) |  |

Default free function using default Foxit memory manager for current module.

Parameters

  [in] | pointer | Address of a memory block.
  [in] | flags | Memory allocation attributes.

Returns
  None.

## ◆ FXMEM_DefaultRealloc()

void* FXMEM_DefaultRealloc | ( | void * | pointer,
|  | size_t | new_size,
|  | int | flags
| ) |  |

Default reallocation function using default Foxit memory manager for current module.

Parameters

  [in] | pointer | Address of the memory block to be reallocated.
  [in] | new_size | The new size in bytes to reallocate.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultRealloc2()

void* FXMEM_DefaultRealloc2 | ( | void * | pointer,
|  | size_t | units,
|  | size_t | unit_size,
|  | int | flags
| ) |  |

Default reallocation function using default Foxit memory manager for current module.

Parameters

  [in] | pointer | Address of the memory block to be reallocated.
  [in] | units | Number of units to allocate.
  [in] | unit_size | The byte size of each unit.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultReallocDebug()

void* FXMEM_DefaultReallocDebug | ( | void * | pointer,
|  | size_t | new_size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Default debug-mode reallocation function using default Foxit memory manager for current module.

Parameters

  [in] | pointer | Address of the memory block to be reallocated.
  [in] | new_size | The new size in bytes to reallocate.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_DefaultReallocDebug2()

void* FXMEM_DefaultReallocDebug2 | ( | void * | pointer,
|  | size_t | units,
|  | size_t | unit_size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Default debug-mode reallocation function using default Foxit memory manager for current module.

Parameters

  [in] | pointer | Address of the memory block to be reallocated.
  [in] | units | Number of units to allocate.
  [in] | unit_size | The byte size of each unit.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_DestroyFoxitMgr()

void FXMEM_DestroyFoxitMgr | ( | FXMEM_FoxitMgr * | pFoxitMgr | ) |

Destroy a Foxit manager instance. If the platform supports auto-collection, then all allocated memory blocks will be released.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.

Returns
  None.

## ◆ FXMEM_Free()

void FXMEM_Free | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | void * | pointer,
|  | int | flags
| ) |  |

Foxit basic memory free function.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | pointer | A pointer to a memory block.
  [in] | flags | Memory allocation attributes.

Returns
  None.

## ◆ FXMEM_GetBlockSizeInFixedMgr()

size_t FXMEM_GetBlockSizeInFixedMgr | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | void * | ptr
| ) |  |

Get the size of a memory block to which ptr points.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object, it should be created as fixed memory manager.
  [in] | ptr | A pointer to a memory block.

Returns
  Memory block size in bytes if parameter ptr locates in fixed memory manager, or 0 returns.

## ◆ FXMEM_GetDefAllocator()

IFX_Allocator* FXMEM_GetDefAllocator | ( |  | ) |

Get default allocator used by the library.

Returns
  The default IFX_Allocator pointer.

## ◆ FXMEM_GetDefaultMgr()

FXMEM_FoxitMgr* FXMEM_GetDefaultMgr | ( |  | ) |

Get default memory manager for current module.

Returns
  The default FXMEM_FoxitMgr pointer.

## ◆ FXMEM_OutputDebugTag()

void FXMEM_OutputDebugTag | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | FX_LPCSTR | tag
| ) |  |

Output a memory debug tag.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | tag | Tag string.

Returns
  None.

## ◆ FXMEM_PurgeMgr()

void FXMEM_PurgeMgr | ( | FXMEM_FoxitMgr * | pFoxitMgr | ) |

Release all excessive memory without touching any used memory. This is useful for extensible fixed memory manager (FXMEM_SystemMgr2), because we never free those additional memory pool until the memory manager destroyed.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.

Returns
  None.

## ◆ FXMEM_Realloc()

void* FXMEM_Realloc | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | void * | pointer,
|  | size_t | new_size,
|  | int | flags
| ) |  |

Foxit basic memory reallocation function.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | pointer | A pointer to a memory block.
  [in] | new_size | The size in bytes to reallocate.
  [in] | flags | Memory allocation attributes.

Returns
  Address of new memory block.

## ◆ FXMEM_ReallocDebug()

void* FXMEM_ReallocDebug | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | void * | pointer,
|  | size_t | new_size,
|  | int | flags,
|  | FX_LPCSTR | file,
|  | int | line
| ) |  |

Foxit basic memory reallocation function in debug-mode.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | pointer | A pointer to a memory block.
  [in] | new_size | The size in bytes to reallocate.
  [in] | flags | Memory allocation attributes.
  [in] | file | The name of the current source file.
  [in] | line | The line number in the current source file.

Returns
  Address of new memory block.

## ◆ FXMEM_ReportOOM()

void FXMEM_ReportOOM | ( | FXMEM_FoxitMgr * | pFoxitMgr | ) |

Report Out-of-memory (OOM).

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.

Returns
  None.

## ◆ FXMEM_ResetSystemMgr()

void FXMEM_ResetSystemMgr | ( |  | ) |

Reset Foxit system memory manager for current module.

Returns
  None.

## ◆ FXMEM_SetConfig()

void FXMEM_SetConfig | ( | const FX_MEMCONFIG * | memConfig | ) |

Set configuration of fixed memory.

This function is optional for desktop platforms, and should be called at first to change default configuration when start application before initialize fixed memory manager.

Parameters

  [in] | memConfig | A pointer to memory configuration.

Returns
  None.

## ◆ FXMEM_SetDefaultMgr()

void FXMEM_SetDefaultMgr | ( | FXMEM_FoxitMgr * | pFoxitMgr | ) |

Set default Foxit manager for current compile module (EXE, DLL, etc.).

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.

Returns
  None.

## ◆ FXMEM_SetOOMHandler()

void FXMEM_SetOOMHandler | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | FPDF_OOM_Handler | pOOMReportFunc,
|  | void * | param
| ) |  |

Setup A Out-Of-Memory handler for a Foxit memory manager.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object.
  [in] | pOOMReportFunc | A pointer a Out-Of-Memory handler.
  [in] | param | A generic typeless pointer for user data to be called back.

Returns
  None.

## ◆ FXMEM_SetPyConfig()

int FXMEM_SetPyConfig | ( | size_t | lowByteRange,
|  | size_t | highByteRange
| ) |  |

Set configuration of Python memory.

This function is optional, when config is set, Python memory manager can only allocate between lowByteRange and highByteRange.

Parameters

  [in] | lowByteRange | The specify low byte range.
  [in] | highByteRange | The specify high byte range.

Note
  . lowByteRange must to be less than or equal to highByteRange and highByteRange must be less than or equal to SMALL_REQUEST_THRESHOLD which is the max size threshold below which malloc requests are considered to be small enough in order to use preallocated memory pools.

Returns
  Zero if the function is successful; otherwise -1, parameter error.

## ◆ FXMEM_UseDebugger()

void FXMEM_UseDebugger | ( | FXMEM_FoxitMgr * | pFoxitMgr,
|  | FXMEM_Debugger * | pDebugger
| ) |  |

Use a memory debugger which capturing all memory activities. Use NULL for parameter pDebugger to stop debugging.

Parameters

  [in] | pFoxitMgr | A pointer to a FXMEM_FoxitMgr object to be debugged.
  [in] | pDebugger | A pointer to a FXMEM_Debugger object.

Returns
  None.

## ◆ FXSYS_atoi()

FX_INT32 FXSYS_atoi | ( | FX_LPCSTR | str | ) |

Convert an ANSI string to an integer.

Parameters

  [in] | str | An ANSI string.

Returns
  An integer as converted result.

## ◆ FXSYS_atoi64()

FX_INT64 FXSYS_atoi64 | ( | FX_LPCSTR | str | ) |

Convert an ANSI string to an integer.

Parameters

  [in] | str | An ANSI string.

Returns
  An integer as converted result.

## ◆ FXSYS_i64toa()

FX_LPCSTR FXSYS_i64toa | ( | FX_INT64 | value,
|  | FX_LPSTR | str,
|  | int | radix
| ) |  |

Convert an integer to an ANSI string.

Parameters

  [in] | value | An integer.
  [in] | str |
  [in] | radix | Base of value; which must be in the range 2¨C36.

Returns

## ◆ FXSYS_i64tow()

FX_LPCWSTR FXSYS_i64tow | ( | FX_INT64 | value,
|  | FX_LPWSTR | str,
|  | int | radix
| ) |  |

Convert an integer to an wide string.

Parameters

  [in] | value | An integer.
  [in] | str |
  [in] | radix | Base of value; which must be in the range 2¨C36.

Returns

## ◆ FXSYS_memcmp32()

FX_INT32 FXSYS_memcmp32 | ( | const void * | buf1,
|  | const void * | buf2,
|  | size_t | size
| ) |  |

Compare data in two buffers.

Input buffers should start from 4-bytes-aligned position, but size can be any value.

Parameters

  [in] | buf1 | First buffer pointer.
  [in] | buf2 | Second buffer pointer.
  [in] | size | Length of data to compare, in bytes.

Returns
  The result would be following:
  - The result would be less than zero if buf1 less than buf2;
  - The result would be equal to zero if buf1 identical to buf2;
  - The result would be bigger than 0, if buf2 greater than buf2.

## ◆ FXSYS_memcpy32()

void* FXSYS_memcpy32 | ( | void * | dst,
|  | const void * | src,
|  | size_t | size
| ) |  |

Copy buffer data from source to destination.

Parameter dst and src should start from 4-bytes-aligned position, but size can be any value.

Parameters

  [in,out] | dst | Destination buffer pointer.
  [in] | src | Source buffer pointer to copy from.
  [in] | size | Length of data to copy, in bytes.

Returns
  The dest buffer.

## ◆ FXSYS_memmove32()

void* FXSYS_memmove32 | ( | void * | dst,
|  | const void * | src,
|  | size_t | size
| ) |  |

Move source buffer data into destination.

Parameters

  [in,out] | dst | Destination buffer pointer.
  [in] | src | Source buffer pointer.
  [in] | size | Length of source buffer data to move, in bytes.

Returns
  The dest buffer.

## ◆ FXSYS_memset32()

void* FXSYS_memset32 | ( | void * | dst,
|  | FX_INT32 | v,
|  | size_t | size
| ) |  |

Set buffer data to specified value.

Parameter dst should start from 4-bytes-aligned position, but size can be any value.

Parameters

  [in,out] | dst | Destination buffer pointer.
  [in] | v | Value to set.
  [in] | size | Length of data to set, in bytes.

Returns
  The dest buffer.

## ◆ FXSYS_memset8()

void* FXSYS_memset8 | ( | void * | dst,
|  | FX_BYTE | v,
|  | size_t | size
| ) |  |

Set buffer data to specified value.

Parameter dst should start from 4-bytes-aligned position, but size can be any value.

Parameters

  [in,out] | dst | Destination buffer pointer.
  [in] | v | Value to set.
  [in] | size | Length of data to set, in bytes.

Returns
  The dest buffer.

## ◆ FXSYS_round()

int FXSYS_round | ( | FX_FLOAT | f | ) |

Get nearest integer.

Parameters

  [in] | f | A float value.

Returns
  The nearest integer.

## ◆ FXSYS_wtoi()

FX_INT32 FXSYS_wtoi | ( | FX_LPCWSTR | str | ) |

Convert a wide string to an integer.

Parameters

  [in] | str | A wide string.

Returns
  An integer as converted result.

## ◆ FXSYS_wtoi64()

FX_INT64 FXSYS_wtoi64 | ( | FX_LPCWSTR | str | ) |

Convert a wide string to an integer.

Parameters

  [in] | str | A wide string.

Returns
  An integer as converted result.

## ◆ FXWCHAR_GetDirection()

int FXWCHAR_GetDirection | ( | FX_WCHAR | wchar | ) |

Get text direction.

Parameters

  [in] | wchar |

Returns
  Direction value. Please refer to values starting from ::FXWCHAR_LTR and it would be one of these values.

## ◆ FXWCHAR_GetLower()

FX_WCHAR FXWCHAR_GetLower | ( | FX_WCHAR | wchar | ) |

Convert to lower-case letter.

Parameters

  [in] | wchar | A unicode character.

Returns
  The lower-case letter.

## ◆ FXWCHAR_GetUpper()

FX_WCHAR FXWCHAR_GetUpper | ( | FX_WCHAR | wchar | ) |

Convert to upper-case letter.

Parameters

  [in] | wchar | A unicode character.

Returns
  The upper-case letter.

## ◆ FXWCHAR_IsSpace()

FX_BOOL FXWCHAR_IsSpace | ( | FX_WCHAR | wchar | ) |

Check if the unicode is space.

Parameters

  [in] | wchar | A unicode character.

Returns
  true means the input unicode character is space, and false means the input unicode character is not space.

## ◆ FXWCHAR_IsWordBreak()

FX_BOOL FXWCHAR_IsWordBreak | ( | FX_WCHAR | wchar | ) |

Check if the unicode can break a word.

Parameters

  [in] | wchar | A unicode character.

Returns
  true means the input unicode character can break a word, and false means the input unicode character cannot break a word.

## ◆ operator!=() [1/5]

bool operator!= | ( | const CFX_WideString & | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(!=) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means not equal, while false means equal.

## ◆ operator!=() [2/5]

bool operator!= | ( | const CFX_WideString & | s1,
|  | const CFX_WideStringC & | s2
| ) |  |

Comparison(!=) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means not equal, while false means equal.

## ◆ operator!=() [3/5]

bool operator!= | ( | const CFX_WideStringC & | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(!=) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means not equal, while false means equal.

## ◆ operator!=() [4/5]

bool operator!= | ( | const CFX_WideString & | s1,
|  | FX_LPCWSTR | s2
| ) |  |

Comparison(!=) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide character string.

Returns
  true means not equal, while false means equal.

## ◆ operator!=() [5/5]

bool operator!= | ( | FX_LPCWSTR | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(!=) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide character string.
  [in] | s2 | The second wide string.

Returns
  true means not equal, while false means equal.

## ◆ operator+() [1/24]

CFX_ByteString operator+ | ( | FX_BSTR | str1,
|  | FX_BSTR | str2
| ) |  |
| inline

Concatenate a non-buffered byte string and a non-buffered byte string.

Parameters

  [in] | str1 | A non-buffered byte string.
  [in] | str2 | A non-buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [2/24]

CFX_ByteString operator+ | ( | FX_BSTR | str1,
|  | FX_LPCSTR | str2
| ) |  |
| inline

Concatenate a non-buffered byte string and a zero-terminated C-style string.

Parameters

  [in] | str1 | A non-buffered byte string.
  [in] | str2 | A zero-terminated C-style string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [3/24]

CFX_ByteString operator+ | ( | FX_LPCSTR | str1,
|  | FX_BSTR | str2
| ) |  |
| inline

Concatenate a zero-terminated C-style string and a non-buffered byte string.

Parameters

  [in] | str1 | A zero-terminated C-style string.
  [in] | str2 | A non-buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [4/24]

CFX_ByteString operator+ | ( | FX_BSTR | str1,
|  | FX_CHAR | ch
| ) |  |
| inline

Concatenate a non-buffered byte string and a single character or byte.

Parameters

  [in] | str1 | A non-buffered byte string.
  [in] | ch | A single character or byte.

Returns
  A CFX_ByteString object.

## ◆ operator+() [5/24]

CFX_ByteString operator+ | ( | FX_CHAR | ch,
|  | FX_BSTR | str2
| ) |  |
| inline

Concatenate a single character or byte and a non-buffered byte string.

Parameters

  [in] | ch | A single character or byte.
  [in] | str2 | A non-buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [6/24]

CFX_ByteString operator+ | ( | const CFX_ByteString & | str1,
|  | const CFX_ByteString & | str2
| ) |  |
| inline

Concatenate a buffered byte string and a buffered byte string.

Parameters

  [in] | str1 | A buffered byte string.
  [in] | str2 | A buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [7/24]

CFX_ByteString operator+ | ( | const CFX_ByteString & | str1,
|  | FX_CHAR | ch
| ) |  |
| inline

Concatenate a buffered byte string and a single character or byte.

Parameters

  [in] | str1 | A buffered byte string.
  [in] | ch | A single character or byte.

Returns
  A CFX_ByteString object.

## ◆ operator+() [8/24]

CFX_ByteString operator+ | ( | FX_CHAR | ch,
|  | const CFX_ByteString & | str2
| ) |  |
| inline

Concatenate a single character or byte and a buffered byte string.

Parameters

  [in] | ch | A single character or byte.
  [in] | str2 | A buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [9/24]

CFX_ByteString operator+ | ( | const CFX_ByteString & | str1,
|  | FX_LPCSTR | str2
| ) |  |
| inline

Concatenate a buffered byte string and a zero-terminated C-style string.

Parameters

  [in] | str1 | A buffered byte string.
  [in] | str2 | A zero-terminated C-style string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [10/24]

CFX_ByteString operator+ | ( | FX_LPCSTR | str1,
|  | const CFX_ByteString & | str2
| ) |  |
| inline

Concatenate a zero-terminated C-style string and a buffered byte string.

Parameters

  [in] | str1 | A zero-terminated C-style string.
  [in] | str2 | A buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [11/24]

CFX_ByteString operator+ | ( | const CFX_ByteString & | str1,
|  | FX_BSTR | str2
| ) |  |
| inline

Concatenate a buffered byte string and a non-buffered byte string.

Parameters

  [in] | str1 | A buffered byte string.
  [in] | str2 | A non-buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [12/24]

CFX_ByteString operator+ | ( | FX_BSTR | str1,
|  | const CFX_ByteString & | str2
| ) |  |
| inline

Concatenate a non-buffered byte string and a buffered byte string.

Parameters

  [in] | str1 | A non-buffered byte string.
  [in] | str2 | A buffered byte string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [13/24]

CFX_WideString operator+ | ( | const CFX_WideStringC & | str1,
|  | const CFX_WideStringC & | str2
| ) |  |
| inline

Concatenate a non-buffered wide string and a non-buffered wide string.

Parameters

  [in] | str1 | A non-buffered wide string.
  [in] | str2 | A non-buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [14/24]

CFX_WideString operator+ | ( | const CFX_WideStringC & | str1,
|  | FX_LPCWSTR | str2
| ) |  |
| inline

Concatenate a non-buffered byte string and a zero-terminated C-style string.

Parameters

  [in] | str1 | A non-buffered wide string.
  [in] | str2 | A zero-terminated C-style string.

Returns
  A CFX_WideString object.

## ◆ operator+() [15/24]

CFX_WideString operator+ | ( | FX_LPCWSTR | str1,
|  | const CFX_WideStringC & | str2
| ) |  |
| inline

Concatenate a zero-terminated C-style string and a non-buffered byte string.

Parameters

  [in] | str1 | A zero-terminated C-style string.
  [in] | str2 | A non-buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [16/24]

CFX_WideString operator+ | ( | const CFX_WideStringC & | str1,
|  | FX_WCHAR | ch
| ) |  |
| inline

Concatenate a non-buffered byte string and a single character or byte.

Parameters

  [in] | str1 | A non-buffered wide string.
  [in] | ch | A single character.

Returns
  A CFX_WideString object.

## ◆ operator+() [17/24]

CFX_WideString operator+ | ( | FX_WCHAR | ch,
|  | const CFX_WideStringC & | str2
| ) |  |
| inline

Concatenate a single character or byte and a non-buffered byte string.

Parameters

  [in] | ch | A single character.
  [in] | str2 | A non-buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [18/24]

CFX_WideString operator+ | ( | const CFX_WideString & | str1,
|  | const CFX_WideString & | str2
| ) |  |
| inline

Concatenate a buffered byte string and a buffered byte string.

Parameters

  [in] | str1 | A buffered wide string.
  [in] | str2 | A buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [19/24]

CFX_WideString operator+ | ( | const CFX_WideString & | str1,
|  | FX_WCHAR | ch
| ) |  |
| inline

Concatenate a buffered byte string and a single character or byte.

Parameters

  [in] | str1 | A buffered wide string.
  [in] | ch | A single character.

Returns
  A CFX_WideString object.

## ◆ operator+() [20/24]

CFX_WideString operator+ | ( | FX_WCHAR | ch,
|  | const CFX_WideString & | str2
| ) |  |
| inline

Concatenate a single character or byte and a buffered byte string.

Parameters

  [in] | ch | A single character.
  [in] | str2 | A buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [21/24]

CFX_WideString operator+ | ( | const CFX_WideString & | str1,
|  | FX_LPCWSTR | str2
| ) |  |
| inline

Concatenate a buffered wide string and a zero-terminated C-style string.

Parameters

  [in] | str1 | A buffered wide string.
  [in] | str2 | A zero-terminated C-style string.

Returns
  A CFX_WideString object.

## ◆ operator+() [22/24]

CFX_WideString operator+ | ( | FX_LPCWSTR | str1,
|  | const CFX_WideString & | str2
| ) |  |
| inline

Concatenate a zero-terminated C-style string and a buffered byte string.

Parameters

  [in] | str1 | A zero-terminated C-style string.
  [in] | str2 | A buffered wide string.

Returns
  A CFX_ByteString object.

## ◆ operator+() [23/24]

CFX_WideString operator+ | ( | const CFX_WideString & | str1,
|  | const CFX_WideStringC & | str2
| ) |  |
| inline

Concatenate a buffered byte string and a non-buffered byte string.

Parameters

  [in] | str1 | A buffered wide string.
  [in] | str2 | A non-buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator+() [24/24]

CFX_WideString operator+ | ( | const CFX_WideStringC & | str1,
|  | const CFX_WideString & | str2
| ) |  |
| inline

Concatenate a non-buffered byte string and a buffered byte string.

Parameters

  [in] | str1 | A non-buffered wide string.
  [in] | str2 | A buffered wide string.

Returns
  A CFX_WideString object.

## ◆ operator<()

bool operator< | ( | const CFX_WideString & | lhs,
|  | const CFX_WideString & | rhs
| ) |  |

Comparison(<) operator overload. Case-sensitive.

Parameters

  [in] | lhs | The left hand side wide string.
  [in] | rhs | The right hand side wide string.

Returns
  true means lhs is smaller than rhs, while false means lhs is not smaller than rhs.

## ◆ operator=() [1/2]

CFX_ByteStringC & CFX_ByteStringC::operator= | ( | const CFX_ByteString & | src | ) |
| inline

Assignment(=) operator overload. From a CFX_ByteString object.

Parameters

  [in] | src | constant ref to a CFX_ByteString object.

Returns
  A reference to current object itself.

## ◆ operator=() [2/2]

CFX_WideStringC & CFX_WideStringC::operator= | ( | const CFX_WideString & | src | ) |
| inline

Assignment(=) operator overload. From a CFX_ByteString object.

Parameters

  [in] | src | constant ref to a CFX_ByteString object.

Returns
  A reference to current object itself.

## ◆ operator==() [1/5]

bool operator== | ( | const CFX_WideString & | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(==) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means equal, while false means not equal.

## ◆ operator==() [2/5]

bool operator== | ( | const CFX_WideString & | s1,
|  | const CFX_WideStringC & | s2
| ) |  |

Comparison(==) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means equal, while false means not equal.

## ◆ operator==() [3/5]

bool operator== | ( | const CFX_WideStringC & | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(==) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide string.

Returns
  true means equal, while false means not equal.

## ◆ operator==() [4/5]

bool operator== | ( | const CFX_WideString & | s1,
|  | FX_LPCWSTR | s2
| ) |  |

Comparison(==) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide string.
  [in] | s2 | The second wide character string.

Returns
  true means equal, while false means not equal.

## ◆ operator==() [5/5]

bool operator== | ( | FX_LPCWSTR | s1,
|  | const CFX_WideString & | s2
| ) |  |

Comparison(==) operator overload. Case-sensitive.

Parameters

  [in] | s1 | The first wide character string.
  [in] | s2 | The second wide string.

Returns
  true means equal, while false means not equal.