App

Definitions for a application access of Foxit PDF SDK.
Definitions and functions in this module are included in fs_app_r.h.
Module: App
License Identifier: App/All
Available License Right: Unnecessary. More...

Classes

struct  FSCRT_NOTEDATA_KEY
 Structure for note key. More...
 
struct  FSCRT_NOTEDATA_CHAR
 Structure for character code. More...
 
struct  FSCRT_NOTEDATA_MOUSE
 Structure for note mouse. More...
 
struct  FSCRT_APPHANDLER
 Structure for a application handler. More...
 

Macros

#define FSCRT_EVENT_PSI_INVALIDATE   ((FSCRT_OBJECTTYPE_PSI << 16) | 0)
 The psi event of invalidating a rectangle pointer to the FSCRT_RECTF object.
 

Typedefs

typedef void(* FSCRT_CALLBACK_TIMER) (FS_INT32 timer)
 Declares a pointer type for the callback function for the FSPDF_FORMFILL_INFO::SetTimer method. More...
 

Functions

FS_RESULT FSCRT_Library_SetAppHandler (FSCRT_APPHANDLER *appHandler)
 Set a handler to Foxit PDF SDK library to support extension functions and events. More...
 
FS_RESULT FSCRT_Library_OOMRecover (FS_LPVOID senderObject, FS_DWORD senderObjectType)
 Trigger the user operation for recovery from out of memory. Only used for OOM handling. More...
 
FS_RESULT FSCRT_Library_TriggerRecover (FS_LPVOID senderObject, FS_DWORD senderObjectType)
 Trigger a recovery for handle of non-PDF module. Only used for OOM handling. More...
 

Macro Definitions for Virtual Key Codes

#define FSCRT_VKEY_UNKNOWN   0x00
 An unknown key.
 
#define FSCRT_VKEY_BACK   0x08
 Backspace key.
 
#define FSCRT_VKEY_TAB   0x09
 Tab key.
 
#define FSCRT_VKEY_RETURN   0x0D
 Enter key.
 
#define FSCRT_VKEY_SHIFT   0x10
 Shift key.
 
#define FSCRT_VKEY_CONTROL   0x11
 Ctrl key.
 
#define FSCRT_VKEY_MENU   0x12
 Menu key.
 
#define FSCRT_VKEY_PAUSE   0x13
 Pause Break key.
 
#define FSCRT_VKEY_ESCAPE   0x1B
 ESC key.
 
#define FSCRT_VKEY_SPACE   0x20
 Space key.
 
#define FSCRT_VKEY_PRIOR   0x21
 Page Up key.
 
#define FSCRT_VKEY_NEXT   0x22
 Page Down key.
 
#define FSCRT_VKEY_END   0x23
 End key.
 
#define FSCRT_VKEY_HOME   0x24
 Home key.
 
#define FSCRT_VKEY_LEFT   0x25
 Left arrow key.
 
#define FSCRT_VKEY_UP   0x26
 Up arrow key.
 
#define FSCRT_VKEY_RIGHT   0x27
 Right arrow key.
 
#define FSCRT_VKEY_DOWN   0x28
 Down arrow key.
 
#define FSCRT_VKEY_PRINT   0x2A
 Print key.
 
#define FSCRT_VKEY_SNAPSHOT   0x2C
 Print Screen key.
 
#define FSCRT_VKEY_INSERT   0x2D
 Insert key.
 
#define FSCRT_VKEY_DELETE   0x2E
 Delete key.
 
#define FSCRT_VKEY_HELP   0x2F
 Help key.
 
#define FSCRT_VKEY_0   0x30
 0 key.
 
#define FSCRT_VKEY_1   0x31
 1 key.
 
#define FSCRT_VKEY_2   0x32
 2 key.
 
#define FSCRT_VKEY_3   0x33
 3 key.
 
#define FSCRT_VKEY_4   0x34
 4 key.
 
#define FSCRT_VKEY_5   0x35
 5 key.
 
#define FSCRT_VKEY_6   0x36
 6 key.
 
#define FSCRT_VKEY_7   0x37
 7 key.
 
#define FSCRT_VKEY_8   0x38
 8 key.
 
#define FSCRT_VKEY_9   0x39
 9 key.
 
#define FSCRT_VKEY_A   0x41
 A key.
 
#define FSCRT_VKEY_B   0x42
 B key.
 
#define FSCRT_VKEY_C   0x43
 C key.
 
#define FSCRT_VKEY_D   0x44
 D key.
 
#define FSCRT_VKEY_E   0x45
 E key.
 
#define FSCRT_VKEY_F   0x46
 F key.
 
#define FSCRT_VKEY_G   0x47
 G key.
 
#define FSCRT_VKEY_H   0x48
 H key.
 
#define FSCRT_VKEY_I   0x49
 I key.
 
#define FSCRT_VKEY_J   0x4A
 J key.
 
#define FSCRT_VKEY_K   0x4B
 K key.
 
#define FSCRT_VKEY_L   0x4C
 L key.
 
#define FSCRT_VKEY_M   0x4D
 M key.
 
#define FSCRT_VKEY_N   0x4E
 N key.
 
#define FSCRT_VKEY_O   0x4F
 O key.
 
#define FSCRT_VKEY_P   0x50
 P key.
 
#define FSCRT_VKEY_Q   0x51
 Q key.
 
#define FSCRT_VKEY_R   0x52
 R key.
 
#define FSCRT_VKEY_S   0x53
 S key.
 
#define FSCRT_VKEY_T   0x54
 T key.
 
#define FSCRT_VKEY_U   0x55
 U key.
 
#define FSCRT_VKEY_V   0x56
 V key.
 
#define FSCRT_VKEY_W   0x57
 W key.
 
#define FSCRT_VKEY_X   0x58
 X key.
 
#define FSCRT_VKEY_Y   0x59
 Y key.
 
#define FSCRT_VKEY_Z   0x5A
 Z key.
 
#define FSCRT_VKEY_NUMPAD0   0x60
 0 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD1   0x61
 1 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD2   0x62
 2 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD3   0x63
 3 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD4   0x64
 4 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD5   0x65
 5 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD6   0x66
 6 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD7   0x67
 7 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD8   0x68
 8 key in the numeric keypad.
 
#define FSCRT_VKEY_NUMPAD9   0x69
 9 key in the numeric keypad.
 
#define FSCRT_VKEY_MULTIPLY   0x6A
 Multiply key in the numeric keypad.
 
#define FSCRT_VKEY_ADD   0x6B
 Plus key in the numeric keypad.
 
#define FSCRT_VKEY_SEPARATOR   0x6C
 Enter key in the numeric keypad.
 
#define FSCRT_VKEY_SUBTRACT   0x6D
 Minus key in the numeric keypad.
 
#define FSCRT_VKEY_DECIMAL   0x6E
 Dot key in the numeric keypad.
 
#define FSCRT_VKEY_DIVIDE   0x6F
 Slash key in the numeric keypad.
 
#define FSCRT_VKEY_F1   0x70
 F1 key.
 
#define FSCRT_VKEY_F2   0x71
 F2 key.
 
#define FSCRT_VKEY_F3   0x72
 F3 key.
 
#define FSCRT_VKEY_F4   0x73
 F4 key.
 
#define FSCRT_VKEY_F5   0x74
 F5 key.
 
#define FSCRT_VKEY_F6   0x75
 F6 key.
 
#define FSCRT_VKEY_F7   0x76
 F7 key.
 
#define FSCRT_VKEY_F8   0x77
 F8 key.
 
#define FSCRT_VKEY_F9   0x78
 F9 key.
 
#define FSCRT_VKEY_F10   0x79
 F10 key.
 
#define FSCRT_VKEY_F11   0x7A
 F11 key.
 
#define FSCRT_VKEY_F12   0x7B
 F12 key.
 

Macro Definitions for Key Flags

#define FSCRT_NOTEFLAG_SHIFTKEY   0x0001
 The flag of the event: the "Shift" key.
 
#define FSCRT_NOTEFLAG_CONTROLKEY   0x0002
 The flag of the event: the "Ctrl" key.
 
#define FSCRT_NOTEFLAG_ALTKEY   0x0004
 The flag of the event: the "Alt" key.
 
#define FSCRT_NOTEFLAG_METAKEY   0x0008
 The flag of the event: meta key.
 
#define FSCRT_NOTEFLAG_KEYPAD   0x0010
 The flag of the event: key pad.
 
#define FSCRT_NOTEFLAG_AUTOREPEAT   0x0020
 The flag of the event: auto repeat.
 
#define FSCRT_NOTEFLAG_LEFTBUTTONDOWN   0x0040
 The flag of the event: the left button of the mouse is down.
 
#define FSCRT_NOTEFLAG_MIDDLEBUTTONDOWN   0x0080
 The flag of the event: the middle button of the mouse is down.
 
#define FSCRT_NOTEFLAG_RIGHTBUTTONDOWN   0x0100
 The flag of the event: the right button of the mouse is down.
 

Macro Definitions for Note Type

#define FSCRT_NOTETYPE_KEYDOWN   1
 The key command event: key down.
 
#define FSCRT_NOTETYPE_KEYUP   2
 The key command event: key up.
 
#define FSCRT_NOTETYPE_CHAR   3
 The key command event: char.
 
#define FSCRT_NOTETYPE_LBUTTONDOWN   4
 The mouse command event: the left button of the mouse is down.
 
#define FSCRT_NOTETYPE_LBUTTONUP   5
 The mouse command event: the left button of the mouse is up.
 
#define FSCRT_NOTETYPE_LBUTTONDBLCLK   6
 The mouse command event: the left button of the mouse is double clicked.
 
#define FSCRT_NOTETYPE_RBUTTONDOWN   7
 The mouse command event: the right button of the mouse is down.
 
#define FSCRT_NOTETYPE_RBUTTONUP   8
 The mouse command event: the right button of the mouse is up.
 
#define FSCRT_NOTETYPE_RBUTTONDBLCLK   9
 The mouse command event: the right button of the mouse is double clicked.
 
#define FSCRT_NOTETYPE_MBUTTONDOWN   10
 The mouse command event: the middle button of the mouse is down.
 
#define FSCRT_NOTETYPE_MBUTTONUP   11
 The mouse command event: the middle button of the mouse is up.
 
#define FSCRT_NOTETYPE_MBUTTONDBLCLK   12
 The mouse command event: the middle button of the mouse is double clicked.
 
#define FSCRT_NOTETYPE_MOUSEMOVE   13
 The mouse command event: mouse move.
 
#define FSCRT_NOTETYPE_MOUSEENTER   14
 The mouse command event: mouse enter.
 
#define FSCRT_NOTETYPE_MOUSEHOVER   15
 The mouse command event: mouse hover.
 
#define FSCRT_NOTETYPE_MOUSELEAVE   16
 The mouse command event: mouse leave.
 
#define FSCRT_NOTETYPE_MOUSEWHEEL   17
 The mouse command event: mouse wheel.
 
#define FSCRT_NOTETYPE_PAGEUP   18
 The page up event.
 
#define FSCRT_NOTETYPE_PAGEDOWN   19
 The page down event.
 
#define FSCRT_NOTETYPE_KILLFOCUS   20
 Force to kill the focus of a field.
 

Macro Definitions for Cursor Type

#define FSCRT_CURSOR_ARROW   0
 Cursor Type: Arrow.
 
#define FSCRT_CURSOR_NESW   1
 Cursor Type: NESW.
 
#define FSCRT_CURSOR_NWSE   2
 Cursor Type: NWSE.
 
#define FSCRT_CURSOR_VBEAM   3
 Cursor Type: Vertical Beam.
 
#define FSCRT_CURSOR_HBEAM   4
 Cursor Type: Horizontal Beam.
 
#define FSCRT_CURSOR_HAND   5
 Cursor Type: Hand.
 

Macro definitions for Event Type

#define FSCRT_EVENT_KEYDOWN   FSCRT_NOTETYPE_KEYDOWN
 The key command event: key down.
 
#define FSCRT_EVENT_KEYUP   FSCRT_NOTETYPE_KEYUP
 The key command event: key up.
 
#define FSCRT_EVENT_CHAR   FSCRT_NOTETYPE_CHAR
 The key command event: char.
 
#define FSCRT_EVENT_LBUTTONDOWN   FSCRT_NOTETYPE_LBUTTONDOWN
 The mouse command event: the left button of the mouse is down.
 
#define FSCRT_EVENT_LBUTTONUP   FSCRT_NOTETYPE_LBUTTONUP
 The mouse command event: the left button of the mouse is up.
 
#define FSCRT_EVENT_LBUTTONDBLCLK   FSCRT_NOTETYPE_LBUTTONDBLCLK
 The mouse command event: the left button of the mouse is double clicked.
 
#define FSCRT_EVENT_RBUTTONDOWN   FSCRT_NOTETYPE_RBUTTONDOWN
 The mouse command event: the right button of the mouse is down.
 
#define FSCRT_EVENT_RBUTTONUP   FSCRT_NOTETYPE_RBUTTONUP
 The mouse command event: the right button of the mouse is up.
 
#define FSCRT_EVENT_RBUTTONDBLCLK   FSCRT_NOTETYPE_RBUTTONDBLCLK
 The mouse command event: the right button of the mouse is double clicked.
 
#define FSCRT_EVENT_MBUTTONDOWN   FSCRT_NOTETYPE_MBUTTONDOWN
 The mouse command event: the middle button of the mouse is down.
 
#define FSCRT_EVENT_MBUTTONUP   FSCRT_NOTETYPE_MBUTTONUP
 The mouse command event: the middle button of the mouse is up.
 
#define FSCRT_EVENT_MBUTTONDBLCLK   FSCRT_NOTETYPE_MBUTTONDBLCLK
 The mouse command event: the middle button of the mouse is double clicked.
 
#define FSCRT_EVENT_MOUSEMOVE   FSCRT_NOTETYPE_MOUSEMOVE
 The mouse command event: mouse move.
 
#define FSCRT_EVENT_MOUSEENTER   FSCRT_NOTETYPE_MOUSEENTER
 The mouse command event: mouse enter.
 
#define FSCRT_EVENT_MOUSEHOVER   FSCRT_NOTETYPE_MOUSEHOVER
 The mouse command event: mouse hover.
 
#define FSCRT_EVENT_MOUSELEAVE   FSCRT_NOTETYPE_MOUSELEAVE
 The mouse command event: mouse leave.
 
#define FSCRT_EVENT_MOUSEWHEEL   FSCRT_NOTETYPE_MOUSEWHEEL
 The mouse command event: mouse wheel.
 
#define FSCRT_EVENT_PAGEUP   FSCRT_NOTETYPE_PAGEUP
 The page up event.
 
#define FSCRT_EVENT_PAGEDOWN   FSCRT_NOTETYPE_PAGEDOWN
 The page down event.
 
#define FSCRT_EVENT_KILLFOCUS   FSCRT_NOTETYPE_KILLFOCUS
 Force to kill the focus of a field.
 

Detailed Description

Definitions for a application access of Foxit PDF SDK.
Definitions and functions in this module are included in fs_app_r.h.
Module: App
License Identifier: App/All
Available License Right: Unnecessary.

This module contains following features:

Typedef Documentation

typedef void(* FSCRT_CALLBACK_TIMER) (FS_INT32 timer)

Declares a pointer type for the callback function for the FSPDF_FORMFILL_INFO::SetTimer method.

Parameters
[in]timerIdentifier of a timer.
Returns
None.

Function Documentation

FS_RESULT FSCRT_Library_OOMRecover ( FS_LPVOID  senderObject,
FS_DWORD  senderObjectType 
)

Trigger the user operation for recovery from out of memory. Only used for OOM handling.

OOM handling is only for mobile platforms, not for server or desktop.
Functions in Foxit PDF SDK may return one of following values as a result: FSCRT_ERRCODE_MEMORYREBUILT, FSCRT_ERRCODE_UNRECOVERABLE, FSCRT_ERRCODE_ROLLBACK.
When receiving one of these value as a result, application should ensure to set a valid FSCRT_APPHANDLER object with FSCRT_APPHANDLER::OnRecover available by function FSCRT_Library_SetAppHandler and call this function to do recovery.
For more details about handling OOM , please refer to the document "Robust PDF Applications with Limited Memory".
If this function returns one of result value mentioned above, it means the OOM situation cannot be recovered and application does not need to call FSCRT_Library_OOMRecover or FSCRT_Library_TriggerRecover to try recovery again.
Data type of parameter senderObject depends on parameter senderObjectType, as following:
Format: object type - object data type

Parameters
[in]senderObjectPointer to a sender object, related to parameter senderObjectType. Valid values are mentioned in details part.
[in]senderObjectTypeObject type of parameter senderObject. Valid values are mentioned in details part.
Returns
FSCRT_ERRCODE_SUCCESS for success.
FSCRT_ERRCODE_PARAM if parameter senderObject is a NULL pointer, or the parameter senderObjectType is not equal with FSCRT_OBJECTTYPE_DOCUMENT.
FSCRT_ERRCODE_OUTOFMEMORY if there is not enough memory or if the memory access is wrong.
For more error codes, please refer to macro definitions FSCRT_ERRCODE_XXX.
Attention
Thread Safety: this function is not thread safe. Do not call it to process same objects between multi-threads, or the application should maintain thread safety when it needs to process same objects under multi-threaded environments.
FS_RESULT FSCRT_Library_SetAppHandler ( FSCRT_APPHANDLER appHandler)

Set a handler to Foxit PDF SDK library to support extension functions and events.

Parameters
[in]appHandlerPointer to a valid FSCRT_APPHANDLER structure to register a handler to library.
Returns
FSCRT_ERRCODE_SUCCESS for success.
FSCRT_ERRCODE_PARAM if the parameter appHandler is a NULL pointer.
FSCRT_ERRCODE_HANDLER if any callback function in the parameter appHandler is NULL.
FSCRT_ERRCODE_OUTOFMEMORY if there is not enough memory or invalid memory access.
For more error codes, please refer to macro definitions FSCRT_ERRCODE_XXX.
Attention
Thread Safety: this function is thread safe.
OOM Information:
OOM handling is only for mobile platforms, not for server or desktop.
  • This function is long-term recoverable.
Please refer to the document "Robust PDF Applications with Limited Memory" for more details.
FS_RESULT FSCRT_Library_TriggerRecover ( FS_LPVOID  senderObject,
FS_DWORD  senderObjectType 
)

Trigger a recovery for handle of non-PDF module. Only used for OOM handling.

OOM handling is only for mobile platforms, not for server or desktop.
When OOM occurs in modules which is independent of PDF module, application should call this function to recover handle related to these modules separately if application wants to use handle of these modules to interact with PDF module. If this function returns FSCRT_ERRCODE_UNRECOVERABLE as a result, it means the OOM situation cannot be recovered and application does not need to call FSCRT_Library_OOMRecover or FSCRT_Library_TriggerRecover to try recovery again.
Data type of parameter senderObject depends on parameter senderObjectType, as following:
Format: object type - object data type

Parameters
[in]senderObjectPointer to a sender object, related to parameter senderObjectType. Valid values are mentioned in details part.
[in]senderObjectTypeObject type of parameter senderObject. Valid values are mentioned in details part.
Returns
FSCRT_ERRCODE_SUCCESS for success.
FSCRT_ERRCODE_PARAM if parameter senderObject is a NULL pointer or senderObjectType is not FSCRT_OBJECTTYPE_DOCUMENT or FSCRT_OBJECTTYPE_PAGE.
FSCRT_ERRCODE_UNRECOVERABLE if the function finds an unrecoverable error internally.
For more error codes, please refer to macro definitions FSCRT_ERRCODE_XXX.
Attention
Thread Safety: this function is not thread safe. Do not call it to process same objects between multi-threads, or the application should maintain thread safety when it needs to process same objects under multi-threaded environments.

Foxit Corporation