4 * Copyright 1997 Andrew Taylor
13 #define ErrorString(manifest) { manifest, # manifest }
20 ErrorString(ERR_GALLOC
),
21 ErrorString(ERR_GREALLOC
),
22 ErrorString(ERR_GLOCK
),
23 ErrorString(ERR_LALLOC
),
24 ErrorString(ERR_LREALLOC
),
25 ErrorString(ERR_LLOCK
),
26 ErrorString(ERR_ALLOCRES
),
27 ErrorString(ERR_LOCKRES
),
28 ErrorString(ERR_LOADMODULE
),
29 ErrorString(ERR_CREATEDLG
),
30 ErrorString(ERR_CREATEDLG2
),
31 ErrorString(ERR_REGISTERCLASS
),
32 ErrorString(ERR_DCBUSY
),
33 ErrorString(ERR_CREATEWND
),
34 ErrorString(ERR_STRUCEXTRA
),
35 ErrorString(ERR_LOADSTR
),
36 ErrorString(ERR_LOADMENU
),
37 ErrorString(ERR_NESTEDBEGINPAINT
),
38 ErrorString(ERR_BADINDEX
),
39 ErrorString(ERR_CREATEMENU
),
40 ErrorString(ERR_CREATEDC
),
41 ErrorString(ERR_CREATEMETA
),
42 ErrorString(ERR_DELOBJSELECTED
),
43 ErrorString(ERR_SELBITMAP
)
49 } ParamErrorStrings
[] = {
51 ErrorString(ERR_BAD_VALUE
),
52 ErrorString(ERR_BAD_FLAGS
),
53 ErrorString(ERR_BAD_INDEX
),
54 ErrorString(ERR_BAD_DVALUE
),
55 ErrorString(ERR_BAD_DFLAGS
),
56 ErrorString(ERR_BAD_DINDEX
),
57 ErrorString(ERR_BAD_PTR
),
58 ErrorString(ERR_BAD_FUNC_PTR
),
59 ErrorString(ERR_BAD_SELECTOR
),
60 ErrorString(ERR_BAD_STRING_PTR
),
61 ErrorString(ERR_BAD_HANDLE
),
62 ErrorString(ERR_BAD_HINSTANCE
),
63 ErrorString(ERR_BAD_HMODULE
),
64 ErrorString(ERR_BAD_GLOBAL_HANDLE
),
65 ErrorString(ERR_BAD_LOCAL_HANDLE
),
66 ErrorString(ERR_BAD_ATOM
),
67 ErrorString(ERR_BAD_HFILE
),
68 ErrorString(ERR_BAD_HWND
),
69 ErrorString(ERR_BAD_HMENU
),
70 ErrorString(ERR_BAD_HCURSOR
),
71 ErrorString(ERR_BAD_HICON
),
72 ErrorString(ERR_BAD_HDWP
),
73 ErrorString(ERR_BAD_CID
),
74 ErrorString(ERR_BAD_HDRVR
),
75 ErrorString(ERR_BAD_COORDS
),
76 ErrorString(ERR_BAD_GDI_OBJECT
),
77 ErrorString(ERR_BAD_HDC
),
78 ErrorString(ERR_BAD_HPEN
),
79 ErrorString(ERR_BAD_HFONT
),
80 ErrorString(ERR_BAD_HBRUSH
),
81 ErrorString(ERR_BAD_HBITMAP
),
82 ErrorString(ERR_BAD_HRGN
),
83 ErrorString(ERR_BAD_HPALETTE
),
84 ErrorString(ERR_BAD_HMETAFILE
)
88 #define ErrorStringCount (sizeof(ErrorStrings) / sizeof(ErrorStrings[0]))
89 #define ParamErrorStringCount (sizeof(ParamErrorStrings) / sizeof(ParamErrorStrings[0]))
91 /***********************************************************************
92 * GetErrorString (internal)
94 static const char *GetErrorString(UINT16 uErr
)
96 static char buffer
[80];
99 for (i
= 0; i
< ErrorStringCount
; i
++) {
100 if (uErr
== ErrorStrings
[i
].constant
)
101 return ErrorStrings
[i
].name
;
104 sprintf(buffer
, "%x", uErr
);
109 /***********************************************************************
110 * GetParamErrorString (internal)
112 static const char *GetParamErrorString(UINT16 uErr
) {
113 static char buffer
[80];
115 if (uErr
& ERR_WARNING
) {
116 strcpy(buffer
, "ERR_WARNING | ");
117 uErr
&= ~ERR_WARNING
;
124 for (i
= 0; i
< ParamErrorStringCount
; i
++) {
125 if (uErr
== ParamErrorStrings
[i
].constant
) {
126 strcat(buffer
, ParamErrorStrings
[i
].name
);
132 sprintf(buffer
+ strlen(buffer
), "%x", uErr
);
137 /***********************************************************************
138 * LogError (KERNEL.324)
140 VOID WINAPI
LogError(UINT16 uErr
, LPVOID lpvInfo
)
142 MSG("(%s, %p)\n", GetErrorString(uErr
), lpvInfo
);
146 /***********************************************************************
147 * LogParamError (KERNEL.325)
149 void WINAPI
LogParamError(UINT16 uErr
, FARPROC16 lpfn
, LPVOID lpvParam
)
151 /* FIXME: is it possible to get the module name/function
152 * from the lpfn param?
154 MSG("(%s, %p, %p)\n", GetParamErrorString(uErr
), lpfn
, lpvParam
);