1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved.
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file.
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _FPDFORMFILL_H
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _FPDFORMFILL_H
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "fpdfview.h"
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef void* FPDF_FORMHANDLE;
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Exported Functions
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef __cplusplus
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovextern "C" {
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef struct _IPDF_JsPlatform
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Version number of the interface. Currently must be 1.
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	**/
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int version;
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: app_alert
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pop up a dialog to show warning or hint.
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Msg			-	A string containing the message to be displayed.
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Title		-   The title of the dialog.
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Type		-	The stype of button group.
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							0-OK(default);
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							1-OK,Cancel;
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							2-Yes,NO;
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							3-Yes, NO, Cancel.
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*           nIcon		-   The Icon type.
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							0-Error(default);
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							1-Warning;
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							2-Question;
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							3-Status.
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			The return value could be the folowing type:
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							1-OK;
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							2-Cancel;
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							3-NO;
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							4-Yes;
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int (*app_alert)(struct _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon);
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: app_beep
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Causes the system to play a sound.
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			nType		-	The sound type.
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							0 - Error
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							1 - Warning
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							2 - Question
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							3 - Status
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*							4 - Default (default value)
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			None
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*app_beep)(struct _IPDF_JsPlatform* pThis,  int nType);
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: app_response
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Displays a dialog box containing a question and an entry field for the user to reply to the question.
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Question	-	The question to be posed to the user.
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Title		-	The title of the dialog box.
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Default		-	A default value for the answer to the question. If not specified, no default value is presented.
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			cLabel		-	A short string to appear in front of and on the same line as the edit text field.
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bPassword	-	If true, indicates that the user's response should show as asterisks (*) or bullets (?) to mask the response, which might be sensitive information. The default is false.
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			response	-	A string buffer allocated by SDK, to receive the user's response.
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			length		-   The length of the buffer, number of bytes. Currently, It's always be 2048.
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Number of bytes the user input text consumes, not including trailing zeros. If the text exceed 2048 bytes,
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			the exceeded part will be ignored.
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			No matter on what platform, the response should be always input in UTF-16LE encoding.
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			The return value always indicated number of bytes required for the buffer, even when there is
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			no buffer specified, or the buffer size is less then required. In this case, the buffer will not
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			be modified.
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int (*app_response)(struct _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Question, FPDF_WIDESTRING Title, FPDF_WIDESTRING Default, FPDF_WIDESTRING cLabel, FPDF_BOOL bPassword, void* response, int length);
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Doc_getFilePath
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Get the file path of the current document.
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			filePath	-	The string buffer to receive the file path. Can be NULL.
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			length		-   The length of the buffer, number of bytes. Can be 0.
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		Number of bytes the filePath consumes, including trailing zeros.
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		The filePath should be always input in local encoding.
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		The return value always indicated number of bytes required for the buffer, even when there is
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		no buffer specified, or the buffer size is less then required. In this case, the buffer will not
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		be modified.
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int (*Doc_getFilePath)(struct _IPDF_JsPlatform* pThis, void* filePath, int length);
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Doc_mail
131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Mails the data buffer as an attachment to all recipients, with or without user interaction.
132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			mailData	-	Pointer to the data buffer to be sent.Can be NULL.
139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			length		-	The size,in bytes, of the buffer pointed by mailData parameter.Can be 0.
140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bUI			-   If true, the rest of the parameters are used in a compose-new-message window that is displayed to the user. If false, the cTo parameter is required and all others are optional.
141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			To			-	A semicolon-delimited list of recipients for the message.
142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Subject		-   The subject of the message. The length limit is 64 KB.
143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			CC			-	A semicolon-delimited list of CC recipients for the message.
144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			BCC			-   A semicolon-delimited list of BCC recipients for the message.
145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Msg			-   The content of the message. The length limit is 64 KB.
146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			None.
148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			If the parameter mailData is NULL or length is 0, the current document will be mailed as an attachment to all recipients.
150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*Doc_mail)(struct _IPDF_JsPlatform* pThis,void* mailData, int length,FPDF_BOOL bUI, FPDF_WIDESTRING To, FPDF_WIDESTRING Subject, FPDF_WIDESTRING CC, FPDF_WIDESTRING BCC, FPDF_WIDESTRING Msg);
152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Doc_print
156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Prints all or a specific number of pages of the document.
157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself.
163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bUI			-	If true, will cause a UI to be presented to the user to obtain printing information and confirm the action.
164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			nStart		-	A 0-based index that defines the start of an inclusive range of pages.
165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			nEnd		-   A 0-based index that defines the end of an inclusive page range.
166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bSilent		-   If true, suppresses the cancel dialog box while the document is printing. The default is false.
167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bShrinkToFit	-	If true, the page is shrunk (if necessary) to fit within the imageable area of the printed page.
168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bPrintAsImage	-	If true, print pages as an image.
169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bReverse	-	If true, print from nEnd to nStart.
170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			bAnnotations	-	If true (the default), annotations are printed.
171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*Doc_print)(struct _IPDF_JsPlatform* pThis, FPDF_BOOL bUI, int nStart, int nEnd, FPDF_BOOL bSilent ,FPDF_BOOL bShrinkToFit,FPDF_BOOL bPrintAsImage ,FPDF_BOOL bReverse ,FPDF_BOOL bAnnotations);
173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Doc_submitForm
176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Send the form data to a specified URL.
177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			formData	-	Pointer to the data buffer to be sent.
184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			length		-	The size,in bytes, of the buffer pointed by formData parameter.
185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			URL			-	The URL to send to.
186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			None.
188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*Doc_submitForm)(struct _IPDF_JsPlatform* pThis,void* formData, int length, FPDF_WIDESTRING URL);
191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Doc_gotoPage
194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Jump to a specified page.
195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself
201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			nPageNum	-	The specified page number, zero for the first page.
202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			None.
204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*Doc_gotoPage)(struct _IPDF_JsPlatform* pThis, int nPageNum);
207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/*
208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: Field_browse
209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Show a file selection dialog, and return the selected file path.
210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			pThis		-	Pointer to the interface structure itself.
216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			filePath	-	Pointer to the data buffer to receive the file path.Can be NULL.
217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			length		-   The length of the buffer, number of bytes. Can be 0.
218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return Value:
219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		Number of bytes the filePath consumes, including trailing zeros.
220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		The filePath shoule be always input in local encoding.
222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int  (*Field_browse)(struct _IPDF_JsPlatform* pThis,void* filePath, int length);
224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*	pointer to FPDF_FORMFILLINFO interface.
227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	**/
228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void*	m_pFormfillinfo;
229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} IPDF_JSPLATFORM;
230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Flags for Cursor type
232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_ARROW	0
233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_NESW	1
234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_NWSE	2
235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_VBEAM	3
236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_HBEAM	4
237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FXCT_HAND	5
238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Declares of a pointer type to the callback function for the FFI_SetTimer method.
241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			idEvent		-	Identifier of the timer.
243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return value:
244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			None.
245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef void	(*TimerCallback)(int idEvent);
247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Declares of a struct type to the local system time.
250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef struct _FPDF_SYSTEMTIME
252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wYear;			/* years since 1900 */
254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wMonth;			/* months since January - [0,11] */
255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wDayOfWeek;		/* days since Sunday - [0,6] */
256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wDay;			/* day of the month - [1,31] */
257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wHour;			/* hours since midnight - [0,23] */
258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wMinute;			/* minutes after the hour - [0,59] */
259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wSecond;			/* seconds after the minute - [0,59] */
260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    unsigned short wMilliseconds;	/* milliseconds after the second - [0,999] */
261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}FPDF_SYSTEMTIME;
262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
263ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef struct  _FPDF_FORMFILLINFO
265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Version number of the interface. Currently must be 1.
268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 **/
269ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int	version;
270ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		/**
272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Method: Release
273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			Give implementation a chance to release any data after the interface is no longer used
274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Interface Version:
275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			1
276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Implementation Required:
277ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			No
278ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Comments:
279ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			Called by Foxit SDK during the final cleanup process.
280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Parameters:
281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			pThis		-	Pointer to the interface structure itself
282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Return Value:
283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			None
284ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 */
285ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
286ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*Release)(struct _FPDF_FORMFILLINFO* pThis);
287ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
288ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
289ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Method: FFI_Invalidate
290ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			Invalidate the client area within the specified rectangle.
291ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Interface Version:
292ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			1
293ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Implementation Required:
294ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		*			yes
295ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Parameters:
296ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			pThis		-	Pointer to the interface structure itself.
297ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
298ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			left		-	Left position of the client area in PDF page coordinate.
299ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			top			-	Top  position of the client area in PDF page coordinate.
300ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			right		-	Right position of the client area in PDF page  coordinate.
301ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			bottom		-	Bottom position of the client area in PDF page coordinate.
302ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Return Value:
303ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			None.
304ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *
305ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *comments:
306ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			All positions are measured in PDF "user space".
307ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			Implementation should call FPDF_RenderPageBitmap() function for repainting a specified page area.
308ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
309ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*FFI_Invalidate)(struct _FPDF_FORMFILLINFO* pThis,FPDF_PAGE page, double left, double top, double right, double bottom);
310ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
311ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
312ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Method: FFI_OutputSelectedRect
313ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			When user is taking the mouse to select texts on a form field, this callback function will keep
314ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			returning the selected areas to the implementation.
315ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *
316ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Interface Version:
317ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			1
318ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Implementation Required:
319ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			No
320ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Parameters:
321ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			pThis		-	Pointer to the interface structure itself.
322ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
323ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			left		-	Left position of the client area in PDF page coordinate.
324ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			top			-	Top  position of the client area in PDF page coordinate.
325ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			right		-	Right position of the client area in PDF page  coordinate.
326ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			bottom		-	Bottom position of the client area in PDF page coordinate.
327ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * Return Value:
328ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			None.
329ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *
330ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 * comments:
331ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			This CALLBACK function is useful for implementing special text selection effect. Implementation should
332ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			first records the returned rectangles, then draw them one by one at the painting period, last,remove all
333ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	 *			the recorded rectangles when finish painting.
334ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*/
335ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*FFI_OutputSelectedRect)(struct _FPDF_FORMFILLINFO* pThis,FPDF_PAGE page, double left, double top, double right, double bottom);
336ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
337ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
338ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_SetCursor
339ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			Set the Cursor shape.
340ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
341ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
342ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
343ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
344ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
345ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
346ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		nCursorType	-	Cursor type. see Flags for Cursor type for the details.
347ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 	Return value:
348ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
349ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
350ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*FFI_SetCursor)(struct _FPDF_FORMFILLINFO* pThis, int nCursorType);
351ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
352ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
353ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_SetTimer
354ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method installs a system timer. A time-out value is specified,
355ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			and every time a time-out occurs, the system passes a message to
356ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			the TimerProc callback function.
357ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
358ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
359ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
360ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
361ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
362ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
363ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		uElapse		-	Specifies the time-out value, in milliseconds.
364ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		lpTimerFunc	-	A pointer to the callback function-TimerCallback.
365ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 	Return value:
366ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		The timer identifier of the new timer if the function is successful.
367ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		An application passes this value to the FFI_KillTimer method to kill
368ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		the timer. Nonzero if it is successful; otherwise, it is zero.
369ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
370ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int  (*FFI_SetTimer)(struct _FPDF_FORMFILLINFO* pThis, int uElapse, TimerCallback lpTimerFunc);
371ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
372ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
373ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_KillTimer
374ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method kills the timer event identified by nIDEvent, set by an earlier call to FFI_SetTimer.
375ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
376ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
377ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
378ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
379ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
380ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
381ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		nTimerID	-	The timer ID return by FFI_SetTimer function.
382ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 	Return value:
383ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
384ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
385ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*FFI_KillTimer)(struct _FPDF_FORMFILLINFO* pThis, int nTimerID);
386ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
387ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
388ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
389ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_GetLocalTime
390ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method receives the current local time on the system.
391ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
392ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
393ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
394ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
395ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
396ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
397ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 	Return value:
398ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
399ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
400ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FPDF_SYSTEMTIME (*FFI_GetLocalTime)(struct _FPDF_FORMFILLINFO* pThis);
401ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
402ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
403ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_OnChange
404ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method will be invoked to notify implementation when the value of any FormField on the document had been changed.
405ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
406ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
407ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
408ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			no
409ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
410ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
411ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 	Return value:
412ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
413ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
414ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void (*FFI_OnChange)(struct _FPDF_FORMFILLINFO* pThis);
415ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
416ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
417ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_GetPage
418ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method receives the page pointer associated with a specified page index.
419ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
420ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
421ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
422ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
423ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
424ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
425ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		document	-	Handle to document. Returned by FPDF_LoadDocument function.
426ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		nPageIndex  -	Index number of the page. 0 for the first page.
427ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
428ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		Handle to the page. Returned by FPDF_LoadPage function.
429ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
430ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		In some cases, the document-level JavaScript action may refer to a page which hadn't been loaded yet.
431ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		To successfully run the javascript action, implementation need to load the page for SDK.
432ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
433ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FPDF_PAGE	(*FFI_GetPage)(struct _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, int nPageIndex);
434ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
435ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
436ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_GetCurrentPage
437ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		This method receives the current page pointer.
438ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
439ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
440ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
441ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
442ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
443ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
444ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		document	-	Handle to document. Returned by FPDF_LoadDocument function.
445ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
446ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		Handle to the page. Returned by FPDF_LoadPage function.
447ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
448ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FPDF_PAGE	(*FFI_GetCurrentPage)(struct _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document);
449ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
450ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
451ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_GetRotation
452ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method receives currently rotation of the page view.
453ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
454ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
455ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
456ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
457ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
458ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis		-	Pointer to the interface structure itself.
459ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		page		-	Handle to page. Returned by FPDF_LoadPage function.
460ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
461ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		The page rotation. Should be 0(0 degree),1(90 degree),2(180 degree),3(270 degree), in a clockwise direction.
462ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
463ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	int 	(*FFI_GetRotation)(struct _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page);
464ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
465ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
466ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_ExecuteNamedAction
467ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This method will execute an named action.
468ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
469ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
470ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
471ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			yes
472ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
473ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis			-	Pointer to the interface structure itself.
474ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		namedAction		-	A byte string which indicates the named action, terminated by 0.
475ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
476ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
477ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
478ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		See the named actions description of <<PDF Reference, version 1.7>> for more details.
479ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
480ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void 	(*FFI_ExecuteNamedAction)(struct _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING namedAction);
481ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
482ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @brief This method will be called when a text field is getting or losing a focus.
483ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
484ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @param[in] pThis		Pointer to the interface structure itself.
485ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @param[in] value		The string value of the form field, in UTF-16LE format.
486ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @param[in] valueLen	The length of the string value, number of characters (not bytes).
487ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @param[in] is_focus	True if the form field is getting a focus, False for losing a focus.
488ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
489ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @return None.
490ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*
491ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* @note Currently,only support text field and combobox field.
492ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
493ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void	(*FFI_SetTextFieldFocus)(struct _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING value, FPDF_DWORD valueLen, FPDF_BOOL is_focus);
494ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
495ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
496ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
497ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_DoURIAction
498ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This action resolves to a uniform resource identifier.
499ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
500ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
501ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
502ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			No
503ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
504ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis			-	Pointer to the interface structure itself.
505ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		bsURI			-	A byte string which indicates the uniform resource identifier, terminated by 0.
506ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
507ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
508ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
509ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		See the URI actions description of <<PDF Reference, version 1.7>> for more details.
510ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* */
511ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void	(*FFI_DoURIAction)(struct _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING bsURI);
512ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
513ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
514ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Method: FFI_DoGoToAction
515ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			This action changes the view to a specified destination.
516ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Interface Version:
517ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			1
518ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Implementation Required:
519ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*			No
520ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Parameters:
521ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		pThis			-	Pointer to the interface structure itself.
522ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		nPageIndex		-	The index of the PDF page.
523ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		zoomMode		-	The zoom mode for viewing page.See Macros "PDFZOOM_XXX" defined in "fpdfdoc.h".
524ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		fPosArray		-	The float array which carries the position info.
525ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		sizeofArray		-	The size of float array.
526ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Return value:
527ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* 		None.
528ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	* Comments:
529ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*		See the Destinations description of <<PDF Reference, version 1.7>> in 8.2.1 for more details.
530ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	**/
531ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void	(*FFI_DoGoToAction)(struct _FPDF_FORMFILLINFO* pThis, int nPageIndex, int zoomMode, float* fPosArray, int sizeofArray);
532ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	/**
533ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	*	pointer to IPDF_JSPLATFORM interface
534ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	**/
535ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	IPDF_JSPLATFORM*	m_pJsPlatform;
536ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
537ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} FPDF_FORMFILLINFO;
538ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
539ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
540ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
541ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
542ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDFDOC_InitFormFillEnviroument
543ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Init form fill environment.
544ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Comments:
545ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			This function should be called before any form fill operation.
546ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
547ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			document		-	Handle to document. Returned by FPDF_LoadDocument function.
548ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			pFormFillInfo	-	Pointer to a FPDF_FORMFILLINFO structure.
549ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
550ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Return handler to the form fill module. NULL means fails.
551ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
552ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_FORMHANDLE STDCALL FPDFDOC_InitFormFillEnviroument(FPDF_DOCUMENT document, FPDF_FORMFILLINFO* formInfo);
553ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
554ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
555ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDFDOC_ExitFormFillEnviroument
556ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Exit form fill environment.
557ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
558ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
559ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
560ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NULL.
561ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
562ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDFDOC_ExitFormFillEnviroument(FPDF_FORMHANDLE hHandle);
563ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
564ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
565ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnAfterLoadPage
566ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			This method is required for implementing all the form related functions. Should be invoked after user
567ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			successfully loaded a PDF page, and method FPDFDOC_InitFormFillEnviroument had been invoked.
568ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
569ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
570ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
571ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NONE.
572ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
573ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_OnAfterLoadPage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle);
574ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
575ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
576ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnBeforeClosePage
577ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			This method is required for implementing all the form related functions. Should be invoked before user
578ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			close the PDF page.
579ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
580ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
581ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
582ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
583ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NONE.
584ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
585ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_OnBeforeClosePage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle);
586ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
587ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
588ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Function: FORM_DoDocumentJSAction
589ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method is required for performing Document-level JavaScript action. It should be invoked after the PDF document
590ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			had been loaded.
591ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Parameters:
592ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
593ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Return Value:
594ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			NONE
595ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Comments:
596ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			If there is Document-level JavaScript action embedded in the document, this method will execute the javascript action;
597ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			otherwise, the method will do nothing.
598ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
599ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle);
600ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
601ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
602ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
603ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Function: FORM_DoDocumentOpenAction
604ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method is required for performing open-action when the document is opened.
605ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Parameters:
606ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
607ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Return Value:
608ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			NONE
609ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Comments:
610ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method will do nothing if there is no open-actions embedded in the document.
611ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
612ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_DoDocumentOpenAction(FPDF_FORMHANDLE hHandle);
613ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
614ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
615ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// additional actions type of document.
616ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFDOC_AACTION_WC		0x10		//WC, before closing document, JavaScript action.
617ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFDOC_AACTION_WS		0x11		//WS, before saving document, JavaScript action.
618ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFDOC_AACTION_DS		0x12		//DS, after saving document, JavaScript action.
619ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFDOC_AACTION_WP		0x13		//WP, before printing document, JavaScript action.
620ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFDOC_AACTION_DP		0x14		//DP, after printing document, JavaScript action.
621ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
622ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Function: FORM_DoDocumentAAction
623ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method is required for performing the document's additional-action.
624ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Parameters:
625ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
626ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			aaType	    -   The type of the additional-actions which defined above.
627ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Return Value:
628ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			NONE
629ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Comments:
630ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method will do nothing if there is no document additional-action corresponding to the specified aaType.
631ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
632ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
633ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType);
634ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
635ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Additional-action types of page object
636ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFPAGE_AACTION_OPEN		0		// /O -- An action to be performed when the page is opened
637ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDFPAGE_AACTION_CLOSE		1		// /C -- An action to be performed when the page is closed
638ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
639ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
640ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Function: FORM_DoPageAAction
641ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method is required for performing the page object's additional-action when opened or closed.
642ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Parameters:
643ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			page		-	Handle to the page. Returned by FPDF_LoadPage function.
644ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
645ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			aaType	    -   The type of the page object's additional-actions which defined above.
646ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Return Value:
647ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			NONE
648ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Comments:
649ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method will do nothing if no additional-action corresponding to the specified aaType exists.
650ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
651ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType);
652ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
653ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
654ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnMouseMove
655ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when the mouse cursor moves.
656ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
657ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
658ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
659ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier		-	Indicates whether various virtual keys are down.
660ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_x		-	Specifies the x-coordinate of the cursor in PDF user space.
661ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_y		-	Specifies the y-coordinate of the cursor in PDF user space.
662ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
663ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
664ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
665ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int modifier, double page_x, double page_y);
666ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
667ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
668ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnLButtonDown
669ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when the user presses the left mouse button.
670ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
671ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
672ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
673ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier		-	Indicates whether various virtual keys are down.
674ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_x		-	Specifies the x-coordinate of the cursor in PDF user space.
675ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_y		-	Specifies the y-coordinate of the cursor in PDF user space.
676ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
677ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
678ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
679ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int modifier, double page_x, double page_y);
680ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
681ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
682ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnLButtonUp
683ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when the user releases the left mouse button.
684ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
685ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
686ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
687ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier	-	Indicates whether various virtual keys are down.
688ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_x		-	Specifies the x-coordinate of the cursor in device.
689ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_y		-	Specifies the y-coordinate of the cursor in device.
690ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
691ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
692ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
693ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int modifier, double page_x, double page_y);
694ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
695ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
696ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnKeyDown
697ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when a nonsystem key is pressed.
698ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
699ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
700ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
701ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			nKeyCode	-	Indicates whether various virtual keys are down.
702ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier	-	Contains the scan code, key-transition code, previous key state, and context code.
703ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
704ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
705ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
706ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int nKeyCode, int modifier);
707ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
708ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
709ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnKeyUp
710ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when a nonsystem key is released.
711ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
712ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
713ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
714ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			nKeyCode	-	The virtual-key code of the given key.
715ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier	-	Contains the scan code, key-transition code, previous key state, and context code.
716ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
717ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
718ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
719ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int nKeyCode, int modifier);
720ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
721ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
722ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_OnChar
723ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function when a keystroke translates to a nonsystem character.
724ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
725ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
726ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
727ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			nChar		-	The character code value of the key.
728ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			modifier	-	Contains the scan code, key-transition code, previous key state, and context code.
729ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
730ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
731ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
732ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(FPDF_FORMHANDLE hHandle,FPDF_PAGE page, int nChar, int modifier);
733ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
734ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
735ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FORM_ForceToKillFocus.
736ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			You can call this member function to force to kill the focus of the form field which got focus.
737ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			It would kill the focus on the form field, save the value of form field if it's changed by user.
738ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
739ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
740ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
741ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			TRUE indicates success; otherwise false.
742ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
743ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle);
744ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
745ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Field Types
746ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_UNKNOWN		0		// Unknown.
747ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_PUSHBUTTON	1		// push button type.
748ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_CHECKBOX		2		// check box type.
749ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_RADIOBUTTON	3		// radio button type.
750ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_COMBOBOX		4		// combo box type.
751ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_LISTBOX		5		// list box type.
752ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FPDF_FORMFIELD_TEXTFIELD	6		// text field type.
753ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
754ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
755ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDPage_HasFormFieldAtPoint
756ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Check the form filed position by point.
757ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
758ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
759ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page		-	Handle to the page. Returned by FPDF_LoadPage function.
760ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_x		-	X position in PDF "user space".
761ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			page_y		-	Y position in PDF "user space".
762ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
763ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Return the type of the formfiled; -1 indicates no fields.
764ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
765ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,FPDF_PAGE page,double page_x, double page_y);
766ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
767ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
768ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDF_SetFormFieldHighlightColor
769ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Set the highlight color of specified or all the form fields in the document.
770ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
771ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
772ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			doc			-	Handle to the document. Returned by FPDF_LoadDocument function.
773ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			fieldType	-	A 32-bit integer indicating the type of a form field(defined above).
774ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			color		-	The highlight color of the form field.Constructed by 0xxxrrggbb.
775ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
776ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NONE.
777ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Comments:
778ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			When the parameter fieldType is set to zero, the highlight color will be applied to all the form fields in the
779ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			document.
780ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Please refresh the client window to show the highlight immediately if necessary.
781ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
782ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDF_SetFormFieldHighlightColor(FPDF_FORMHANDLE hHandle, int fieldType, unsigned long color);
783ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
784ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
785ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDF_SetFormFieldHighlightAlpha
786ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Set the transparency of the form field highlight color in the document.
787ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
788ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
789ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			doc			-	Handle to the document. Returned by FPDF_LoadDocument function.
790ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			alpha		-	The transparency of the form field highlight color. between 0-255.
791ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
792ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NONE.
793ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
794ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDF_SetFormFieldHighlightAlpha(FPDF_FORMHANDLE hHandle, unsigned char alpha);
795ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
796ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
797ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
798ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Function: FPDF_RemoveFormFieldHighlight
799ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Remove the form field highlight color in the document.
800ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Parameters:
801ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
802ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Return Value:
803ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			NONE.
804ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Comments:
805ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *			Please refresh the client window to remove the highlight immediately if necessary.
806ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov **/
807ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle);
808ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
809ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**
810ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Function: FPDF_FFLDraw
811ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			Render FormFeilds on a page to a device independent bitmap.
812ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Parameters:
813ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			hHandle		-	Handle to the form fill module. Returned by FPDFDOC_InitFormFillEnviroument.
814ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			bitmap		-	Handle to the device independent bitmap (as the output buffer).
815ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*							Bitmap handle can be created by FPDFBitmap_Create function.
816ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			page		-	Handle to the page. Returned by FPDF_LoadPage function.
817ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			start_x		-	Left pixel position of the display area in the device coordinate.
818ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			start_y		-	Top pixel position of the display area in the device coordinate.
819ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			size_x		-	Horizontal size (in pixels) for displaying the page.
820ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			size_y		-	Vertical size (in pixels) for displaying the page.
821ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			rotate		-	Page orientation: 0 (normal), 1 (rotated 90 degrees clockwise),
822ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*								2 (rotated 180 degrees), 3 (rotated 90 degrees counter-clockwise).
823ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			flags		-	0 for normal display, or combination of flags defined above.
824ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Return Value:
825ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			None.
826ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Comments:
827ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			This method is designed to only render annotations and FormFields on the page.
828ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			Without FPDF_ANNOT specified for flags, Rendering functions such as FPDF_RenderPageBitmap or FPDF_RenderPageBitmap_Start will only render page contents(without annotations) to a bitmap.
829ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov*			In order to implement the FormFill functions,Implementation should call this method after rendering functions finish rendering the page contents.
830ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov**/
831ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovDLLEXPORT void STDCALL FPDF_FFLDraw(FPDF_FORMHANDLE hHandle,FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y,
832ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov						int size_x, int size_y, int rotate, int flags);
833ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
834ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
835ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
836ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef __cplusplus
837ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
838ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
839ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
840ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif //_FPDFORMFILL_H
841ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
842