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 {
374  FS_DWORD type;
376  FS_DWORD reserved;
378  union
379  {
381  FS_INT8 int8Var;
383  FS_UINT8 uint8Var;
385  FS_INT16 int16Var;
387  FS_UINT16 uint16Var;
389  FS_INT32 int32Var;
391  FS_UINT32 uint32Var;
393  FS_BOOL boolVar;
395  FS_FLOAT floatVar;
397  FS_LPVOID voidPtrVar;
399  FS_INT8* int8PtrVar;
401  FS_UINT8* uint8PtrVar;
403  FS_INT16* int16PtrVar;
405  FS_UINT16* uint16PtrVar;
407  FS_INT32* int32PtrVar;
409  FS_UINT32* uint32PtrVar;
411  FS_BOOL* boolPtrVar;
413  FS_FLOAT* floatPtrVar;
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 {
622  FS_LPSTR str;
628  FS_DWORD len;
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 
695 FS_RESULT FSCRT_BStr_Init(FSCRT_BSTR* bstr);
696 
719 FS_RESULT FSCRT_BStr_Clear(FSCRT_BSTR* bstr);
720 
747 FS_RESULT FSCRT_BStr_SetLength(FSCRT_BSTR* bstr, FS_DWORD length);
748 
775 FS_RESULT FSCRT_BStr_Set(FSCRT_BSTR* bstr, FS_LPCSTR str, FS_DWORD length);
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 {
818  FS_INT32 dataType;
820  FS_DWORD count;
826  FS_LPVOID data;
827 
828 }FSCRT_ARRAY;
829 
830 #endif /* _FSCRT_DEF_STRUCTURE_ARRAY_ */
831 
851 FS_RESULT FSCRT_Array_Init(FSCRT_ARRAY* array, FS_INT32 dataType);
852 
875 FS_RESULT FSCRT_Array_Clear(FSCRT_ARRAY* array);
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 {
903  FS_DWORD loSize;
905  FS_DWORD hiSize;
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 {
928  FS_LPVOID clientData;
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  {
1076  FS_LPVOID clientData;
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 
1441 FS_RESULT FSCRT_File_Write(FSCRT_FILE file, FS_LPVOID buffer, const FSCRT_FILESIZE* size);
1442 
1464 FS_RESULT FSCRT_File_Release(FSCRT_FILE file);
1465 
1466 /*******************************************************************************/
1467 /* Library management, license controls, log file and memory management */
1468 /*******************************************************************************/
1469 #ifndef _FSCRT_DEF_MACRO_LICENSETYPE_
1470 #define _FSCRT_DEF_MACRO_LICENSETYPE_
1471 
1483 #define FSCRT_LICENSETYPE_INVALID FSCRT_ERRCODE_INVALIDLICENSE
1484 
1489 #define FSCRT_LICENSETYPE_AUTHORIZED 0
1490 
1495 #define FSCRT_LICENSETYPE_EVALUATION 1
1496 
1501 #define FSCRT_LICENSETYPE_EXPIRED 2
1502 
1504 #endif /* _FSCRT_DEF_MACRO_LICENSETYPE_ */
1505 
1506 #ifndef _FSCRT_DEF_HANDLER_MEMMGR_
1507 #define _FSCRT_DEF_HANDLER_MEMMGR_
1508 
1515 typedef struct _FSCRT_MEMMGRHANDLER
1516 {
1522  FS_LPVOID clientData;
1523 
1537  FS_LPVOID (*Alloc)(FS_LPVOID clientData, FS_DWORD size);
1538 
1554  FS_LPVOID (*Realloc)(FS_LPVOID clientData, FS_LPVOID ptr, FS_DWORD newSize);
1555 
1568  void (*Free)(FS_LPVOID clientData, FS_LPVOID ptr);
1569 
1571 
1572 #endif /* _FSCRT_DEF_HANDLER_MEMMGR_ */
1573 
1602 FS_RESULT FSCRT_Library_CreateMgr(FS_LPVOID memory, FS_DWORD size, FSCRT_MEMMGRHANDLER* memMgr);
1603 
1626 FS_RESULT FSCRT_Library_CreateDefaultMgr();
1627 
1648 FS_RESULT FSCRT_Library_GetMgr(FS_LPVOID* sdkMgr);
1649 
1671 FS_RESULT FSCRT_Library_SetMgr(FS_LPVOID sdkMgr);
1672 
1692 
1711 FS_RESULT FSCRT_Library_GetFixedMemSize(FS_DWORD* memSize);
1712 
1739 FS_RESULT FSCRT_License_UnlockLibrary(const FSCRT_BSTR* licenseKey, const FSCRT_BSTR* unlockCode);
1740 
1770 FS_RESULT FSCRT_License_GetType(FS_INT32* type);
1771 
1792 FS_RESULT FSCRT_Library_SetLogFile(FSCRT_FILE file);
1793 
1813 FS_RESULT FSCRT_Library_EnableJavaScript(FS_BOOL isEnabled);
1814 
1834 FS_RESULT FSCRT_Memory_Alloc(FS_DWORD size, FS_LPVOID* ptr);
1835 
1856 FS_RESULT FSCRT_Memory_Realloc(FS_LPVOID ptr, FS_DWORD newSize, FS_LPVOID* newPtr);
1857 
1873 void FSCRT_Memory_Free(FS_LPVOID ptr);
1874 
1892 FS_RESULT FSCRT_Library_GetVersion(FSCRT_BSTR* sdkVersion);
1893 
1894 /*******************************************************************************/
1895 /* Thread supports */
1896 /* */
1897 /* Thread handler and finalization */
1898 /*******************************************************************************/
1899 #ifndef _FSCRT_DEF_HANDLE_THREAD_
1900 #define _FSCRT_DEF_HANDLE_THREAD_
1901 
1903 FSCRT_DEFINEHANDLE(FSCRT_THREAD);
1904 
1905 #endif /* _FSCRT_DEF_HANDLE_THREAD_ */
1906 
1907 #ifndef _FSCRT_DEF_HANDLER_THREAD_
1908 #define _FSCRT_DEF_HANDLER_THREAD_
1909 
1922 typedef void (*FSCRT_CALLBACK_THREADFINALIZE)(FSCRT_THREAD thread);
1923 
1930 typedef struct _FSCRT_THREADHANDLER
1931 {
1937  FS_LPVOID clientData;
1938 
1946  FSCRT_THREAD (*GetCurrentThread)(FS_LPVOID clientData);
1947 
1959  void (*SetThreadFinalizeCallback)(FS_LPVOID clientData, FSCRT_CALLBACK_THREADFINALIZE callbackThreadFinalize);
1960 
1962 
1963 #endif /* _FSCRT_DEF_HANDLER_THREAD_ */
1964 
1986 FS_RESULT FSCRT_Library_SetThreadHandler(FSCRT_THREADHANDLER* threadHandler);
1987 
2009 FS_RESULT FSCRT_Library_SetCacheSize(FS_DWORD size);
2010 
2011 /*******************************************************************************/
2012 /* Common data structures */
2013 /* */
2014 /* date & time, rectangle, matrix */
2015 /*******************************************************************************/
2016 #ifndef _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2017 #define _FSCRT_DEF_STRUCTURE_DATETIMEZONE_
2018 
2020 typedef struct _FSCRT_DATETIMEZONE
2021 {
2023  FS_UINT16 year;
2025  FS_UINT16 month;
2027  FS_UINT16 day;
2029  FS_UINT16 dayOfWeek;
2031  FS_UINT16 hour;
2033  FS_UINT16 minute;
2035  FS_UINT16 second;
2037  FS_UINT16 milliseconds;
2043  FS_INT16 tzHour;
2045  FS_UINT16 tzMinute;
2047 
2048 #endif /* _FSCRT_DEF_STRUCTURE_DATETIMEZONE_ */
2049 
2050 #ifndef _FSCRT_DEF_STRUCTURE_RECT_
2051 #define _FSCRT_DEF_STRUCTURE_RECT_
2052 
2058 typedef struct _FSCRT_RECT
2059 {
2061  FS_INT32 left;
2063  FS_INT32 top;
2065  FS_INT32 right;
2067  FS_INT32 bottom;
2068 } FSCRT_RECT;
2069 
2070 #endif /* _FSCRT_DEF_STRUCTURE_RECT_ */
2071 
2072 #ifndef _FSCRT_DEF_STRUCTURE_RECTF_
2073 #define _FSCRT_DEF_STRUCTURE_RECTF_
2074 
2080 typedef struct _FSCRT_RECTF
2081 {
2083  FS_FLOAT left;
2085  FS_FLOAT top;
2087  FS_FLOAT right;
2089  FS_FLOAT bottom;
2090 } FSCRT_RECTF;
2091 
2092 #endif /* _FSCRT_DEF_STRUCTURE_RECTF_ */
2093 
2094 #ifndef _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2095 #define _FSCRT_DEF_STRUCTURE_QUADPOINTSF_
2096 
2102 typedef struct _FSCRT_QUADPOINTSF
2103 {
2105  FS_FLOAT x1;
2107  FS_FLOAT y1;
2109  FS_FLOAT x2;
2111  FS_FLOAT y2;
2113  FS_FLOAT x3;
2115  FS_FLOAT y3;
2117  FS_FLOAT x4;
2119  FS_FLOAT y4;
2121 
2122 #endif /* _FSCRT_DEF_STRUCTURE_QUADPOINTSF_ */
2123 
2124 #ifndef _FSCRT_DEF_STRUCTURE_MATRIX_
2125 #define _FSCRT_DEF_STRUCTURE_MATRIX_
2126 
2132 typedef struct _FSCRT_MATRIX
2133 {
2135  FS_FLOAT a;
2137  FS_FLOAT b;
2139  FS_FLOAT c;
2141  FS_FLOAT d;
2143  FS_FLOAT e;
2145  FS_FLOAT f;
2146 } FSCRT_MATRIX;
2147 
2148 #endif /* _FSCRT_DEF_STRUCTURE_MATRIX_ */
2149 
2177 FS_RESULT FSCRT_Rect_IsAdjacent(const FSCRT_RECTF* rect1, const FSCRT_RECTF* rect2,
2178  FS_FLOAT alignmentTolerance, FS_FLOAT distanceTolerance, FS_DWORD direction,
2179  FS_BOOL* adjacent);
2180 
2202 FS_RESULT FSCRT_Matrix_Translate(FSCRT_MATRIX* matrix, FS_FLOAT offsetX, FS_FLOAT offsetY);
2203 
2225 FS_RESULT FSCRT_Matrix_Scale(FSCRT_MATRIX* matrix, FS_FLOAT scaleX, FS_FLOAT scaleY);
2226 
2249 FS_RESULT FSCRT_Matrix_Rotate(FSCRT_MATRIX* matrix, FS_FLOAT angle);
2250 
2276 FS_RESULT FSCRT_Matrix_Shear(FSCRT_MATRIX* matrix, FS_FLOAT alpha, FS_FLOAT beta);
2277 
2297 FS_RESULT FSCRT_Matrix_GetReverse(const FSCRT_MATRIX* srcMatrix, FSCRT_MATRIX* dstMatrix);
2298 
2319 FS_RESULT FSCRT_Matrix_Concat(FSCRT_MATRIX* dstMatrix, const FSCRT_MATRIX* srcMatrix);
2320 
2344 FS_RESULT FSCRT_Matrix_TransformPoint(const FSCRT_MATRIX* matrix, FS_INT32* x, FS_INT32* y);
2345 
2369 FS_RESULT FSCRT_Matrix_TransformPointF(const FSCRT_MATRIX* matrix, FS_FLOAT* x, FS_FLOAT* y);
2370 
2391 FS_RESULT FSCRT_Matrix_TransformRect(const FSCRT_MATRIX* matrix, FSCRT_RECT* rect);
2392 
2413 FS_RESULT FSCRT_Matrix_TransformRectF(const FSCRT_MATRIX* matrix, FSCRT_RECTF* rect);
2414 
2415 /*******************************************************************************/
2416 /* Path Data */
2417 /*******************************************************************************/
2418 #ifndef _FSCRT_DEF_HANDLE_PATHDATA_
2419 #define _FSCRT_DEF_HANDLE_PATHDATA_
2420 
2422 FSCRT_DEFINEHANDLE(FSCRT_PATHDATA);
2423 
2424 #endif /* _FSCRT_DEF_HANDLE_PATHDATA_ */
2425 
2426 #ifndef _FSCRT_DEF_MACRO_POINTTYPE_
2427 #define _FSCRT_DEF_MACRO_POINTTYPE_
2428 
2441 #define FSCRT_POINTTYPE_CLOSEFIGURE 1
2442 
2448 #define FSCRT_POINTTYPE_LINETO 2
2449 
2455 #define FSCRT_POINTTYPE_BEZIERTO 4
2456 
2462 #define FSCRT_POINTTYPE_MOVETO 6
2463 
2465 #endif /* _FSCRT_DEF_MACRO_POINTTYPE_ */
2466 
2467 #ifndef _FSCRT_DEF_MACRO_FILLMODE_
2468 #define _FSCRT_DEF_MACRO_FILLMODE_
2469 
2475 #define FSCRT_FILLMODE_NONE 0
2476 
2482 #define FSCRT_FILLMODE_ALTERNATE 1
2483 
2489 #define FSCRT_FILLMODE_WINDING 2
2490 
2492 #endif /* _FSCRT_DEF_MACRO_FILLMODE_ */
2493 
2513 FS_RESULT FSCRT_PathData_Create(FSCRT_PATHDATA* pathData);
2514 
2536 FS_RESULT FSCRT_PathData_Clear(FSCRT_PATHDATA pathData);
2537 
2557 FS_RESULT FSCRT_PathData_Release(FSCRT_PATHDATA pathData);
2558 
2578 FS_RESULT FSCRT_PathData_CountPoints(FSCRT_PATHDATA pathData, FS_INT32* count);
2579 
2605 FS_RESULT FSCRT_PathData_AddPointsCount(FSCRT_PATHDATA pathData, FS_INT32 count);
2606 
2637 FS_RESULT FSCRT_PathData_GetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT* x, FS_FLOAT* y, FS_INT32* pointType);
2638 
2671 FS_RESULT FSCRT_PathData_SetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT x, FS_FLOAT y, FS_INT32 pointType);
2672 
2693 FS_RESULT FSCRT_PathData_RemovePoint(FSCRT_PATHDATA pathData, FS_INT32 index);
2694 
2716 FS_RESULT FSCRT_PathData_MoveTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2717 
2739 FS_RESULT FSCRT_PathData_LineTo(FSCRT_PATHDATA pathData, FS_FLOAT x, FS_FLOAT y);
2740 
2768 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);
2769 
2790 FS_RESULT FSCRT_PathData_AppendRect(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2791 
2812 FS_RESULT FSCRT_PathData_AppendEllipse(FSCRT_PATHDATA pathData, const FSCRT_RECTF* rect);
2813 
2833 FS_RESULT FSCRT_PathData_CloseFigure(FSCRT_PATHDATA pathData);
2834 
2854 FS_RESULT FSCRT_PathData_Transform(FSCRT_PATHDATA pathData, const FSCRT_MATRIX* matrix);
2855 
2856 /*******************************************************************************/
2857 /* Private Data */
2858 /*******************************************************************************/
2859 #ifndef _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2860 #define _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_
2861 
2873 typedef void (*FSCRT_CALLBACK_FREEPRIVATEDATA)(FS_LPVOID data);
2874 
2875 #endif /* _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_ */
2876 
2898 FS_RESULT FSCRT_Library_SetPrivateData(FS_LPVOID moduleID, FS_LPVOID data, FSCRT_CALLBACK_FREEPRIVATEDATA callbackFreePrivateData);
2899 
2919 FS_RESULT FSCRT_Library_GetPrivateData(FS_LPVOID moduleID, FS_LPVOID* data);
2920 
2942 FS_RESULT FSCRT_Library_RemovePrivateData(FS_LPVOID moduleID);
2943 
2944 /*******************************************************************************/
2945 /* Common objects */
2946 /*******************************************************************************/
2947 #ifndef _FSCRT_DEF_HANDLE_DOCUMENT_
2948 #define _FSCRT_DEF_HANDLE_DOCUMENT_
2949 
2951 FSCRT_DEFINEHANDLE(FSCRT_DOCUMENT);
2952 
2953 #endif /* _FSCRT_DEF_HANDLE_DOCUMENT_ */
2954 
2955 #ifndef _FSCRT_DEF_HANDLE_PAGE_
2956 #define _FSCRT_DEF_HANDLE_PAGE_
2957 
2959 FSCRT_DEFINEHANDLE(FSCRT_PAGE);
2960 
2961 #endif /* _FSCRT_DEF_HANDLE_PAGE_ */
2962 
2963 #ifndef _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2964 #define _FSCRT_DEF_DEFINEHANDLE_ANNOT_
2965 
2967 FSCRT_DEFINEHANDLE(FSCRT_ANNOT);
2968 
2969 #endif /* _FSCRT_DEF_DEFINEHANDLE_ANNOT_ */
2970 
2971 #ifndef _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2972 #define _FSCRT_DEF_MACRO_DOCUMENTTYPE_
2973 
2981 #define FSCRT_DOCUMENTTYPE_PDF 1
2982 
2983 #define FSCRT_DOCUMENTTYPE_FDF 2
2984 
2985 #define FSCRT_DOCUMENTTYPE_XFDF 3
2986 
2988 #endif /* _FSCRT_DEF_MACRO_DOCUMENTTYPE_ */
2989 
3010 FS_RESULT FSCRT_Doc_GetType(FSCRT_DOCUMENT document, FS_INT32* docType);
3011 
3032 FS_RESULT FSCRT_Page_GetDocument(FSCRT_PAGE page, FSCRT_DOCUMENT* document);
3033 
3056 FS_RESULT FSCRT_Annot_GetPage(FSCRT_ANNOT annot, FSCRT_PAGE* page);
3057 
3058 /*******************************************************************************/
3059 /* Progressive controls */
3060 /*******************************************************************************/
3061 #ifndef _FSCRT_DEF_HANDLE_PROGRESS_
3062 #define _FSCRT_DEF_HANDLE_PROGRESS_
3063 
3065 FSCRT_DEFINEHANDLE(FSCRT_PROGRESS);
3066 
3067 #endif /* _FSCRT_DEF_HANDLE_PROGRESS_ */
3068 
3069 #ifndef _FSCRT_DEF_HANDLER_PAUSE_
3070 #define _FSCRT_DEF_HANDLER_PAUSE_
3071 
3079 typedef struct _FSCRT_PAUSEHANDLER
3080 {
3086  FS_LPVOID clientData;
3087 
3097  FS_BOOL (*NeedPauseNow)(FS_LPVOID clientData);
3098 
3100 
3101 #endif /* _FSCRT_DEF_HANDLER_PAUSE_ */
3102 
3147 FS_RESULT FSCRT_Progress_Continue(FSCRT_PROGRESS progress, FSCRT_PAUSEHANDLER* pause);
3148 
3193 FS_RESULT FSCRT_Progress_GetPercent(FSCRT_PROGRESS progress, FS_INT32* percent);
3194 
3216 FS_RESULT FSCRT_Progress_Release(FSCRT_PROGRESS progress);
3217 
3251 FS_RESULT FSCRT_Progress_SetProperty(FSCRT_PROGRESS progress, const FSCRT_BSTR* property, const FSCRT_VAR* values, FS_INT32 count);
3252 
3253 /*******************************************************************************/
3254 /* Font access */
3255 /*******************************************************************************/
3256 #ifndef _FSCRT_DEF_HANDLE_FONT_
3257 #define _FSCRT_DEF_HANDLE_FONT_
3258 
3259 
3260 
3262 FSCRT_DEFINEHANDLE(FSCRT_FONT);
3263 
3264 #endif /* _FSCRT_DEF_HANDLE_FONT_ */
3265 
3266 #ifndef _FSCRT_DEF_MACRO_FONTSTYLE_
3267 #define _FSCRT_DEF_MACRO_FONTSTYLE_
3268 
3274 #define FSCRT_FONTSTYLE_FIXEDPITCH 1
3275 
3276 #define FSCRT_FONTSTYLE_SERIF 2
3277 
3278 #define FSCRT_FONTSTYLE_SYMBOLIC 4
3279 
3280 #define FSCRT_FONTSTYLE_SCRIPT 8
3281 
3282 #define FSCRT_FONTSTYLE_NONSYMBOLIC 32
3283 
3284 #define FSCRT_FONTSTYLE_ITALIC 64
3285 
3286 #define FSCRT_FONTSTYLE_ALLCAP 0x10000
3287 
3288 #define FSCRT_FONTSTYLE_SMALLCAP 0x20000
3289 
3290 #define FSCRT_FONTSTYLE_BOLD 0x40000
3291 
3293 #endif /* _FSCRT_DEF_MACRO_FONT_ */
3294 
3295 #ifndef _FSCRT_DEF_MACRO_STDFONT_
3296 #define _FSCRT_DEF_MACRO_STDFONT_
3297 
3303 #define FSCRT_STDFONT_COURIER 0
3304 
3305 #define FSCRT_STDFONT_COURIER_B 1
3306 
3307 #define FSCRT_STDFONT_COURIER_BI 2
3308 
3309 #define FSCRT_STDFONT_COURIER_I 3
3310 
3311 #define FSCRT_STDFONT_HELVETICA 4
3312 
3313 #define FSCRT_STDFONT_HELVETICA_B 5
3314 
3315 #define FSCRT_STDFONT_HELVETICA_BI 6
3316 
3317 #define FSCRT_STDFONT_HELVETICA_I 7
3318 
3319 #define FSCRT_STDFONT_TIMES 8
3320 
3321 #define FSCRT_STDFONT_TIMES_B 9
3322 
3323 #define FSCRT_STDFONT_TIMES_BI 10
3324 
3325 #define FSCRT_STDFONT_TIMES_I 11
3326 
3327 #define FSCRT_STDFONT_SYMBOL 12
3328 
3329 #define FSCRT_STDFONT_ZAPFDINGBATS 13
3330 
3332 #endif /* _FSCRT_DEF_MACRO_STDFONT_ */
3333 
3334 #ifndef _FSCRT_DEF_MACRO_CHARSET_
3335 #define _FSCRT_DEF_MACRO_CHARSET_
3336 
3342 #define FSCRT_CHARSET_ANSI 0
3343 
3344 #define FSCRT_CHARSET_DEFAULT 1
3345 
3346 #define FSCRT_CHARSET_SYMBOL 2
3347 
3348 #define FSCRT_CHARSET_SHIFTJIS 128
3349 
3350 #define FSCRT_CHARSET_HANGEUL 129
3351 
3352 #define FSCRT_CHARSET_GB2312 134
3353 
3354 #define FSCRT_CHARSET_CHINESEBIG5 136
3355 
3356 #define FSCRT_CHARSET_THAI 222
3357 
3358 #define FSCRT_CHARSET_EASTEUROPE 238
3359 
3360 #define FSCRT_CHARSET_RUSSIAN 204
3361 
3362 #define FSCRT_CHARSET_GREEK 161
3363 
3364 #define FSCRT_CHARSET_TURKISH 162
3365 
3366 #define FSCRT_CHARSET_HEBREW 177
3367 
3368 #define FSCRT_CHARSET_ARABIC 178
3369 
3370 #define FSCRT_CHARSET_BALTIC 186
3371 
3373 #endif /* _FSCRT_DEF_MACRO_CHARSET_ */
3374 
3375 #ifndef _FSCRT_DEF_HANDLER_FONTMAPPER_
3376 #define _FSCRT_DEF_HANDLER_FONTMAPPER_
3377 
3383 typedef struct _FSCRT_FONTMAPPERHANDLER
3384 {
3390  FS_LPVOID clientData;
3391 
3416  FS_RESULT (*MapFont)(FS_LPVOID clientData, FS_LPCSTR fontName,
3417  FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset,
3418  FSCRT_FILE* fontFile, FS_INT32* faceIndex);
3420 
3421 #endif /* _FSCRT_DEF_HANDLER_FONTMAPPER_ */
3422 
3446 FS_RESULT FSCRT_Library_SetFontMapperHandler(FSCRT_FONTMAPPERHANDLER* fontMapperHandler);
3447 
3471 FS_RESULT FSCRT_Library_AddFontFile(FSCRT_FILE fontFile);
3472 
3491 FS_RESULT FSCRT_Library_LoadSystemFonts();
3492 
3493 #ifndef _FSCRT_DEF_STRUCTURE_FONTFACE_
3494 #define _FSCRT_DEF_STRUCTURE_FONTFACE_
3495 
3497 typedef struct _FSCRT_FONTFACE
3498 {
3506  FS_BOOL bold;
3508  FS_BOOL italic;
3509 } FSCRT_FONTFACE;
3510 
3511 #endif /* _FSCRT_DEF_STRUCTURE_FONTFACE_ */
3512 
3538 FS_RESULT FSCRT_Font_Create(const FSCRT_BSTR* fontName, FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset, FSCRT_FONT* font);
3539 
3562 FS_RESULT FSCRT_Font_CreateStandard(FS_INT32 fontID, FSCRT_FONT* font);
3563 
3596 FS_RESULT FSCRT_Font_EnumFaces(FSCRT_FILE fontFile, FSCRT_FONTFACE* faces, FS_INT32* count);
3597 
3624 FS_RESULT FSCRT_Font_CreateFromFile(FSCRT_FILE fontFile, FS_INT32 faceIndex, FS_INT32 charset, FSCRT_FONT* font);
3625 
3645 FS_RESULT FSCRT_Font_Release(FSCRT_FONT font);
3646 
3669 FS_RESULT FSCRT_Font_GetName(FSCRT_FONT font, FSCRT_BSTR* fontName);
3670 
3692 FS_RESULT FSCRT_Font_IsBold(FSCRT_FONT font, FS_BOOL* bold);
3693 
3715 FS_RESULT FSCRT_Font_IsItalic(FSCRT_FONT font, FS_BOOL* italic);
3716 
3738 FS_RESULT FSCRT_Font_GetAscent(FSCRT_FONT font, FS_INT32* ascent);
3739 
3761 FS_RESULT FSCRT_Font_GetDescent(FSCRT_FONT font, FS_INT32* descent);
3762 
3786 FS_RESULT FSCRT_Font_GetCharBBox(FSCRT_FONT font, FS_DWORD unicode, FSCRT_RECT* bbox);
3787 
3811 FS_RESULT FSCRT_Font_GetCharWidth(FSCRT_FONT font, FS_DWORD unicode, FS_FLOAT* width);
3812 
3813 /*******************************************************************************/
3814 /* Common definitions */
3815 /* */
3816 /* Macros for search flags, ciphers */
3817 /*******************************************************************************/
3818 #ifndef _FSCRT_DEF_MACRO_SEARCHFLAG_
3819 #define _FSCRT_DEF_MACRO_SEARCHFLAG_
3820 
3826 #define FSCRT_SEARCHFLAG_MATCHCASE 1
3827 
3828 #define FSCRT_SEARCHFLAG_MATCHWHOLEWORD 2
3829 
3830 #define FSCRT_SEARCHFLAG_CONSECUTIVE 4
3831 
3833 #endif /* _FSCRT_DEF_MACRO_SEARCHFLAG_ */
3834 
3835 #ifndef _FSCRT_DEF_MACRO_CIPHER_
3836 #define _FSCRT_DEF_MACRO_CIPHER_
3837 
3843 #define FSCRT_CIPHER_NONE 0
3844 
3845 #define FSCRT_CIPHER_RC4 1
3846 
3847 #define FSCRT_CIPHER_AES 2
3848 
3850 #endif /* _FSCRT_DEF_MACRO_CIPHER_ */
3851 
3852 #ifndef _FSCRT_DEF_MACRO_OBJECTTYPE_
3853 #define _FSCRT_DEF_MACRO_OBJECTTYPE_
3854 
3860 #define FSCRT_OBJECTTYPE_UNKNOWN 0
3861 
3862 #define FSCRT_OBJECTTYPE_DOCUMENT 1
3863 
3864 #define FSCRT_OBJECTTYPE_SECTION 2
3865 
3866 #define FSCRT_OBJECTTYPE_PAGE 3
3867 
3868 #define FSCRT_OBJECTTYPE_ANNOT 4
3869 
3870 #define FSCRT_OBJECTTYPE_FORM 5
3871 
3872 #define FSCRT_OBJECTTYPE_FORMFIELD 6
3873 
3874 #define FSCRT_OBJECTTYPE_FORMCONTROL 7
3875 
3876 #define FSCRT_OBJECTTYPE_SIGNATURE 8
3877 
3878 #define FSCRT_OBJECTTYPE_PSI 9
3879 
3881 #endif /* _FSCRT_DEF_MACRO_OBJECTTYPE_ */
3882 
3883 #ifndef _FSCRT_DEF_MACRO_PAGEROTATION_
3884 #define _FSCRT_DEF_MACRO_PAGEROTATION_
3885 
3891 #define FSCRT_PAGEROTATION_0 0
3892 
3893 #define FSCRT_PAGEROTATION_90 1
3894 
3895 #define FSCRT_PAGEROTATION_180 2
3896 
3897 #define FSCRT_PAGEROTATION_270 3
3898 
3900 #endif /* _FSCRT_DEF_MACRO_PAGEROTATION_ */
3901 
3902 #ifndef _FSCRT_DEF_MACRO_LANGUAGE_
3903 #define _FSCRT_DEF_MACRO_LANGUAGE_
3904 
3910 #define FSCRT_LANGUAGE_UNK 0
3911 
3912 #define FSCRT_LANGUAGE_CHS 1
3913 
3914 #define FSCRT_LANGUAGE_CHT 2
3915 
3916 #define FSCRT_LANGUAGE_DAN 3
3917 
3918 #define FSCRT_LANGUAGE_DEU 4
3919 
3920 #define FSCRT_LANGUAGE_ENU 5
3921 
3922 #define FSCRT_LANGUAGE_ESP 6
3923 
3924 #define FSCRT_LANGUAGE_FRA 7
3925 
3926 #define FSCRT_LANGUAGE_ITA 8
3927 
3928 #define FSCRT_LANGUAGE_KOR 9
3929 
3930 #define FSCRT_LANGUAGE_JPN 10
3931 
3932 #define FSCRT_LANGUAGE_NLD 11
3933 
3934 #define FSCRT_LANGUAGE_NOR 12
3935 
3936 #define FSCRT_LANGUAGE_PTB 13
3937 
3938 #define FSCRT_LANGUAGE_SUO 14
3939 
3940 #define FSCRT_LANGUAGE_SVE 15
3941 
3943 #endif /* _FSCRT_DEF_MACRO_LANGUAGE_ */
3944 
3945 #ifndef _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3946 #define _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_
3947 
3949 FSCRT_DEFINEHANDLE(FSCRT_ARCHIVE);
3950 
3951 #endif /* _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_ */
3952 
3973 FS_RESULT FSCRT_Archive_Create(FSCRT_ARCHIVE* archive);
3974 
3995 FS_RESULT FSCRT_Archive_Release(FSCRT_ARCHIVE archive);
3996 
4019 FS_RESULT FSCRT_Archive_GetData(FSCRT_ARCHIVE archive, FSCRT_BSTR* data);
4020 
4042 FS_RESULT FSCRT_Archive_LoadData(FSCRT_ARCHIVE archive, const FSCRT_BSTR* data);
4043 
4044 #ifndef _FSCRT_DEF_HANDLE_POSITION_
4045 #define _FSCRT_DEF_HANDLE_POSITION_
4046 
4047 FSCRT_DEFINEHANDLE(FSCRT_POSITION);
4048 #endif /* _FSCRT_DEF_HANDLE_POSITION_ */
4049 
4050 #ifdef __cplusplus
4051 };
4052 #endif
4053  /* group FSBASE */
4055 
4056 #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:3504
Structure for file reading or writing (I/O).
Definition: fs_base_r.h:922
FS_FLOAT d
Coefficient d.
Definition: fs_base_r.h:2141
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:3508
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:2033
Structure for rectangle, in float.
Definition: fs_base_r.h:2080
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:2117
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:2145
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:1922
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:1937
Structure for rectangle, in integer.
Definition: fs_base_r.h:2058
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:2065
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:3390
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:2085
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:3497
FS_LPVOID voidPtrVar
A pointer to variant data.
Definition: fs_base_r.h:397
FS_FLOAT c
Coefficient c.
Definition: fs_base_r.h:2139
FS_LPVOID clientData
User-defined data.
Definition: fs_base_r.h:1522
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:2143
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:3079
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:1930
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:3383
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:2037
FS_RESULT FSCRT_Library_CreateDefaultMgr()
Create a default Foxit PDF SDK manager by applications.
Structure for date and time.
Definition: fs_base_r.h:2020
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:2135
FS_FLOAT y2
Y coordinate for the second point.
Definition: fs_base_r.h:2111
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:2113
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:2061
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:2137
FS_UINT16 second
Second, from 0 to 60. 60 for leap second.
Definition: fs_base_r.h:2035
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:2067
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:2045
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:2029
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:3506
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:2107
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:2132
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:2119
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:2105
FS_LPSTR str
String buffer.
Definition: fs_base_r.h:622
FS_FLOAT left
Left coordinate.
Definition: fs_base_r.h:2083
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:2023
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:2109
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:2043
Structure for array.
Definition: fs_base_r.h:815
FS_INT32 top
Top coordinate.
Definition: fs_base_r.h:2063
FS_FLOAT y3
Y coordinate for the third point.
Definition: fs_base_r.h:2115
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:2031
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:2027
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:3086
FS_RESULT FSCRT_Library_GetPrivateData(FS_LPVOID moduleID, FS_LPVOID *data)
Get private data.
FS_FLOAT bottom
Bottom coordinate.
Definition: fs_base_r.h:2089
FS_FLOAT right
Right coordinate.
Definition: fs_base_r.h:2087
Structure for memory management.
Definition: fs_base_r.h:1515
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:2873
FS_UINT16 month
Month, from 1 to 12.
Definition: fs_base_r.h:2025
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:2102
FS_RESULT FSCRT_Matrix_Shear(FSCRT_MATRIX *matrix, FS_FLOAT alpha, FS_FLOAT beta)
Make a shear transformation on a coordinate matrix.

Foxit Corporation