1/*
2 * << Haru Free PDF Library >> -- hpdf_error.h
3 *
4 * URL: http://libharu.org
5 *
6 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
7 * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
8 *
9 * Permission to use, copy, modify, distribute and sell this software
10 * and its documentation for any purpose is hereby granted without fee,
11 * provided that the above copyright notice appear in all copies and
12 * that both that copyright notice and this permission notice appear
13 * in supporting documentation.
14 * It is provided "as is" without express or implied warranty.
15 *
16 */
17
18#ifndef _HPDF_ERROR_H
19#define _HPDF_ERROR_H
20
21#include "hpdf_types.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* error-code */
28#define HPDF_ARRAY_COUNT_ERR 0x1001
29#define HPDF_ARRAY_ITEM_NOT_FOUND 0x1002
30#define HPDF_ARRAY_ITEM_UNEXPECTED_TYPE 0x1003
31#define HPDF_BINARY_LENGTH_ERR 0x1004
32#define HPDF_CANNOT_GET_PALLET 0x1005
33#define HPDF_DICT_COUNT_ERR 0x1007
34#define HPDF_DICT_ITEM_NOT_FOUND 0x1008
35#define HPDF_DICT_ITEM_UNEXPECTED_TYPE 0x1009
36#define HPDF_DICT_STREAM_LENGTH_NOT_FOUND 0x100A
37#define HPDF_DOC_ENCRYPTDICT_NOT_FOUND 0x100B
38#define HPDF_DOC_INVALID_OBJECT 0x100C
39/* 0x100D */
40#define HPDF_DUPLICATE_REGISTRATION 0x100E
41#define HPDF_EXCEED_JWW_CODE_NUM_LIMIT 0x100F
42/* 0x1010 */
43#define HPDF_ENCRYPT_INVALID_PASSWORD 0x1011
44/* 0x1012 */
45#define HPDF_ERR_UNKNOWN_CLASS 0x1013
46#define HPDF_EXCEED_GSTATE_LIMIT 0x1014
47#define HPDF_FAILD_TO_ALLOC_MEM 0x1015
48#define HPDF_FILE_IO_ERROR 0x1016
49#define HPDF_FILE_OPEN_ERROR 0x1017
50/* 0x1018 */
51#define HPDF_FONT_EXISTS 0x1019
52#define HPDF_FONT_INVALID_WIDTHS_TABLE 0x101A
53#define HPDF_INVALID_AFM_HEADER 0x101B
54#define HPDF_INVALID_ANNOTATION 0x101C
55/* 0x101D */
56#define HPDF_INVALID_BIT_PER_COMPONENT 0x101E
57#define HPDF_INVALID_CHAR_MATRICS_DATA 0x101F
58#define HPDF_INVALID_COLOR_SPACE 0x1020
59#define HPDF_INVALID_COMPRESSION_MODE 0x1021
60#define HPDF_INVALID_DATE_TIME 0x1022
61#define HPDF_INVALID_DESTINATION 0x1023
62/* 0x1024 */
63#define HPDF_INVALID_DOCUMENT 0x1025
64#define HPDF_INVALID_DOCUMENT_STATE 0x1026
65#define HPDF_INVALID_ENCODER 0x1027
66#define HPDF_INVALID_ENCODER_TYPE 0x1028
67/* 0x1029 */
68/* 0x102A */
69#define HPDF_INVALID_ENCODING_NAME 0x102B
70#define HPDF_INVALID_ENCRYPT_KEY_LEN 0x102C
71#define HPDF_INVALID_FONTDEF_DATA 0x102D
72#define HPDF_INVALID_FONTDEF_TYPE 0x102E
73#define HPDF_INVALID_FONT_NAME 0x102F
74#define HPDF_INVALID_IMAGE 0x1030
75#define HPDF_INVALID_JPEG_DATA 0x1031
76#define HPDF_INVALID_N_DATA 0x1032
77#define HPDF_INVALID_OBJECT 0x1033
78#define HPDF_INVALID_OBJ_ID 0x1034
79#define HPDF_INVALID_OPERATION 0x1035
80#define HPDF_INVALID_OUTLINE 0x1036
81#define HPDF_INVALID_PAGE 0x1037
82#define HPDF_INVALID_PAGES 0x1038
83#define HPDF_INVALID_PARAMETER 0x1039
84/* 0x103A */
85#define HPDF_INVALID_PNG_IMAGE 0x103B
86#define HPDF_INVALID_STREAM 0x103C
87#define HPDF_MISSING_FILE_NAME_ENTRY 0x103D
88/* 0x103E */
89#define HPDF_INVALID_TTC_FILE 0x103F
90#define HPDF_INVALID_TTC_INDEX 0x1040
91#define HPDF_INVALID_WX_DATA 0x1041
92#define HPDF_ITEM_NOT_FOUND 0x1042
93#define HPDF_LIBPNG_ERROR 0x1043
94#define HPDF_NAME_INVALID_VALUE 0x1044
95#define HPDF_NAME_OUT_OF_RANGE 0x1045
96/* 0x1046 */
97/* 0x1047 */
98#define HPDF_PAGE_INVALID_PARAM_COUNT 0x1048
99#define HPDF_PAGES_MISSING_KIDS_ENTRY 0x1049
100#define HPDF_PAGE_CANNOT_FIND_OBJECT 0x104A
101#define HPDF_PAGE_CANNOT_GET_ROOT_PAGES 0x104B
102#define HPDF_PAGE_CANNOT_RESTORE_GSTATE 0x104C
103#define HPDF_PAGE_CANNOT_SET_PARENT 0x104D
104#define HPDF_PAGE_FONT_NOT_FOUND 0x104E
105#define HPDF_PAGE_INVALID_FONT 0x104F
106#define HPDF_PAGE_INVALID_FONT_SIZE 0x1050
107#define HPDF_PAGE_INVALID_GMODE 0x1051
108#define HPDF_PAGE_INVALID_INDEX 0x1052
109#define HPDF_PAGE_INVALID_ROTATE_VALUE 0x1053
110#define HPDF_PAGE_INVALID_SIZE 0x1054
111#define HPDF_PAGE_INVALID_XOBJECT 0x1055
112#define HPDF_PAGE_OUT_OF_RANGE 0x1056
113#define HPDF_REAL_OUT_OF_RANGE 0x1057
114#define HPDF_STREAM_EOF 0x1058
115#define HPDF_STREAM_READLN_CONTINUE 0x1059
116/* 0x105A */
117#define HPDF_STRING_OUT_OF_RANGE 0x105B
118#define HPDF_THIS_FUNC_WAS_SKIPPED 0x105C
119#define HPDF_TTF_CANNOT_EMBEDDING_FONT 0x105D
120#define HPDF_TTF_INVALID_CMAP 0x105E
121#define HPDF_TTF_INVALID_FOMAT 0x105F
122#define HPDF_TTF_MISSING_TABLE 0x1060
123#define HPDF_UNSUPPORTED_FONT_TYPE 0x1061
124#define HPDF_UNSUPPORTED_FUNC 0x1062
125#define HPDF_UNSUPPORTED_JPEG_FORMAT 0x1063
126#define HPDF_UNSUPPORTED_TYPE1_FONT 0x1064
127#define HPDF_XREF_COUNT_ERR 0x1065
128#define HPDF_ZLIB_ERROR 0x1066
129#define HPDF_INVALID_PAGE_INDEX 0x1067
130#define HPDF_INVALID_URI 0x1068
131#define HPDF_PAGE_LAYOUT_OUT_OF_RANGE 0x1069
132#define HPDF_PAGE_MODE_OUT_OF_RANGE 0x1070
133#define HPDF_PAGE_NUM_STYLE_OUT_OF_RANGE 0x1071
134#define HPDF_ANNOT_INVALID_ICON 0x1072
135#define HPDF_ANNOT_INVALID_BORDER_STYLE 0x1073
136#define HPDF_PAGE_INVALID_DIRECTION 0x1074
137#define HPDF_INVALID_FONT 0x1075
138#define HPDF_PAGE_INSUFFICIENT_SPACE 0x1076
139#define HPDF_PAGE_INVALID_DISPLAY_TIME 0x1077
140#define HPDF_PAGE_INVALID_TRANSITION_TIME 0x1078
141#define HPDF_INVALID_PAGE_SLIDESHOW_TYPE 0x1079
142#define HPDF_EXT_GSTATE_OUT_OF_RANGE 0x1080
143#define HPDF_INVALID_EXT_GSTATE 0x1081
144#define HPDF_EXT_GSTATE_READ_ONLY 0x1082
145#define HPDF_INVALID_U3D_DATA 0x1083
146#define HPDF_NAME_CANNOT_GET_NAMES 0x1084
147#define HPDF_INVALID_ICC_COMPONENT_NUM 0x1085
148
149/*---------------------------------------------------------------------------*/
150
151/*---------------------------------------------------------------------------*/
152/*----- HPDF_Error ----------------------------------------------------------*/
153
154typedef struct _HPDF_Error_Rec *HPDF_Error;
155
156typedef struct _HPDF_Error_Rec {
157 HPDF_STATUS error_no;
158 HPDF_STATUS detail_no;
159 HPDF_Error_Handler error_fn;
160 void *user_data;
161} HPDF_Error_Rec;
162
163
164/* HPDF_Error_init
165 *
166 * if error_fn is NULL, the default-handlers are set as error-handler.
167 * user_data is used to identify the object which threw an error.
168 *
169 */
170void
171HPDF_Error_Init (HPDF_Error error,
172 void *user_data);
173
174
175void
176HPDF_Error_Reset (HPDF_Error error);
177
178
179HPDF_STATUS
180HPDF_Error_GetCode (HPDF_Error error);
181
182
183HPDF_STATUS
184HPDF_Error_GetDetailCode (HPDF_Error error);
185
186
187HPDF_STATUS
188HPDF_SetError (HPDF_Error error,
189 HPDF_STATUS error_no,
190 HPDF_STATUS detail_no);
191
192
193HPDF_STATUS
194HPDF_RaiseError (HPDF_Error error,
195 HPDF_STATUS error_no,
196 HPDF_STATUS detail_no);
197
198#ifdef __cplusplus
199}
200#endif /* __cplusplus */
201
202#endif /* _HPDF_ERROR_H */
203
204