view src/kaigo/Perori/xdw_api.h @ 42:c58172a59534

bug fix.
author pyon@macmini
date Tue, 10 Mar 2020 21:12:29 +0900
parents 34a474fb83c3
children
line wrap: on
line source

/* File: xdw_api.h
// Copyright(C) 1999-2013 by Fuji Xerox Co., Ltd. All right reserved.  
*/

#ifndef XDW_API_H
#define XDW_API_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#ifndef XDWAPI_DECLARATIONS
#define XDWAPI_DECLARATIONS

#ifdef _WIN64
#ifndef XDW_DISABLE_PRAGMA_PACK
#pragma pack(push, xdwapi_enter_parser)
#pragma pack(8)
#endif	/* XDW_DISABLE_PRAGMA_PACK */
#endif	/* _WIN64 */

#define XDWAPI __stdcall

#define XDW_GI_VERSION            1
#define XDW_GI_INSTALLPATH        2
#define XDW_GI_BINPATH            3
#define XDW_GI_PLUGINPATH         4
#define XDW_GI_FOLDERROOTPATH     5
#define XDW_GI_USERFOLDERPATH     6
#define XDW_GI_SYSTEMFOLDERPATH   7
#define XDW_GI_RECEIVEFOLDERPATH  8
#define XDW_GI_SENDFOLDERPATH     9
#define XDW_GI_DWINPUTPATH       10
#define XDW_GI_DWDESKPATH        11
#define XDW_GI_DWVIEWERPATH      12
#define XDW_GI_DWVLTPATH         13
#define XDW_GI_DWDESK_FILENAME_DELIMITER 1001
#define XDW_GI_DWDESK_FILENAME_DIGITS    1002


#define XDW_PGT_NULL              0
#define XDW_PGT_FROMIMAGE         1
#define XDW_PGT_FROMAPPL          2

#define XDW_MAXPATH             255
#define XDW_MAXINPUTIMAGEPATH   127

#define XDW_OPEN_READONLY       0
#define XDW_OPEN_UPDATE         1

#define XDW_AUTH_NONE			0
#define XDW_AUTH_NODIALOGUE		1
#define XDW_AUTH_CONDITIONAL_DIALOGUE		2

#define XDW_PERM_DOC_EDIT		0x02
#define XDW_PERM_ANNO_EDIT		0x04
#define XDW_PERM_PRINT			0x08
#define XDW_PERM_COPY			0x10

#define XDW_DT_DOCUMENT			0
#define XDW_DT_BINDER			1
#define XDW_DT_CONTAINER		2

#define XDW_ROT_0				0
#define XDW_ROT_90              90
#define XDW_ROT_180             180
#define XDW_ROT_270             270

#define XDW_CREATE_FITDEF		0
#define XDW_CREATE_FIT			1
#define XDW_CREATE_USERDEF		2
#define XDW_CREATE_USERDEF_FIT	3
#define XDW_CREATE_FITDEF_DIVIDEBMP 4

#define XDW_COMPRESS_NORMAL				0
#define XDW_COMPRESS_LOSSLESS			1
#define XDW_COMPRESS_HIGHQUALITY		2
#define XDW_COMPRESS_HIGHCOMPRESS		3
#define XDW_COMPRESS_NOCOMPRESS			4
#define XDW_COMPRESS_JPEG				5
#define XDW_COMPRESS_PACKBITS			6
#define XDW_COMPRESS_G4					7
#define XDW_COMPRESS_MRC_NORMAL			8
#define XDW_COMPRESS_MRC_HIGHQUALITY	9
#define XDW_COMPRESS_MRC_HIGHCOMPRESS	10
#define XDW_COMPRESS_MRC				11
#define XDW_COMPRESS_JPEG_TTN2			12

#define XDW_CONVERT_MRC_ORIGINAL  0
#define XDW_CONVERT_MRC_OS        1

#define XDW_IMAGE_DIB		0
#define XDW_IMAGE_TIFF		1
#define XDW_IMAGE_JPEG		2
#define XDW_IMAGE_PDF		3

#define XDW_CREATE_HCENTER  0
#define XDW_CREATE_LEFT     1
#define XDW_CREATE_RIGHT    2

#define XDW_CREATE_VCENTER  0
#define XDW_CREATE_TOP      1
#define XDW_CREATE_BOTTOM   2

#define XDW_CREATE_DEFAULT_SIZE 0
#define XDW_CREATE_A3_SIZE		1
#define XDW_CREATE_2A0_SIZE		2

#define	XDW_LINE_NONE			0
#define XDW_LINE_BEGINNING		1
#define	XDW_LINE_ENDING			2
#define XDW_LINE_BOTH			3
#define XDW_LINE_WIDE_POLYLINE	0
#define XDW_LINE_POLYLINE		1
#define XDW_LINE_POLYGON		2

#define XDW_BORDER_TYPE_SOLID	0
#define XDW_BORDER_TYPE_DOT		1
#define XDW_BORDER_TYPE_DASH	2
#define XDW_BORDER_TYPE_DASHDOT 3
#define XDW_BORDER_TYPE_DOUBLE	4

#define XDW_STAMP_AUTO			0
#define XDW_STAMP_MANUAL		1
#define XDW_STAMP_NO_BASISYEAR	0
#define XDW_STAMP_BASISYEAR		1
#define XDW_STAMP_DATE_YMD		0
#define XDW_STAMP_DATE_DMY		1

#define	XDW_PAGEFORM_HEADER			0
#define	XDW_PAGEFORM_FOOTER			1
#define XDW_PAGEFORM_TOPIMAGE		2
#define	XDW_PAGEFORM_BOTTOMIMAGE	3
#define XDW_PAGEFORM_PAGENUMBER		4

#define XDW_PAGEFORM_STAY	0
#define XDW_PAGEFORM_REMOVE	1

#define	XDW_ALIGN_LEFT		0
#define	XDW_ALIGN_HCENTER	1
#define	XDW_ALIGN_RIGHT		2
#define XDW_ALIGN_TOP		0
#define XDW_ALIGN_BOTTOM	1
#define	XDW_ALIGN_VCENTER	2

#define	XDW_PAGERANGE_ALL		0
#define	XDW_PAGERANGE_SPECIFIED	1

#define XDW_CRTP_BEGINNING              1
#define XDW_CRTP_PRINTING               2
#define XDW_CRTP_PAGE_CREATING          3
#define XDW_CRTP_ORIGINAL_APPENDING     4
#define XDW_CRTP_WRITING                5
#define XDW_CRTP_ENDING                 6
#define XDW_CRTP_CANCELING              7
#define XDW_CRTP_FINISHED               8
#define XDW_CRTP_CANCELED               9

#define XDW_AID_FUSEN           32794
#define XDW_AID_TEXT            32785
#define XDW_AID_STAMP           32819
#define XDW_AID_STRAIGHTLINE    32828
#define XDW_AID_RECTANGLE       32829
#define XDW_AID_ARC             32830
#define XDW_AID_POLYGON			32834
#define XDW_AID_MARKER          32795
#define XDW_AID_LINK            49199
#define XDW_AID_PAGEFORM        32814
#define XDW_AID_OLE             32783
#define XDW_AID_BITMAP          32831
#define XDW_AID_RECEIVEDSTAMP	32832
#define XDW_AID_CUSTOM			32837
#define XDW_AID_TITLE			32838
#define	XDW_AID_GROUP			32839

#define XDW_ATYPE_INT		0
#define XDW_ATYPE_STRING	1
#define	XDW_ATYPE_DATE		2
#define XDW_ATYPE_BOOL		3
#define XDW_ATYPE_OCTS		4
#define XDW_ATYPE_OTHER		999

#define XDW_SUMMARY_INFO	1
#define XDW_USER_DEF		2
#define XDW_ANNOTATION		4

#define XDW_SIZE_FREE			0
#define XDW_SIZE_A3_PORTRAIT	1
#define XDW_SIZE_A3_LANDSCAPE	2
#define XDW_SIZE_A4_PORTRAIT	3
#define XDW_SIZE_A4_LANDSCAPE	4
#define XDW_SIZE_A5_PORTRAIT	5
#define XDW_SIZE_A5_LANDSCAPE	6
#define XDW_SIZE_B4_PORTRAIT	7
#define XDW_SIZE_B4_LANDSCAPE	8
#define XDW_SIZE_B5_PORTRAIT	9
#define XDW_SIZE_B5_LANDSCAPE	10

#define XDW_BINDER_COLOR_0		0
#define XDW_BINDER_COLOR_1		1
#define XDW_BINDER_COLOR_2		2
#define XDW_BINDER_COLOR_3		3
#define XDW_BINDER_COLOR_4		4
#define XDW_BINDER_COLOR_5		5
#define XDW_BINDER_COLOR_6		6
#define XDW_BINDER_COLOR_7		7
#define XDW_BINDER_COLOR_8		8
#define XDW_BINDER_COLOR_9		9
#define XDW_BINDER_COLOR_10		10
#define XDW_BINDER_COLOR_11		11
#define XDW_BINDER_COLOR_12		12
#define XDW_BINDER_COLOR_13		13
#define XDW_BINDER_COLOR_14		14
#define XDW_BINDER_COLOR_15		15

#define XDW_REDUCENOISE_NONE	0
#define XDW_REDUCENOISE_NORMAL	1
#define XDW_REDUCENOISE_WEAK	2
#define XDW_REDUCENOISE_STRONG	3

#define XDW_PRIORITY_NONE			0
#define XDW_PRIORITY_SPEED			1
#define XDW_PRIORITY_RECOGNITION	2

#define XDW_OCR_ENGINE_V4		1	// old name - should be here for compatibility
#define XDW_OCR_ENGINE_DEFAULT	1
#define XDW_OCR_ENGINE_WRP		2
#define XDW_OCR_ENGINE_FRE		3
#define XDW_OCR_ENGINE_FRE_MULTI		4

#define XDW_OCR_LANGUAGE_AUTO				-1
#define XDW_OCR_LANGUAGE_JAPANESE			0
#define XDW_OCR_LANGUAGE_ENGLISH			1

#define XDW_OCR_MULTIPLELANGUAGES_ENGLISH				0x02
#define XDW_OCR_MULTIPLELANGUAGES_FRENCH				0x04
#define XDW_OCR_MULTIPLELANGUAGES_SIMPLIFIED_CHINESE	0x08
#define XDW_OCR_MULTIPLELANGUAGES_TRADITIONAL_CHINESE	0x10
#define XDW_OCR_MULTIPLELANGUAGES_THAI					0x20
#define XDW_OCR_MULTIPLELANGUAGES_JAPANESE				0x40
#define XDW_OCR_MULTIPLELANGUAGES_KOREAN				0x80

#define XDW_OCR_FORM_AUTO		0
#define XDW_OCR_FORM_TABLE		1
#define XDW_OCR_FORM_WRITING	2

#define XDW_OCR_COLUMN_AUTO					0
#define XDW_OCR_COLUMN_HORIZONTAL_SINGLE	1
#define XDW_OCR_COLUMN_HORIZONTAL_MULTI		2
#define XDW_OCR_COLUMN_VERTICAL_SINGLE		3
#define XDW_OCR_COLUMN_VERTICAL_MULTI		4

#define XDW_OCR_DOCTYPE_AUTO				0
#define XDW_OCR_DOCTYPE_HORIZONTAL_SINGLE	1
#define XDW_OCR_DOCTYPE_PLAINTEXT			2

#define XDW_OCR_ENGINE_LEVEL_SPEED		1
#define XDW_OCR_ENGINE_LEVEL_STANDARD	2
#define XDW_OCR_ENGINE_LEVEL_ACCURACY	3

#define XDW_OCR_MIXEDRATE_JAPANESE		1
#define XDW_OCR_MIXEDRATE_BALANCED		2
#define XDW_OCR_MIXEDRATE_ENGLISH		3

#define XDW_PROTECT_PSWD	1
#define XDW_PROTECT_PSWD128	3
#define XDW_PROTECT_PKI		4
#define XDW_PROTECT_STAMP	5
#define XDW_PROTECT_CONTEXT_SERVICE	6
#define XDW_PROTECT_PSWD256	7
#define XDW_PROTECT_PKI256	8

#define XDW_GPTI_TYPE_EMF		0
#define XDW_GPTI_TYPE_OCRTEXT	1

#define	XDW_IMAGE_MONO				0
#define	XDW_IMAGE_COLOR				1
#define	XDW_IMAGE_MONO_HIGHQUALITY	2

#define XDW_SIGNATURE_STAMP	100
#define XDW_SIGNATURE_PKI	102
#define XDW_SIGNATURE_PKI_SHA256	105

#define XDW_SIGNATURE_STAMP_DOC_NONE 0
#define XDW_SIGNATURE_STAMP_DOC_NOEDIT 1
#define XDW_SIGNATURE_STAMP_DOC_EDIT 2
#define XDW_SIGNATURE_STAMP_DOC_BAD 3

#define XDW_SIGNATURE_STAMP_STAMP_NONE 0
#define XDW_SIGNATURE_STAMP_STAMP_TRUSTED 1
#define XDW_SIGNATURE_STAMP_STAMP_NOTRUST 2

#define XDW_SIGNATURE_STAMP_ERROR_OK 0
#define XDW_SIGNATURE_STAMP_ERROR_NO_OPENING_CASE 1
#define XDW_SIGNATURE_STAMP_ERROR_NO_SELFSTAMP 2
#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_VALIDITY 3
#define XDW_SIGNATURE_STAMP_ERROR_INVALID_DATA 4
#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_MEMORY 100
#define XDW_SIGNATURE_STAMP_ERROR_UNKNOWN 9999

#define XDW_SIGNATURE_PKI_DOC_UNKNOWN 0
#define XDW_SIGNATURE_PKI_DOC_GOOD 1
#define XDW_SIGNATURE_PKI_DOC_MODIFIED 2
#define XDW_SIGNATURE_PKI_DOC_BAD 3
#define XDW_SIGNATURE_PKI_DOC_GOOD_TRUSTED 4
#define XDW_SIGNATURE_PKI_DOC_MODIFIED_TRUSTED 5

#define XDW_SIGNATURE_PKI_TYPE_LOW 0
#define XDW_SIGNATURE_PKI_TYPE_MID_LOCAL 1
#define XDW_SIGNATURE_PKI_TYPE_MID_NETWORK 2
#define XDW_SIGNATURE_PKI_TYPE_HIGH_LOCAL 3
#define XDW_SIGNATURE_PKI_TYPE_HIGH_NETWORK 4

#define XDW_SIGNATURE_PKI_CERT_UNKNOWN 0
#define XDW_SIGNATURE_PKI_CERT_OK 1
#define XDW_SIGNATURE_PKI_CERT_NO_ROOT_CERTIFICATE 2
#define XDW_SIGNATURE_PKI_CERT_NO_REVOCATION_CHECK 3
#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY 4
#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY_AT_SIGNED_TIME 5
#define XDW_SIGNATURE_PKI_CERT_REVOKE_CERTIFICATE 6
#define XDW_SIGNATURE_PKI_CERT_REVOKE_INTERMEDIATE_CERTIFICATE 7
#define XDW_SIGNATURE_PKI_CERT_INVALID_SIGNATURE 8
#define XDW_SIGNATURE_PKI_CERT_INVALID_USAGE 9
#define XDW_SIGNATURE_PKI_CERT_UNDEFINED_ERROR 10

#define XDW_SIGNATURE_PKI_ERROR_UNKNOWN 0
#define XDW_SIGNATURE_PKI_ERROR_OK 1
#define XDW_SIGNATURE_PKI_ERROR_BAD_PLATFORM 2
#define XDW_SIGNATURE_PKI_ERROR_WRITE_REG_ERROR 3
#define XDW_SIGNATURE_PKI_ERROR_BAD_TRUST_LEVEL 4
#define XDW_SIGNATURE_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
#define XDW_SIGNATURE_PKI_ERROR_BAD_AUTO_IMPORT_CERT_FLAG 6
#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CONFIG 7
#define XDW_SIGNATURE_PKI_ERROR_NO_IMAGE_FILE 8
#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CERT 9
#define XDW_SIGNATURE_PKI_ERROR_NO_SIGN_CERT 10
#define XDW_SIGNATURE_PKI_ERROR_NOT_USE_PRIVATE_KEY 11
#define XDW_SIGNATURE_PKI_ERROR_INVALID 12
#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN 13
#define XDW_SIGNATURE_PKI_ERROR_REVOKE_CHECK_ERROR 14
#define XDW_SIGNATURE_PKI_ERROR_OUT_OF_VALIDITY 15
#define XDW_SIGNATURE_PKI_ERROR_NO_CERT 16
#define XDW_SIGNATURE_PKI_ERROR_FAILURE_IMPOPT_CERT 17
#define XDW_SIGNATURE_PKI_ERROR_NO_ROOT_CERT 18
#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_SIZE 19
#define XDW_SIGNATURE_PKI_ERROR_BAD_ARG 20
#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_FORMAT 21

#define XDW_SECURITY_PKI_ERROR_UNKNOWN 0
#define XDW_SECURITY_PKI_ERROR_OK 1
#define XDW_SECURITY_PKI_ERROR_BAD_PLATFORM 2
#define XDW_SECURITY_PKI_ERROR_WRITE_REG_ERROR 3
#define XDW_SECURITY_PKI_ERROR_BAD_TRUST_LEVEL 4
#define XDW_SECURITY_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5
#define XDW_SECURITY_PKI_ERROR_REVOKED 6
#define XDW_SECURITY_PKI_ERROR_BAD_SIGN 7
#define XDW_SECURITY_PKI_ERROR_REVOKE_CHECK_ERROR 8
#define XDW_SECURITY_PKI_ERROR_OUT_OF_VALIDITY 9
#define XDW_SECURITY_PKI_ERROR_NO_CERT 10
#define XDW_SECURITY_PKI_ERROR_FAILURE_IMPORT_CERT 11
#define XDW_SECURITY_PKI_ERROR_NO_ROOT_CERT 12
#define XDW_SECURITY_PKI_ERROR_BAD_CERT_FORMAT 13
#define XDW_SECURITY_PKI_ERROR_BAD_CERT_USAGE 14
#define XDW_SECURITY_PKI_ERROR_CA_CERT_IS_REVOKED 15
#define XDW_SECURITY_PKI_ERROR_TOO_MANY_CERT 16

#define XDW_IGNORE_CASE      0x02
#define XDW_IGNORE_WIDTH     0x04
#define XDW_IGNORE_HIRAKATA  0x08

#define XDW_STARCH 1
#define XDW_STARCH_OFF 0

#define XDW_TEXT_UNKNOWN  0
#define XDW_TEXT_MULTIBYTE  1
#define XDW_TEXT_UNICODE  2
#define XDW_TEXT_UNICODE_IFNECESSARY  3

#define XDW_HGLOBAL	void*

typedef struct { int dummy; } *XDW_DOCUMENT_HANDLE;
typedef struct { int dummy; } *XDW_CREATE_HANDLE;
typedef struct { int dummy; } *XDW_ANNOTATION_HANDLE;
typedef struct { int dummy; } *XDW_FOUND_HANDLE;

typedef unsigned short XDW_WCHAR;

typedef struct tag_XDW_RECT {
  long left;
  long top;
  long right;
  long bottom;
} XDW_RECT;

typedef struct tag_XDW_GPTI_OCRTEXT_UNIT {
	const char*	lpszText;
	XDW_RECT	rect;
} XDW_GPTI_OCRTEXT_UNIT;

typedef struct tag_XDW_GPTI_OCRTEXT {
	int						nUnitNum;
	XDW_GPTI_OCRTEXT_UNIT*	pUnits;
} XDW_GPTI_OCRTEXT;

typedef struct tag_XDW_GPTI_INFO {
	int			nSize;
	int			nInfoType;
	int			nPageWidth;
	int			nPageHeight;
	int			nRotateDegree;
	int			nDataSize;
	XDW_HGLOBAL	pData;
} XDW_GPTI_INFO;

typedef struct tag_XDW_DOCUMENT_INFO {
  int nSize;
  int nPages;
  int nVersion;
  int nOriginalData;
  int nDocType;
  int nPermission;
  int nShowAnnotations;
  int nDocuments;
  int nBinderColor;
  int nBinderSize;
} XDW_DOCUMENT_INFO;

typedef struct tag_XDW_PAGE_INFO {
  int nSize;
  int nWidth;
  int nHeight;
  int nPageType;
  int nHorRes;
  int nVerRes;
  int nCompressType;
  int nAnnotations;
} XDW_PAGE_INFO;

typedef struct tag_XDW_PAGE_INFO_EX {
  int nSize;
  int nWidth;
  int nHeight;
  int nPageType;
  int nHorRes;
  int nVerRes;
  int nCompressType;
  int nAnnotations;
  int nDegree;
  int nOrgWidth;
  int nOrgHeight;
  int nOrgHorRes;
  int nOrgVerRes;
  int nImageWidth;
  int nImageHeight;
} XDW_PAGE_INFO_EX;

typedef struct tag_XDW_IMAGE_OPTION {
  int nSize;
  int nDpi;
  int nColor;
} XDW_IMAGE_OPTION;

typedef struct tag_XDW_OPEN_MODE {
	int nSize;
	int nOption;
} XDW_OPEN_MODE;

typedef struct tag_XDW_OPEN_MODE_EX {
	int nSize;
	int nOption;
	int nAuthMode;
} XDW_OPEN_MODE_EX;

typedef struct tag_XDW_CREATE_OPTION {
	int nSize;
	int nFitImage;
	int nCompress;
	int nZoom;
	int nWidth;
	int nHeight;
	int nHorPos;
	int nVerPos;
} XDW_CREATE_OPTION;

typedef struct tag_XDW_CREATE_OPTION_EX {
	int nSize;
	int nFitImage;
	int nCompress;
	int nZoom;
	int nWidth;
	int nHeight;
	int nHorPos;
	int nVerPos;
	int nZoomDetail;
} XDW_CREATE_OPTION_EX;

typedef struct tag_XDW_CREATE_OPTION_EX2 {
	int nSize;
	int nFitImage;
	int nCompress;
	int nZoom;
	int nWidth;
	int nHeight;
	int nHorPos;
	int nVerPos;
	int nZoomDetail;
	int nMaxPaperSize;
} XDW_CREATE_OPTION_EX2;


#define XDW_SIZEOF_ORGDATANAME	256
typedef struct tag_XDW_ORGDATA_INFO {
	int nSize;
	int nDataSize;
	long nDate;
	char szName[XDW_SIZEOF_ORGDATANAME];
} XDW_ORGDATA_INFO;

typedef struct tag_XDW_ORGDATA_INFOW {
	int nSize;
	int nDataSize;
	long nDate;
	XDW_WCHAR szName[XDW_SIZEOF_ORGDATANAME];
} XDW_ORGDATA_INFOW;

#define	XDW_SIZEOF_LINKROOTFOLDER	256
typedef struct tag_XDW_LINKROOTFOLDER_INFO {
	int nSize;
	char szPath[XDW_SIZEOF_LINKROOTFOLDER];
	char szLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
} XDW_LINKROOTFOLDER_INFO ;

typedef struct tag_XDW_LINKROOTFOLDER_INFOW {
	int nSize;
	XDW_WCHAR wszPath[XDW_SIZEOF_LINKROOTFOLDER];
	XDW_WCHAR wszLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER];
} XDW_LINKROOTFOLDER_INFOW ;

typedef struct tag_XDW_CREATE_STATUS {
	int nSize;
	int phase;
	int nTotalPage;
	int nPage;
} XDW_CREATE_STATUS;

typedef struct tag_XDW_ANNOTATION_INFO {
	int nSize;
	XDW_ANNOTATION_HANDLE handle;
	int nHorPos;
	int nVerPos;
	int nWidth;
	int nHeight;
	int nAnnotationType;
	int nChildAnnotations;
} XDW_ANNOTATION_INFO;


typedef struct tag_XDW_AA_INITIAL_DATA {
    int nSize;
    int nAnnotationType;
    int nReserved1;
    int nReserved2;
} XDW_AA_INITIAL_DATA;

typedef struct tag_XDW_AA_FUSEN_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
    int nWidth;
    int nHeight;
} XDW_AA_FUSEN_INITIAL_DATA;

typedef struct tag_XDW_AA_STRAIGHTLINE_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
    int nHorVec;
    int nVerVec;
} XDW_AA_STRAIGHTLINE_INITIAL_DATA;

typedef struct tag_XDW_AA_RECT_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
    int nWidth;
    int nHeight;
} XDW_AA_RECT_INITIAL_DATA;

typedef struct tag_XDW_AA_ARC_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
    int nWidth;
    int nHeight;
} XDW_AA_ARC_INITIAL_DATA;

typedef struct tag_XDW_AA_BITMAP_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
    char szImagePath[256];
} XDW_AA_BITMAP_INITIAL_DATA;

typedef struct tag_XDW_AA_BITMAP_INITIAL_DATAW {
	XDW_AA_INITIAL_DATA common;
	XDW_WCHAR wszImagePath[256];
} XDW_AA_BITMAP_INITIAL_DATAW;

typedef struct tag_XDW_AA_STAMP_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
	int nWidth;
} XDW_AA_STAMP_INITIAL_DATA;

typedef struct tag_XDW_AA_RECEIVEDSTAMP_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
	int nWidth;
} XDW_AA_RECEIVEDSTAMP_INITIAL_DATA;

#define	XDW_SIZEOF_GUID 36
typedef struct tag_XDW_AA_CUSTOM_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
	int nWidth;
	int nHeight;
	char* lpszGuid;
	int nCustomDataSize;
	unsigned char* pCustomData;
} XDW_AA_CUSTOM_INITIAL_DATA;

typedef struct tag_XDW_IMAGE_OPTION_EX {
  int nSize;
  int nDpi;
  int nColor;
  int nImageType;
  void* pDetailOption;
} XDW_IMAGE_OPTION_EX;

typedef struct tag_XDW_IMAGE_OPTION_TIFF {
  int nSize;
  int nCompress;
  int nEndOfMultiPages;
} XDW_IMAGE_OPTION_TIFF;

typedef struct tag_XDW_IMAGE_OPTION_JPEG {
  int nSize;
  int nCompress;
} XDW_IMAGE_OPTION_JPEG;

typedef struct tag_XDW_IMAGE_OPTION_PDF {
	int nSize;
	int nCompress;
	int nConvertMethod;
	int nEndOfMultiPages;
} XDW_IMAGE_OPTION_PDF;

typedef struct tag_XDW_BINDER_INITIAL_DATA {
  int nSize;
  int nBinderColor;
  int nBinderSize;
} XDW_BINDER_INITIAL_DATA;

typedef struct tag_XDW_OCR_OPTION_V4 {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nInsertSpaceCharacter;
  int nJapaneseKnowledgeProcessing;
  int nForm;
  int nColumn;
  int nDisplayProcess;
  int nAutoDeskew;
} XDW_OCR_OPTION_V4;

typedef struct tag_XDW_OCR_OPTION_V5 {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nInsertSpaceCharacter;
  int nJapaneseKnowledgeProcessing;
  int nForm;
  int nColumn;
  int nDisplayProcess;
  int nAutoDeskew;
  unsigned int nAreaNum;
  XDW_RECT** pAreaRects;
} XDW_OCR_OPTION_V5;

typedef struct tag_XDW_OCR_OPTION_V5_EX {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nInsertSpaceCharacter;
  int nJapaneseKnowledgeProcessing;
  int nForm;
  int nColumn;
  int nDisplayProcess;
  int nAutoDeskew;
  unsigned int nAreaNum;
  XDW_RECT** pAreaRects;
  int nPriority;
} XDW_OCR_OPTION_V5_EX;

typedef struct tag_XDW_OCR_OPTION_WRP {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nInsertSpaceCharacter;
  int nForm;
  int nColumn;
  int nAutoDeskew;
  int nPriority;
} XDW_OCR_OPTION_WRP;

typedef struct tag_XDW_OCR_OPTION_FRE {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nDocumentType;
  int nDisplayProcess;
  int nAutoDeskew;
  unsigned int nAreaNum;
  XDW_RECT** pAreaRects;
  int nPriority;
} XDW_OCR_OPTION_FRE;

typedef struct tag_XDW_OCR_OPTION_V7 {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nInsertSpaceCharacter;
  int nJapaneseKnowledgeProcessing;
  int nForm;
  int nColumn;
  int nDisplayProcess;
  int nAutoDeskew;
  unsigned int nAreaNum;
  XDW_RECT** pAreaRects;
  int nPriority;
  int nEngineLevel;
  int nLanguageMixedRate;
  int nHalfSizeChar;
} XDW_OCR_OPTION_V7;

typedef struct tag_XDW_OCR_OPTION_FRE_V7 {
  int nSize;
  int nNoiseReduction;
  int nLanguage;
  int nDocumentType;
  int nDisplayProcess;
  int nAutoDeskew;
  unsigned int nAreaNum;
  XDW_RECT** pAreaRects;
  int nPriority;
  int nEngineLevel;
} XDW_OCR_OPTION_FRE_V7;

typedef struct tag_XDW_PAGE_COLOR_INFO {
  int nSize;
  int nColor;
  int nImageDepth;
} XDW_PAGE_COLOR_INFO;

#define XDW_SIZEOF_PSWD	256
typedef struct tag_XDW_SECURITY_OPTION_PSWD {
  int nSize;
  int nPermission;
  char szOpenPswd[XDW_SIZEOF_PSWD];
  char szFullAccessPswd[XDW_SIZEOF_PSWD];
  char* lpszComment;
} XDW_SECURITY_OPTION_PSWD;

typedef struct tag_XDW_DER_CERTIFICATE {
  void *pCert;
  int nCertSize;
} XDW_DER_CERTIFICATE;

typedef struct tag_XDW_SECURITY_OPTION_PKI {
  int nSize;
  int nPermission;
  XDW_DER_CERTIFICATE* lpxdcCerts;
  int nCertsNum;
  int nFullAccessCertsNum;
  int nErrorStatus;
  int nFirstErrorCert;
} XDW_SECURITY_OPTION_PKI;

typedef struct tag_XDW_PROTECT_OPTION {
  int nSize;
  int nAuthMode;
} XDW_PROTECT_OPTION;

typedef struct tag_XDW_RELEASE_PROTECTION_OPTION {
  int nSize;
  int nAuthMode;
} XDW_RELEASE_PROTECTION_OPTION;

typedef struct tag_XDW_PROTECTION_INFO {
  int nSize;
  int nProtectType;
  int nPermission;
} XDW_PROTECTION_INFO;

typedef struct tag_XDW_SIGNATURE_OPTION_V5 {
	int nSize;
	int nPage;
	int nHorPos;
	int nVerPos;
	int nSignatureType;
} XDW_SIGNATURE_OPTION_V5;

typedef struct tag_XDW_SIGNATURE_INFO_V5 {
	int nSize;
	int nSignatureType;
	int nPage;
	int nHorPos;
	int nVerPos;
	int nWidth;
	int nHeight;
	long nSignedTime;
} XDW_SIGNATURE_INFO_V5;

typedef struct tag_XDW_SIGNATURE_MODULE_STATUS {
	int nSize;
	int nSignatureType;
	int nErrorStatus;
} XDW_SIGNATURE_MODULE_STATUS;

typedef struct tag_XDW_SIGNATURE_MODULE_OPTION_PKI {
	int nSize;
	void *pSignerCert;
	int nSignerCertSize;
} XDW_SIGNATURE_MODULE_OPTION_PKI;

#define	XDW_SIZEOF_STAMPNAME	256
#define	XDW_SIZEOF_STAMPOWNERNAME	64
#define	XDW_SIZEOF_STAMPREMARKS	1024
typedef struct tag_XDW_SIGNATURE_STAMP_INFO_V5 {
	int nSize;
	char lpszStampName[XDW_SIZEOF_STAMPNAME];
	char lpszOwnerName[XDW_SIZEOF_STAMPOWNERNAME];
	long nValidDate;
	char lpszRemarks[XDW_SIZEOF_STAMPREMARKS];
	int nDocVerificationStatus;
	int nStampVerificationStatus;
} XDW_SIGNATURE_STAMP_INFO_V5;

#define XDW_SIZEOF_PKIMODULENAME	16
#define XDW_SIZEOF_PKISUBJECTDN	512
#define XDW_SIZEOF_PKISUBJECT	256
#define XDW_SIZEOF_PKIISSUERDN	512
#define XDW_SIZEOF_PKIISSUER	256
#define XDW_SIZEOF_PKINOTBEFORE	32
#define XDW_SIZEOF_PKINOTAFTER	32
#define XDW_SIZEOF_PKISERIAL	64
#define XDW_SIZEOF_PKIREMARKS	64
#define XDW_SIZEOF_PKISIGNEDTIME	32

typedef struct tag_XDW_SIGNATURE_PKI_INFO_V5 {
	int nSize;
	char lpszModule[XDW_SIZEOF_PKIMODULENAME];
	char lpszSubjectDN[XDW_SIZEOF_PKISUBJECTDN];
	char lpszSubject[XDW_SIZEOF_PKISUBJECT];
	char lpszIssuerDN[XDW_SIZEOF_PKIISSUERDN];
	char lpszIssuer[XDW_SIZEOF_PKIISSUER];
	char lpszNotBefore[XDW_SIZEOF_PKINOTBEFORE];
	char lpszNotAfter[XDW_SIZEOF_PKINOTAFTER];
	char lpszSerial[XDW_SIZEOF_PKISERIAL];
	void* pSignerCert;
	int nSignerCertSize;
	char lpszRemarks[XDW_SIZEOF_PKIREMARKS];
	char lpszSigningTime[XDW_SIZEOF_PKISIGNEDTIME];
	int nDocVerificationStatus;
	int nCertVerificationType;
	int nCertVerificationStatus;
} XDW_SIGNATURE_PKI_INFO_V5;

typedef struct tag_XDW_OCR_TEXTINFO {
	int nSize;
	int nWidth;
	int nHeight;
	long charset;
	char* lpszText;
	int nLineRect;
	XDW_RECT* pLineRect;
} XDW_OCR_TEXTINFO;

typedef struct tag_XDW_OCRIMAGE_OPTION { 
	int nSize;
	int nDpi;
	int nNoiseReduction;
	int nPriority;
} XDW_OCRIMAGE_OPTION;

typedef struct tag_XDW_FIND_TEXT_OPTION { 
	int nSize;
	int nIgnoreMode;
	int nReserved;
	int nReserved2;
} XDW_FIND_TEXT_OPTION;

#define XDW_FOUND_RECT_STATUS_HIT (0)
#define XDW_FOUND_RECT_STATUS_PAGE (1)

typedef struct tag_XDW_POINT {
	int x;
	int y;
} XDW_POINT;


typedef struct tag_XDW_AA_MARKER_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
	int nCounts;
    XDW_POINT* pPoints;
} XDW_AA_MARKER_INITIAL_DATA;

typedef struct tag_XDW_AA_POLYGON_INITIAL_DATA {
    XDW_AA_INITIAL_DATA common;
	int nCounts;
    XDW_POINT* pPoints;
} XDW_AA_POLYGON_INITIAL_DATA;

typedef struct XDW_BEGIN_CREATE_OPTION {
	int nSize; 
	BOOL bNoUseSpecifiedApp;
} XDW_BEGIN_CREATE_OPTION;

#ifdef _WIN64
#ifndef XDW_DISABLE_PRAGMA_PACK
#pragma pack(pop, xdwapi_enter_parser)
#endif	/* XDW_DISABLE_PRAGMA_PACK */
#endif	/* _WIN64 */

#endif //XDWAPI_DECLARATIONS


int XDWAPI XDW_GetInformation(int nIndex, char* lpszOutput, int nSize, void* reserved);
int XDWAPI XDW_GetInformationW(int nIndex, XDW_WCHAR* lpwszOutput, int nSize, void* reserved);
int XDWAPI XDW_AddSystemFolder(int nIndex, void* reserved );

int XDWAPI XDW_MergeXdwFiles(const char** lpszInputPaths, int nFiles, const char* lpszOutputPath, void* reserved );
int XDWAPI XDW_MergeXdwFilesW(const XDW_WCHAR** lpwszInputPaths, int nFiles, const XDW_WCHAR* lpwszOutputPath, void* reserved );
int XDWAPI XDW_OpenDocumentHandle(const char* lpszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
int XDWAPI XDW_OpenDocumentHandleW(const XDW_WCHAR* lpwszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode);
int XDWAPI XDW_CloseDocumentHandle(XDW_DOCUMENT_HANDLE handle, void* reserved );
int XDWAPI XDW_GetDocumentInformation(XDW_DOCUMENT_HANDLE handle, XDW_DOCUMENT_INFO* pDocumentInfo);
int XDWAPI XDW_GetPageInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_INFO* pPageInfo);
int XDWAPI XDW_GetPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_GetPageText(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved );
int XDWAPI XDW_ConvertPageToImageFile(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, XDW_IMAGE_OPTION* pImageOption);
int XDWAPI XDW_ConvertPageToImageFileW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, XDW_IMAGE_OPTION* pImageOption);
int XDWAPI XDW_GetPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetPageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_DeletePage(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
int XDWAPI XDW_RotatePage(XDW_DOCUMENT_HANDLE handle, int nPage, int nDegree, void* reserved);
int XDWAPI XDW_SaveDocument(XDW_DOCUMENT_HANDLE handle, void* reserved);
int XDWAPI XDW_CreateXdwFromImageFile(const char* lpszInputPath, const char* lpszOutputPath, XDW_CREATE_OPTION* pOption);
int XDWAPI XDW_CreateXdwFromImageFileW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, XDW_CREATE_OPTION* pOption);

int XDWAPI XDW_GetOriginalDataInformation(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFO* pOriginalDataInfo, void* reserved);
int XDWAPI XDW_GetOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetOriginalDataW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_InsertOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszInputPath, void* reserved);
int XDWAPI XDW_DeleteOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, void* reserved);

int XDWAPI XDW_BeginCreationFromAppFile(const char* lpszInputPath, const char* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
int XDWAPI XDW_BeginCreationFromAppFileW(const XDW_WCHAR* lpszInputPath, const XDW_WCHAR* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption);
int XDWAPI XDW_EndCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);
int XDWAPI XDW_GetStatusCreationFromAppFile(XDW_CREATE_HANDLE handle, XDW_CREATE_STATUS* pStatus);
int XDWAPI XDW_CancelCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved);

int XDWAPI XDW_GetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
int XDWAPI XDW_SetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);

int XDWAPI XDW_GetAnnotationInformation(XDW_DOCUMENT_HANDLE hDocument, int nPage, XDW_ANNOTATION_HANDLE hAnnotation,int nIndex, XDW_ANNOTATION_INFO* pAnnotationInfo, void* reserved);
int XDWAPI XDW_GetAnnotationAttribute(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, char* pAttribute, int nDataSize, void* reserved);

int XDWAPI XDW_AddAnnotation(XDW_DOCUMENT_HANDLE handle, int hAnnotationType, int nPage, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation,  void* reserved);
int XDWAPI XDW_RemoveAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hRemoveAnnotation, void* reserved);
int XDWAPI XDW_SetAnnotationAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
int XDWAPI XDW_SetAnnotationSize(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nWidth, int nHeight, void* reserved);
int XDWAPI XDW_SetAnnotationPosition(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, void* reserved);
int XDWAPI XDW_CreateSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_CreateSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_ExtractFromSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_ExtractFromSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);

int XDWAPI XDW_ConvertPageToImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, XDW_IMAGE_OPTION* pImageOption);
int XDWAPI XDW_GetThumbnailImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, void* reserved);

int XDWAPI XDW_GetPageTextToMemory(XDW_DOCUMENT_HANDLE handle, int nPage, char* lpszValue, int nDataSize, void* reserved);
int XDWAPI XDW_GetFullText(XDW_DOCUMENT_HANDLE handle, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
int XDWAPI XDW_SetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);

int XDWAPI XDW_ReducePageNoise(XDW_DOCUMENT_HANDLE handle, int nPage, int nLevel, void* reserved);
int XDWAPI XDW_ShowOrHideAnnotations(XDW_DOCUMENT_HANDLE handle, int nShowAnnotations, void* reserved);
int XDWAPI XDW_GetCompressedPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetCompressedPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_InsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, void* reserved);
int XDWAPI XDW_InsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, void* reserved);
int XDWAPI XDW_ApplyOcr(XDW_DOCUMENT_HANDLE handle, int nPage, int nOcrEngine, void* pOption, void* reserved);
int XDWAPI XDW_RotatePageAuto(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved);
int XDWAPI XDW_CreateBinder(const char* lpszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
int XDWAPI XDW_CreateBinderW(const XDW_WCHAR* lpwszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved);
int XDWAPI XDW_InsertDocumentToBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszInputPath, void* reserved);

int XDWAPI XDW_GetDocumentFromBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_GetDocumentFromBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_DeleteDocumentInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
int XDWAPI XDW_GetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, int nDocNameSize, void* reserved);
int XDWAPI XDW_SetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, void* reserved);
int XDWAPI XDW_GetDocumentInformationInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_DOCUMENT_INFO* pDocumentInfo, void* reserved);
int XDWAPI XDW_Finalize(void* reserved);
int XDWAPI XDW_GetPageColorInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_COLOR_INFO* pColorInfo, void* reserved);
int XDWAPI XDW_OptimizeDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);
int XDWAPI XDW_OptimizeDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved);
int XDWAPI XDW_ProtectDocument(const char* lpszInputPath, const char* lpszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);
int XDWAPI XDW_ProtectDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption);

int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, XDW_CREATE_OPTION* pOption, void* reserved);
int XDWAPI XDW_GetDocumentAttributeNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByName(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByOrder(XDW_DOCUMENT_HANDLE handle, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_SetDocumentAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);
int XDWAPI XDW_SucceedAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszFilePath, int nDocument, int nSuccession, void* reserved);
int XDWAPI XDW_SucceedAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszFilePath, int nDocument, int nSuccession, void* reserved);
int XDWAPI XDW_GetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_SetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved);
int XDWAPI XDW_UpdatePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
int XDWAPI XDW_RemovePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved);
int XDWAPI XDW_GetLinkRootFolderInformation(int nOrder, XDW_LINKROOTFOLDER_INFO* pLinkRootFolderInfo, void* reserved);
int XDWAPI XDW_GetLinkRootFolderInformationW(int nOrder, XDW_LINKROOTFOLDER_INFOW* pLinkRootFolderInfo, void* reserved);
int XDWAPI XDW_GetLinkRootFolderNumber(void* reserved);
int XDWAPI XDW_GetLinkRootFolderNumberW(void* reserved);
int XDWAPI XDW_GetPageTextInformation(XDW_DOCUMENT_HANDLE handle, int nPage, void* pInfo, void* reserved);
int XDWAPI XDW_GetDocumentSignatureNumber(XDW_DOCUMENT_HANDLE handle, void* reserved);
int XDWAPI XDW_AddAnnotationOnParentAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int hAnnotationType, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
int XDWAPI XDW_SignDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
int XDWAPI XDW_SignDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus);
int XDWAPI XDW_GetSignatureInformation(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pInfo, void* pModuleInfo, void* pReserved, void* pModuleStatus);
int XDWAPI XDW_UpdateSignatureStatus(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pModuleOption, void* pReserved, void* pModuleStatus);

int XDWAPI XDW_GetOcrImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* pImageOption, void* reserved);
int XDWAPI XDW_GetOcrImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* pImageOption, void* reserved);
int XDWAPI XDW_SetOcrData(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_OCR_TEXTINFO* pData, void* reserved);

int XDWAPI XDW_GetDocumentAttributeNumberInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByOrderInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved);

int XDWAPI XDW_GetTMInfo(XDW_DOCUMENT_HANDLE handle, void* pTMInfo, int nTMInfoSize, void* reserved);
int XDWAPI XDW_SetTMInfo(XDW_DOCUMENT_HANDLE handle, const void* pTMInfo, int nTMInfoSize, void* reserved);

int XDWAPI XDW_CreateXdwFromImagePdfFile(const char* lpszInputPath, const char* lpszOutputPath, void* reserved);

int XDWAPI XDW_FindTextInPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszText, XDW_FIND_TEXT_OPTION* pOption, XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
int XDWAPI XDW_FindNext(XDW_FOUND_HANDLE* pFoundHandle, void* reserved);
int XDWAPI XDW_GetNumberOfRectsInFoundObject(XDW_FOUND_HANDLE foundHandle, void* reserved);
int XDWAPI XDW_GetRectInFoundObject(XDW_FOUND_HANDLE foundHandle, int nRect, XDW_RECT* pRect, int* pnStatus, void* reserved);
int XDWAPI XDW_CloseFoundHandle(XDW_FOUND_HANDLE foundHandle);

int XDWAPI XDW_GetAnnotationUserAttribute(XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);
int XDWAPI XDW_SetAnnotationUserAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved);

int XDWAPI XDW_StarchAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nStarch, void* reserved);

int XDWAPI XDW_ReleaseProtectionOfDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption);
int XDWAPI XDW_ReleaseProtectionOfDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption);
int XDWAPI XDW_GetProtectionInformation(const char* lpszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);
int XDWAPI XDW_GetProtectionInformationW(const XDW_WCHAR* lpwszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved);

int XDWAPI XDW_GetAnnotationCustomAttributeByName(XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_GetAnnotationCustomAttributeByOrder(XDW_ANNOTATION_HANDLE hAnnotation, int nOrder, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved);
int XDWAPI XDW_GetAnnotationCustomAttributeNumber(XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);
int XDWAPI XDW_SetAnnotationCustomAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved);

int XDWAPI XDW_GetPageTextToMemoryW(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_WCHAR* pValue, int nBufferLength, void* reserved);
int XDWAPI XDW_GetFullTextW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pOutputPath, void* reserved);
int XDWAPI XDW_GetAnnotationAttributeW(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_SetAnnotationAttributeW(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, int nReserved, void* pReserved);
int XDWAPI XDW_GetDocumentAttributeByNameW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByOrderW(XDW_DOCUMENT_HANDLE handle, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_GetDocumentAttributeByOrderInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_SetDocumentAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_GetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_WCHAR* pDocName, int nBufferLength, int* pnTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_SetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pDocName, int nTextType, unsigned int codepage, void* reserved);
int XDWAPI XDW_GetOriginalDataInformationW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFOW* pOriginalDataInfoW, int* pnTextType, unsigned int codepage, void* reserved);

int XDWAPI XDW_AddAnnotationFromAnnFile(XDW_DOCUMENT_HANDLE handle, const char* lpszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
int XDWAPI XDW_AddAnnotationFromAnnFileW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
int XDWAPI XDW_GroupAnnotations(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int* pnAnntationIndexes, int nAnnotationNum, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved);
int XDWAPI XDW_UnGroupAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, void* reserved);

/* error code */
#ifndef XDWAPI_E_DECLARATIONS
#define XDWAPI_E_DECLARATIONS

#define XDW_E_NOT_INSTALLED				((int)0x80040001)
#define XDW_E_INFO_NOT_FOUND			((int)0x80040002)
#define XDW_E_INSUFFICIENT_BUFFER		((int)0x8007007A)
#define XDW_E_FILE_NOT_FOUND			((int)0x80070002)
#define XDW_E_FILE_EXISTS				((int)0x80070050)
#define XDW_E_ACCESSDENIED				((int)0x80070005)
#define XDW_E_BAD_FORMAT				((int)0x8007000B)
#define XDW_E_OUTOFMEMORY				((int)0x8007000E)
#define XDW_E_WRITE_FAULT				((int)0x8007001D)
#define XDW_E_SHARING_VIOLATION			((int)0x80070020)
#define XDW_E_DISK_FULL					((int)0x80070027)
#define XDW_E_INVALIDARG				((int)0x80070057)
#define XDW_E_INVALID_NAME				((int)0x8007007B)
#define XDW_E_INVALID_ACCESS			((int)0x80040003)
#define XDW_E_INVALID_OPERATION			((int)0x80040004)
#define XDW_E_NEWFORMAT					((int)0x800E0004)
#define XDW_E_BAD_NETPATH				((int)0x800E0005)
#define XDW_E_APPLICATION_FAILED		((int)0x80001156)
#define XDW_E_SIGNATURE_MODULE			((int)0x800E0010)
#define XDW_E_PROTECT_MODULE			((int)0x800E0012)
#define XDW_E_UNEXPECTED				((int)0x8000FFFF)
#define XDW_E_CANCELED					((int)0x80040005)
#define XDW_E_ANNOTATION_NOT_ACCEPTED	((int)0x80040006)

#endif //XDWAPI_E_DECLARATIONS

#ifdef __cplusplus
} /* end of extern "C" */
#endif /* __cplusplus */

#endif /* XDW_API_H */