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