31 #ifndef _FSCRT_BASE_R_H_ 32 #define _FSCRT_BASE_R_H_ 116 #ifndef _FSCRT_DEF_TYPE_BASETYPES_ 117 #define _FSCRT_DEF_TYPE_BASETYPES_ 183 #ifndef _FSCRT_DEF_HANDLE_DEFINE_ 184 #define _FSCRT_DEF_HANDLE_DEFINE_ 187 #define FSCRT_DEFINEHANDLE(name) typedef struct _##name {FS_LPVOID pData;} * name; 191 #ifndef _FSCRT_DEF_MACRO_ERRCODE_ 192 #define _FSCRT_DEF_MACRO_ERRCODE_ 201 #define FSCRT_ERRCODE_SUCCESS 0 203 #define FSCRT_ERRCODE_ERROR -1 205 #define FSCRT_ERRCODE_INVALIDMANAGER -2 207 #define FSCRT_ERRCODE_INVALIDMODULE -3 209 #define FSCRT_ERRCODE_UNRECOVERABLE -4 211 #define FSCRT_ERRCODE_OUTOFMEMORY -5 213 #define FSCRT_ERRCODE_PASSWORD -6 215 #define FSCRT_ERRCODE_FORMAT -7 217 #define FSCRT_ERRCODE_FILE -8 219 #define FSCRT_ERRCODE_PARAM -9 221 #define FSCRT_ERRCODE_INVALIDLICENSE -10 223 #define FSCRT_ERRCODE_HANDLER -11 225 #define FSCRT_ERRCODE_UNKNOWNSECURITYHANDLER -12 227 #define FSCRT_ERRCODE_INVALIDCERTIFICATE -13 229 #define FSCRT_ERRCODE_NOTFOUND -14 231 #define FSCRT_ERRCODE_INVALIDTYPE -15 233 #define FSCRT_ERRCODE_UNSUPPORTED -16 235 #define FSCRT_ERRCODE_NOTPARSED -17 237 #define FSCRT_ERRCODE_UNKNOWNSTATE -18 239 #define FSCRT_ERRCODE_BUFFEROVERFLOW -19 241 #define FSCRT_ERRCODE_CONFLICT -20 243 #define FSCRT_ERRCODE_DATANOTREADY -21 245 #define FSCRT_ERRCODE_MEMORYREBUILT -22 247 #define FSCRT_ERRCODE_UNKNOWNHANDLER -23 253 #define FSCRT_ERRCODE_TOBECONTINUED 1 255 #define FSCRT_ERRCODE_FINISHED 2 257 #define FSCRT_ERRCODE_ROLLBACK 3 260 #define FSCRT_SUCCEEDED(result) ((FS_RESULT)(result) >= 0) 262 #define FSCRT_FAILED(result) ((FS_RESULT)(result) < 0) 267 #ifndef _FSCRT_DEF_MACRO_VT_ 268 #define _FSCRT_DEF_MACRO_VT_ 276 #define FSCRT_VT_EMPTY 0x00000000 278 #define FSCRT_VT_INT8 0x00000001 280 #define FSCRT_VT_UINT8 0x00000002 282 #define FSCRT_VT_INT16 0x00000003 284 #define FSCRT_VT_UINT16 0x00000004 286 #define FSCRT_VT_INT32 0x00000005 288 #define FSCRT_VT_UINT32 0x00000006 290 #define FSCRT_VT_BOOL 0x00000007 292 #define FSCRT_VT_FLOAT 0x00000008 294 #define FSCRT_VT_LPVOID 0x80000000 296 #define FSCRT_VT_LPINT8 (FSCRT_VT_LPVOID | FSCRT_VT_INT8) 298 #define FSCRT_VT_LPUINT8 (FSCRT_VT_LPVOID | FSCRT_VT_UINT8) 300 #define FSCRT_VT_LPINT16 (FSCRT_VT_LPVOID | FSCRT_VT_INT16) 302 #define FSCRT_VT_LPUINT16 (FSCRT_VT_LPVOID | FSCRT_VT_UINT16) 304 #define FSCRT_VT_LPINT32 (FSCRT_VT_LPVOID | FSCRT_VT_INT32) 306 #define FSCRT_VT_LPUINT32 (FSCRT_VT_LPVOID | FSCRT_VT_UINT32) 308 #define FSCRT_VT_LPBOOL (FSCRT_VT_LPVOID | FSCRT_VT_BOOL) 310 #define FSCRT_VT_LPFLOAT (FSCRT_VT_LPVOID | FSCRT_VT_FLOAT) 312 #define FSCRT_VT_CHAR FSCRT_VT_INT8 314 #define FSCRT_VT_BYTE FSCRT_VT_UINT8 316 #define FSCRT_VT_WORD FSCRT_VT_UINT16 318 #define FSCRT_VT_RESULT FSCRT_VT_INT32 320 #define FSCRT_VT_DWORD FSCRT_VT_UINT32 322 #define FSCRT_VT_ARGB FSCRT_VT_UINT32 324 #define FSCRT_VT_LPSTR FSCRT_VT_LPINT8 326 #define FSCRT_VT_LPCSTR FSCRT_VT_LPINT8 328 #define FSCRT_VT_LPBYTE FSCRT_VT_LPUINT8 330 #define FSCRT_VT_LPWORD FSCRT_VT_LPUINT16 332 #define FSCRT_VT_LPRESULT FSCRT_VT_LPINT32 334 #define FSCRT_VT_LPDWORD FSCRT_VT_LPUINT32 336 #define FSCRT_VT_LPARGB FSCRT_VT_LPUINT32 338 #define FSCRT_VT_BSTR (FSCRT_VT_LPVOID|0x00000010) 340 #define FSCRT_VT_OBJECT (FSCRT_VT_LPVOID|0x00001000) 348 #ifndef _FSPDF_DEF_MACRO_VT_OBJECT_ 349 #define _FSPDF_DEF_MACRO_VT_OBJECT_ 355 #define FSCRT_VT_OBJECT_LAYER (FSCRT_VT_OBJECT|0x000000001) 357 #define FSCRT_VT_OBJECT_PAGEOBJECT (FSCRT_VT_OBJECT|0x000000002) 361 #ifndef _FSCRT_DEF_STRUCTURE_VAR_ 362 #define _FSCRT_DEF_STRUCTURE_VAR_ 369 typedef struct _FSCRT_VAR
424 #define FSCRT_Var_SetInt8Value(variant, value) (variant).type = FSCRT_VT_INT8, (variant).var.int8Var = (value); 434 #define FSCRT_Var_SetUInt8Value(variant, value) (variant).type = FSCRT_VT_UINT8, (variant).var.uint8Var = (value); 444 #define FSCRT_Var_SetInt16Value(variant, value) (variant).type = FSCRT_VT_INT16, (variant).var.int16Var = (value); 454 #define FSCRT_Var_SetUInt16Value(variant, value) (variant).type = FSCRT_VT_UINT16, (variant).var.uint16Var = (value); 464 #define FSCRT_Var_SetInt32Value(variant, value) (variant).type = FSCRT_VT_INT32, (variant).var.int32Var = (value); 474 #define FSCRT_Var_SetUInt32Value(variant, value) (variant).type = FSCRT_VT_UINT32, (variant).var.uint32Var = (value); 484 #define FSCRT_Var_SetBooleanValue(variant, value) (variant).type = FSCRT_VT_BOOL, (variant).var.boolVar = (value); 494 #define FSCRT_Var_SetFloatValue(variant, value) (variant).type = FSCRT_VT_FLOAT, (variant).var.floatVar = (value); 504 #define FSCRT_Var_SetVoidPtrValue(variant, value) (variant).type = FSCRT_VT_LPVOID, (variant).var.voidPtrVar = (value); 515 #define FSCRT_Var_SetInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT8, (variant).var.int8PtrVar = (value); 526 #define FSCRT_Var_SetUInt8PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT8, (variant).var.uint8PtrVar = (value); 537 #define FSCRT_Var_SetInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT16, (variant).var.int16PtrVar = (value); 548 #define FSCRT_Var_SetUInt16PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT16, (variant).var.uint16PtrVar = (value); 559 #define FSCRT_Var_SetInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPINT32, (variant).var.int32PtrVar = (value); 570 #define FSCRT_Var_SetUInt32PtrValue(variant, value) (variant).type = FSCRT_VT_LPUINT32, (variant).var.uint32PtrVar = (value); 581 #define FSCRT_Var_SetBooleanPtrValue(variant, value) (variant).type = FSCRT_VT_LPBOOL, (variant).var.boolPtrVar = (value); 592 #define FSCRT_Var_SetFloatPtrValue(variant, value) (variant).type = FSCRT_VT_LPFLOAT, (variant).var.floatPtrVar = (value); 601 #ifndef _FSCRT_DEF_STRUCTURE_BSTR_ 602 #define _FSCRT_DEF_STRUCTURE_BSTR_ 611 typedef struct _FSCRT_BSTR
641 #define FSCRT_BSTRD(str) {str, sizeof(str) - 1} 655 #define FSCRT_BSTRC(v, str) FSCRT_BSTR v = FSCRT_BSTRD(str) 667 #define FSCRT_BStr_InitConstString(v, s) (v).str = s, (v).len = sizeof(s) - 1; 786 #define FSCRT_BStr_SetConstString(bstr, str) FSCRT_BStr_Set(bstr, str, sizeof(str) - 1) 804 #define FSCRT_BStr_Copy(dstStr, srcStr) FSCRT_BStr_Set(dstStr, (srcStr)->str, (srcStr)->len) 807 #ifndef _FSCRT_DEF_STRUCTURE_ARRAY_ 808 #define _FSCRT_DEF_STRUCTURE_ARRAY_ 813 typedef struct _FSCRT_ARRAY
880 #ifndef _FSCRT_DEF_HANDLE_FILE_ 881 #define _FSCRT_DEF_HANDLE_FILE_ 884 FSCRT_DEFINEHANDLE(FSCRT_FILE);
888 #ifndef _FSCRT_DEF_STRUCTURE_FILESIZE_ 889 #define _FSCRT_DEF_STRUCTURE_FILESIZE_ 898 typedef struct _FSCRT_FILESIZE
908 #ifndef _FSCRT_DEF_HANDLER_FILE_ 909 #define _FSCRT_DEF_HANDLER_FILE_ 920 typedef struct _FSCRT_FILEHANDLER
938 void (*Release)(FS_LPVOID clientData);
968 FS_RESULT (*ReadBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPVOID buffer, FS_DWORD size);
987 FS_RESULT (*WriteBlock)(FS_LPVOID clientData, FS_DWORD offset, FS_LPCVOID buffer, FS_DWORD size);
1056 #ifndef _FSCRT_DEF_HANDLE_LARGE_FILE_ 1057 #define _FSCRT_DEF_HANDLE_LARGE_FILE_ 1068 typedef struct _FSCRT_FILEHANDLER_L
1086 void (*Release)(FS_LPVOID clientData);
1272 #ifndef _FSCRT_DEF_MACRO_FILEMODE_ 1273 #define _FSCRT_DEF_MACRO_FILEMODE_ 1285 #define FSCRT_FILEMODE_WRITE 0 1287 #define FSCRT_FILEMODE_READONLY 1 1289 #define FSCRT_FILEMODE_TRUNCATE 2 1467 #ifndef _FSCRT_DEF_MACRO_LICENSETYPE_ 1468 #define _FSCRT_DEF_MACRO_LICENSETYPE_ 1481 #define FSCRT_LICENSETYPE_INVALID FSCRT_ERRCODE_INVALIDLICENSE 1487 #define FSCRT_LICENSETYPE_AUTHORIZED 0 1493 #define FSCRT_LICENSETYPE_EVALUATION 1 1499 #define FSCRT_LICENSETYPE_EXPIRED 2 1504 #ifndef _FSCRT_DEF_HANDLER_MEMMGR_ 1505 #define _FSCRT_DEF_HANDLER_MEMMGR_ 1513 typedef struct _FSCRT_MEMMGRHANDLER
1552 FS_LPVOID (*Realloc)(FS_LPVOID clientData, FS_LPVOID ptr, FS_DWORD newSize);
1566 void (*Free)(FS_LPVOID clientData, FS_LPVOID ptr);
1897 #ifndef _FSCRT_DEF_HANDLE_THREAD_ 1898 #define _FSCRT_DEF_HANDLE_THREAD_ 1901 FSCRT_DEFINEHANDLE(FSCRT_THREAD);
1905 #ifndef _FSCRT_DEF_HANDLER_THREAD_ 1906 #define _FSCRT_DEF_HANDLER_THREAD_ 1928 typedef struct _FSCRT_THREADHANDLER
1944 FSCRT_THREAD (*GetCurrentThread)(FS_LPVOID clientData);
2014 #ifndef _FSCRT_DEF_STRUCTURE_DATETIMEZONE_ 2015 #define _FSCRT_DEF_STRUCTURE_DATETIMEZONE_ 2018 typedef struct _FSCRT_DATETIMEZONE
2048 #ifndef _FSCRT_DEF_STRUCTURE_RECT_ 2049 #define _FSCRT_DEF_STRUCTURE_RECT_ 2056 typedef struct _FSCRT_RECT
2070 #ifndef _FSCRT_DEF_STRUCTURE_RECTF_ 2071 #define _FSCRT_DEF_STRUCTURE_RECTF_ 2078 typedef struct _FSCRT_RECTF
2092 #ifndef _FSCRT_DEF_STRUCTURE_QUADPOINTSF_ 2093 #define _FSCRT_DEF_STRUCTURE_QUADPOINTSF_ 2100 typedef struct _FSCRT_QUADPOINTSF
2122 #ifndef _FSCRT_DEF_STRUCTURE_MATRIX_ 2123 #define _FSCRT_DEF_STRUCTURE_MATRIX_ 2130 typedef struct _FSCRT_MATRIX
2176 FS_FLOAT alignmentTolerance, FS_FLOAT distanceTolerance, FS_DWORD direction,
2416 #ifndef _FSCRT_DEF_HANDLE_PATHDATA_ 2417 #define _FSCRT_DEF_HANDLE_PATHDATA_ 2420 FSCRT_DEFINEHANDLE(FSCRT_PATHDATA);
2424 #ifndef _FSCRT_DEF_MACRO_POINTTYPE_ 2425 #define _FSCRT_DEF_MACRO_POINTTYPE_ 2439 #define FSCRT_POINTTYPE_CLOSEFIGURE 1 2446 #define FSCRT_POINTTYPE_LINETO 2 2453 #define FSCRT_POINTTYPE_BEZIERTO 4 2460 #define FSCRT_POINTTYPE_MOVETO 6 2465 #ifndef _FSCRT_DEF_MACRO_FILLMODE_ 2466 #define _FSCRT_DEF_MACRO_FILLMODE_ 2473 #define FSCRT_FILLMODE_NONE 0 2480 #define FSCRT_FILLMODE_ALTERNATE 1 2487 #define FSCRT_FILLMODE_WINDING 2 2635 FS_RESULT
FSCRT_PathData_GetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT* x, FS_FLOAT* y, FS_INT32* pointType);
2669 FS_RESULT
FSCRT_PathData_SetPoint(FSCRT_PATHDATA pathData, FS_INT32 index, FS_FLOAT x, FS_FLOAT y, FS_INT32 pointType);
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);
2857 #ifndef _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_ 2858 #define _FSCRT_DEF_CALLBACK_FREEPRIVATEDATA_ 2945 #ifndef _FSCRT_DEF_HANDLE_DOCUMENT_ 2946 #define _FSCRT_DEF_HANDLE_DOCUMENT_ 2949 FSCRT_DEFINEHANDLE(FSCRT_DOCUMENT);
2953 #ifndef _FSCRT_DEF_HANDLE_PAGE_ 2954 #define _FSCRT_DEF_HANDLE_PAGE_ 2957 FSCRT_DEFINEHANDLE(FSCRT_PAGE);
2961 #ifndef _FSCRT_DEF_DEFINEHANDLE_ANNOT_ 2962 #define _FSCRT_DEF_DEFINEHANDLE_ANNOT_ 2965 FSCRT_DEFINEHANDLE(FSCRT_ANNOT);
2969 #ifndef _FSCRT_DEF_MACRO_DOCUMENTTYPE_ 2970 #define _FSCRT_DEF_MACRO_DOCUMENTTYPE_ 2979 #define FSCRT_DOCUMENTTYPE_PDF 1 2981 #define FSCRT_DOCUMENTTYPE_FDF 2 2983 #define FSCRT_DOCUMENTTYPE_XFDF 3 3059 #ifndef _FSCRT_DEF_HANDLE_PROGRESS_ 3060 #define _FSCRT_DEF_HANDLE_PROGRESS_ 3063 FSCRT_DEFINEHANDLE(FSCRT_PROGRESS);
3067 #ifndef _FSCRT_DEF_HANDLER_PAUSE_ 3068 #define _FSCRT_DEF_HANDLER_PAUSE_ 3077 typedef struct _FSCRT_PAUSEHANDLER
3254 #ifndef _FSCRT_DEF_HANDLE_FONT_ 3255 #define _FSCRT_DEF_HANDLE_FONT_ 3260 FSCRT_DEFINEHANDLE(FSCRT_FONT);
3264 #ifndef _FSCRT_DEF_MACRO_FONTSTYLE_ 3265 #define _FSCRT_DEF_MACRO_FONTSTYLE_ 3272 #define FSCRT_FONTSTYLE_FIXEDPITCH 1 3274 #define FSCRT_FONTSTYLE_SERIF 2 3276 #define FSCRT_FONTSTYLE_SYMBOLIC 4 3278 #define FSCRT_FONTSTYLE_SCRIPT 8 3280 #define FSCRT_FONTSTYLE_NONSYMBOLIC 32 3282 #define FSCRT_FONTSTYLE_ITALIC 64 3284 #define FSCRT_FONTSTYLE_ALLCAP 0x10000 3286 #define FSCRT_FONTSTYLE_SMALLCAP 0x20000 3288 #define FSCRT_FONTSTYLE_BOLD 0x40000 3293 #ifndef _FSCRT_DEF_MACRO_STDFONT_ 3294 #define _FSCRT_DEF_MACRO_STDFONT_ 3301 #define FSCRT_STDFONT_COURIER 0 3303 #define FSCRT_STDFONT_COURIER_B 1 3305 #define FSCRT_STDFONT_COURIER_BI 2 3307 #define FSCRT_STDFONT_COURIER_I 3 3309 #define FSCRT_STDFONT_HELVETICA 4 3311 #define FSCRT_STDFONT_HELVETICA_B 5 3313 #define FSCRT_STDFONT_HELVETICA_BI 6 3315 #define FSCRT_STDFONT_HELVETICA_I 7 3317 #define FSCRT_STDFONT_TIMES 8 3319 #define FSCRT_STDFONT_TIMES_B 9 3321 #define FSCRT_STDFONT_TIMES_BI 10 3323 #define FSCRT_STDFONT_TIMES_I 11 3325 #define FSCRT_STDFONT_SYMBOL 12 3327 #define FSCRT_STDFONT_ZAPFDINGBATS 13 3332 #ifndef _FSCRT_DEF_MACRO_CHARSET_ 3333 #define _FSCRT_DEF_MACRO_CHARSET_ 3340 #define FSCRT_CHARSET_ANSI 0 3342 #define FSCRT_CHARSET_DEFAULT 1 3344 #define FSCRT_CHARSET_SYMBOL 2 3346 #define FSCRT_CHARSET_SHIFTJIS 128 3348 #define FSCRT_CHARSET_HANGEUL 129 3350 #define FSCRT_CHARSET_GB2312 134 3352 #define FSCRT_CHARSET_CHINESEBIG5 136 3354 #define FSCRT_CHARSET_THAI 222 3356 #define FSCRT_CHARSET_EASTEUROPE 238 3358 #define FSCRT_CHARSET_RUSSIAN 204 3360 #define FSCRT_CHARSET_GREEK 161 3362 #define FSCRT_CHARSET_TURKISH 162 3364 #define FSCRT_CHARSET_HEBREW 177 3366 #define FSCRT_CHARSET_ARABIC 178 3368 #define FSCRT_CHARSET_BALTIC 186 3373 #ifndef _FSCRT_DEF_HANDLER_FONTMAPPER_ 3374 #define _FSCRT_DEF_HANDLER_FONTMAPPER_ 3381 typedef struct _FSCRT_FONTMAPPERHANDLER
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);
3491 #ifndef _FSCRT_DEF_STRUCTURE_FONTFACE_ 3492 #define _FSCRT_DEF_STRUCTURE_FONTFACE_ 3495 typedef struct _FSCRT_FONTFACE
3536 FS_RESULT
FSCRT_Font_Create(
const FSCRT_BSTR* fontName, FS_DWORD fontStyles, FS_INT32 weight, FS_INT32 charset, FSCRT_FONT* font);
3816 #ifndef _FSCRT_DEF_MACRO_SEARCHFLAG_ 3817 #define _FSCRT_DEF_MACRO_SEARCHFLAG_ 3824 #define FSCRT_SEARCHFLAG_MATCHCASE 1 3826 #define FSCRT_SEARCHFLAG_MATCHWHOLEWORD 2 3828 #define FSCRT_SEARCHFLAG_CONSECUTIVE 4 3833 #ifndef _FSCRT_DEF_MACRO_CIPHER_ 3834 #define _FSCRT_DEF_MACRO_CIPHER_ 3841 #define FSCRT_CIPHER_NONE 0 3843 #define FSCRT_CIPHER_RC4 1 3845 #define FSCRT_CIPHER_AES 2 3850 #ifndef _FSCRT_DEF_MACRO_OBJECTTYPE_ 3851 #define _FSCRT_DEF_MACRO_OBJECTTYPE_ 3858 #define FSCRT_OBJECTTYPE_UNKNOWN 0 3860 #define FSCRT_OBJECTTYPE_DOCUMENT 1 3862 #define FSCRT_OBJECTTYPE_SECTION 2 3864 #define FSCRT_OBJECTTYPE_PAGE 3 3866 #define FSCRT_OBJECTTYPE_ANNOT 4 3868 #define FSCRT_OBJECTTYPE_FORM 5 3870 #define FSCRT_OBJECTTYPE_FORMFIELD 6 3872 #define FSCRT_OBJECTTYPE_FORMCONTROL 7 3874 #define FSCRT_OBJECTTYPE_SIGNATURE 8 3876 #define FSCRT_OBJECTTYPE_PSI 9 3881 #ifndef _FSCRT_DEF_MACRO_PAGEROTATION_ 3882 #define _FSCRT_DEF_MACRO_PAGEROTATION_ 3889 #define FSCRT_PAGEROTATION_0 0 3891 #define FSCRT_PAGEROTATION_90 1 3893 #define FSCRT_PAGEROTATION_180 2 3895 #define FSCRT_PAGEROTATION_270 3 3900 #ifndef _FSCRT_DEF_MACRO_LANGUAGE_ 3901 #define _FSCRT_DEF_MACRO_LANGUAGE_ 3908 #define FSCRT_LANGUAGE_UNK 0 3910 #define FSCRT_LANGUAGE_CHS 1 3912 #define FSCRT_LANGUAGE_CHT 2 3914 #define FSCRT_LANGUAGE_DAN 3 3916 #define FSCRT_LANGUAGE_DEU 4 3918 #define FSCRT_LANGUAGE_ENU 5 3920 #define FSCRT_LANGUAGE_ESP 6 3922 #define FSCRT_LANGUAGE_FRA 7 3924 #define FSCRT_LANGUAGE_ITA 8 3926 #define FSCRT_LANGUAGE_KOR 9 3928 #define FSCRT_LANGUAGE_JPN 10 3930 #define FSCRT_LANGUAGE_NLD 11 3932 #define FSCRT_LANGUAGE_NOR 12 3934 #define FSCRT_LANGUAGE_PTB 13 3936 #define FSCRT_LANGUAGE_SUO 14 3938 #define FSCRT_LANGUAGE_SVE 15 3943 #ifndef _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_ 3944 #define _FSCRT_DEF_DEFINEHANDLE_ARCHIVE_ 3947 FSCRT_DEFINEHANDLE(FSCRT_ARCHIVE);
4042 #ifndef _FSCRT_DEF_HANDLE_POSITION_ 4043 #define _FSCRT_DEF_HANDLE_POSITION_ 4045 FSCRT_DEFINEHANDLE(FSCRT_POSITION);
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.