Foxit PDF SDK
fs_base_r.h
Go to the documentation of this file.
1 
31 #ifndef _FSCRT_BASE_R_H_
32 #define _FSCRT_BASE_R_H_
33 
107 #ifdef __cplusplus
108 extern "C" {
109 #endif
110 
111 /*******************************************************************************/
112 /* Base types */
113 /* */
114 /* Basic types, handle definitions, error codes and variants */
115 /*******************************************************************************/
116 #ifndef _FSCRT_DEF_TYPE_BASETYPES_
117 #define _FSCRT_DEF_TYPE_BASETYPES_
118 
127 typedef void* FS_LPVOID;
128 
130 typedef void const* FS_LPCVOID;
131 
133 typedef int FS_BOOL;
134 
136 typedef unsigned char FS_BYTE;
137 
139 typedef unsigned short FS_WORD;
140 
142 typedef unsigned int FS_DWORD;
143 
145 typedef unsigned int FS_ARGB;
146 
148 typedef float FS_FLOAT;
149 
151 typedef char FS_CHAR;
152 
154 typedef char* FS_LPSTR;
155 
157 typedef char const* FS_LPCSTR;
158 
160 typedef int FS_RESULT;
161 
163 typedef char FS_INT8;
164 
166 typedef unsigned char FS_UINT8;
167 
169 typedef short FS_INT16;
170 
172 typedef unsigned short FS_UINT16;
173 
175 typedef int FS_INT32;
176 
178 typedef unsigned int FS_UINT32;
179 
181 #endif /* _FSCRT_DEF_TYPE_BASETYPES_ */
182 
183 #ifndef _FSCRT_DEF_HANDLE_DEFINE_
184 #define _FSCRT_DEF_HANDLE_DEFINE_
185 
186 /* Macro to define variant handle type. */
187 #define FSCRT_DEFINEHANDLE(name) typedef struct _##name {FS_LPVOID pData;} * name;
188 
189 #endif /* _FSCRT_DEF_HANDLE_DEFINE_ */
190 
191 #ifndef _FSCRT_DEF_MACRO_ERRCODE_
192 #define _FSCRT_DEF_MACRO_ERRCODE_
193 
201 #define FSCRT_ERRCODE_SUCCESS 0
202 
203 #define FSCRT_ERRCODE_ERROR -1
204 
205 #define FSCRT_ERRCODE_INVALIDMANAGER -2
206 
207 #define FSCRT_ERRCODE_INVALIDMODULE -3
208 
209 #define FSCRT_ERRCODE_UNRECOVERABLE -4
210 
211 #define FSCRT_ERRCODE_OUTOFMEMORY -5
212 
213 #define FSCRT_ERRCODE_PASSWORD -6
214 
215 #define FSCRT_ERRCODE_FORMAT -7
216 
217 #define FSCRT_ERRCODE_FILE -8
218 
219 #define FSCRT_ERRCODE_PARAM -9
220 
221 #define FSCRT_ERRCODE_INVALIDLICENSE -10
222 
223 #define FSCRT_ERRCODE_HANDLER -11
224 
225 #define FSCRT_ERRCODE_UNKNOWNSECURITYHANDLER -12
226 
227 #define FSCRT_ERRCODE_INVALIDCERTIFICATE -13
228 
229 #define FSCRT_ERRCODE_NOTFOUND -14
230 
231 #define FSCRT_ERRCODE_INVALIDTYPE -15
232 
233 #define FSCRT_ERRCODE_UNSUPPORTED -16
234 
235 #define FSCRT_ERRCODE_NOTPARSED -17
236 
237 #define FSCRT_ERRCODE_UNKNOWNSTATE -18
238 
239 #define FSCRT_ERRCODE_BUFFEROVERFLOW -19
240 
241 #define FSCRT_ERRCODE_CONFLICT -20
242 
243 #define FSCRT_ERRCODE_DATANOTREADY -21
244 
245 #define FSCRT_ERRCODE_MEMORYREBUILT -22
246 
247 #define FSCRT_ERRCODE_UNKNOWNHANDLER -23
248 
253 #define FSCRT_ERRCODE_TOBECONTINUED 1
254 
255 #define FSCRT_ERRCODE_FINISHED 2
256 
257 #define FSCRT_ERRCODE_ROLLBACK 3
258 
260 #define FSCRT_SUCCEEDED(result) ((FS_RESULT)(result) >= 0)
261 
262 #define FSCRT_FAILED(result) ((FS_RESULT)(result) < 0)
263 
265 #endif /* _FSCRT_DEF_MACRO_ERRCODE_ */
266 
267 #ifndef _FSCRT_DEF_MACRO_VT_
268 #define _FSCRT_DEF_MACRO_VT_
269 
276 #define FSCRT_VT_EMPTY 0x00000000
277 
278 #define FSCRT_VT_INT8 0x00000001
279 
280 #define FSCRT_VT_UINT8 0x00000002
281 
282 #define FSCRT_VT_INT16 0x00000003
283 
284 #define FSCRT_VT_UINT16 0x00000004
285 
286 #define FSCRT_VT_INT32 0x00000005
287 
288 #define FSCRT_VT_UINT32 0x00000006
289 
290 #define FSCRT_VT_BOOL 0x00000007
291 
292 #define FSCRT_VT_FLOAT 0x00000008
293 
294 #define FSCRT_VT_RECTF 0x00000009
295 
296 #define FSCRT_VT_LPVOID 0x80000000
297 
298 #define FSCRT_VT_LPINT8 (FSCRT_VT_LPVOID | FSCRT_VT_INT8)
299 
300 #define FSCRT_VT_LPUINT8 (FSCRT_VT_LPVOID | FSCRT_VT_UINT8)
301 
302 #define FSCRT_VT_LPINT16 (FSCRT_VT_LPVOID | FSCRT_VT_INT16)
303 
304 #define FSCRT_VT_LPUINT16 (FSCRT_VT_LPVOID | FSCRT_VT_UINT16)
305 
306 #define FSCRT_VT_LPINT32 (FSCRT_VT_LPVOID | FSCRT_VT_INT32)
307 
308 #define FSCRT_VT_LPUINT32 (FSCRT_VT_LPVOID | FSCRT_VT_UINT32)
309 
310 #define FSCRT_VT_LPBOOL (FSCRT_VT_LPVOID | FSCRT_VT_BOOL)
311 
312 #define FSCRT_VT_LPFLOAT (FSCRT_VT_LPVOID | FSCRT_VT_FLOAT)
313 
314 #define FSCRT_VT_CHAR FSCRT_VT_INT8
315 
316 #define FSCRT_VT_BYTE FSCRT_VT_UINT8
317 
318 #define FSCRT_VT_WORD FSCRT_VT_UINT16
319 
320 #define FSCRT_VT_RESULT FSCRT_VT_INT32
321 
322 #define FSCRT_VT_DWORD FSCRT_VT_UINT32
323 
324 #define FSCRT_VT_ARGB FSCRT_VT_UINT32
325 
326 #define FSCRT_VT_LPSTR FSCRT_VT_LPINT8
327 
328 #define FSCRT_VT_LPCSTR FSCRT_VT_LPINT8
329 
330 #define FSCRT_VT_LPBYTE FSCRT_VT_LPUINT8
331 
332 #define FSCRT_VT_LPWORD FSCRT_VT_LPUINT16
333 
334 #define FSCRT_VT_LPRESULT FSCRT_VT_LPINT32
335 
336 #define FSCRT_VT_LPDWORD FSCRT_VT_LPUINT32
337 
338 #define FSCRT_VT_LPARGB FSCRT_VT_LPUINT32
339 
340 #define FSCRT_VT_BSTR (FSCRT_VT_LPVOID|0x00000010)
341 
342 #define FSCRT_VT_OBJECT (FSCRT_VT_LPVOID|0x00001000)
343 
344 #endif /* _FSCRT_DEF_MACRO_VT_ */
345 
346 /*******************************************************************************/
347 /* Extend of Object Types */
348 /* */
349 /*******************************************************************************/
350 #ifndef _FSPDF_DEF_MACRO_VT_OBJECT_
351 #define _FSPDF_DEF_MACRO_VT_OBJECT_
352 
357 #define FSCRT_VT_OBJECT_LAYER (FSCRT_VT_OBJECT|0x000000001)
358 
359 #define FSCRT_VT_OBJECT_PAGEOBJECT (FSCRT_VT_OBJECT|0x000000002)
360 
361 #endif /* _FSPDF_DEF_MACRO_VT_OBJECT_ */
362 
363 #ifndef _FSCRT_DEF_STRUCTURE_VAR_
364 #define _FSCRT_DEF_STRUCTURE_VAR_
365 
371 typedef struct _FSCRT_VAR
372 {
378  union
379  {
414  } var;
415 } FSCRT_VAR;
416 
426 #define FSCRT_Var_SetInt8Value(variant, value) (variant).type = FSCRT_VT_INT8, (variant).var.int8Var = (value);
427 
436 #define FSCRT_Var_SetUInt8Value(variant, value) (variant).type = FSCRT_VT_UINT8, (variant).var.uint8Var = (value);
437 
446 #define FSCRT_Var_SetInt16Value(variant, value) (variant).type = FSCRT_VT_INT16, (variant).var.int16Var = (value);
447 
456 #define FSCRT_Var_SetUInt16Value(variant, value) (variant).type = FSCRT_VT_UINT16, (variant).var.uint16Var = (value);
457 
466 #define FSCRT_Var_SetInt32Value(variant, value) (variant).type = FSCRT_VT_INT32, (variant).var.int32Var = (value);
467 
476 #define FSCRT_Var_SetUInt32Value(variant, value) (variant).type = FSCRT_VT_UINT32, (variant).var.uint32Var = (value);
477 
486 #define FSCRT_Var_SetBooleanValue(variant, value) (variant).type = FSCRT_VT_BOOL, (variant).var.boolVar = (value);
487 
496 #define FSCRT_Var_SetFloatValue(variant, value) (variant).type = FSCRT_VT_FLOAT, (variant).var.floatVar = (value);
497 
506 #define FSCRT_Var_SetVoidPtrValue(variant, value) (variant).type = FSCRT_VT_LPVOID, (variant).var.voidPtrVar = (value);
507 
517 #define FSCRT_Var_SetInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT8, (variant).var.int8PtrVar = (value);
518 
528 #define FSCRT_Var_SetUInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT8, (variant).var.uint8PtrVar = (value);
529 
539 #define FSCRT_Var_SetInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT16, (variant).var.int16PtrVar = (value);
540 
550 #define FSCRT_Var_SetUInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT16, (variant).var.uint16PtrVar = (value);
551 
561 #define FSCRT_Var_SetInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT32, (variant).var.int32PtrVar = (value);
562 
572 #define FSCRT_Var_SetUInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT32, (variant).var.uint32PtrVar = (value);
573 
583 #define FSCRT_Var_SetBooleanPtrValue(variant, value) (variant).type = FSCRT_VT_LPBOOL, (variant).var.boolPtrVar = (value);
584 
594 #define FSCRT_Var_SetFloatPtrValue(variant, value) (variant).type = FSCRT_VT_LPFLOAT, (variant).var.floatPtrVar = (value);
595 
596 #endif /* _FSCRT_DEF_STRUCTURE_VAR_ */
597 
598 /*******************************************************************************/
599 /* String */
600 /* */
601 /* Byte string - UTF8, string encode and decode */
602 /*******************************************************************************/
603 #ifndef _FSCRT_DEF_STRUCTURE_BSTR_
604 #define _FSCRT_DEF_STRUCTURE_BSTR_
605 
613 typedef struct _FSCRT_BSTR
614 {
629 } FSCRT_BSTR;
630 
643 #define FSCRT_BSTRD(str) {str, sizeof(str) - 1}
644 
657 #define FSCRT_BSTRC(v, str) FSCRT_BSTR v = FSCRT_BSTRD(str)
658 
669 #define FSCRT_BStr_InitConstString(v, s) (v).str = s, (v).len = sizeof(s) - 1;
670 
671 #endif /* _FSCRT_DEF_STRUCTURE_BSTR_ */
672 
696 
720 
748 
788 #define FSCRT_BStr_SetConstString(bstr, str) FSCRT_BStr_Set(bstr, str, sizeof(str) - 1)
789 
806 #define FSCRT_BStr_Copy(dstStr, srcStr) FSCRT_BStr_Set(dstStr, (srcStr)->str, (srcStr)->len)
807 
808 
809 #ifndef _FSCRT_DEF_STRUCTURE_ARRAY_
810 #define _FSCRT_DEF_STRUCTURE_ARRAY_
811 
815 typedef struct _FSCRT_ARRAY
816 {
827 
828 }FSCRT_ARRAY;
829 
830 #endif /* _FSCRT_DEF_STRUCTURE_ARRAY_ */
831 
852 
876 
877 /*******************************************************************************/
878 /* File stream */
879 /* */
880 /* File access, read or write, stream I/O */
881 /*******************************************************************************/
882 #ifndef _FSCRT_DEF_HANDLE_FILE_
883 #define _FSCRT_DEF_HANDLE_FILE_
884 
886 FSCRT_DEFINEHANDLE(FSCRT_FILE);
887 
888 #endif /* _FSCRT_DEF_HANDLE_FILE_ */
889 
890 #ifndef _FSCRT_DEF_STRUCTURE_FILESIZE_
891 #define _FSCRT_DEF_STRUCTURE_FILESIZE_
892 
900 typedef struct _FSCRT_FILESIZE
901 {
907 
908 #endif /* _FSCRT_DEF_STRUCTURE_FILESIZE_ */
909 
910 #ifndef _FSCRT_DEF_HANDLER_FILE_
911 #define _FSCRT_DEF_HANDLER_FILE_
912 
922 typedef struct _FSCRT_FILEHANDLER
923 {
929 
940  void (*Release)(FS_LPVOID clientData);
941 
951  FS_DWORD (*GetSize)(FS_LPVOID clientData);
952 
970  FS_RESULT (*ReadBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPVOID buffer, FS_DWORD size);
971 
989  FS_RESULT (*WriteBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPCVOID buffer, FS_DWORD size);
990 
1007  FS_RESULT (*Flush)(FS_LPVOID clientData);
1008 
1024  FS_RESULT (*Truncate)(FS_LPVOID clientData, FS_DWORD size);
1025 
1027 
1028 #endif /* _FSCRT_DEF_HANDLER_FILE_ */
1029 
1056 FS_RESULT FSCRT_File_Create(FSCRT_FILEHANDLER* fileStream, FSCRT_FILE* file);
1057 
1058 #ifndef _FSCRT_DEF_HANDLE_LARGE_FILE_
1059 #define _FSCRT_DEF_HANDLE_LARGE_FILE_
1060 
1070  typedef struct _FSCRT_FILEHANDLER_L
1071  {
1077 
1088  void (*Release)(FS_LPVOID clientData);
1089 
1102  FS_RESULT (*GetSize)(FS_LPVOID clientData, FSCRT_FILESIZE* size);
1103 
1121  FS_RESULT (*ReadBlock)(FS_LPVOID clientData, const FSCRT_FILESIZE* offset, FS_LPVOID buffer, const FSCRT_FILESIZE* size);
1122 
1140  FS_RESULT (*WriteBlock)(FS_LPVOID clientData, const FSCRT_FILESIZE* offset, FS_LPCVOID buffer, const FSCRT_FILESIZE* size);
1141 
1158  FS_RESULT (*Flush)(FS_LPVOID clientData);
1159 
1175  FS_RESULT (*Truncate)(FS_LPVOID clientData, const FSCRT_FILESIZE* fileSize);
1176 
1178 
1179 #endif /* _FSCRT_DEF_HANDLE_LARGE_FILE_ */
1180 
1207 FS_RESULT FSCRT_File_Create_L(FSCRT_FILEHANDLER_L* fileStream, FSCRT_FILE* file);
1208 
1209 
1242 FS_RESULT FSCRT_File_CreateCacheFile(FSCRT_FILEHANDLER* fileStream, FS_DWORD chunkSize, FS_DWORD chunkCount, FS_LPVOID buffer, FSCRT_FILE* file);
1243 
1272 FS_RESULT FSCRT_File_CreateFromMemory(FS_LPVOID buffer, FS_DWORD length, FSCRT_FILE* file);
1273 
1274 #ifndef _FSCRT_DEF_MACRO_FILEMODE_
1275 #define _FSCRT_DEF_MACRO_FILEMODE_
1276 
1287 #define FSCRT_FILEMODE_WRITE 0
1288 
1289 #define FSCRT_FILEMODE_READONLY 1
1290 
1291 #define FSCRT_FILEMODE_TRUNCATE 2
1292 
1294 #endif /* _FSCRT_DEF_MACRO_FILEMODE_ */
1295 
1326 FS_RESULT FSCRT_File_CreateFromFileName(const FSCRT_BSTR* fileName, FS_DWORD fileModes, FSCRT_FILE* file);
1327 
1347 FS_RESULT FSCRT_File_GetSize(FSCRT_FILE file, FSCRT_FILESIZE* fileSize);
1348 
1373 FS_RESULT FSCRT_File_SetRange(FSCRT_FILE file, const FSCRT_FILESIZE* offset, const FSCRT_FILESIZE* length);
1374 
1396 FS_RESULT FSCRT_File_ClearRange(FSCRT_FILE file);
1397 
1419 FS_RESULT FSCRT_File_Read(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE* size, FSCRT_FILESIZE* actualSize);
1420 
1442 FS_RESULT FSCRT_File_Write(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE* size);
1443 
1465 FS_RESULT FSCRT_File_Release(FSCRT_FILE file);
1466 
1467 /*******************************************************************************/
1468 /* Library management, license controls, log file and memory management */
1469 /*******************************************************************************/
1470 #ifndef _FSCRT_DEF_MACRO_LICENSETYPE_
1471 #define _FSCRT_DEF_MACRO_LICENSETYPE_
1472 
1484 #define FSCRT_LICENSETYPE_INVALID FSCRT_ERRCODE_INVALIDLICENSE
1485 
1490 #define FSCRT_LICENSETYPE_AUTHORIZED 0
1491 
1496 #define FSCRT_LICENSETYPE_EVALUATION 1
1497 
1502 #define FSCRT_LICENSETYPE_EXPIRED 2
1503 
1505 #endif /* _FSCRT_DEF_MACRO_LICENSETYPE_ */
1506 
1507 #ifndef _FSCRT_DEF_HANDLER_MEMMGR_
1508 #define _FSCRT_DEF_HANDLER_MEMMGR_
1509 
1516 typedef struct _FSCRT_MEMMGRHANDLER
1517 {
1524 
1538  FS_LPVOID (*Alloc)(FS_LPVOID clientData, FS_DWORD size);
1539 
1555  FS_LPVOID (*Realloc)(FS_LPVOID clientData, FS_LPVOID ptr, FS_DWORD newSize);
1556 
1569  void (*Free)(FS_LPVOID clientData, FS_LPVOID ptr);
1570 
1572 
1573 #endif /* _FSCRT_DEF_HANDLER_MEMMGR_ */
1574 
1604 
1628 
1650 
1673 
1693 
1713 
1740 FS_RESULT FSCRT_License_UnlockLibrary(const FSCRT_BSTR* licenseKey, const FSCRT_BSTR* unlockCode);
1741 
1772 
1793 FS_RESULT FSCRT_Library_SetLogFile(FSCRT_FILE file);
1794 
1815 
1836 
1858 
1874 void FSCRT_Memory_Free(FS_LPVOID ptr);
1875 
1894 
1895 /*******************************************************************************/
1896 /* Thread supports */
1897 /* */
1898 /* Thread handler and finalization */
1899 /*******************************************************************************/
1900 #ifndef _FSCRT_DEF_HANDLE_THREAD_
1901 #define _FSCRT_DEF_HANDLE_THREAD_
1902 
1904 FSCRT_DEFINEHANDLE(FSCRT_THREAD);
1905 
1906 #endif /* _FSCRT_DEF_HANDLE_THREAD_ */
1907 
1908 #ifndef _FSCRT_DEF_HANDLER_THREAD_
1909 #define _FSCRT_DEF_HANDLER_THREAD_
1910 
1923 typedef void (*FSCRT_CALLBACK_THREADFINALIZE)(FSCRT_THREAD thread);
1924 
1931 typedef struct _FSCRT_THREADHANDLER
1932 {
1939 
1947  FSCRT_THREAD (*GetCurrentThread)(FS_LPVOID clientData);
1948 
1960  void (*SetThreadFinalizeCallback)(FS_LPVOID clientData, FSCRT_CALLBACK_THREADFINALIZE callbackThreadFinalize);
1961 
1963 
1964 #endif /* _FSCRT_DEF_HANDLER_THREAD_ */
1965 
1988 
2011 
2012 /*******************************************************************************/
2013 /* Common data structures */
2014 /* */
2015 /* date & time, rectangle, matrix */
2016 /*******************************************************************************/
2017 #ifndef _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2018 #define _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2019 
2021 typedef struct _FSCRT_DATETIMEZONE
2022 {
2048 
2049 #endif /* _FSCRT_DEF_STRUCTURE_DATETIMEZONE_ */
2050 
2051 #ifndef _FSCRT_DEF_STRUCTURE_RECT_
2052 #define _FSCRT_DEF_STRUCTURE_RECT_
2053 
2059 typedef struct _FSCRT_RECT
2060 {
2069 } FSCRT_RECT;
2070 
2071 #endif /* _FSCRT_DEF_STRUCTURE_RECT_ */
2072 
2073 #ifndef _FSCRT_DEF_STRUCTURE_RECTF_
2074 #define _FSCRT_DEF_STRUCTURE_RECTF_
2075 
2081 typedef struct _FSCRT_RECTF
2082 {
2091 } FSCRT_RECTF;
2092 
2093 #endif /* _FSCRT_DEF_STRUCTURE_RECTF_ */
2094 
2095 #ifndef _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2096 #define _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2097 
2103 typedef struct _FSCRT_QUADPOINTSF
2104 {
2122 
2123 #endif /* _FSCRT_DEF_STRUCTURE_QUADPOINTSF_ */
2124 
2125 #ifndef _FSCRT_DEF_STRUCTURE_MATRIX_
2126 #define _FSCRT_DEF_STRUCTURE_MATRIX_
2127 
2133 typedef struct _FSCRT_MATRIX
2134 {
2147 } FSCRT_MATRIX;
2148 
2149 #endif /* _FSCRT_DEF_STRUCTURE_MATRIX_ */
2150 
2178 FS_RESULT FSCRT_Rect_IsAdjacent(const FSCRT_RECTF* rect1, const FSCRT_RECTF* rect2,
2179  FS_FLOAT alignmentTolerance, FS_FLOAT distanceTolerance, FS_DWORD direction,
2180  FS_BOOL* adjacent);
2181 
2204 
2226 FS_RESULT FSCRT_Matrix_Scale(FSCRT_MATRIX* matrix, FS_FLOAT scaleX, FS_FLOAT scaleY);
2227 
2251 
2278 
2298 FS_RESULT FSCRT_Matrix_GetReverse(const FSCRT_MATRIX* srcMatrix, FSCRT_MATRIX* dstMatrix);
2299 
2320 FS_RESULT FSCRT_Matrix_Concat(FSCRT_MATRIX* dstMatrix, const FSCRT_MATRIX* srcMatrix);
2321 
2346 
2371 
2393 
2415 
2416 /*******************************************************************************/
2417 /* Path Data */
2418 /*******************************************************************************/
2419 #ifndef _FSCRT_DEF_HANDLE_PATHDATA_
2420 #define _FSCRT_DEF_HANDLE_PATHDATA_
2421 
2423 FSCRT_DEFINEHANDLE(FSCRT_PATHDATA);
2424 
2425 #endif /* _FSCRT_DEF_HANDLE_PATHDATA_ */
2426 
2427 #ifndef _FSCRT_DEF_MACRO_POINTTYPE_
2428 #define _FSCRT_DEF_MACRO_POINTTYPE_
2429 
2442 #define FSCRT_POINTTYPE_CLOSEFIGURE 1
2443 
2449 #define FSCRT_POINTTYPE_LINETO 2
2450 
2456 #define FSCRT_POINTTYPE_BEZIERTO 4
2457 
2463 #define FSCRT_POINTTYPE_MOVETO 6
2464 
2466 #endif /* _FSCRT_DEF_MACRO_POINTTYPE_ */
2467 
2468 #ifndef _FSCRT_DEF_MACRO_FILLMODE_
2469 #define _FSCRT_DEF_MACRO_FILLMODE_
2470 
2476 #define FSCRT_FILLMODE_NONE 0
2477 
2483 #define FSCRT_FILLMODE_ALTERNATE 1
2484 
2490 #define FSCRT_FILLMODE_WINDING 2
2491 
2493 #endif /* _FSCRT_DEF_MACRO_FILLMODE_ */
2494 
2514 FS_RESULT FSCRT_PathData_Create(FSCRT_PATHDATA* pathData);
2515 
2537 FS_RESULT FSCRT_PathData_Clear(FSCRT_PATHDATA pathData);
2538 
2558 FS_RESULT FSCRT_PathData_Release(FSCRT_PATHDATA pathData);
2559 
2579 FS_RESULT FSCRT_PathData_CountPoints(FSCRT_PATHDATA pathData, FS_INT32* count);
2580 
2606 FS_RESULT FSCRT_PathData_AddPointsCount(FSCRT_PATHDATA pathData, FS_INT32 count);
2607 
2638 FS_RESULT FSCRT_PathData_GetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT* x, FS_FLOAT* y, FS_INT32* pointType);
2639 
2672 FS_RESULT FSCRT_PathData_SetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT x, FS_FLOAT y, FS_INT32 pointType);
2673 
2694 FS_RESULT FSCRT_PathData_RemovePoint(FSCRT_PATHDATA pathData, FS_INT32 index);
2695 
2717 FS_RESULT FSCRT_PathData_MoveTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2718 
2740 FS_RESULT FSCRT_PathData_LineTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2741 
2769 FS_RESULT FSCRT_PathData_CubicBezierTo(FSCRT_PATHDATA pathData, FS_FLOAT x1, FS_FLOAT y1, FS_FLOAT x2, FS_FLOAT y2, FS_FLOAT x3, FS_FLOAT y3);
2770 
2791 FS_RESULT FSCRT_PathData_AppendRect(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2792 
2813 FS_RESULT FSCRT_PathData_AppendEllipse(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2814 
2834 FS_RESULT FSCRT_PathData_CloseFigure(FSCRT_PATHDATA pathData);
2835 
2855 FS_RESULT FSCRT_PathData_Transform(FSCRT_PATHDATA pathData, const FSCRT_MATRIX* matrix);
2856 
2857 /*******************************************************************************/
2858 /* Private Data */
2859 /*******************************************************************************/
2860 #ifndef _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2861 #define _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2862 
2875 
2876 #endif /* _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_ */
2877 
2900 
2921 
2944 
2945 /*******************************************************************************/
2946 /* Common objects */
2947 /*******************************************************************************/
2948 #ifndef _FSCRT_DEF_HANDLE_DOCUMENT_
2949 #define _FSCRT_DEF_HANDLE_DOCUMENT_
2950 
2952 FSCRT_DEFINEHANDLE(FSCRT_DOCUMENT);
2953 
2954 #endif /* _FSCRT_DEF_HANDLE_DOCUMENT_ */
2955 
2956 #ifndef _FSCRT_DEF_HANDLE_PAGE_
2957 #define _FSCRT_DEF_HANDLE_PAGE_
2958 
2960 FSCRT_DEFINEHANDLE(FSCRT_PAGE);
2961 
2962 #endif /* _FSCRT_DEF_HANDLE_PAGE_ */
2963 
2964 #ifndef _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2965 #define _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2966 
2968 FSCRT_DEFINEHANDLE(FSCRT_ANNOT);
2969 
2970 #endif /* _FSCRT_DEF_DEFINEHANDLE_ANNOT_ */
2971 
2972 #ifndef _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2973 #define _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2974 
2982 #define FSCRT_DOCUMENTTYPE_PDF 1
2983 
2984 #define FSCRT_DOCUMENTTYPE_FDF 2
2985 
2986 #define FSCRT_DOCUMENTTYPE_XFDF 3
2987 
2989 #endif /* _FSCRT_DEF_MACRO_DOCUMENTTYPE_ */
2990 
3011 FS_RESULT FSCRT_Doc_GetType(FSCRT_DOCUMENT document, FS_INT32* docType);
3012 
3033 FS_RESULT FSCRT_Page_GetDocument(FSCRT_PAGE page, FSCRT_DOCUMENT* document);
3034 
3057 FS_RESULT FSCRT_Annot_GetPage(FSCRT_ANNOT annot, FSCRT_PAGE* page);
3058 
3059 /*******************************************************************************/
3060 /* Progressive controls */
3061 /*******************************************************************************/
3062 #ifndef _FSCRT_DEF_HANDLE_PROGRESS_
3063 #define _FSCRT_DEF_HANDLE_PROGRESS_
3064 
3066 FSCRT_DEFINEHANDLE(FSCRT_PROGRESS);
3067 
3068 #endif /* _FSCRT_DEF_HANDLE_PROGRESS_ */
3069 
3070 #ifndef _FSCRT_DEF_HANDLER_PAUSE_
3071 #define _FSCRT_DEF_HANDLER_PAUSE_
3072 
3080 typedef struct _FSCRT_PAUSEHANDLER
3081 {
3088 
3098  FS_BOOL (*NeedPauseNow)(FS_LPVOID clientData);
3099 
3101 
3102 #endif /* _FSCRT_DEF_HANDLER_PAUSE_ */
3103 
3148 FS_RESULT FSCRT_Progress_Continue(FSCRT_PROGRESS progress, FSCRT_PAUSEHANDLER* pause);
3149 
3194 FS_RESULT FSCRT_Progress_GetPercent(FSCRT_PROGRESS progress, FS_INT32* percent);
3195 
3217 FS_RESULT FSCRT_Progress_Release(FSCRT_PROGRESS progress);
3218 
3252 FS_RESULT FSCRT_Progress_SetProperty(FSCRT_PROGRESS progress, const FSCRT_BSTR* property, const FSCRT_VAR* values, FS_INT32 count);
3253 
3254 /*******************************************************************************/
3255 /* Font access */
3256 /*******************************************************************************/
3257 #ifndef _FSCRT_DEF_HANDLE_FONT_
3258 #define _FSCRT_DEF_HANDLE_FONT_
3259 
3260 
3261 
3263 FSCRT_DEFINEHANDLE(FSCRT_FONT);
3264 
3265 #endif /* _FSCRT_DEF_HANDLE_FONT_ */
3266 
3267 #ifndef _FSCRT_DEF_MACRO_FONTSTYLE_
3268 #define _FSCRT_DEF_MACRO_FONTSTYLE_
3269 
3275 #define FSCRT_FONTSTYLE_FIXEDPITCH 1
3276 
3277 #define FSCRT_FONTSTYLE_SERIF 2
3278 
3279 #define FSCRT_FONTSTYLE_SYMBOLIC 4
3280 
3281 #define FSCRT_FONTSTYLE_SCRIPT 8
3282 
3283 #define FSCRT_FONTSTYLE_NONSYMBOLIC 32
3284 
3285 #define FSCRT_FONTSTYLE_ITALIC 64
3286 
3287 #define FSCRT_FONTSTYLE_ALLCAP 0x10000
3288 
3289 #define FSCRT_FONTSTYLE_SMALLCAP 0x20000
3290 
3291 #define FSCRT_FONTSTYLE_BOLD 0x40000
3292 
3294 #endif /* _FSCRT_DEF_MACRO_FONT_ */
3295 
3296 #ifndef _FSCRT_DEF_MACRO_STDFONT_
3297 #define _FSCRT_DEF_MACRO_STDFONT_
3298 
3304 #define FSCRT_STDFONT_COURIER 0
3305 
3306 #define FSCRT_STDFONT_COURIER_B 1
3307 
3308 #define FSCRT_STDFONT_COURIER_BI 2
3309 
3310 #define FSCRT_STDFONT_COURIER_I 3
3311 
3312 #define FSCRT_STDFONT_HELVETICA 4
3313 
3314 #define FSCRT_STDFONT_HELVETICA_B 5
3315 
3316 #define FSCRT_STDFONT_HELVETICA_BI 6
3317 
3318 #define FSCRT_STDFONT_HELVETICA_I 7
3319 
3320 #define FSCRT_STDFONT_TIMES 8
3321 
3322 #define FSCRT_STDFONT_TIMES_B 9
3323 
3324 #define FSCRT_STDFONT_TIMES_BI 10
3325 
3326 #define FSCRT_STDFONT_TIMES_I 11
3327 
3328 #define FSCRT_STDFONT_SYMBOL 12
3329 
3330 #define FSCRT_STDFONT_ZAPFDINGBATS 13
3331 
3333 #endif /* _FSCRT_DEF_MACRO_STDFONT_ */
3334 
3335 #ifndef _FSCRT_DEF_MACRO_CHARSET_
3336 #define _FSCRT_DEF_MACRO_CHARSET_
3337 
3343 #define FSCRT_CHARSET_ANSI 0
3344 
3345 #define FSCRT_CHARSET_DEFAULT 1
3346 
3347 #define FSCRT_CHARSET_SYMBOL 2
3348 
3349 #define FSCRT_CHARSET_SHIFTJIS 128
3350 
3351 #define FSCRT_CHARSET_HANGEUL 129
3352 
3353 #define FSCRT_CHARSET_GB2312 134
3354 
3355 #define FSCRT_CHARSET_CHINESEBIG5 136
3356 
3357 #define FSCRT_CHARSET_THAI 222
3358 
3359 #define FSCRT_CHARSET_EASTEUROPE 238
3360 
3361 #define FSCRT_CHARSET_RUSSIAN 204
3362 
3363 #define FSCRT_CHARSET_GREEK 161
3364 
3365 #define FSCRT_CHARSET_TURKISH 162
3366 
3367 #define FSCRT_CHARSET_HEBREW 177
3368 
3369 #define FSCRT_CHARSET_ARABIC 178
3370 
3371 #define FSCRT_CHARSET_BALTIC 186
3372 
3374 #endif /* _FSCRT_DEF_MACRO_CHARSET_ */
3375 
3376 #ifndef _FSCRT_DEF_HANDLER_FONTMAPPER_
3377 #define _FSCRT_DEF_HANDLER_FONTMAPPER_
3378 
3384 typedef struct _FSCRT_FONTMAPPERHANDLER
3385 {
3392 
3417  FS_RESULT (*MapFont)(FS_LPVOID clientData, FS_LPCSTR fontName,
3418  FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset,
3419  FSCRT_FILE* fontFile, FS_INT32* faceIndex);
3421 
3422 #endif /* _FSCRT_DEF_HANDLER_FONTMAPPER_ */
3423 
3448 
3472 FS_RESULT FSCRT_Library_AddFontFile(FSCRT_FILE fontFile);
3473 
3493 
3494 #ifndef _FSCRT_DEF_STRUCTURE_FONTFACE_
3495 #define _FSCRT_DEF_STRUCTURE_FONTFACE_
3496 
3498 typedef struct _FSCRT_FONTFACE
3499 {
3510 } FSCRT_FONTFACE;
3511 
3512 #endif /* _FSCRT_DEF_STRUCTURE_FONTFACE_ */
3513 
3539 FS_RESULT FSCRT_Font_Create(const FSCRT_BSTR* fontName, FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset, FSCRT_FONT* font);
3540 
3563 FS_RESULT FSCRT_Font_CreateStandard(FS_INT32 fontID, FSCRT_FONT* font);
3564 
3597 FS_RESULT FSCRT_Font_EnumFaces(FSCRT_FILE fontFile, FSCRT_FONTFACE* faces, FS_INT32* count);
3598 
3625 FS_RESULT FSCRT_Font_CreateFromFile(FSCRT_FILE fontFile, FS_INT32 faceIndex, FS_INT32 charset, FSCRT_FONT* font);
3626 
3646 FS_RESULT FSCRT_Font_Release(FSCRT_FONT font);
3647 
3670 FS_RESULT FSCRT_Font_GetName(FSCRT_FONT font, FSCRT_BSTR* fontName);
3671 
3693 FS_RESULT FSCRT_Font_IsBold(FSCRT_FONT font, FS_BOOL* bold);
3694 
3716 FS_RESULT FSCRT_Font_IsItalic(FSCRT_FONT font, FS_BOOL* italic);
3717 
3739 FS_RESULT FSCRT_Font_GetAscent(FSCRT_FONT font, FS_INT32* ascent);
3740 
3762 FS_RESULT FSCRT_Font_GetDescent(FSCRT_FONT font, FS_INT32* descent);
3763 
3787 FS_RESULT FSCRT_Font_GetCharBBox(FSCRT_FONT font, FS_DWORD unicode, FSCRT_RECT* bbox);
3788 
3812 FS_RESULT FSCRT_Font_GetCharWidth(FSCRT_FONT font, FS_DWORD unicode, FS_FLOAT* width);
3813 
3814 /*******************************************************************************/
3815 /* Common definitions */
3816 /* */
3817 /* Macros for search flags, ciphers */
3818 /*******************************************************************************/
3819 #ifndef _FSCRT_DEF_MACRO_SEARCHFLAG_
3820 #define _FSCRT_DEF_MACRO_SEARCHFLAG_
3821 
3827 #define FSCRT_SEARCHFLAG_MATCHCASE 1
3828 
3829 #define FSCRT_SEARCHFLAG_MATCHWHOLEWORD 2
3830 
3831 #define FSCRT_SEARCHFLAG_CONSECUTIVE 4
3832 
3834 #endif /* _FSCRT_DEF_MACRO_SEARCHFLAG_ */
3835 
3836 #ifndef _FSCRT_DEF_MACRO_CIPHER_
3837 #define _FSCRT_DEF_MACRO_CIPHER_
3838 
3844 #define FSCRT_CIPHER_NONE 0
3845 
3846 #define FSCRT_CIPHER_RC4 1
3847 
3848 #define FSCRT_CIPHER_AES 2
3849 
3851 #endif /* _FSCRT_DEF_MACRO_CIPHER_ */
3852 
3853 #ifndef _FSCRT_DEF_MACRO_OBJECTTYPE_
3854 #define _FSCRT_DEF_MACRO_OBJECTTYPE_
3855 
3861 #define FSCRT_OBJECTTYPE_UNKNOWN 0
3862 
3863 #define FSCRT_OBJECTTYPE_DOCUMENT 1
3864 
3865 #define FSCRT_OBJECTTYPE_SECTION 2
3866 
3867 #define FSCRT_OBJECTTYPE_PAGE 3
3868 
3869 #define FSCRT_OBJECTTYPE_ANNOT 4
3870 
3871 #define FSCRT_OBJECTTYPE_FORM 5
3872 
3873 #define FSCRT_OBJECTTYPE_FORMFIELD 6
3874 
3875 #define FSCRT_OBJECTTYPE_FORMCONTROL 7
3876 
3877 #define FSCRT_OBJECTTYPE_SIGNATURE 8
3878 
3879 #define FSCRT_OBJECTTYPE_PSI 9
3880 
3882 #endif /* _FSCRT_DEF_MACRO_OBJECTTYPE_ */
3883 
3884 #ifndef _FSCRT_DEF_MACRO_PAGEROTATION_
3885 #define _FSCRT_DEF_MACRO_PAGEROTATION_
3886 
3892 #define FSCRT_PAGEROTATION_0 0
3893 
3894 #define FSCRT_PAGEROTATION_90 1
3895 
3896 #define FSCRT_PAGEROTATION_180 2
3897 
3898 #define FSCRT_PAGEROTATION_270 3
3899 
3901 #endif /* _FSCRT_DEF_MACRO_PAGEROTATION_ */
3902 
3903 #ifndef _FSCRT_DEF_MACRO_LANGUAGE_
3904 #define _FSCRT_DEF_MACRO_LANGUAGE_
3905 
3911 #define FSCRT_LANGUAGE_UNK 0
3912 
3913 #define FSCRT_LANGUAGE_CHS 1
3914 
3915 #define FSCRT_LANGUAGE_CHT 2
3916 
3917 #define FSCRT_LANGUAGE_DAN 3
3918 
3919 #define FSCRT_LANGUAGE_DEU 4
3920 
3921 #define FSCRT_LANGUAGE_ENU 5
3922 
3923 #define FSCRT_LANGUAGE_ESP 6
3924 
3925 #define FSCRT_LANGUAGE_FRA 7
3926 
3927 #define FSCRT_LANGUAGE_ITA 8
3928 
3929 #define FSCRT_LANGUAGE_KOR 9
3930 
3931 #define FSCRT_LANGUAGE_JPN 10
3932 
3933 #define FSCRT_LANGUAGE_NLD 11
3934 
3935 #define FSCRT_LANGUAGE_NOR 12
3936 
3937 #define FSCRT_LANGUAGE_PTB 13
3938 
3939 #define FSCRT_LANGUAGE_SUO 14
3940 
3941 #define FSCRT_LANGUAGE_SVE 15
3942 
3944 #endif /* _FSCRT_DEF_MACRO_LANGUAGE_ */
3945 
3946 #ifndef _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3947 #define _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3948 
3950 FSCRT_DEFINEHANDLE(FSCRT_ARCHIVE);
3951 
3952 #endif /* _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_ */
3953 
3974 FS_RESULT FSCRT_Archive_Create(FSCRT_ARCHIVE* archive);
3975 
3996 FS_RESULT FSCRT_Archive_Release(FSCRT_ARCHIVE archive);
3997 
4020 FS_RESULT FSCRT_Archive_GetData(FSCRT_ARCHIVE archive, FSCRT_BSTR* data);
4021 
4043 FS_RESULT FSCRT_Archive_LoadData(FSCRT_ARCHIVE archive, const FSCRT_BSTR* data);
4044 
4045 #ifndef _FSCRT_DEF_HANDLE_POSITION_
4046 #define _FSCRT_DEF_HANDLE_POSITION_
4047 
4048 FSCRT_DEFINEHANDLE(FSCRT_POSITION);
4049 #endif /* _FSCRT_DEF_HANDLE_POSITION_ */
4050 
4051 #ifdef __cplusplus
4052 };
4053 #endif
4054  /* group FSBASE */
4056 
4057 #endif /* _FSCRT_BASE_R_H_ */
FS_RESULT FSCRT_Array_Init(FSCRT_ARRAY *array, FS_INT32 dataType)
Helper function to initialize array.
FSCRT_BSTR faceName
The face name of font.
Definition: fs_base_r.h:3505
Structure for file reading or writing (I/O).
Definition: fs_base_r.h:922
FS_FLOAT d
Coefficient d.
Definition: fs_base_r.h:2142
FS_BOOL * boolPtrVar
A pointer to boolean data.
Definition: fs_base_r.h:411
FS_RESULT FSCRT_PathData_AddPointsCount(FSCRT_PATHDATA pathData, FS_INT32 count)
Add a number of points to the given path data.
FS_UINT32 * uint32PtrVar
A pointer to unsigned 32-bit data.
Definition: fs_base_r.h:409
FS_RESULT FSCRT_Matrix_TransformRect(const FSCRT_MATRIX *matrix, FSCRT_RECT *rect)
Transform an integer rectangle by a matrix.
FS_RESULT FSCRT_Library_AddFontFile(FSCRT_FILE fontFile)
Add an additional font (typically a TrueType, Type1 or CFF font) to Foxit PDF SDK library from FSCRT_...
FS_RESULT FSCRT_Progress_Continue(FSCRT_PROGRESS progress, FSCRT_PAUSEHANDLER *pause)
Continue a progressive process.
FS_RESULT FSCRT_PathData_CountPoints(FSCRT_PATHDATA pathData, FS_INT32 *count)
Get number of points of the given path data.
FS_UINT32 uint32Var
An unsigned 32-bit integer value, or a FS_DWORD, FS_ARGB value.
Definition: fs_base_r.h:391
FS_RESULT FSCRT_PathData_Clear(FSCRT_PATHDATA pathData)
Clear all points of the given path data.
FS_BOOL italic
Judge whether a font is italic or not.
Definition: fs_base_r.h:3509
FS_RESULT FSCRT_Matrix_GetReverse(const FSCRT_MATRIX *srcMatrix, FSCRT_MATRIX *dstMatrix)
Get a reversed matrix.
FS_RESULT FSCRT_Font_IsItalic(FSCRT_FONT font, FS_BOOL *italic)
Judge whether a font object is italic or not.
FS_UINT16 minute
Minute, from 0 to 59.
Definition: fs_base_r.h:2034
Structure for rectangle, in float.
Definition: fs_base_r.h:2081
FS_RESULT FSCRT_BStr_Init(FSCRT_BSTR *bstr)
Helper function to initialize a byte string.
FS_INT32 int32Var
A signed 32-bit integer value.
Definition: fs_base_r.h:389
FS_RESULT FSCRT_License_GetType(FS_INT32 *type)
Get the current license type.
FS_FLOAT x4
X coordinate for the fourth point.
Definition: fs_base_r.h:2118
FS_UINT8 uint8Var
An unsigned 8-bit integer value, or a FS_BYTE value.
Definition: fs_base_r.h:383
FS_RESULT FSCRT_PathData_CubicBezierTo(FSCRT_PATHDATA pathData, FS_FLOAT x1, FS_FLOAT y1, FS_FLOAT x2, FS_FLOAT y2, FS_FLOAT x3, FS_FLOAT y3)
Add Bezier points to a given path data.
float FS_FLOAT
32-bit floating-point number, single precision.
Definition: fs_base_r.h:148
FS_RESULT FSCRT_Font_GetAscent(FSCRT_FONT font, FS_INT32 *ascent)
Get an ascent value of a font.
void const * FS_LPCVOID
A constant pointer to any types.
Definition: fs_base_r.h:130
FS_FLOAT f
Coefficient f.
Definition: fs_base_r.h:2146
FS_RESULT FSCRT_PathData_AppendEllipse(FSCRT_PATHDATA pathData, const FSCRT_RECTF *rect)
Add an ellipse figure to path data.
FS_RESULT FSCRT_BStr_SetLength(FSCRT_BSTR *bstr, FS_DWORD length)
Helper function to set length of a byte string.
void(* FSCRT_CALLBACK_THREADFINALIZE)(FSCRT_THREAD thread)
A callback function definition for finalizing a thread.
Definition: fs_base_r.h:1923
FS_RESULT FSCRT_Archive_Create(FSCRT_ARCHIVE *archive)
Create an archive object for serializing and de-serializing.
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1938
Structure for rectangle, in integer.
Definition: fs_base_r.h:2059
FS_RESULT FSCRT_File_Write(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE *size)
Write data to file object.
FS_RESULT FSCRT_Font_GetDescent(FSCRT_FONT font, FS_INT32 *descent)
Get a descent value of a font.
FS_RESULT FSCRT_File_ClearRange(FSCRT_FILE file)
Clear the reading range of file object, the current reading position will not be affected.
short FS_INT16
16-bit signed integer.
Definition: fs_base_r.h:169
FS_RESULT FSCRT_Font_Create(const FSCRT_BSTR *fontName, FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset, FSCRT_FONT *font)
Create a font with the given attributes.
Structure for large file size.
Definition: fs_base_r.h:900
FS_RESULT FSCRT_Font_GetName(FSCRT_FONT font, FSCRT_BSTR *fontName)
Retrieve a face name of a font and return a name in string.
FS_INT32 dataType
The data type. Please refer to macros definition FSCRT_VT_XXX.
Definition: fs_base_r.h:818
FS_RESULT FSCRT_Matrix_Scale(FSCRT_MATRIX *matrix, FS_FLOAT scaleX, FS_FLOAT scaleY)
Scale a coordinate matrix.
Structure for file with large size for reading or writing (I/O).
Definition: fs_base_r.h:1070
unsigned int FS_UINT32
32-bit unsigned integer.
Definition: fs_base_r.h:178
FS_INT32 right
Right coordinate.
Definition: fs_base_r.h:2066
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:3391
FS_RESULT FSCRT_File_Create_L(FSCRT_FILEHANDLER_L *fileStream, FSCRT_FILE *file)
Create a FSCRT_FILE object from a large file, which the file size could be over 2GB.
FS_FLOAT top
Top coordinate.
Definition: fs_base_r.h:2086
FS_RESULT FSCRT_Progress_Release(FSCRT_PROGRESS progress)
Release the current progressive process.
FS_RESULT FSCRT_Archive_Release(FSCRT_ARCHIVE archive)
Release an archive handle.
FS_RESULT FSCRT_Library_LoadSystemFonts()
Load the installed local system fonts for Foxit PDF SDK.
FS_RESULT FSCRT_Library_CreateMgr(FS_LPVOID memory, FS_DWORD size, FSCRT_MEMMGRHANDLER *memMgr)
Create a Foxit PDF SDK manager.
FS_RESULT FSCRT_File_CreateCacheFile(FSCRT_FILEHANDLER *fileStream, FS_DWORD chunkSize, FS_DWORD chunkCount, FS_LPVOID buffer, FSCRT_FILE *file)
Create a cached file object from file stream.
Structure to get properties of a font face.
Definition: fs_base_r.h:3498
FS_LPVOID voidPtrVar
A pointer to variant data.
Definition: fs_base_r.h:397
FS_FLOAT c
Coefficient c.
Definition: fs_base_r.h:2140
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1523
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1076
char const * FS_LPCSTR
A constant pointer to string.
Definition: fs_base_r.h:157
FS_INT32 * int32PtrVar
A pointer to signed 32-bit data.
Definition: fs_base_r.h:407
FS_RESULT FSCRT_Library_EnableJavaScript(FS_BOOL isEnabled)
Enable or disable javascript for PDF.
FS_RESULT FSCRT_Library_GetFixedMemSize(FS_DWORD *memSize)
Get the used memory size of the fixed memory manager in Foxit PDF SDK. Only available when a library ...
FS_RESULT FSCRT_Doc_GetType(FSCRT_DOCUMENT document, FS_INT32 *docType)
Get a document type.
unsigned int FS_DWORD
32-bit unsigned integer.
Definition: fs_base_r.h:142
FS_RESULT FSCRT_File_GetSize(FSCRT_FILE file, FSCRT_FILESIZE *fileSize)
Get the number of bytes of a file object.
FS_RESULT FSCRT_Library_RemovePrivateData(FS_LPVOID moduleID)
Remove private data.
void FSCRT_Library_DestroyMgr()
Destroy the current Foxit PDF SDK manager.
FS_UINT8 * uint8PtrVar
A pointer to unsigned 8-bit data.
Definition: fs_base_r.h:401
FS_RESULT FSCRT_PathData_Transform(FSCRT_PATHDATA pathData, const FSCRT_MATRIX *matrix)
Transform all path points into path data with a given matrix.
FS_FLOAT e
Coefficient e.
Definition: fs_base_r.h:2144
FS_RESULT FSCRT_Archive_GetData(FSCRT_ARCHIVE archive, FSCRT_BSTR *data)
Get data from an archive object.
FS_RESULT FSCRT_Library_SetPrivateData(FS_LPVOID moduleID, FS_LPVOID data, FSCRT_CALLBACK_FREEPRIVATEDATA callbackFreePrivateData)
Set private data.
Structure for pause control in progressive process.
Definition: fs_base_r.h:3080
char * FS_LPSTR
A pointer to string.
Definition: fs_base_r.h:154
FS_RESULT FSCRT_Rect_IsAdjacent(const FSCRT_RECTF *rect1, const FSCRT_RECTF *rect2, FS_FLOAT alignmentTolerance, FS_FLOAT distanceTolerance, FS_DWORD direction, FS_BOOL *adjacent)
Helper function to determine whether one rectangle is adjacent to another in the horizontal or vertic...
FS_RESULT FSCRT_Matrix_TransformRectF(const FSCRT_MATRIX *matrix, FSCRT_RECTF *rect)
Transform a float rectangle by a matrix.
FS_RESULT FSCRT_BStr_Clear(FSCRT_BSTR *bstr)
Helper function to clear a byte string.
FS_RESULT FSCRT_PathData_AppendRect(FSCRT_PATHDATA pathData, const FSCRT_RECTF *rect)
Add a rectangle figure to path data.
FS_RESULT FSCRT_Progress_SetProperty(FSCRT_PROGRESS progress, const FSCRT_BSTR *property, const FSCRT_VAR *values, FS_INT32 count)
Set property of current progressive process.
char FS_INT8
8-bit signed integer.
Definition: fs_base_r.h:163
Structure for multiple-thread support.
Definition: fs_base_r.h:1931
FS_RESULT FSCRT_Library_SetLogFile(FSCRT_FILE file)
Set a log file handle. Currently only support Windows 32-bit, and not support Windows 8.
FS_RESULT FSCRT_PathData_CloseFigure(FSCRT_PATHDATA pathData)
Close the last figure of path data.
FS_RESULT FSCRT_Font_EnumFaces(FSCRT_FILE fontFile, FSCRT_FONTFACE *faces, FS_INT32 *count)
Enum faces from a font file.
Structure for font mapping.
Definition: fs_base_r.h:3384
unsigned char FS_UINT8
8-bit unsigned integer.
Definition: fs_base_r.h:166
FS_RESULT FSCRT_File_SetRange(FSCRT_FILE file, const FSCRT_FILESIZE *offset, const FSCRT_FILESIZE *length)
Set reading range of file object, the following reading from file would be restricted in this range.
FS_RESULT FSCRT_File_Create(FSCRT_FILEHANDLER *fileStream, FSCRT_FILE *file)
Create a file object from file stream.
int FS_INT32
32-bit signed integer.
Definition: fs_base_r.h:175
FS_RESULT FSCRT_Memory_Realloc(FS_LPVOID ptr, FS_DWORD newSize, FS_LPVOID *newPtr)
Reallocate a memory block.
FS_UINT16 milliseconds
Millisecond, from 0 to 999. PDF standard does not support now, you can omit this field if it is not a...
Definition: fs_base_r.h:2038
FS_RESULT FSCRT_Library_CreateDefaultMgr()
Create a default Foxit PDF SDK manager by applications.
Structure for date and time.
Definition: fs_base_r.h:2021
FS_INT16 * int16PtrVar
A pointer to signed 16-bit data.
Definition: fs_base_r.h:403
FS_RESULT FSCRT_BStr_Set(FSCRT_BSTR *bstr, FS_LPCSTR str, FS_DWORD length)
Helper function to set string data.
FS_DWORD type
Variant type. Please refer to macro definitions FSCRT_VT_XXX and this should be one of these macros.
Definition: fs_base_r.h:374
FS_RESULT FSCRT_Font_GetCharWidth(FSCRT_FONT font, FS_DWORD unicode, FS_FLOAT *width)
Get a specific character width of a font.
FS_RESULT FSCRT_Library_SetCacheSize(FS_DWORD size)
Set the upper limit of PDF library cache size.
FS_FLOAT a
Coefficient a.
Definition: fs_base_r.h:2136
FS_FLOAT y2
Y coordinate for the second point.
Definition: fs_base_r.h:2112
FS_RESULT FSCRT_Matrix_Concat(FSCRT_MATRIX *dstMatrix, const FSCRT_MATRIX *srcMatrix)
Concatenate another matrix.
void FSCRT_Memory_Free(FS_LPVOID ptr)
Free a memory block.
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:928
FS_FLOAT floatVar
A 32-bit floating point value.
Definition: fs_base_r.h:395
FS_RESULT FSCRT_Library_SetThreadHandler(FSCRT_THREADHANDLER *threadHandler)
Set a thread handler into Foxit PDF SDK library.
FS_FLOAT x3
X coordinate for the third point.
Definition: fs_base_r.h:2114
FS_RESULT FSCRT_Library_GetVersion(FSCRT_BSTR *sdkVersion)
Get the current Foxit PDF SDK version.
FS_INT32 left
Left coordinate.
Definition: fs_base_r.h:2062
FS_RESULT FSCRT_Font_CreateFromFile(FSCRT_FILE fontFile, FS_INT32 faceIndex, FS_INT32 charset, FSCRT_FONT *font)
Create a font from a font file.
FS_RESULT FSCRT_Annot_GetPage(FSCRT_ANNOT annot, FSCRT_PAGE *page)
Get a page handle related to an annotation. Only support PDF annotation.
FS_FLOAT b
Coefficient b.
Definition: fs_base_r.h:2138
FS_UINT16 second
Second, from 0 to 60. 60 for leap second.
Definition: fs_base_r.h:2036
unsigned short FS_WORD
16-bit unsigned integer.
Definition: fs_base_r.h:139
FS_RESULT FSCRT_Library_SetFontMapperHandler(FSCRT_FONTMAPPERHANDLER *fontMapperHandler)
Use a system font mapper (typically for Chinese/Japanese/Korean charsets).
char FS_CHAR
8-bit character.
Definition: fs_base_r.h:151
FS_RESULT FSCRT_PathData_GetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT *x, FS_FLOAT *y, FS_INT32 *pointType)
Get a specific point of the given path data.
int FS_BOOL
Boolean type (This should be TRUE or FALSE).
Definition: fs_base_r.h:133
FS_RESULT FSCRT_PathData_Release(FSCRT_PATHDATA pathData)
Release all related resources of the given path data.
FS_RESULT FSCRT_File_Release(FSCRT_FILE file)
Release a file object.
FS_DWORD count
The element count of the array.
Definition: fs_base_r.h:820
FS_LPVOID data
The memory address of the first element, followed by the other elements, which are continuous in the ...
Definition: fs_base_r.h:826
Structure for variant definitions.
Definition: fs_base_r.h:371
FS_RESULT FSCRT_File_CreateFromFileName(const FSCRT_BSTR *fileName, FS_DWORD fileModes, FSCRT_FILE *file)
Create a file object from a specific file path.
FS_RESULT FSCRT_Memory_Alloc(FS_DWORD size, FS_LPVOID *ptr)
Allocate a memory block.
FS_RESULT FSCRT_Matrix_TransformPointF(const FSCRT_MATRIX *matrix, FS_FLOAT *x, FS_FLOAT *y)
Transform a float point by a matrix.
unsigned short FS_UINT16
16-bit unsigned integer.
Definition: fs_base_r.h:172
FS_RESULT FSCRT_PathData_Create(FSCRT_PATHDATA *pathData)
Create new path data.
unsigned char FS_BYTE
An unsigned byte integer (8 bits).
Definition: fs_base_r.h:136
FS_BOOL boolVar
A 32-bit boolean value.
Definition: fs_base_r.h:393
void * FS_LPVOID
A pointer to any types.
Definition: fs_base_r.h:127
FS_INT32 bottom
Bottom coordinate.
Definition: fs_base_r.h:2068
FS_DWORD len
Length of a string, in bytes.
Definition: fs_base_r.h:628
FS_UINT16 * uint16PtrVar
A pointer to unsigned 16-bit data.
Definition: fs_base_r.h:405
FS_RESULT FSCRT_PathData_MoveTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y)
Add a point to start a figure. This point will become a new current position.
FS_UINT16 tzMinute
Minute of time zone, from 0 to 59.
Definition: fs_base_r.h:2046
FS_UINT16 dayOfWeek
Day of week, from 0 to 6. PDF standard does not support now, you can omit this field if it is not app...
Definition: fs_base_r.h:2030
FS_RESULT FSCRT_File_Read(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE *size, FSCRT_FILESIZE *actualSize)
Read data from file object.
FS_BOOL bold
Judge whether a font is bold or not.
Definition: fs_base_r.h:3507
FS_RESULT FSCRT_Font_Release(FSCRT_FONT font)
Release a font object.
FS_FLOAT y1
Y coordinate for the first point.
Definition: fs_base_r.h:2108
unsigned int FS_ARGB
ARGB color type, 32 bits, ((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_base_r.h:145
FS_RESULT FSCRT_Matrix_Rotate(FSCRT_MATRIX *matrix, FS_FLOAT angle)
Rotate a coordinate matrix.
FS_RESULT FSCRT_Matrix_Translate(FSCRT_MATRIX *matrix, FS_FLOAT offsetX, FS_FLOAT offsetY)
Translate a coordinate matrix.
FS_INT16 int16Var
A signed 16-bit integer value.
Definition: fs_base_r.h:385
FS_RESULT FSCRT_Font_CreateStandard(FS_INT32 fontID, FSCRT_FONT *font)
Create a standard font by a font ID.
Structure for 2D matrix.
Definition: fs_base_r.h:2133
FS_RESULT FSCRT_License_UnlockLibrary(const FSCRT_BSTR *licenseKey, const FSCRT_BSTR *unlockCode)
Unlock Foxit PDF SDK library using a license key and a code.
FS_DWORD hiSize
High-order 32-bit unsigned size.
Definition: fs_base_r.h:905
Structure for byte string.
Definition: fs_base_r.h:613
FS_FLOAT y4
Y coordinate for the fourth point.
Definition: fs_base_r.h:2120
FS_RESULT FSCRT_Page_GetDocument(FSCRT_PAGE page, FSCRT_DOCUMENT *document)
Get a document handle related to a page.
FS_FLOAT x1
X coordinate for the first point.
Definition: fs_base_r.h:2106
FS_LPSTR str
String buffer.
Definition: fs_base_r.h:622
FS_FLOAT left
Left coordinate.
Definition: fs_base_r.h:2084
FS_RESULT FSCRT_PathData_LineTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y)
Add a point to a given figure, and a line is to be drawn from the current position to this point,...
FS_RESULT FSCRT_File_CreateFromMemory(FS_LPVOID buffer, FS_DWORD length, FSCRT_FILE *file)
Create a memory-based file object.
FS_RESULT FSCRT_Matrix_TransformPoint(const FSCRT_MATRIX *matrix, FS_INT32 *x, FS_INT32 *y)
Transform an integer point by a matrix.
FS_UINT16 year
Year, a four-digit number, such as 2014.
Definition: fs_base_r.h:2024
FS_RESULT FSCRT_PathData_SetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT x, FS_FLOAT y, FS_INT32 pointType)
Set the specific point of the path data.
FS_DWORD reserved
Reserved field, should be 0.
Definition: fs_base_r.h:376
FS_FLOAT x2
X coordinate for the second point.
Definition: fs_base_r.h:2110
FS_RESULT FSCRT_Font_GetCharBBox(FSCRT_FONT font, FS_DWORD unicode, FSCRT_RECT *bbox)
Get a specific character bounding box of a font.
FS_INT16 tzHour
Hour of time zone, from -12 to 12.
Definition: fs_base_r.h:2044
Structure for array.
Definition: fs_base_r.h:815
FS_INT32 top
Top coordinate.
Definition: fs_base_r.h:2064
FS_FLOAT y3
Y coordinate for the third point.
Definition: fs_base_r.h:2116
FS_DWORD loSize
Low-order 32-bit unsigned size.
Definition: fs_base_r.h:903
FS_UINT16 hour
Hour, from 0 to 23.
Definition: fs_base_r.h:2032
FS_RESULT FSCRT_Library_GetMgr(FS_LPVOID *sdkMgr)
Get the current Foxit PDF SDK manager.
FS_UINT16 uint16Var
An unsigned 16-bit integer value, or a FS_WORD value.
Definition: fs_base_r.h:387
FS_INT8 * int8PtrVar
A pointer to signed 8-bit data.
Definition: fs_base_r.h:399
FS_UINT16 day
Day of month, from 1 to 31.
Definition: fs_base_r.h:2028
FS_FLOAT * floatPtrVar
A pointer to float point data.
Definition: fs_base_r.h:413
FS_INT8 int8Var
A signed 8-bit integer value, or a FS_CHAR value.
Definition: fs_base_r.h:381
FS_RESULT FSCRT_Archive_LoadData(FSCRT_ARCHIVE archive, const FSCRT_BSTR *data)
Load data to an archive object.
FS_RESULT FSCRT_Library_SetMgr(FS_LPVOID sdkMgr)
Set the current Foxit PDF SDK manager.
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:3087
FS_RESULT FSCRT_Library_GetPrivateData(FS_LPVOID moduleID, FS_LPVOID *data)
Get private data.
FS_FLOAT bottom
Bottom coordinate.
Definition: fs_base_r.h:2090
FS_FLOAT right
Right coordinate.
Definition: fs_base_r.h:2088
Structure for memory management.
Definition: fs_base_r.h:1516
int FS_RESULT
Result code for functions in Foxit PDF SDK.
Definition: fs_base_r.h:160
FS_RESULT FSCRT_Progress_GetPercent(FSCRT_PROGRESS progress, FS_INT32 *percent)
Get a percent of progressive process.
void(* FSCRT_CALLBACK_FREEPRIVATEDATA)(FS_LPVOID data)
A callback function to free private data.
Definition: fs_base_r.h:2874
FS_UINT16 month
Month, from 1 to 12.
Definition: fs_base_r.h:2026
FS_RESULT FSCRT_PathData_RemovePoint(FSCRT_PATHDATA pathData, FS_INT32 index)
Remove the specific point of the given path data.
FS_RESULT FSCRT_Font_IsBold(FSCRT_FONT font, FS_BOOL *bold)
Judge whether a font object is bold or not.
FS_RESULT FSCRT_Array_Clear(FSCRT_ARRAY *array)
Helper function to release the array.
Structure for quad points, in float.
Definition: fs_base_r.h:2103
FS_RESULT FSCRT_Matrix_Shear(FSCRT_MATRIX *matrix, FS_FLOAT alpha, FS_FLOAT beta)
Make a shear transformation on a coordinate matrix.

Foxit Software Corporation Logo
@2019 Foxit Software Incorporated. All rights reserved.