1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef _FPDF_EXT_H_
8#define _FPDF_EXT_H_
9
10#ifndef _FPDFVIEW_H_
11#include "fpdfview.h"
12#endif
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18//flags for type of unsupport object.
19#define FPDF_UNSP_DOC_XFAFORM				1
20#define FPDF_UNSP_DOC_PORTABLECOLLECTION	2
21#define FPDF_UNSP_DOC_ATTACHMENT			3
22#define FPDF_UNSP_DOC_SECURITY				4
23#define FPDF_UNSP_DOC_SHAREDREVIEW			5
24#define FPDF_UNSP_DOC_SHAREDFORM_ACROBAT	6
25#define FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM	7
26#define FPDF_UNSP_DOC_SHAREDFORM_EMAIL		8
27#define FPDF_UNSP_ANNOT_3DANNOT				11
28#define FPDF_UNSP_ANNOT_MOVIE				12
29#define FPDF_UNSP_ANNOT_SOUND				13
30#define FPDF_UNSP_ANNOT_SCREEN_MEDIA		14
31#define FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA	15
32#define FPDF_UNSP_ANNOT_ATTACHMENT			16
33#define FPDF_UNSP_ANNOT_SIG					17
34
35typedef	struct _UNSUPPORT_INFO
36{
37	/**
38	* Version number of the interface. Currently must be 1.
39	**/
40	int version;
41
42	/**
43	* Method: FSDK_UnSupport_Handler
44	*			 UnSupport Object process handling function.
45	* Interface Version:
46	*			1
47	* Implementation Required:
48	*			Yes
49	* Parameters:
50	*		pThis		-	Pointer to the interface structure itself.
51	*		nType		-	The type of unsupportObject
52	* 	Return value:
53	* 		None.
54	* */
55
56	void(*FSDK_UnSupport_Handler)(_UNSUPPORT_INFO* pThis,int nType);
57}UNSUPPORT_INFO;
58
59
60/**
61 * Function: FSDK_SetUnSpObjProcessHandler
62 *			 Setup A UnSupport Object process handler for foxit sdk.
63 * Parameters:
64 *			unsp_info		-	Pointer to a UNSUPPORT_INFO structure.
65 * Return Value:
66 *			TRUE means successful. FALSE means fails.
67 **/
68
69DLLEXPORT FPDF_BOOL STDCALL FSDK_SetUnSpObjProcessHandler(UNSUPPORT_INFO* unsp_info);
70
71//flags for page mode.
72
73//Unknown value
74#define PAGEMODE_UNKONOWN		-1
75
76//Neither document outline nor thumbnail images visible
77#define PAGEMODE_USENONE		0
78
79//Document outline visible
80#define PAGEMODE_USEOUTLINES	1
81
82//Thumbnial images visible
83#define PAGEMODE_USETHUMBS		2
84
85//Full-screen mode, with no menu bar, window controls, or any other window visible
86#define PAGEMODE_FULLSCREEN		3
87
88//Optional content group panel visible
89#define PAGEMODE_USEOC			4
90
91//Attachments panel visible
92#define PAGEMODE_USEATTACHMENTS	5
93
94
95/**
96 * Function: FPDFDoc_GetPageMode
97 *			 Get the document's PageMode(How the document should be displayed when opened)
98 * Parameters:
99 *			doc		-	Handle to document. Returned by FPDF_LoadDocument function.
100 * Return Value:
101 *			The flags for page mode.
102 **/
103DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document);
104
105#ifdef __cplusplus
106};
107#endif
108#endif
109