fsdk_define.h revision ee451cb395940862dad63c85adfe8f2fd55e864c
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#ifndef _FPDFSDK_DEFINE_H
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _FPDFSDK_DEFINE_H
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef _WIN32
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include <tchar.h>
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include <math.h>
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov//#define API5
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define API6
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define  _FPDFAPI_ASYNC_PARSING_
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _FXSDK_OPENSOURCE_
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef _FPDFEMB_WCE_
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdfapi.h"
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdf_parser.h"
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdf_module.h"
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdf_render.h"
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdf_pageobj.h"
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfapi/fpdf_serial.h"
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdftext/fpdf_text.h"
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fxge/fx_ge_win32.h"
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fxge/fx_ge.h"
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fxcodec/fx_codec.h"
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfdoc/fpdf_doc.h"
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fpdfdoc/fpdf_vt.h"
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fxcrt/fx_xml.h"
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#include "../../core/include/fxcrt/fx_crypt.h"
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#ifdef API6
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_parser.h"
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdfapi.h"
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_parser.h"
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_module.h"
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_render.h"
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_pageobj.h"
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfapi/fpdf_serial.h"
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdftext/fpdf_text.h"
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fxge/fx_ge_win32.h"
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fxge/fx_ge.h"
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fxcodec/fx_codec.h"
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfdoc/fpdf_doc.h"
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fpdfdoc/fpdf_vt.h"
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#include "../../core/include/fxcrt/fx_xml.h"
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	//	#include "../../core/include/fdrm/fx_crypt.h"
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#ifdef _LICENSED_BUILD_
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov			#include "../../cryptopp/Cryptlib.h"
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov		#endif
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	#endif
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_GetAValue
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief It retrieves an intensity value for the alpha component of a #FX_ARGB value. */
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_GetAValue(argb)			((argb & 0xFF000000) >> 24)
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_GetRValue
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief It retrieves an intensity value for the red component of a #FX_ARGB value. */
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_GetRValue(argb)			((argb & 0x00FF0000) >> 16)
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_GetGValue
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief It retrieves an intensity value for the green component of a #FX_ARGB value. */
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_GetGValue(argb)			((argb & 0x0000FF00) >> 8)
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_GetBValue
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief It retrieves an intensity value for the blue component of a #FX_ARGB value. */
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_GetBValue(argb)			(argb & 0x000000FF)
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_ARGBTOCOLORREF
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief Convert a #FX_ARGB to a #FX_COLORREF. */
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_ARGBTOCOLORREF(argb)		((((FX_DWORD)argb & 0x00FF0000) >> 16)|((FX_DWORD)argb & 0x0000FF00)|(((FX_DWORD)argb & 0x000000FF) << 16))
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FX_COLORREFTOARGB
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/** @brief Convert a #FX_COLORREF to a #FX_ARGB. */
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FX_COLORREFTOARGB(rgb)		((FX_DWORD)0xFF000000|(((FX_DWORD)rgb & 0x000000FF) << 16)|((FX_DWORD)rgb & 0x0000FF00)|(((FX_DWORD)rgb & 0x00FF0000) >> 16))
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovtypedef unsigned int FX_UINT;
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "fpdfview.h"
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CPDF_CustomAccess : public IFX_FileRead, public CFX_Object
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CPDF_CustomAccess(FPDF_FILEACCESS* pFileAccess);
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	~CPDF_CustomAccess() {}
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual CFX_ByteString GetFullPath() { return ""; }
111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual FX_FILESIZE	GetSize() { return m_FileAccess.m_FileLen; }
112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual FX_BOOL		GetByte(FX_DWORD pos, FX_BYTE& ch);
114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual FX_BOOL		GetBlock(FX_DWORD pos, FX_LPBYTE pBuf, FX_DWORD size);
115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual void		Release() { delete this; }
116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	virtual FX_BOOL		ReadBlock(void* buffer, FX_FILESIZE offset, size_t size);
118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FPDF_FILEACCESS		m_FileAccess;
120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BYTE				m_Buffer[512];
121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_DWORD			m_BufferOffset;
122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid		FSDK_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable);
125ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFPDF_BOOL	FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy);
126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif//_FPDFSDK_DEFINE_H
129