This commit was generated by cvs2svn to compensate for changes in r52,
[reactos.git] / reactos / 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 /*
47 * Definitions needed for the ddk includes (we miss out win32 only stuff to
48 * cut down on the compile time)
49 */
50 typedef unsigned char UCHAR;
51 typedef unsigned int UINT;
52 typedef unsigned long ULONG;
53 typedef unsigned short USHORT;
54 typedef unsigned short WCHAR;
55 typedef unsigned short WORD;
56 typedef int WINBOOL;
57 typedef unsigned char BOOLEAN;
58 typedef unsigned int DWORD; /* was unsigned long */
59 typedef unsigned short *LPWSTR;
60 typedef unsigned short *PWSTR;
61 typedef unsigned char *PUCHAR;
62 typedef unsigned int *PUINT;
63 typedef unsigned long *PULONG;
64 typedef unsigned short *PUSHORT;
65 typedef void *PVOID;
66 typedef unsigned char BYTE;
67 typedef void *LPVOID;
68
69 /* Check VOID before defining CHAR, SHORT, and LONG */
70 #ifndef VOID
71 #define VOID void
72 typedef char CHAR;
73 typedef short SHORT;
74 typedef long LONG;
75 #endif
76
77 typedef CHAR *PCHAR;
78 typedef CHAR *PCH;
79 typedef void *HANDLE;
80 typedef char CCHAR;
81
82 typedef enum _SECURITY_IMPERSONATION_LEVEL {
83 SecurityAnonymous,
84 SecurityIdentification,
85 SecurityImpersonation,
86 SecurityDelegation
87 } SECURITY_IMPERSONATION_LEVEL;
88
89 typedef enum tagTOKEN_TYPE {
90 TokenPrimary = 1,
91 TokenImpersonation
92 } TOKEN_TYPE;
93
94 #define FALSE 0
95 #define TRUE 1
96
97 typedef const unsigned short *PCWSTR;
98
99 typedef char* PCSZ;
100
101 #define CONST const
102
103 #ifdef i386
104 #define STDCALL __attribute__ ((stdcall))
105 #define CDECL __attribute((cdecl))
106 #define CALLBACK WINAPI
107 #define PASCAL WINAPI
108 #else
109 #define STDCALL
110 #define CDECL
111 #define CALLBACK
112 #define PASCAL
113 #endif
114 #define WINAPI STDCALL
115 #define APIENTRY STDCALL
116 #define WINGDIAPI
117
118 typedef BYTE *PBOOLEAN;
119 typedef HANDLE *PHANDLE;
120
121 typedef DWORD CALLBACK (*PTHREAD_START_ROUTINE) (LPVOID);
122 typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
123
124 typedef unsigned short ATOM;
125
126 #ifdef UNICODE
127 typedef unsigned short *LPTCH;
128 typedef unsigned short *LPTSTR;
129 #else
130 typedef char *LPTCH;
131 typedef char *LPTSTR;
132 #endif /* UNICODE */
133
134 typedef long *PLONG;
135 typedef unsigned short *PWCHAR;
136 typedef char *LPSTR;
137 typedef double LONGLONG, *PLONGLONG;
138
139 typedef enum _MEDIA_TYPE {
140 Unknown,
141 F5_1Pt2_512,
142 F3_1Pt44_512,
143 F3_2Pt88_512,
144 F3_20Pt8_512,
145 F3_720_512,
146 F5_360_512,
147 F5_320_512,
148 F5_320_1024,
149 F5_180_512,
150 F5_160_512,
151 RemovableMedia,
152 FixedMedia
153 } MEDIA_TYPE;
154
155 #ifndef max
156 #define max(a, b) (((a) > (b)) ? (a) : (b))
157 #endif
158
159 #ifndef min
160 #define min(a, b) (((a) < (b)) ? (a) : (b))
161 #endif
162
163
164 #ifndef WIN32_LEAN_AND_MEAN
165
166
167 #ifndef RC_INVOKED
168
169 /* typedef ACMDRIVERENUMCB;
170 typedef ACMDRIVERPROC;
171 typedef ACMFILERCHOOSEHOOKPROC;
172 typedef ACMFILTERENUMCB;
173 typedef ACMFILTERTAGENUMCB;
174 typedef ACMFORMATCHOOSEHOOKPROC;
175 typedef ACMFORMATENUMCB;
176 typedef ACMFORMATTAGENUMCB;
177 typedef APPLET_PROC;
178 */
179 /* Changed from BOOL to WINBOOL to avoid Objective-C conflict */
180 typedef unsigned long CALTYPE;
181 typedef unsigned long CALID;
182 typedef unsigned long COLORREF;
183
184 /*
185 typedef CTRYID;
186 typedef DLGPROC;
187 */
188 typedef double DWORDLONG, *PDWORDLONG;
189 /*
190 typedef EDITWORDBREAKPROC;
191 typedef ENHMFENUMPROC;
192 typedef ENUMRESLANGPROC;
193 typedef ENUMRESNAMEPROC;
194 typedef ENUMRESTYPEPROC;
195 */
196 typedef float FLOAT;
197 /* typedef GLOBALHANDLE; */
198 typedef HANDLE HACCEL;
199 typedef HANDLE HBITMAP;
200 typedef HANDLE HBRUSH;
201 typedef HANDLE HCOLORSPACE;
202 typedef HANDLE HCONV;
203 typedef HANDLE HCONVLIST;
204 typedef HANDLE HCURSOR;
205 typedef HANDLE HDBC;
206 typedef HANDLE HDC;
207 typedef HANDLE HDDEDATA;
208 typedef HANDLE HDESK;
209 typedef HANDLE HDROP;
210 typedef HANDLE HDWP;
211 typedef HANDLE HENHMETAFILE;
212 typedef HANDLE HENV;
213 typedef int HFILE;
214 typedef HANDLE HFONT;
215 typedef HANDLE HGDIOBJ;
216 typedef HANDLE HGLOBAL;
217 typedef HANDLE HGLRC;
218 typedef HANDLE HHOOK;
219 typedef HANDLE HICON;
220 typedef HANDLE HIMAGELIST;
221 typedef HANDLE HINSTANCE;
222 typedef HANDLE HKEY, *PHKEY;
223 typedef HANDLE HKL;
224 typedef HANDLE HLOCAL;
225 typedef HANDLE HMENU;
226 typedef HANDLE HMETAFILE;
227 typedef HANDLE HMODULE;
228 typedef HANDLE HPALETTE;
229 typedef HANDLE HPEN;
230 typedef HANDLE HRASCONN;
231 typedef long HRESULT;
232 typedef HANDLE HRGN;
233 typedef HANDLE HRSRC;
234 typedef HANDLE HSTMT;
235 typedef HANDLE HSZ;
236 typedef HANDLE HWINSTA;
237 typedef HANDLE HWND;
238 typedef int INT;
239 typedef unsigned short LANGID;
240 typedef DWORD LCID;
241 typedef DWORD LCTYPE;
242 /* typedef LOCALHANDLE */
243 typedef unsigned short *LP;
244 typedef long LPARAM;
245 typedef WINBOOL *LPBOOL;
246 typedef BYTE *LPBYTE;
247 typedef CONST CHAR *LPCCH;
248 typedef CHAR *LPCH;
249 typedef COLORREF *LPCOLORREF;
250 typedef const char *LPCSTR;
251
252 #ifdef UNICODE
253 typedef const unsigned short *LPCTSTR;
254 #else
255 typedef const char *LPCTSTR;
256 #endif /* UNICODE */
257
258 typedef const unsigned short *LPCWCH;
259 typedef const unsigned short *LPCWSTR;
260 typedef DWORD *LPDWORD;
261 /* typedef LPFRHOOKPROC; */
262 typedef HANDLE *LPHANDLE;
263 /* typedef LPHANDLER_FUNCTION; */
264 typedef int *LPINT;
265 typedef long *LPLONG;
266
267 typedef long LRESULT;
268 typedef const void *LPCVOID;
269 typedef unsigned short *LPWCH;
270 typedef unsigned short *LPWORD;
271 /* typedef NPSTR; */
272 typedef unsigned short *NWPSTR;
273 typedef WINBOOL *PWINBOOL;
274 typedef BYTE *PBYTE;
275 typedef const CHAR *PCCH;
276 typedef const char *PCSTR;
277 typedef const unsigned short *PCWCH;
278 typedef DWORD *PDWORD;
279 typedef float *PFLOAT;
280 /* typedef PHKEY; */
281 typedef int *PINT;
282 /* typedef LCID *PLCID; */
283 typedef short *PSHORT;
284 /* typedef PSID; */
285 typedef char *PSTR;
286 typedef char *PSZ;
287
288 #ifdef UNICODE
289 typedef unsigned short *PTBYTE;
290 typedef unsigned short *PTCH;
291 typedef unsigned short *PTCHAR;
292 typedef unsigned short *PTSTR;
293 #else
294 typedef unsigned char *PTBYTE;
295 typedef char *PTCH;
296 typedef char *PTCHAR;
297 typedef char *PTSTR;
298 #endif /* UNICODE */
299
300 typedef unsigned short *PWCH;
301 typedef unsigned short *PWORD;
302 /*
303 typedef PWSTR;
304 typedef REGSAM;
305 */
306
307 typedef short RETCODE;
308
309 typedef HANDLE SC_HANDLE;
310 typedef LPVOID SC_LOCK;
311 typedef SC_HANDLE *LPSC_HANDLE;
312 typedef DWORD SERVICE_STATUS_HANDLE;
313 /* typedef SPHANDLE; */
314
315 #ifdef UNICODE
316 typedef unsigned short TBYTE;
317 typedef unsigned short TCHAR;
318 typedef unsigned short BCHAR;
319 #else
320 typedef unsigned char TBYTE;
321 typedef char TCHAR;
322 typedef BYTE BCHAR;
323 #endif /* UNICODE */
324
325 typedef unsigned int WPARAM;
326 /* typedef YIELDPROC; */
327
328 /* Only use __stdcall under WIN32 compiler */
329
330 #define _export
331
332 /*
333 Enumerations
334 */
335 typedef enum _ACL_INFORMATION_CLASS {
336 AclRevisionInformation = 1,
337 AclSizeInformation
338 } ACL_INFORMATION_CLASS;
339
340
341 #define RASCS_DONE 0x2000
342 #define RASCS_PAUSED 0x1000
343 typedef enum _RASCONNSTATE {
344 RASCS_OpenPort = 0,
345 RASCS_PortOpened,
346 RASCS_ConnectDevice,
347 RASCS_DeviceConnected,
348 RASCS_AllDevicesConnected,
349 RASCS_Authenticate,
350 RASCS_AuthNotify,
351 RASCS_AuthRetry,
352 RASCS_AuthCallback,
353 RASCS_AuthChangePassword,
354 RASCS_AuthProject,
355 RASCS_AuthLinkSpeed,
356 RASCS_AuthAck,
357 RASCS_ReAuthenticate,
358 RASCS_Authenticated,
359 RASCS_PrepareForCallback,
360 RASCS_WaitForModemReset,
361 RASCS_WaitForCallback,
362 RASCS_Projected,
363
364 RASCS_StartAuthentication,
365 RASCS_CallbackComplete,
366 RASCS_LogonNetwork,
367
368 RASCS_Interactive = RASCS_PAUSED,
369 RASCS_RetryAuthentication,
370 RASCS_CallbackSetByCaller,
371 RASCS_PasswordExpired,
372
373 RASCS_Connected = RASCS_DONE,
374 RASCS_Disconnected
375 } RASCONNSTATE ;
376
377 typedef enum _RASPROJECTION {
378 RASP_Amb = 0x10000,
379 RASP_PppNbf = 0x803F,
380 RASP_PppIpx = 0x802B,
381 RASP_PppIp = 0x8021
382 } RASPROJECTION ;
383
384 typedef enum _SID_NAME_USE {
385 SidTypeUser = 1,
386 SidTypeGroup,
387 SidTypeDomain,
388 SidTypeAlias,
389 SidTypeWellKnownGroup,
390 SidTypeDeletedAccount,
391 SidTypeInvalid,
392 SidTypeUnknown
393 } SID_NAME_USE, *PSID_NAME_USE;
394
395 typedef enum _TOKEN_INFORMATION_CLASS {
396 TokenUser = 1,
397 TokenGroups,
398 TokenPrivileges,
399 TokenOwner,
400 TokenPrimaryGroup,
401 TokenDefaultDacl,
402 TokenSource,
403 TokenType,
404 TokenImpersonationLevel,
405 TokenStatistics
406 } TOKEN_INFORMATION_CLASS;
407
408 #endif /* ! defined (RC_INVOKED) */
409
410 /*
411 Macros
412 */
413 #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), (LPARAM)(NMHDR FAR*)(pnmhdr))
414
415 #define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
416 #define GetGValue(rgb) ((BYTE) (((WORD) (rgb)) >> 8))
417 #define GetRValue(rgb) ((BYTE) (rgb))
418 #define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD) (BYTE) (b)) << 16)))
419
420 #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam))
421
422 #define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
423 #define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
424 #define LOBYTE(w) ((BYTE) (w))
425 #define LOWORD(l) ((WORD) (l))
426 #define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
427 #define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
428
429 /* original Cygnus headers also had the following defined: */
430 #define SEXT_HIWORD(l) ((((int)l) >> 16))
431 #define ZEXT_HIWORD(l) ((((unsigned int)l) >> 16))
432 #define SEXT_LOWORD(l) ((int)(short)l)
433
434 #define INDEXTOOVERLAYMASK(i) ((i) << 8)
435 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
436
437 #define MAKEINTATOM(i) (LPTSTR) ((DWORD) ((WORD) (i)))
438 #define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))
439
440 #define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))
441 #define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff)
442 #define SUBLANGID(lgid) ((WORD )(lgid) >> 10)
443
444 #define LANGIDFROMLCID(lcid) ((WORD) (lcid))
445 #define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) & 0x000FFFFF) >> 16))
446 #define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD)(srtid))) << 16) | ((DWORD)((WORD)(lgid)))))
447 #define MAKELPARAM(l, h) ((LPARAM) MAKELONG(l, h))
448 #define MAKELRESULT(l, h) ((LRESULT) MAKELONG(l, h))
449 #define MAKEPOINTS(l) (*((POINTS FAR *) & (l)))
450 #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
451 #define MAKEWPARAM(l, h) ((WPARAM) MAKELONG(l, h))
452
453
454 #define PALETTEINDEX(i) ((COLORREF) (0x01000000 | (DWORD) (WORD) (i)))
455 #define PALETTERGB(r, g, b) (0x02000000 | RGB(r, g, b))
456 #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); (pt).y = (SHORT) HIWORD(pts);}
457 #define POINTTOPOINTS(pt) (MAKELONG((short) ((pt).x), (short) ((pt).y)))
458
459 #define INDEXTOOVERLAYMASK(i) ((i) << 8)
460 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
461
462 #ifdef UNICODE
463 #define TEXT(quote) L##quote
464 #else
465 #define TEXT(quote) quote
466 #endif
467
468 #ifndef RC_INVOKED
469
470 /*
471 Definitions for callback procedures
472 */
473 typedef int CALLBACK (*BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
474 typedef UINT CALLBACK (*LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
475 typedef UINT CALLBACK (*LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
476 typedef DWORD CALLBACK (*EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
477 typedef UINT CALLBACK (*LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
478 typedef UINT CALLBACK (*LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
479 typedef UINT CALLBACK (*LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
480 typedef UINT CALLBACK (*LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
481 typedef WINBOOL CALLBACK (*DLGPROC) (HWND, UINT, WPARAM, LPARAM);
482 typedef int CALLBACK (*PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
483 typedef VOID CALLBACK (*LPSERVICE_MAIN_FUNCTION) (DWORD, LPTSTR);
484 typedef int CALLBACK (*PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
485 typedef LRESULT CALLBACK (*WNDPROC) (HWND, UINT, WPARAM, LPARAM);
486 typedef int CALLBACK (*FARPROC)(void);
487 typedef FARPROC PROC;
488 typedef WINBOOL CALLBACK (*ENUMRESTYPEPROC) (HANDLE, LPTSTR, LONG);
489 typedef WINBOOL CALLBACK (*ENUMRESNAMEPROC) (HANDLE, LPCTSTR, LPTSTR, LONG);
490 typedef WINBOOL CALLBACK (*ENUMRESLANGPROC) (HANDLE, LPCTSTR, LPCTSTR, WORD, LONG);
491 typedef FARPROC DESKTOPENUMPROC;
492 typedef WINBOOL CALLBACK (*ENUMWINDOWSPROC) (HWND, LPARAM);
493 typedef WINBOOL CALLBACK (*ENUMWINDOWSTATIONPROC) (LPTSTR, LPARAM);
494 typedef VOID CALLBACK (*SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
495 typedef VOID CALLBACK (*TIMERPROC) (HWND, UINT, UINT, DWORD);
496 typedef FARPROC GRAYSTRINGPROC;
497 typedef WINBOOL CALLBACK (*DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
498 typedef WINBOOL CALLBACK (*PROPENUMPROCEX) (HWND, LPCTSTR, HANDLE, DWORD);
499 typedef WINBOOL CALLBACK (*PROPENUMPROC) (HWND, LPCTSTR, HANDLE);
500 typedef LRESULT CALLBACK (*HOOKPROC) (int, WPARAM, LPARAM);
501 typedef VOID CALLBACK (*ENUMOBJECTSPROC) (LPVOID, LPARAM);
502 typedef VOID CALLBACK (*LINEDDAPROC) (int, int, LPARAM);
503 typedef WINBOOL CALLBACK (*ABORTPROC) (HDC, int);
504 typedef UINT CALLBACK (*LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
505 typedef UINT CALLBACK (*LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
506 typedef int CALLBACK (*ICMENUMPROC) (LPTSTR, LPARAM);
507 typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
508 typedef int CALLBACK (*PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
509 typedef WINBOOL CALLBACK (*LOCALE_ENUMPROC) (LPTSTR);
510 typedef WINBOOL CALLBACK (*CODEPAGE_ENUMPROC) (LPTSTR);
511 typedef WINBOOL CALLBACK (*DATEFMT_ENUMPROC) (LPTSTR);
512 typedef WINBOOL CALLBACK (*TIMEFMT_ENUMPROC) (LPTSTR);
513 typedef WINBOOL CALLBACK (*CALINFO_ENUMPROC) (LPTSTR);
514 typedef WINBOOL CALLBACK (*PHANDLER_ROUTINE) (DWORD);
515 typedef WINBOOL CALLBACK (*LPHANDLER_FUNCTION) (DWORD);
516 typedef UINT CALLBACK (*PFNGETPROFILEPATH) (LPCTSTR, LPSTR, UINT);
517 typedef UINT CALLBACK (*PFNRECONCILEPROFILE) (LPCTSTR, LPCTSTR, DWORD);
518 typedef WINBOOL CALLBACK (*PFNPROCESSPOLICIES) (HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
519
520 #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
521 #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
522 #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
523 #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
524 #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
525 #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
526
527 #define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
528 #define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
529 #define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
530 #define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
531 #define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
532 #define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
533 #define SE_TCB_NAME TEXT("SeTcbPrivilege")
534 #define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
535 #define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
536 #define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
537 #define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
538 #define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
539 #define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
540 #define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
541 #define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
542 #define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
543 #define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
544 #define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
545 #define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
546 #define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
547 #define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
548 #define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
549 #define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
550 #define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
551
552 #define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
553 #define SERVICES_FAILED_DATABASEW L"ServicesFailed"
554 #define SERVICES_ACTIVE_DATABASEA "ServicesActive"
555 #define SERVICES_FAILED_DATABASEA "ServicesFailed"
556 #define SC_GROUP_IDENTIFIERW L'+'
557 #define SC_GROUP_IDENTIFIERA '+'
558
559 #ifdef UNICODE
560 #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
561 #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
562 #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
563 #else
564 #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
565 #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
566 #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
567 #endif /* UNICODE */
568
569 /* ---------------------------------- */
570 /* From ddeml.h in old Cygnus headers */
571
572 typedef void (*CALLB) (void);
573 typedef CALLB PFNCALLBACK;
574
575 typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
576
577 /* End of stuff from ddeml.h in old Cygnus headers */
578 /* ----------------------------------------------- */
579
580 typedef FARPROC WNDENUMPROC;
581 typedef FARPROC ENHMFENUMPROC;
582 typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
583 typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
584 #define DECLARE_HANDLE(s) typedef HANDLE s
585
586 #endif /* ! defined (RC_INVOKED) */
587
588 #endif /* WIN32_LEAN_AND_MEAN */
589
590 #ifdef __cplusplus
591 }
592 #endif /* __cplusplus */
593
594 #endif /* _GNU_H_WINDOWS32_BASE */