update for HEAD-2003021201
[reactos.git] / include / base.h
1 /* 
2    Base.h
3
4    Base definitions
5
6    Copyright (C) 1996, 1997 Free Software Foundation, Inc.
7
8    Author: Scott Christley <scottc@net-community.com>
9
10    This file is part of the Windows32 API Library.
11
12    This library is free software; you can redistribute it and/or
13    modify it under the terms of the GNU Library General Public
14    License as published by the Free Software Foundation; either
15    version 2 of the License, or (at your option) any later version.
16    
17    This library is distributed in the hope that it will be useful,
18    but WITHOUT ANY WARRANTY; without even the implied warranty of
19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20    Library General Public License for more details.
21
22    If you are interested in a warranty or support for this source code,
23    contact Scott Christley <scottc@net-community.com> for more information.
24    
25    You should have received a copy of the GNU Library General Public
26    License along with this library; see the file COPYING.LIB.
27    If not, write to the Free Software Foundation, 
28    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 */ 
30
31 #ifndef _GNU_H_WINDOWS32_BASE
32 #define _GNU_H_WINDOWS32_BASE
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif /* __cplusplus */
37
38 #ifndef NULL
39 #ifdef __cplusplus
40 #define NULL  (0)
41 #else
42 #define NULL  ((void *)0)
43 #endif
44 #endif /* !NULL */
45
46 #include <ntos/types.h>
47
48 /* Check VOID before defining CHAR, SHORT, and LONG */
49 #ifndef VOID
50 #define VOID void
51 typedef char CHAR;
52 typedef short SHORT;
53 typedef long LONG;
54 #endif
55
56
57 #define CONST const
58
59 #define WINAPI      STDCALL
60 #define APIENTRY    STDCALL
61 #define WINGDIAPI
62
63    
64
65 #ifdef UNICODE
66 typedef wchar_t *LPTCH;
67 typedef wchar_t *LPTSTR;
68 #else
69 typedef char *LPTCH;
70 typedef char *LPTSTR;
71 #endif /* UNICODE */
72
73 #ifndef RC_INVOKED
74
75 /* typedef ACMDRIVERENUMCB;
76 typedef ACMDRIVERPROC;
77 typedef ACMFILERCHOOSEHOOKPROC;
78 typedef ACMFILTERENUMCB;
79 typedef ACMFILTERTAGENUMCB;
80 typedef ACMFORMATCHOOSEHOOKPROC;
81 typedef ACMFORMATENUMCB;
82 typedef ACMFORMATTAGENUMCB;
83 typedef APPLET_PROC;
84 */
85 /* Changed from BOOL to WINBOOL to avoid Objective-C conflict */
86 typedef unsigned long CALTYPE;
87 typedef unsigned long CALID;
88 typedef unsigned long COLORREF;
89
90 /*
91 typedef CTRYID;
92 typedef DLGPROC;
93 */
94 typedef double DWORDLONG, *PDWORDLONG;
95 /*
96 typedef EDITWORDBREAKPROC;
97 typedef ENHMFENUMPROC;
98 typedef ENUMRESLANGPROC;
99 typedef ENUMRESNAMEPROC;
100 typedef ENUMRESTYPEPROC;
101 */
102 typedef float FLOAT;
103 /* typedef GLOBALHANDLE; */
104 typedef HANDLE HACCEL;
105 typedef HANDLE HBITMAP;
106 typedef HANDLE HBRUSH;
107 typedef HANDLE HCOLORSPACE;
108 typedef HANDLE HCONV;
109 typedef HANDLE HCONVLIST;
110 typedef HANDLE HCURSOR;
111 typedef HANDLE HDBC;
112 typedef HANDLE HDC;
113 typedef HANDLE HDDEDATA;
114 typedef HANDLE HDESK;
115 typedef HANDLE HDROP;
116 typedef HANDLE HDWP;
117 typedef HANDLE HENHMETAFILE;
118 typedef HANDLE HENV;
119 typedef int HFILE;
120 typedef HANDLE HFONT;
121 typedef HANDLE HGDIOBJ;
122 typedef HANDLE HGLOBAL;
123 typedef HANDLE HGLRC;
124 typedef HANDLE HHOOK;
125 typedef HANDLE HICON;
126 typedef HANDLE HIMAGELIST;
127 typedef HANDLE HINSTANCE;
128 typedef HANDLE HKEY, *PHKEY;
129 typedef HANDLE HKL;
130 typedef HANDLE HLOCAL;
131 typedef HANDLE HMENU;
132 typedef HANDLE HMETAFILE;
133 typedef HANDLE HMODULE;
134 typedef HANDLE HPALETTE;
135 typedef HANDLE HPEN;
136 typedef HANDLE HRASCONN;
137 typedef long HRESULT;
138 typedef HANDLE HRGN;
139 typedef HANDLE HRSRC;
140 typedef HANDLE HSTMT;
141 typedef HANDLE HSZ;
142 typedef HANDLE HWINSTA;
143 typedef HANDLE HWND;
144 typedef unsigned short LANGID;
145 //typedef DWORD LCID;
146 typedef DWORD LCTYPE;
147 /* typedef LOCALHANDLE */
148 typedef unsigned short *LP;
149 typedef long LPARAM;
150 typedef int WINBOOL;
151 typedef WINBOOL *LPBOOL;
152 typedef CONST CHAR *LPCCH;
153 typedef CHAR *LPCH;
154 typedef COLORREF *LPCOLORREF;
155    
156 #ifdef UNICODE
157 typedef const wchar_t *LPCTSTR;
158 #else
159 typedef const char *LPCTSTR;
160 #endif /* UNICODE */
161
162 typedef const wchar_t *LPCWCH;
163 typedef DWORD *LPDWORD;
164 /* typedef LPFRHOOKPROC; */
165 typedef HANDLE *LPHANDLE;
166 /* typedef LPHANDLER_FUNCTION; */
167 typedef PINT LPINT;
168 typedef PLONG LPLONG;
169
170 typedef long LRESULT;
171 typedef wchar_t *LPWCH;
172 typedef unsigned short *LPWORD;
173 /* typedef NPSTR; */
174 typedef wchar_t *NWPSTR;
175 typedef WINBOOL *PWINBOOL;
176 typedef const CHAR *PCCH;
177 typedef const char *PCSTR;
178 typedef const wchar_t *PCWCH;
179 /* typedef PHKEY; */
180 /* typedef LCID *PLCID; */
181 typedef short *PSHORT;
182 /* typedef PSID; */
183 typedef char *PSTR;
184 typedef char *PSZ;
185
186 #ifdef UNICODE
187 typedef wchar_t *PTBYTE;
188 typedef wchar_t *PTCH;
189 typedef wchar_t *PTCHAR;
190 typedef wchar_t *PTSTR;
191 #else
192 typedef unsigned char *PTBYTE;
193 typedef char *PTCH;
194 typedef char *PTCHAR;
195 typedef char *PTSTR;
196 #endif /* UNICODE */
197
198 /*
199  typedef PWSTR;
200  */
201 typedef DWORD REGSAM;
202
203
204 typedef short RETCODE;
205
206 typedef HANDLE SC_HANDLE;
207 typedef LPVOID  SC_LOCK;
208 typedef SC_HANDLE *LPSC_HANDLE;
209 typedef DWORD SERVICE_STATUS_HANDLE;
210 /* typedef SPHANDLE; */
211
212 #ifdef UNICODE
213 typedef wchar_t TBYTE;
214 #ifndef _TCHAR_DEFINED
215 #define _TCHAR_DEFINED
216 typedef wchar_t TCHAR;
217 #endif /* _TCHAR_DEFINED */
218 typedef wchar_t BCHAR;
219 #else
220 typedef unsigned char TBYTE;
221 #ifndef _TCHAR_DEFINED
222 #define _TCHAR_DEFINED
223 typedef char TCHAR;
224 #endif /* _TCHAR_DEFINED */
225 typedef BYTE BCHAR;
226 #endif /* UNICODE */
227
228 typedef unsigned int WPARAM;
229 /* typedef YIELDPROC; */
230
231 /* Only use __stdcall under WIN32 compiler */
232
233 #define _export
234
235 /*
236   Enumerations
237 */
238  
239  
240 #define RASCS_DONE 0x2000
241 #define RASCS_PAUSED 0x1000
242 typedef enum _RASCONNSTATE { 
243     RASCS_OpenPort = 0, 
244     RASCS_PortOpened, 
245     RASCS_ConnectDevice, 
246     RASCS_DeviceConnected, 
247     RASCS_AllDevicesConnected, 
248     RASCS_Authenticate, 
249     RASCS_AuthNotify, 
250     RASCS_AuthRetry, 
251     RASCS_AuthCallback, 
252     RASCS_AuthChangePassword, 
253     RASCS_AuthProject, 
254     RASCS_AuthLinkSpeed, 
255     RASCS_AuthAck, 
256     RASCS_ReAuthenticate, 
257     RASCS_Authenticated, 
258     RASCS_PrepareForCallback, 
259     RASCS_WaitForModemReset, 
260     RASCS_WaitForCallback,
261     RASCS_Projected, 
262  
263     RASCS_StartAuthentication,  
264     RASCS_CallbackComplete,     
265     RASCS_LogonNetwork,         
266  
267     RASCS_Interactive = RASCS_PAUSED, 
268     RASCS_RetryAuthentication, 
269     RASCS_CallbackSetByCaller, 
270     RASCS_PasswordExpired, 
271  
272     RASCS_Connected = RASCS_DONE, 
273     RASCS_Disconnected 
274 } RASCONNSTATE ; 
275  
276 typedef enum _RASPROJECTION {  
277     RASP_Amb = 0x10000, 
278     RASP_PppNbf = 0x803F, 
279     RASP_PppIpx = 0x802B, 
280     RASP_PppIp = 0x8021 
281 } RASPROJECTION ; 
282   
283 typedef enum _SID_NAME_USE { 
284     SidTypeUser = 1, 
285     SidTypeGroup, 
286     SidTypeDomain, 
287     SidTypeAlias, 
288     SidTypeWellKnownGroup, 
289     SidTypeDeletedAccount, 
290     SidTypeInvalid, 
291     SidTypeUnknown 
292 } SID_NAME_USE, *PSID_NAME_USE; 
293  
294 #endif /* ! defined (RC_INVOKED) */
295
296 /*
297   Macros
298 */
299 #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn)  (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id),  (LPARAM)(NMHDR FAR*)(pnmhdr)) 
300
301 #define GetBValue(rgb)   ((BYTE) ((rgb) >> 16)) 
302 #define GetGValue(rgb)   ((BYTE) (((WORD) (rgb)) >> 8)) 
303 #define GetRValue(rgb)   ((BYTE) (rgb)) 
304 #define RGB(r, g ,b)  ((DWORD) (((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD) (BYTE) (b)) << 16))) 
305
306 #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam)) 
307
308 #define HIBYTE(w)   ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 
309 #define HIWORD(l)   ((WORD) (((DWORD) (l) >> 16) & 0xFFFF)) 
310 #define SHIWORD(l)   ((INT16) (((DWORD) (l) >> 16) & 0xFFFF)) 
311 #define LOBYTE(w)   ((BYTE) (w)) 
312 #define LOWORD(l)   ((WORD) (l)) 
313 #define SLOWORD(l)   ((INT16) (l)) 
314 #define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16)) 
315 #define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8)) 
316
317 /* original Cygnus headers also had the following defined: */
318 #define SEXT_HIWORD(l)     ((((int)l) >> 16))
319 #define ZEXT_HIWORD(l)     ((((unsigned int)l) >> 16))
320 #define SEXT_LOWORD(l)     ((int)(short)l)
321
322 #define INDEXTOOVERLAYMASK(i) ((i) << 8) 
323 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) 
324
325 #define MAKEINTATOM(i)   (LPTSTR) ((DWORD) ((WORD) (i))) 
326 #define MAKEINTRESOURCE(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
327
328 #define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p)) 
329 #define PRIMARYLANGID(lgid)    ((WORD  )(lgid) & 0x3ff) 
330 #define SUBLANGID(lgid)        ((WORD  )(lgid) >> 10) 
331
332 #define LANGIDFROMLCID(lcid)   ((WORD) (lcid)) 
333 #define SORTIDFROMLCID(lcid) ((WORD  )((((DWORD)(lcid)) & 0x000FFFFF) >> 16)) 
334 #define MAKELCID(lgid, srtid)  ((DWORD)((((DWORD)((WORD)(srtid))) << 16) |  ((DWORD)((WORD)(lgid))))) 
335 #define MAKELPARAM(l, h)   ((LPARAM) MAKELONG(l, h)) 
336 #define MAKELRESULT(l, h)   ((LRESULT) MAKELONG(l, h)) 
337 #define MAKEPOINTS(l)   (*((POINTS FAR *) & (l))) 
338 #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore)) 
339 #define MAKEWPARAM(l, h)   ((WPARAM) MAKELONG(l, h)) 
340
341
342 #define PALETTEINDEX(i) ((COLORREF) (0x01000000 | (DWORD) (WORD) (i))) 
343 #define PALETTERGB(r, g, b)  (0x02000000 | RGB(r, g, b)) 
344 #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); (pt).y = (SHORT) HIWORD(pts);} 
345 #define POINTTOPOINTS(pt) (MAKELONG((short) ((pt).x), (short) ((pt).y))) 
346
347 #define INDEXTOOVERLAYMASK(i) ((i) << 8)  
348 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)  
349
350 #ifdef UNICODE
351 #ifndef _T
352 #define _T(quote)   L##quote 
353 #endif
354 #ifndef _TEXT
355 #define TEXT(quote) L##quote 
356 #endif
357 #else
358 #ifndef _T
359 #define _T(quote)   quote 
360 #endif
361 #ifndef _TEXT
362 #define TEXT(quote) quote
363 #endif
364 #endif
365
366
367 #ifndef RC_INVOKED
368
369 /*
370    Definitions for callback procedures
371 */
372 typedef int CALLBACK (*BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
373 typedef UINT CALLBACK (*LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
374 typedef UINT CALLBACK (*LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
375 typedef DWORD CALLBACK (*EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
376 typedef UINT CALLBACK (*LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
377 typedef UINT CALLBACK (*LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
378 typedef UINT CALLBACK (*LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
379 typedef UINT CALLBACK (*LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
380 typedef WINBOOL CALLBACK (*DLGPROC) (HWND, UINT, WPARAM, LPARAM);
381 typedef int CALLBACK (*PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
382 typedef VOID CALLBACK (*LPSERVICE_MAIN_FUNCTION) (DWORD, LPTSTR*);
383 typedef int CALLBACK (*PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
384 typedef LRESULT CALLBACK (*WNDPROC) (HWND, UINT, WPARAM, LPARAM);
385 typedef int CALLBACK (*FARPROC)(void);
386 typedef FARPROC PROC;
387 typedef WINBOOL CALLBACK (*ENUMRESTYPEPROC) (HANDLE, LPTSTR, LONG);
388 typedef WINBOOL CALLBACK (*ENUMRESNAMEPROC) (HANDLE, LPCTSTR, LPTSTR, LONG);
389 typedef WINBOOL CALLBACK (*ENUMRESLANGPROC) (HANDLE, LPCTSTR, LPCTSTR, WORD, LONG);
390 typedef FARPROC DESKTOPENUMPROC;
391 typedef WINBOOL CALLBACK (*ENUMWINDOWSPROC) (HWND, LPARAM);
392 typedef WINBOOL CALLBACK (*ENUMWINDOWSTATIONPROC) (LPTSTR, LPARAM);
393 typedef VOID CALLBACK (*SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
394 typedef VOID CALLBACK (*TIMERPROC) (HWND, UINT, UINT, DWORD);
395 typedef FARPROC GRAYSTRINGPROC;
396 typedef WINBOOL CALLBACK (*DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
397 typedef WINBOOL CALLBACK (*PROPENUMPROCEX) (HWND, LPCTSTR, HANDLE, DWORD);
398 typedef WINBOOL CALLBACK (*PROPENUMPROC) (HWND, LPCTSTR, HANDLE);
399 typedef LRESULT CALLBACK (*HOOKPROC) (int, WPARAM, LPARAM);
400 typedef VOID CALLBACK (*ENUMOBJECTSPROC) (LPVOID, LPARAM);
401 typedef VOID CALLBACK (*LINEDDAPROC) (int, int, LPARAM);
402 typedef WINBOOL CALLBACK (*ABORTPROC) (HDC, int);
403 typedef UINT CALLBACK (*LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
404 typedef UINT CALLBACK (*LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
405 typedef int CALLBACK (*ICMENUMPROC) (LPTSTR, LPARAM);
406 typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
407 typedef int CALLBACK (*PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
408 typedef WINBOOL CALLBACK (*LOCALE_ENUMPROC) (LPTSTR);
409 typedef WINBOOL CALLBACK (*CODEPAGE_ENUMPROC) (LPTSTR);
410 typedef WINBOOL CALLBACK (*DATEFMT_ENUMPROC) (LPTSTR);
411 typedef WINBOOL CALLBACK (*TIMEFMT_ENUMPROC) (LPTSTR);
412 typedef WINBOOL CALLBACK (*CALINFO_ENUMPROC) (LPTSTR);
413 typedef WINBOOL CALLBACK (*PHANDLER_ROUTINE) (DWORD);
414 typedef VOID CALLBACK (*LPHANDLER_FUNCTION) (DWORD);
415 typedef UINT CALLBACK (*PFNGETPROFILEPATH) (LPCTSTR, LPSTR, UINT);
416 typedef UINT CALLBACK (*PFNRECONCILEPROFILE) (LPCTSTR, LPCTSTR, DWORD);
417 typedef WINBOOL CALLBACK (*PFNPROCESSPOLICIES) (HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
418
419 #define SECURITY_NULL_SID_AUTHORITY     {0,0,0,0,0,0}
420 #define SECURITY_WORLD_SID_AUTHORITY    {0,0,0,0,0,1}
421 #define SECURITY_LOCAL_SID_AUTHORITY    {0,0,0,0,0,2}
422 #define SECURITY_CREATOR_SID_AUTHORITY  {0,0,0,0,0,3}
423 #define SECURITY_NON_UNIQUE_AUTHORITY   {0,0,0,0,0,4}
424 #define SECURITY_NT_AUTHORITY           {0,0,0,0,0,5}
425
426 #define SE_CREATE_TOKEN_NAME              TEXT("SeCreateTokenPrivilege")
427 #define SE_ASSIGNPRIMARYTOKEN_NAME        TEXT("SeAssignPrimaryTokenPrivilege")
428 #define SE_LOCK_MEMORY_NAME               TEXT("SeLockMemoryPrivilege")
429 #define SE_INCREASE_QUOTA_NAME            TEXT("SeIncreaseQuotaPrivilege")
430 #define SE_UNSOLICITED_INPUT_NAME         TEXT("SeUnsolicitedInputPrivilege")
431 #define SE_MACHINE_ACCOUNT_NAME           TEXT("SeMachineAccountPrivilege")
432 #define SE_TCB_NAME                       TEXT("SeTcbPrivilege")
433 #define SE_SECURITY_NAME                  TEXT("SeSecurityPrivilege")
434 #define SE_TAKE_OWNERSHIP_NAME            TEXT("SeTakeOwnershipPrivilege")
435 #define SE_LOAD_DRIVER_NAME               TEXT("SeLoadDriverPrivilege")
436 #define SE_SYSTEM_PROFILE_NAME            TEXT("SeSystemProfilePrivilege")
437 #define SE_SYSTEMTIME_NAME                TEXT("SeSystemtimePrivilege")
438 #define SE_PROF_SINGLE_PROCESS_NAME       TEXT("SeProfileSingleProcessPrivilege")
439 #define SE_INC_BASE_PRIORITY_NAME         TEXT("SeIncreaseBasePriorityPrivilege")
440 #define SE_CREATE_PAGEFILE_NAME           TEXT("SeCreatePagefilePrivilege")
441 #define SE_CREATE_PERMANENT_NAME          TEXT("SeCreatePermanentPrivilege")
442 #define SE_BACKUP_NAME                    TEXT("SeBackupPrivilege")
443 #define SE_RESTORE_NAME                   TEXT("SeRestorePrivilege")
444 #define SE_SHUTDOWN_NAME                  TEXT("SeShutdownPrivilege")
445 #define SE_DEBUG_NAME                     TEXT("SeDebugPrivilege")
446 #define SE_AUDIT_NAME                     TEXT("SeAuditPrivilege")
447 #define SE_SYSTEM_ENVIRONMENT_NAME        TEXT("SeSystemEnvironmentPrivilege")
448 #define SE_CHANGE_NOTIFY_NAME             TEXT("SeChangeNotifyPrivilege")
449 #define SE_REMOTE_SHUTDOWN_NAME           TEXT("SeRemoteShutdownPrivilege")
450
451 #define SERVICES_ACTIVE_DATABASEW      L"ServicesActive"
452 #define SERVICES_FAILED_DATABASEW      L"ServicesFailed"
453 #define SERVICES_ACTIVE_DATABASEA      "ServicesActive"
454 #define SERVICES_FAILED_DATABASEA      "ServicesFailed"
455 #define SC_GROUP_IDENTIFIERW           L'+'
456 #define SC_GROUP_IDENTIFIERA           '+'
457
458 #ifdef UNICODE
459 #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEW
460 #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEW
461 #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERW
462 #else 
463 #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEA
464 #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEA
465 #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERA
466 #endif /* UNICODE */
467
468 /* ---------------------------------- */
469 /* From ddeml.h in old Cygnus headers */
470
471 typedef void (*CALLB) (void);
472 typedef CALLB PFNCALLBACK;
473
474
475 /* End of stuff from ddeml.h in old Cygnus headers */
476 /* ----------------------------------------------- */
477
478 typedef FARPROC WNDENUMPROC;
479 typedef FARPROC MFENUMPROC;
480 typedef FARPROC ENHMFENUMPROC;
481 typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
482 typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
483 #define DECLARE_HANDLE(s) typedef HANDLE s
484
485 #endif /* ! defined (RC_INVOKED) */
486
487 #ifdef __cplusplus
488 }
489 #endif /* __cplusplus */
490
491 #endif /* _GNU_H_WINDOWS32_BASE */