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_LPVOID 0x80000000
295 
296 #define FSCRT_VT_LPINT8 (FSCRT_VT_LPVOID | FSCRT_VT_INT8)
297 
298 #define FSCRT_VT_LPUINT8 (FSCRT_VT_LPVOID | FSCRT_VT_UINT8)
299 
300 #define FSCRT_VT_LPINT16 (FSCRT_VT_LPVOID | FSCRT_VT_INT16)
301 
302 #define FSCRT_VT_LPUINT16 (FSCRT_VT_LPVOID | FSCRT_VT_UINT16)
303 
304 #define FSCRT_VT_LPINT32 (FSCRT_VT_LPVOID | FSCRT_VT_INT32)
305 
306 #define FSCRT_VT_LPUINT32 (FSCRT_VT_LPVOID | FSCRT_VT_UINT32)
307 
308 #define FSCRT_VT_LPBOOL (FSCRT_VT_LPVOID | FSCRT_VT_BOOL)
309 
310 #define FSCRT_VT_LPFLOAT (FSCRT_VT_LPVOID | FSCRT_VT_FLOAT)
311 
312 #define FSCRT_VT_CHAR FSCRT_VT_INT8
313 
314 #define FSCRT_VT_BYTE FSCRT_VT_UINT8
315 
316 #define FSCRT_VT_WORD FSCRT_VT_UINT16
317 
318 #define FSCRT_VT_RESULT FSCRT_VT_INT32
319 
320 #define FSCRT_VT_DWORD FSCRT_VT_UINT32
321 
322 #define FSCRT_VT_ARGB FSCRT_VT_UINT32
323 
324 #define FSCRT_VT_LPSTR FSCRT_VT_LPINT8
325 
326 #define FSCRT_VT_LPCSTR FSCRT_VT_LPINT8
327 
328 #define FSCRT_VT_LPBYTE FSCRT_VT_LPUINT8
329 
330 #define FSCRT_VT_LPWORD FSCRT_VT_LPUINT16
331 
332 #define FSCRT_VT_LPRESULT FSCRT_VT_LPINT32
333 
334 #define FSCRT_VT_LPDWORD FSCRT_VT_LPUINT32
335 
336 #define FSCRT_VT_LPARGB FSCRT_VT_LPUINT32
337 
338 #define FSCRT_VT_BSTR (FSCRT_VT_LPVOID|0x00000010)
339 
340 #define FSCRT_VT_OBJECT (FSCRT_VT_LPVOID|0x00001000)
341 
342 #endif /* _FSCRT_DEF_MACRO_VT_ */
343 
344 /*******************************************************************************/
345 /* Extend of Object Types */
346 /* */
347 /*******************************************************************************/
348 #ifndef _FSPDF_DEF_MACRO_VT_OBJECT_
349 #define _FSPDF_DEF_MACRO_VT_OBJECT_
350 
355 #define FSCRT_VT_OBJECT_LAYER (FSCRT_VT_OBJECT|0x000000001)
356 
357 #define FSCRT_VT_OBJECT_PAGEOBJECT (FSCRT_VT_OBJECT|0x000000002)
358 
359 #endif /* _FSPDF_DEF_MACRO_VT_OBJECT_ */
360 
361 #ifndef _FSCRT_DEF_STRUCTURE_VAR_
362 #define _FSCRT_DEF_STRUCTURE_VAR_
363 
369 typedef struct _FSCRT_VAR
370 {
372  FS_DWORD type;
374  FS_DWORD reserved;
376  union
377  {
379  FS_INT8 int8Var;
381  FS_UINT8 uint8Var;
383  FS_INT16 int16Var;
385  FS_UINT16 uint16Var;
387  FS_INT32 int32Var;
389  FS_UINT32 uint32Var;
391  FS_BOOL boolVar;
393  FS_FLOAT floatVar;
395  FS_LPVOID voidPtrVar;
397  FS_INT8* int8PtrVar;
399  FS_UINT8* uint8PtrVar;
401  FS_INT16* int16PtrVar;
403  FS_UINT16* uint16PtrVar;
405  FS_INT32* int32PtrVar;
407  FS_UINT32* uint32PtrVar;
409  FS_BOOL* boolPtrVar;
411  FS_FLOAT* floatPtrVar;
412  } var;
413 } FSCRT_VAR;
414 
424 #define FSCRT_Var_SetInt8Value(variant, value) (variant).type = FSCRT_VT_INT8, (variant).var.int8Var = (value);
425 
434 #define FSCRT_Var_SetUInt8Value(variant, value) (variant).type = FSCRT_VT_UINT8, (variant).var.uint8Var = (value);
435 
444 #define FSCRT_Var_SetInt16Value(variant, value) (variant).type = FSCRT_VT_INT16, (variant).var.int16Var = (value);
445 
454 #define FSCRT_Var_SetUInt16Value(variant, value) (variant).type = FSCRT_VT_UINT16, (variant).var.uint16Var = (value);
455 
464 #define FSCRT_Var_SetInt32Value(variant, value) (variant).type = FSCRT_VT_INT32, (variant).var.int32Var = (value);
465 
474 #define FSCRT_Var_SetUInt32Value(variant, value) (variant).type = FSCRT_VT_UINT32, (variant).var.uint32Var = (value);
475 
484 #define FSCRT_Var_SetBooleanValue(variant, value) (variant).type = FSCRT_VT_BOOL, (variant).var.boolVar = (value);
485 
494 #define FSCRT_Var_SetFloatValue(variant, value) (variant).type = FSCRT_VT_FLOAT, (variant).var.floatVar = (value);
495 
504 #define FSCRT_Var_SetVoidPtrValue(variant, value) (variant).type = FSCRT_VT_LPVOID, (variant).var.voidPtrVar = (value);
505 
515 #define FSCRT_Var_SetInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT8, (variant).var.int8PtrVar = (value);
516 
526 #define FSCRT_Var_SetUInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT8, (variant).var.uint8PtrVar = (value);
527 
537 #define FSCRT_Var_SetInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT16, (variant).var.int16PtrVar = (value);
538 
548 #define FSCRT_Var_SetUInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT16, (variant).var.uint16PtrVar = (value);
549 
559 #define FSCRT_Var_SetInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT32, (variant).var.int32PtrVar = (value);
560 
570 #define FSCRT_Var_SetUInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT32, (variant).var.uint32PtrVar = (value);
571 
581 #define FSCRT_Var_SetBooleanPtrValue(variant, value) (variant).type = FSCRT_VT_LPBOOL, (variant).var.boolPtrVar = (value);
582 
592 #define FSCRT_Var_SetFloatPtrValue(variant, value) (variant).type = FSCRT_VT_LPFLOAT, (variant).var.floatPtrVar = (value);
593 
594 #endif /* _FSCRT_DEF_STRUCTURE_VAR_ */
595 
596 /*******************************************************************************/
597 /* String */
598 /* */
599 /* Byte string - UTF8, string encode and decode */
600 /*******************************************************************************/
601 #ifndef _FSCRT_DEF_STRUCTURE_BSTR_
602 #define _FSCRT_DEF_STRUCTURE_BSTR_
603 
611 typedef struct _FSCRT_BSTR
612 {
620  FS_LPSTR str;
626  FS_DWORD len;
627 } FSCRT_BSTR;
628 
641 #define FSCRT_BSTRD(str) {str, sizeof(str) - 1}
642 
655 #define FSCRT_BSTRC(v, str) FSCRT_BSTR v = FSCRT_BSTRD(str)
656 
667 #define FSCRT_BStr_InitConstString(v, s) (v).str = s, (v).len = sizeof(s) - 1;
668 
669 #endif /* _FSCRT_DEF_STRUCTURE_BSTR_ */
670 
693 FS_RESULT FSCRT_BStr_Init(FSCRT_BSTR* bstr);
694 
717 FS_RESULT FSCRT_BStr_Clear(FSCRT_BSTR* bstr);
718 
745 FS_RESULT FSCRT_BStr_SetLength(FSCRT_BSTR* bstr, FS_DWORD length);
746 
773 FS_RESULT FSCRT_BStr_Set(FSCRT_BSTR* bstr, FS_LPCSTR str, FS_DWORD length);
786 #define FSCRT_BStr_SetConstString(bstr, str) FSCRT_BStr_Set(bstr, str, sizeof(str) - 1)
787 
804 #define FSCRT_BStr_Copy(dstStr, srcStr) FSCRT_BStr_Set(dstStr, (srcStr)->str, (srcStr)->len)
805 
806 
807 #ifndef _FSCRT_DEF_STRUCTURE_ARRAY_
808 #define _FSCRT_DEF_STRUCTURE_ARRAY_
809 
813 typedef struct _FSCRT_ARRAY
814 {
816  FS_INT32 dataType;
818  FS_DWORD count;
824  FS_LPVOID data;
825 
826 }FSCRT_ARRAY;
827 
828 #endif /* _FSCRT_DEF_STRUCTURE_ARRAY_ */
829 
849 FS_RESULT FSCRT_Array_Init(FSCRT_ARRAY* array, FS_INT32 dataType);
850 
873 FS_RESULT FSCRT_Array_Clear(FSCRT_ARRAY* array);
874 
875 /*******************************************************************************/
876 /* File stream */
877 /* */
878 /* File access, read or write, stream I/O */
879 /*******************************************************************************/
880 #ifndef _FSCRT_DEF_HANDLE_FILE_
881 #define _FSCRT_DEF_HANDLE_FILE_
882 
884 FSCRT_DEFINEHANDLE(FSCRT_FILE);
885 
886 #endif /* _FSCRT_DEF_HANDLE_FILE_ */
887 
888 #ifndef _FSCRT_DEF_STRUCTURE_FILESIZE_
889 #define _FSCRT_DEF_STRUCTURE_FILESIZE_
890 
898 typedef struct _FSCRT_FILESIZE
899 {
901  FS_DWORD loSize;
903  FS_DWORD hiSize;
905 
906 #endif /* _FSCRT_DEF_STRUCTURE_FILESIZE_ */
907 
908 #ifndef _FSCRT_DEF_HANDLER_FILE_
909 #define _FSCRT_DEF_HANDLER_FILE_
910 
920 typedef struct _FSCRT_FILEHANDLER
921 {
926  FS_LPVOID clientData;
927 
938  void (*Release)(FS_LPVOID clientData);
939 
949  FS_DWORD (*GetSize)(FS_LPVOID clientData);
950 
968  FS_RESULT (*ReadBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPVOID buffer, FS_DWORD size);
969 
987  FS_RESULT (*WriteBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPCVOID buffer, FS_DWORD size);
988 
1005  FS_RESULT (*Flush)(FS_LPVOID clientData);
1006 
1022  FS_RESULT (*Truncate)(FS_LPVOID clientData, FS_DWORD size);
1023 
1025 
1026 #endif /* _FSCRT_DEF_HANDLER_FILE_ */
1027 
1054 FS_RESULT FSCRT_File_Create(FSCRT_FILEHANDLER* fileStream, FSCRT_FILE* file);
1055 
1056 #ifndef _FSCRT_DEF_HANDLE_LARGE_FILE_
1057 #define _FSCRT_DEF_HANDLE_LARGE_FILE_
1058 
1068  typedef struct _FSCRT_FILEHANDLER_L
1069  {
1074  FS_LPVOID clientData;
1075 
1086  void (*Release)(FS_LPVOID clientData);
1087 
1100  FS_RESULT (*GetSize)(FS_LPVOID clientData, FSCRT_FILESIZE* size);
1101 
1119  FS_RESULT (*ReadBlock)(FS_LPVOID clientData, const FSCRT_FILESIZE* offset, FS_LPVOID buffer, const FSCRT_FILESIZE* size);
1120 
1138  FS_RESULT (*WriteBlock)(FS_LPVOID clientData, const FSCRT_FILESIZE* offset, FS_LPCVOID buffer, const FSCRT_FILESIZE* size);
1139 
1156  FS_RESULT (*Flush)(FS_LPVOID clientData);
1157 
1173  FS_RESULT (*Truncate)(FS_LPVOID clientData, const FSCRT_FILESIZE* fileSize);
1174 
1176 
1177 #endif /* _FSCRT_DEF_HANDLE_LARGE_FILE_ */
1178 
1205 FS_RESULT FSCRT_File_Create_L(FSCRT_FILEHANDLER_L* fileStream, FSCRT_FILE* file);
1206 
1207 
1240 FS_RESULT FSCRT_File_CreateCacheFile(FSCRT_FILEHANDLER* fileStream, FS_DWORD chunkSize, FS_DWORD chunkCount, FS_LPVOID buffer, FSCRT_FILE* file);
1241 
1270 FS_RESULT FSCRT_File_CreateFromMemory(FS_LPVOID buffer, FS_DWORD length, FSCRT_FILE* file);
1271 
1272 #ifndef _FSCRT_DEF_MACRO_FILEMODE_
1273 #define _FSCRT_DEF_MACRO_FILEMODE_
1274 
1285 #define FSCRT_FILEMODE_WRITE 0
1286 
1287 #define FSCRT_FILEMODE_READONLY 1
1288 
1289 #define FSCRT_FILEMODE_TRUNCATE 2
1290 
1292 #endif /* _FSCRT_DEF_MACRO_FILEMODE_ */
1293 
1324 FS_RESULT FSCRT_File_CreateFromFileName(const FSCRT_BSTR* fileName, FS_DWORD fileModes, FSCRT_FILE* file);
1325 
1345 FS_RESULT FSCRT_File_GetSize(FSCRT_FILE file, FSCRT_FILESIZE* fileSize);
1346 
1371 FS_RESULT FSCRT_File_SetRange(FSCRT_FILE file, const FSCRT_FILESIZE* offset, const FSCRT_FILESIZE* length);
1372 
1394 FS_RESULT FSCRT_File_ClearRange(FSCRT_FILE file);
1395 
1417 FS_RESULT FSCRT_File_Read(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE* size, FSCRT_FILESIZE* actualSize);
1418 
1439 FS_RESULT FSCRT_File_Write(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE* size);
1440 
1462 FS_RESULT FSCRT_File_Release(FSCRT_FILE file);
1463 
1464 /*******************************************************************************/
1465 /* Library management, license controls, log file and memory management */
1466 /*******************************************************************************/
1467 #ifndef _FSCRT_DEF_MACRO_LICENSETYPE_
1468 #define _FSCRT_DEF_MACRO_LICENSETYPE_
1469 
1481 #define FSCRT_LICENSETYPE_INVALID FSCRT_ERRCODE_INVALIDLICENSE
1482 
1487 #define FSCRT_LICENSETYPE_AUTHORIZED 0
1488 
1493 #define FSCRT_LICENSETYPE_EVALUATION 1
1494 
1499 #define FSCRT_LICENSETYPE_EXPIRED 2
1500 
1502 #endif /* _FSCRT_DEF_MACRO_LICENSETYPE_ */
1503 
1504 #ifndef _FSCRT_DEF_HANDLER_MEMMGR_
1505 #define _FSCRT_DEF_HANDLER_MEMMGR_
1506 
1513 typedef struct _FSCRT_MEMMGRHANDLER
1514 {
1520  FS_LPVOID clientData;
1521 
1535  FS_LPVOID (*Alloc)(FS_LPVOID clientData, FS_DWORD size);
1536 
1552  FS_LPVOID (*Realloc)(FS_LPVOID clientData, FS_LPVOID ptr, FS_DWORD newSize);
1553 
1566  void (*Free)(FS_LPVOID clientData, FS_LPVOID ptr);
1567 
1569 
1570 #endif /* _FSCRT_DEF_HANDLER_MEMMGR_ */
1571 
1600 FS_RESULT FSCRT_Library_CreateMgr(FS_LPVOID memory, FS_DWORD size, FSCRT_MEMMGRHANDLER* memMgr);
1601 
1624 FS_RESULT FSCRT_Library_CreateDefaultMgr();
1625 
1646 FS_RESULT FSCRT_Library_GetMgr(FS_LPVOID* sdkMgr);
1647 
1669 FS_RESULT FSCRT_Library_SetMgr(FS_LPVOID sdkMgr);
1670 
1690 
1709 FS_RESULT FSCRT_Library_GetFixedMemSize(FS_DWORD* memSize);
1710 
1737 FS_RESULT FSCRT_License_UnlockLibrary(const FSCRT_BSTR* licenseKey, const FSCRT_BSTR* unlockCode);
1738 
1768 FS_RESULT FSCRT_License_GetType(FS_INT32* type);
1769 
1790 FS_RESULT FSCRT_Library_SetLogFile(FSCRT_FILE file);
1791 
1811 FS_RESULT FSCRT_Library_EnableJavaScript(FS_BOOL isEnabled);
1812 
1832 FS_RESULT FSCRT_Memory_Alloc(FS_DWORD size, FS_LPVOID* ptr);
1833 
1854 FS_RESULT FSCRT_Memory_Realloc(FS_LPVOID ptr, FS_DWORD newSize, FS_LPVOID* newPtr);
1855 
1871 void FSCRT_Memory_Free(FS_LPVOID ptr);
1872 
1890 FS_RESULT FSCRT_Library_GetVersion(FSCRT_BSTR* sdkVersion);
1891 
1892 /*******************************************************************************/
1893 /* Thread supports */
1894 /* */
1895 /* Thread handler and finalization */
1896 /*******************************************************************************/
1897 #ifndef _FSCRT_DEF_HANDLE_THREAD_
1898 #define _FSCRT_DEF_HANDLE_THREAD_
1899 
1901 FSCRT_DEFINEHANDLE(FSCRT_THREAD);
1902 
1903 #endif /* _FSCRT_DEF_HANDLE_THREAD_ */
1904 
1905 #ifndef _FSCRT_DEF_HANDLER_THREAD_
1906 #define _FSCRT_DEF_HANDLER_THREAD_
1907 
1920 typedef void (*FSCRT_CALLBACK_THREADFINALIZE)(FSCRT_THREAD thread);
1921 
1928 typedef struct _FSCRT_THREADHANDLER
1929 {
1935  FS_LPVOID clientData;
1936 
1944  FSCRT_THREAD (*GetCurrentThread)(FS_LPVOID clientData);
1945 
1957  void (*SetThreadFinalizeCallback)(FS_LPVOID clientData, FSCRT_CALLBACK_THREADFINALIZE callbackThreadFinalize);
1958 
1960 
1961 #endif /* _FSCRT_DEF_HANDLER_THREAD_ */
1962 
1984 FS_RESULT FSCRT_Library_SetThreadHandler(FSCRT_THREADHANDLER* threadHandler);
1985 
2007 FS_RESULT FSCRT_Library_SetCacheSize(FS_DWORD size);
2008 
2009 /*******************************************************************************/
2010 /* Common data structures */
2011 /* */
2012 /* date & time, rectangle, matrix */
2013 /*******************************************************************************/
2014 #ifndef _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2015 #define _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2016 
2018 typedef struct _FSCRT_DATETIMEZONE
2019 {
2021  FS_UINT16 year;
2023  FS_UINT16 month;
2025  FS_UINT16 day;
2027  FS_UINT16 dayOfWeek;
2029  FS_UINT16 hour;
2031  FS_UINT16 minute;
2033  FS_UINT16 second;
2035  FS_UINT16 milliseconds;
2041  FS_INT16 tzHour;
2043  FS_UINT16 tzMinute;
2045 
2046 #endif /* _FSCRT_DEF_STRUCTURE_DATETIMEZONE_ */
2047 
2048 #ifndef _FSCRT_DEF_STRUCTURE_RECT_
2049 #define _FSCRT_DEF_STRUCTURE_RECT_
2050 
2056 typedef struct _FSCRT_RECT
2057 {
2059  FS_INT32 left;
2061  FS_INT32 top;
2063  FS_INT32 right;
2065  FS_INT32 bottom;
2066 } FSCRT_RECT;
2067 
2068 #endif /* _FSCRT_DEF_STRUCTURE_RECT_ */
2069 
2070 #ifndef _FSCRT_DEF_STRUCTURE_RECTF_
2071 #define _FSCRT_DEF_STRUCTURE_RECTF_
2072 
2078 typedef struct _FSCRT_RECTF
2079 {
2081  FS_FLOAT left;
2083  FS_FLOAT top;
2085  FS_FLOAT right;
2087  FS_FLOAT bottom;
2088 } FSCRT_RECTF;
2089 
2090 #endif /* _FSCRT_DEF_STRUCTURE_RECTF_ */
2091 
2092 #ifndef _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2093 #define _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2094 
2100 typedef struct _FSCRT_QUADPOINTSF
2101 {
2103  FS_FLOAT x1;
2105  FS_FLOAT y1;
2107  FS_FLOAT x2;
2109  FS_FLOAT y2;
2111  FS_FLOAT x3;
2113  FS_FLOAT y3;
2115  FS_FLOAT x4;
2117  FS_FLOAT y4;
2119 
2120 #endif /* _FSCRT_DEF_STRUCTURE_QUADPOINTSF_ */
2121 
2122 #ifndef _FSCRT_DEF_STRUCTURE_MATRIX_
2123 #define _FSCRT_DEF_STRUCTURE_MATRIX_
2124 
2130 typedef struct _FSCRT_MATRIX
2131 {
2133  FS_FLOAT a;
2135  FS_FLOAT b;
2137  FS_FLOAT c;
2139  FS_FLOAT d;
2141  FS_FLOAT e;
2143  FS_FLOAT f;
2144 } FSCRT_MATRIX;
2145 
2146 #endif /* _FSCRT_DEF_STRUCTURE_MATRIX_ */
2147 
2175 FS_RESULT FSCRT_Rect_IsAdjacent(const FSCRT_RECTF* rect1, const FSCRT_RECTF* rect2,
2176  FS_FLOAT alignmentTolerance, FS_FLOAT distanceTolerance, FS_DWORD direction,
2177  FS_BOOL* adjacent);
2178 
2200 FS_RESULT FSCRT_Matrix_Translate(FSCRT_MATRIX* matrix, FS_FLOAT offsetX, FS_FLOAT offsetY);
2201 
2223 FS_RESULT FSCRT_Matrix_Scale(FSCRT_MATRIX* matrix, FS_FLOAT scaleX, FS_FLOAT scaleY);
2224 
2247 FS_RESULT FSCRT_Matrix_Rotate(FSCRT_MATRIX* matrix, FS_FLOAT angle);
2248 
2274 FS_RESULT FSCRT_Matrix_Shear(FSCRT_MATRIX* matrix, FS_FLOAT alpha, FS_FLOAT beta);
2275 
2295 FS_RESULT FSCRT_Matrix_GetReverse(const FSCRT_MATRIX* srcMatrix, FSCRT_MATRIX* dstMatrix);
2296 
2317 FS_RESULT FSCRT_Matrix_Concat(FSCRT_MATRIX* dstMatrix, const FSCRT_MATRIX* srcMatrix);
2318 
2342 FS_RESULT FSCRT_Matrix_TransformPoint(const FSCRT_MATRIX* matrix, FS_INT32* x, FS_INT32* y);
2343 
2367 FS_RESULT FSCRT_Matrix_TransformPointF(const FSCRT_MATRIX* matrix, FS_FLOAT* x, FS_FLOAT* y);
2368 
2389 FS_RESULT FSCRT_Matrix_TransformRect(const FSCRT_MATRIX* matrix, FSCRT_RECT* rect);
2390 
2411 FS_RESULT FSCRT_Matrix_TransformRectF(const FSCRT_MATRIX* matrix, FSCRT_RECTF* rect);
2412 
2413 /*******************************************************************************/
2414 /* Path Data */
2415 /*******************************************************************************/
2416 #ifndef _FSCRT_DEF_HANDLE_PATHDATA_
2417 #define _FSCRT_DEF_HANDLE_PATHDATA_
2418 
2420 FSCRT_DEFINEHANDLE(FSCRT_PATHDATA);
2421 
2422 #endif /* _FSCRT_DEF_HANDLE_PATHDATA_ */
2423 
2424 #ifndef _FSCRT_DEF_MACRO_POINTTYPE_
2425 #define _FSCRT_DEF_MACRO_POINTTYPE_
2426 
2439 #define FSCRT_POINTTYPE_CLOSEFIGURE 1
2440 
2446 #define FSCRT_POINTTYPE_LINETO 2
2447 
2453 #define FSCRT_POINTTYPE_BEZIERTO 4
2454 
2460 #define FSCRT_POINTTYPE_MOVETO 6
2461 
2463 #endif /* _FSCRT_DEF_MACRO_POINTTYPE_ */
2464 
2465 #ifndef _FSCRT_DEF_MACRO_FILLMODE_
2466 #define _FSCRT_DEF_MACRO_FILLMODE_
2467 
2473 #define FSCRT_FILLMODE_NONE 0
2474 
2480 #define FSCRT_FILLMODE_ALTERNATE 1
2481 
2487 #define FSCRT_FILLMODE_WINDING 2
2488 
2490 #endif /* _FSCRT_DEF_MACRO_FILLMODE_ */
2491 
2511 FS_RESULT FSCRT_PathData_Create(FSCRT_PATHDATA* pathData);
2512 
2534 FS_RESULT FSCRT_PathData_Clear(FSCRT_PATHDATA pathData);
2535 
2555 FS_RESULT FSCRT_PathData_Release(FSCRT_PATHDATA pathData);
2556 
2576 FS_RESULT FSCRT_PathData_CountPoints(FSCRT_PATHDATA pathData, FS_INT32* count);
2577 
2603 FS_RESULT FSCRT_PathData_AddPointsCount(FSCRT_PATHDATA pathData, FS_INT32 count);
2604 
2635 FS_RESULT FSCRT_PathData_GetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT* x, FS_FLOAT* y, FS_INT32* pointType);
2636 
2669 FS_RESULT FSCRT_PathData_SetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT x, FS_FLOAT y, FS_INT32 pointType);
2670 
2691 FS_RESULT FSCRT_PathData_RemovePoint(FSCRT_PATHDATA pathData, FS_INT32 index);
2692 
2714 FS_RESULT FSCRT_PathData_MoveTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2715 
2737 FS_RESULT FSCRT_PathData_LineTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2738 
2766 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);
2767 
2788 FS_RESULT FSCRT_PathData_AppendRect(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2789 
2810 FS_RESULT FSCRT_PathData_AppendEllipse(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2811 
2831 FS_RESULT FSCRT_PathData_CloseFigure(FSCRT_PATHDATA pathData);
2832 
2852 FS_RESULT FSCRT_PathData_Transform(FSCRT_PATHDATA pathData, const FSCRT_MATRIX* matrix);
2853 
2854 /*******************************************************************************/
2855 /* Private Data */
2856 /*******************************************************************************/
2857 #ifndef _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2858 #define _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2859 
2871 typedef void (*FSCRT_CALLBACK_FREEPRIVATEDATA)(FS_LPVOID data);
2872 
2873 #endif /* _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_ */
2874 
2896 FS_RESULT FSCRT_Library_SetPrivateData(FS_LPVOID moduleID, FS_LPVOID data, FSCRT_CALLBACK_FREEPRIVATEDATA callbackFreePrivateData);
2897 
2917 FS_RESULT FSCRT_Library_GetPrivateData(FS_LPVOID moduleID, FS_LPVOID* data);
2918 
2940 FS_RESULT FSCRT_Library_RemovePrivateData(FS_LPVOID moduleID);
2941 
2942 /*******************************************************************************/
2943 /* Common objects */
2944 /*******************************************************************************/
2945 #ifndef _FSCRT_DEF_HANDLE_DOCUMENT_
2946 #define _FSCRT_DEF_HANDLE_DOCUMENT_
2947 
2949 FSCRT_DEFINEHANDLE(FSCRT_DOCUMENT);
2950 
2951 #endif /* _FSCRT_DEF_HANDLE_DOCUMENT_ */
2952 
2953 #ifndef _FSCRT_DEF_HANDLE_PAGE_
2954 #define _FSCRT_DEF_HANDLE_PAGE_
2955 
2957 FSCRT_DEFINEHANDLE(FSCRT_PAGE);
2958 
2959 #endif /* _FSCRT_DEF_HANDLE_PAGE_ */
2960 
2961 #ifndef _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2962 #define _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2963 
2965 FSCRT_DEFINEHANDLE(FSCRT_ANNOT);
2966 
2967 #endif /* _FSCRT_DEF_DEFINEHANDLE_ANNOT_ */
2968 
2969 #ifndef _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2970 #define _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2971 
2979 #define FSCRT_DOCUMENTTYPE_PDF 1
2980 
2981 #define FSCRT_DOCUMENTTYPE_FDF 2
2982 
2983 #define FSCRT_DOCUMENTTYPE_XFDF 3
2984 
2986 #endif /* _FSCRT_DEF_MACRO_DOCUMENTTYPE_ */
2987 
3008 FS_RESULT FSCRT_Doc_GetType(FSCRT_DOCUMENT document, FS_INT32* docType);
3009 
3030 FS_RESULT FSCRT_Page_GetDocument(FSCRT_PAGE page, FSCRT_DOCUMENT* document);
3031 
3054 FS_RESULT FSCRT_Annot_GetPage(FSCRT_ANNOT annot, FSCRT_PAGE* page);
3055 
3056 /*******************************************************************************/
3057 /* Progressive controls */
3058 /*******************************************************************************/
3059 #ifndef _FSCRT_DEF_HANDLE_PROGRESS_
3060 #define _FSCRT_DEF_HANDLE_PROGRESS_
3061 
3063 FSCRT_DEFINEHANDLE(FSCRT_PROGRESS);
3064 
3065 #endif /* _FSCRT_DEF_HANDLE_PROGRESS_ */
3066 
3067 #ifndef _FSCRT_DEF_HANDLER_PAUSE_
3068 #define _FSCRT_DEF_HANDLER_PAUSE_
3069 
3077 typedef struct _FSCRT_PAUSEHANDLER
3078 {
3084  FS_LPVOID clientData;
3085 
3095  FS_BOOL (*NeedPauseNow)(FS_LPVOID clientData);
3096 
3098 
3099 #endif /* _FSCRT_DEF_HANDLER_PAUSE_ */
3100 
3145 FS_RESULT FSCRT_Progress_Continue(FSCRT_PROGRESS progress, FSCRT_PAUSEHANDLER* pause);
3146 
3191 FS_RESULT FSCRT_Progress_GetPercent(FSCRT_PROGRESS progress, FS_INT32* percent);
3192 
3214 FS_RESULT FSCRT_Progress_Release(FSCRT_PROGRESS progress);
3215 
3249 FS_RESULT FSCRT_Progress_SetProperty(FSCRT_PROGRESS progress, const FSCRT_BSTR* property, const FSCRT_VAR* values, FS_INT32 count);
3250 
3251 /*******************************************************************************/
3252 /* Font access */
3253 /*******************************************************************************/
3254 #ifndef _FSCRT_DEF_HANDLE_FONT_
3255 #define _FSCRT_DEF_HANDLE_FONT_
3256 
3257 
3258 
3260 FSCRT_DEFINEHANDLE(FSCRT_FONT);
3261 
3262 #endif /* _FSCRT_DEF_HANDLE_FONT_ */
3263 
3264 #ifndef _FSCRT_DEF_MACRO_FONTSTYLE_
3265 #define _FSCRT_DEF_MACRO_FONTSTYLE_
3266 
3272 #define FSCRT_FONTSTYLE_FIXEDPITCH 1
3273 
3274 #define FSCRT_FONTSTYLE_SERIF 2
3275 
3276 #define FSCRT_FONTSTYLE_SYMBOLIC 4
3277 
3278 #define FSCRT_FONTSTYLE_SCRIPT 8
3279 
3280 #define FSCRT_FONTSTYLE_NONSYMBOLIC 32
3281 
3282 #define FSCRT_FONTSTYLE_ITALIC 64
3283 
3284 #define FSCRT_FONTSTYLE_ALLCAP 0x10000
3285 
3286 #define FSCRT_FONTSTYLE_SMALLCAP 0x20000
3287 
3288 #define FSCRT_FONTSTYLE_BOLD 0x40000
3289 
3291 #endif /* _FSCRT_DEF_MACRO_FONT_ */
3292 
3293 #ifndef _FSCRT_DEF_MACRO_STDFONT_
3294 #define _FSCRT_DEF_MACRO_STDFONT_
3295 
3301 #define FSCRT_STDFONT_COURIER 0
3302 
3303 #define FSCRT_STDFONT_COURIER_B 1
3304 
3305 #define FSCRT_STDFONT_COURIER_BI 2
3306 
3307 #define FSCRT_STDFONT_COURIER_I 3
3308 
3309 #define FSCRT_STDFONT_HELVETICA 4
3310 
3311 #define FSCRT_STDFONT_HELVETICA_B 5
3312 
3313 #define FSCRT_STDFONT_HELVETICA_BI 6
3314 
3315 #define FSCRT_STDFONT_HELVETICA_I 7
3316 
3317 #define FSCRT_STDFONT_TIMES 8
3318 
3319 #define FSCRT_STDFONT_TIMES_B 9
3320 
3321 #define FSCRT_STDFONT_TIMES_BI 10
3322 
3323 #define FSCRT_STDFONT_TIMES_I 11
3324 
3325 #define FSCRT_STDFONT_SYMBOL 12
3326 
3327 #define FSCRT_STDFONT_ZAPFDINGBATS 13
3328 
3330 #endif /* _FSCRT_DEF_MACRO_STDFONT_ */
3331 
3332 #ifndef _FSCRT_DEF_MACRO_CHARSET_
3333 #define _FSCRT_DEF_MACRO_CHARSET_
3334 
3340 #define FSCRT_CHARSET_ANSI 0
3341 
3342 #define FSCRT_CHARSET_DEFAULT 1
3343 
3344 #define FSCRT_CHARSET_SYMBOL 2
3345 
3346 #define FSCRT_CHARSET_SHIFTJIS 128
3347 
3348 #define FSCRT_CHARSET_HANGEUL 129
3349 
3350 #define FSCRT_CHARSET_GB2312 134
3351 
3352 #define FSCRT_CHARSET_CHINESEBIG5 136
3353 
3354 #define FSCRT_CHARSET_THAI 222
3355 
3356 #define FSCRT_CHARSET_EASTEUROPE 238
3357 
3358 #define FSCRT_CHARSET_RUSSIAN 204
3359 
3360 #define FSCRT_CHARSET_GREEK 161
3361 
3362 #define FSCRT_CHARSET_TURKISH 162
3363 
3364 #define FSCRT_CHARSET_HEBREW 177
3365 
3366 #define FSCRT_CHARSET_ARABIC 178
3367 
3368 #define FSCRT_CHARSET_BALTIC 186
3369 
3371 #endif /* _FSCRT_DEF_MACRO_CHARSET_ */
3372 
3373 #ifndef _FSCRT_DEF_HANDLER_FONTMAPPER_
3374 #define _FSCRT_DEF_HANDLER_FONTMAPPER_
3375 
3381 typedef struct _FSCRT_FONTMAPPERHANDLER
3382 {
3388  FS_LPVOID clientData;
3389 
3414  FS_RESULT (*MapFont)(FS_LPVOID clientData, FS_LPCSTR fontName,
3415  FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset,
3416  FSCRT_FILE* fontFile, FS_INT32* faceIndex);
3418 
3419 #endif /* _FSCRT_DEF_HANDLER_FONTMAPPER_ */
3420 
3444 FS_RESULT FSCRT_Library_SetFontMapperHandler(FSCRT_FONTMAPPERHANDLER* fontMapperHandler);
3445 
3469 FS_RESULT FSCRT_Library_AddFontFile(FSCRT_FILE fontFile);
3470 
3489 FS_RESULT FSCRT_Library_LoadSystemFonts();
3490 
3491 #ifndef _FSCRT_DEF_STRUCTURE_FONTFACE_
3492 #define _FSCRT_DEF_STRUCTURE_FONTFACE_
3493 
3495 typedef struct _FSCRT_FONTFACE
3496 {
3504  FS_BOOL bold;
3506  FS_BOOL italic;
3507 } FSCRT_FONTFACE;
3508 
3509 #endif /* _FSCRT_DEF_STRUCTURE_FONTFACE_ */
3510 
3536 FS_RESULT FSCRT_Font_Create(const FSCRT_BSTR* fontName, FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset, FSCRT_FONT* font);
3537 
3560 FS_RESULT FSCRT_Font_CreateStandard(FS_INT32 fontID, FSCRT_FONT* font);
3561 
3594 FS_RESULT FSCRT_Font_EnumFaces(FSCRT_FILE fontFile, FSCRT_FONTFACE* faces, FS_INT32* count);
3595 
3622 FS_RESULT FSCRT_Font_CreateFromFile(FSCRT_FILE fontFile, FS_INT32 faceIndex, FS_INT32 charset, FSCRT_FONT* font);
3623 
3643 FS_RESULT FSCRT_Font_Release(FSCRT_FONT font);
3644 
3667 FS_RESULT FSCRT_Font_GetName(FSCRT_FONT font, FSCRT_BSTR* fontName);
3668 
3690 FS_RESULT FSCRT_Font_IsBold(FSCRT_FONT font, FS_BOOL* bold);
3691 
3713 FS_RESULT FSCRT_Font_IsItalic(FSCRT_FONT font, FS_BOOL* italic);
3714 
3736 FS_RESULT FSCRT_Font_GetAscent(FSCRT_FONT font, FS_INT32* ascent);
3737 
3759 FS_RESULT FSCRT_Font_GetDescent(FSCRT_FONT font, FS_INT32* descent);
3760 
3784 FS_RESULT FSCRT_Font_GetCharBBox(FSCRT_FONT font, FS_DWORD unicode, FSCRT_RECT* bbox);
3785 
3809 FS_RESULT FSCRT_Font_GetCharWidth(FSCRT_FONT font, FS_DWORD unicode, FS_FLOAT* width);
3810 
3811 /*******************************************************************************/
3812 /* Common definitions */
3813 /* */
3814 /* Macros for search flags, ciphers */
3815 /*******************************************************************************/
3816 #ifndef _FSCRT_DEF_MACRO_SEARCHFLAG_
3817 #define _FSCRT_DEF_MACRO_SEARCHFLAG_
3818 
3824 #define FSCRT_SEARCHFLAG_MATCHCASE 1
3825 
3826 #define FSCRT_SEARCHFLAG_MATCHWHOLEWORD 2
3827 
3828 #define FSCRT_SEARCHFLAG_CONSECUTIVE 4
3829 
3831 #endif /* _FSCRT_DEF_MACRO_SEARCHFLAG_ */
3832 
3833 #ifndef _FSCRT_DEF_MACRO_CIPHER_
3834 #define _FSCRT_DEF_MACRO_CIPHER_
3835 
3841 #define FSCRT_CIPHER_NONE 0
3842 
3843 #define FSCRT_CIPHER_RC4 1
3844 
3845 #define FSCRT_CIPHER_AES 2
3846 
3848 #endif /* _FSCRT_DEF_MACRO_CIPHER_ */
3849 
3850 #ifndef _FSCRT_DEF_MACRO_OBJECTTYPE_
3851 #define _FSCRT_DEF_MACRO_OBJECTTYPE_
3852 
3858 #define FSCRT_OBJECTTYPE_UNKNOWN 0
3859 
3860 #define FSCRT_OBJECTTYPE_DOCUMENT 1
3861 
3862 #define FSCRT_OBJECTTYPE_SECTION 2
3863 
3864 #define FSCRT_OBJECTTYPE_PAGE 3
3865 
3866 #define FSCRT_OBJECTTYPE_ANNOT 4
3867 
3868 #define FSCRT_OBJECTTYPE_FORM 5
3869 
3870 #define FSCRT_OBJECTTYPE_FORMFIELD 6
3871 
3872 #define FSCRT_OBJECTTYPE_FORMCONTROL 7
3873 
3874 #define FSCRT_OBJECTTYPE_SIGNATURE 8
3875 
3876 #define FSCRT_OBJECTTYPE_PSI 9
3877 
3879 #endif /* _FSCRT_DEF_MACRO_OBJECTTYPE_ */
3880 
3881 #ifndef _FSCRT_DEF_MACRO_PAGEROTATION_
3882 #define _FSCRT_DEF_MACRO_PAGEROTATION_
3883 
3889 #define FSCRT_PAGEROTATION_0 0
3890 
3891 #define FSCRT_PAGEROTATION_90 1
3892 
3893 #define FSCRT_PAGEROTATION_180 2
3894 
3895 #define FSCRT_PAGEROTATION_270 3
3896 
3898 #endif /* _FSCRT_DEF_MACRO_PAGEROTATION_ */
3899 
3900 #ifndef _FSCRT_DEF_MACRO_LANGUAGE_
3901 #define _FSCRT_DEF_MACRO_LANGUAGE_
3902 
3908 #define FSCRT_LANGUAGE_UNK 0
3909 
3910 #define FSCRT_LANGUAGE_CHS 1
3911 
3912 #define FSCRT_LANGUAGE_CHT 2
3913 
3914 #define FSCRT_LANGUAGE_DAN 3
3915 
3916 #define FSCRT_LANGUAGE_DEU 4
3917 
3918 #define FSCRT_LANGUAGE_ENU 5
3919 
3920 #define FSCRT_LANGUAGE_ESP 6
3921 
3922 #define FSCRT_LANGUAGE_FRA 7
3923 
3924 #define FSCRT_LANGUAGE_ITA 8
3925 
3926 #define FSCRT_LANGUAGE_KOR 9
3927 
3928 #define FSCRT_LANGUAGE_JPN 10
3929 
3930 #define FSCRT_LANGUAGE_NLD 11
3931 
3932 #define FSCRT_LANGUAGE_NOR 12
3933 
3934 #define FSCRT_LANGUAGE_PTB 13
3935 
3936 #define FSCRT_LANGUAGE_SUO 14
3937 
3938 #define FSCRT_LANGUAGE_SVE 15
3939 
3941 #endif /* _FSCRT_DEF_MACRO_LANGUAGE_ */
3942 
3943 #ifndef _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3944 #define _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3945 
3947 FSCRT_DEFINEHANDLE(FSCRT_ARCHIVE);
3948 
3949 #endif /* _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_ */
3950 
3971 FS_RESULT FSCRT_Archive_Create(FSCRT_ARCHIVE* archive);
3972 
3993 FS_RESULT FSCRT_Archive_Release(FSCRT_ARCHIVE archive);
3994 
4017 FS_RESULT FSCRT_Archive_GetData(FSCRT_ARCHIVE archive, FSCRT_BSTR* data);
4018 
4040 FS_RESULT FSCRT_Archive_LoadData(FSCRT_ARCHIVE archive, const FSCRT_BSTR* data);
4041 
4042 #ifndef _FSCRT_DEF_HANDLE_POSITION_
4043 #define _FSCRT_DEF_HANDLE_POSITION_
4044 
4045 FSCRT_DEFINEHANDLE(FSCRT_POSITION);
4046 #endif /* _FSCRT_DEF_HANDLE_POSITION_ */
4047 
4048 #ifdef __cplusplus
4049 };
4050 #endif
4051  /* group FSBASE */
4053 
4054 #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:3502
Structure for file reading or writing (I/O).
Definition: fs_base_r.h:920
FS_FLOAT d
Coefficient d.
Definition: fs_base_r.h:2139
FS_BOOL * boolPtrVar
A pointer to boolean data.
Definition: fs_base_r.h:409
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:407
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:389
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:3506
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:2031
Structure for rectangle, in float.
Definition: fs_base_r.h:2078
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:387
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:2115
FS_UINT8 uint8Var
An unsigned 8-bit integer value, or a FS_BYTE value.
Definition: fs_base_r.h:381
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:2143
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:1920
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:1935
Structure for rectangle, in integer.
Definition: fs_base_r.h:2056
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:898
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:816
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:1068
unsigned int FS_UINT32
32-bit unsigned integer.
Definition: fs_base_r.h:178
FS_INT32 right
Right coordinate.
Definition: fs_base_r.h:2063
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:3388
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:2083
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:3495
FS_LPVOID voidPtrVar
A pointer to variant data.
Definition: fs_base_r.h:395
FS_FLOAT c
Coefficient c.
Definition: fs_base_r.h:2137
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1520
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1074
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:405
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:399
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:2141
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:3077
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:1928
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:3381
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:2035
FS_RESULT FSCRT_Library_CreateDefaultMgr()
Create a default Foxit PDF SDK manager by applications.
Structure for date and time.
Definition: fs_base_r.h:2018
FS_INT16 * int16PtrVar
A pointer to signed 16-bit data.
Definition: fs_base_r.h:401
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:372
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:2133
FS_FLOAT y2
Y coordinate for the second point.
Definition: fs_base_r.h:2109
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:926
FS_FLOAT floatVar
A 32-bit floating point value.
Definition: fs_base_r.h:393
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:2111
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:2059
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:2135
FS_UINT16 second
Second, from 0 to 60. 60 for leap second.
Definition: fs_base_r.h:2033
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:818
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:824
Structure for variant definitions.
Definition: fs_base_r.h:369
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:391
void * FS_LPVOID
A pointer to any types.
Definition: fs_base_r.h:127
FS_INT32 bottom
Bottom coordinate.
Definition: fs_base_r.h:2065
FS_DWORD len
Length of a string, in bytes.
Definition: fs_base_r.h:626
FS_UINT16 * uint16PtrVar
A pointer to unsigned 16-bit data.
Definition: fs_base_r.h:403
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:2043
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:2027
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:3504
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:2105
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:383
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:2130
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:903
Structure for byte string.
Definition: fs_base_r.h:611
FS_FLOAT y4
Y coordinate for the fourth point.
Definition: fs_base_r.h:2117
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:2103
FS_LPSTR str
String buffer.
Definition: fs_base_r.h:620
FS_FLOAT left
Left coordinate.
Definition: fs_base_r.h:2081
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:2021
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:374
FS_FLOAT x2
X coordinate for the second point.
Definition: fs_base_r.h:2107
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:2041
Structure for array.
Definition: fs_base_r.h:813
FS_INT32 top
Top coordinate.
Definition: fs_base_r.h:2061
FS_FLOAT y3
Y coordinate for the third point.
Definition: fs_base_r.h:2113
FS_DWORD loSize
Low-order 32-bit unsigned size.
Definition: fs_base_r.h:901
FS_UINT16 hour
Hour, from 0 to 23.
Definition: fs_base_r.h:2029
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:385
FS_INT8 * int8PtrVar
A pointer to signed 8-bit data.
Definition: fs_base_r.h:397
FS_UINT16 day
Day of month, from 1 to 31.
Definition: fs_base_r.h:2025
FS_FLOAT * floatPtrVar
A pointer to float point data.
Definition: fs_base_r.h:411
FS_INT8 int8Var
A signed 8-bit integer value, or a FS_CHAR value.
Definition: fs_base_r.h:379
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:3084
FS_RESULT FSCRT_Library_GetPrivateData(FS_LPVOID moduleID, FS_LPVOID *data)
Get private data.
FS_FLOAT bottom
Bottom coordinate.
Definition: fs_base_r.h:2087
FS_FLOAT right
Right coordinate.
Definition: fs_base_r.h:2085
Structure for memory management.
Definition: fs_base_r.h:1513
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:2871
FS_UINT16 month
Month, from 1 to 12.
Definition: fs_base_r.h:2023
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:2100
FS_RESULT FSCRT_Matrix_Shear(FSCRT_MATRIX *matrix, FS_FLOAT alpha, FS_FLOAT beta)
Make a shear transformation on a coordinate matrix.

Foxit Corporation