6 Copyright (C) 1996, 1997 Free Software Foundation, Inc.
8 Author: Scott Christley <scottc@net-community.com>
10 This file is part of the Windows32 API Library.
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.
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.
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.
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.
31 #ifndef _GNU_H_WINDOWS32_BASE
32 #define _GNU_H_WINDOWS32_BASE
36 #endif /* __cplusplus */
42 #define NULL ((void *)0)
46 #include <ntos/types.h>
48 /* Check VOID before defining CHAR, SHORT, and LONG */
59 #define WINAPI STDCALL
60 #define APIENTRY STDCALL
64 #ifndef _DISABLE_TIDENTS
66 typedef wchar_t *LPTCH
;
67 typedef wchar_t *LPTSTR
;
72 #endif /* _DISABLE_TIDENTS */
76 /* typedef ACMDRIVERENUMCB;
77 typedef ACMDRIVERPROC;
78 typedef ACMFILERCHOOSEHOOKPROC;
79 typedef ACMFILTERENUMCB;
80 typedef ACMFILTERTAGENUMCB;
81 typedef ACMFORMATCHOOSEHOOKPROC;
82 typedef ACMFORMATENUMCB;
83 typedef ACMFORMATTAGENUMCB;
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
;
96 typedef unsigned long long DWORDLONG
, *PDWORDLONG
;
98 typedef unsigned __int64 DWORDLONG
, *PDWORDLONG
;
101 typedef EDITWORDBREAKPROC;
102 typedef ENHMFENUMPROC;
103 typedef ENUMRESLANGPROC;
104 typedef ENUMRESNAMEPROC;
105 typedef ENUMRESTYPEPROC;
108 /* typedef GLOBALHANDLE; */
109 typedef HANDLE HACCEL
;
110 typedef HANDLE HBITMAP
;
111 typedef HANDLE HBRUSH
;
112 typedef HANDLE HCOLORSPACE
;
113 typedef HANDLE HCONV
;
114 typedef HANDLE HCONVLIST
;
115 typedef HANDLE HCURSOR
;
118 typedef HANDLE HDDEDATA
;
119 typedef HANDLE HDESK
;
120 typedef HANDLE HDROP
;
122 typedef HANDLE HENHMETAFILE
;
124 typedef USHORT COLOR16
;
126 typedef HANDLE HFONT
;
127 typedef HANDLE HGDIOBJ
;
128 typedef HANDLE HGLOBAL
;
129 typedef HANDLE HGLRC
;
130 typedef HANDLE HHOOK
;
131 typedef HANDLE HICON
;
132 typedef HANDLE HIMAGELIST
;
133 typedef HANDLE HINSTANCE
;
134 typedef HANDLE HKEY
, *PHKEY
;
137 typedef DWORD GEOTYPE
;
138 typedef DWORD GEOCLASS
;
139 typedef HANDLE HLOCAL
;
140 typedef HANDLE HMENU
;
141 typedef HANDLE HMETAFILE
;
142 typedef HANDLE HMODULE
;
143 typedef HANDLE HPALETTE
;
145 typedef HANDLE HRASCONN
;
146 typedef DWORD LGRPID
;
147 typedef long HRESULT
;
149 typedef HANDLE HRSRC
;
150 typedef HANDLE HSTMT
;
152 typedef HANDLE HWINSTA
;
154 typedef HANDLE HRAWINPUT
;
155 typedef HANDLE HTASK
;
156 typedef HANDLE HWINEVENTHOOK
;
157 typedef VOID (CALLBACK
*WINEVENTPROC
)(HWINEVENTHOOK hWinEventHook
,DWORD event
,HWND hwnd
,LONG idObject
,LONG idChild
,DWORD idEventThread
,DWORD dwmsEventTime
);
158 //typedef unsigned short LANGID;
159 /*typedef DWORD LCID; */
160 typedef DWORD LCTYPE
;
161 /* typedef LOCALHANDLE */
162 typedef unsigned short *LP
;
165 typedef WINBOOL
*LPBOOL
;
166 typedef CONST CHAR
*LPCCH
;
168 typedef COLORREF
*LPCOLORREF
;
170 #ifndef _DISABLE_TIDENTS
172 typedef const wchar_t *LPCTSTR
;
174 typedef const char *LPCTSTR
;
176 #endif /* _DISABLE_TIDENTS */
178 typedef const wchar_t *LPCWCH
;
179 typedef DWORD
*LPDWORD
;
180 /* typedef LPFRHOOKPROC; */
181 typedef HANDLE
*LPHANDLE
;
182 typedef DWORD FULLSCREENCONTROL
;
183 typedef DWORD UNIVERSAL_FONT_ID
;
184 typedef UNIVERSAL_FONT_ID
*PUNIVERSAL_FONT_ID
;
185 typedef DWORD REALIZATION_INFO
;
186 typedef REALIZATION_INFO
*PREALIZATION_INFO
;
187 typedef DWORD SHAREDHANDLETABLE
;
188 typedef SHAREDHANDLETABLE
*PSHAREDHANDLETABLE
;
189 typedef DWORD CHWIDTHINFO
;
190 typedef CHWIDTHINFO
*PCHWIDTHINFO
;
191 /* typedef LPHANDLER_FUNCTION; */
193 typedef PLONG LPLONG
;
195 typedef long LRESULT
;
196 typedef wchar_t *LPWCH
;
197 typedef unsigned short *LPWORD
;
199 typedef wchar_t *NWPSTR
;
200 typedef WINBOOL
*PWINBOOL
;
201 typedef const CHAR
*PCCH
;
202 typedef const char *PCSTR
;
203 typedef const wchar_t *PCWCH
;
205 /* typedef LCID *PLCID; */
206 typedef short *PSHORT
;
211 #ifndef _DISABLE_TIDENTS
213 typedef wchar_t *PTBYTE
;
214 typedef wchar_t *PTCH
;
215 typedef wchar_t *PTCHAR
;
216 typedef wchar_t *PTSTR
;
218 typedef unsigned char *PTBYTE
;
220 typedef char *PTCHAR
;
223 #endif /* _DISABLE_TIDENTS */
228 typedef DWORD REGSAM
;
231 typedef short RETCODE
;
233 typedef HANDLE SC_HANDLE
;
234 typedef LPVOID SC_LOCK
;
235 typedef SC_HANDLE
*LPSC_HANDLE
;
236 typedef DWORD SERVICE_STATUS_HANDLE
;
237 /* typedef SPHANDLE; */
239 #ifndef _DISABLE_TIDENTS
241 typedef wchar_t TBYTE
;
242 #ifndef _TCHAR_DEFINED
243 #define _TCHAR_DEFINED
244 typedef wchar_t TCHAR
;
245 #endif /* _TCHAR_DEFINED */
246 typedef wchar_t BCHAR
;
248 typedef unsigned char TBYTE
;
249 #ifndef _TCHAR_DEFINED
250 #define _TCHAR_DEFINED
252 #endif /* _TCHAR_DEFINED */
255 #endif /* _DISABLE_TIDENTS */
257 typedef unsigned int WPARAM
;
258 /* typedef YIELDPROC; */
260 /* Only use __stdcall under WIN32 compiler */
269 #define GEOID_NOT_AVAILABLE (-1)
271 GEO information types for clients to query
277 GEO_LONGITUDE
= 0x03,
282 GEO_FRIENDLYNAME
= 0x08,
283 GEO_OFFICIALNAME
= 0x09,
284 GEO_TIMEZONES
= 0x0A,
285 GEO_OFFICIALLANGUAGES
= 0x0B,
289 More GEOCLASS defines will be listed here
293 GEOCLASS_NATION
= 16,
294 GEOCLASS_REGION
= 14,
298 #define RASCS_DONE 0x2000
299 #define RASCS_PAUSED 0x1000
300 typedef enum _RASCONNSTATE
{
304 RASCS_DeviceConnected
,
305 RASCS_AllDevicesConnected
,
310 RASCS_AuthChangePassword
,
314 RASCS_ReAuthenticate
,
316 RASCS_PrepareForCallback
,
317 RASCS_WaitForModemReset
,
318 RASCS_WaitForCallback
,
321 RASCS_StartAuthentication
,
322 RASCS_CallbackComplete
,
325 RASCS_Interactive
= RASCS_PAUSED
,
326 RASCS_RetryAuthentication
,
327 RASCS_CallbackSetByCaller
,
328 RASCS_PasswordExpired
,
330 RASCS_Connected
= RASCS_DONE
,
334 typedef enum _RASPROJECTION
{
336 RASP_PppNbf
= 0x803F,
337 RASP_PppIpx
= 0x802B,
341 typedef enum _SID_NAME_USE
{
346 SidTypeWellKnownGroup
,
347 SidTypeDeletedAccount
,
350 } SID_NAME_USE
, *PSID_NAME_USE
;
352 #endif /* ! defined (RC_INVOKED) */
357 #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), (LPARAM)(NMHDR FAR*)(pnmhdr))
359 #define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
360 #define GetGValue(rgb) ((BYTE) (((WORD) (rgb)) >> 8))
361 #define GetRValue(rgb) ((BYTE) (rgb))
362 #define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | ((WORD) (g) << 8)) | (((DWORD) (BYTE) (b)) << 16)))
364 #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam))
366 #define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
367 #define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
368 #define SHIWORD(l) ((INT16) (((DWORD) (l) >> 16) & 0xFFFF))
369 #define LOBYTE(w) ((BYTE) (w))
370 #define LOWORD(l) ((WORD) (l))
371 #define SLOWORD(l) ((INT16) (l))
372 #define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
373 #define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
375 /* original Cygnus headers also had the following defined: */
376 #define SEXT_HIWORD(l) ((((int)l) >> 16))
377 #define ZEXT_HIWORD(l) ((((unsigned int)l) >> 16))
378 #define SEXT_LOWORD(l) ((int)(short)l)
380 #define INDEXTOOVERLAYMASK(i) ((i) << 8)
381 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
383 #define MAKEINTATOM(i) (LPTSTR) ((DWORD) ((WORD) (i)))
384 #ifndef _DISABLE_TIDENTS
385 #define MAKEINTRESOURCE(i) (LPTSTR) ((ULONG_PTR) ((WORD) (i)))
386 #endif /* _DISABLE_TIDENTS */
387 #define MAKEINTRESOURCEA(i) (LPSTR) ((ULONG_PTR) ((WORD) (i)))
388 #define MAKEINTRESOURCEW(i) (LPWSTR) ((ULONG_PTR) ((WORD) (i)))
389 #define IS_INTRESOURCE(n) ((((ULONG_PTR) (n)) >> 16) == 0)
391 #define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p))
392 #define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff)
393 #define SUBLANGID(lgid) ((WORD )(lgid) >> 10)
395 #define LANGIDFROMLCID(lcid) ((WORD) (lcid))
396 #define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) & 0x000FFFFF) >> 16))
397 #define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD)(srtid))) << 16) | ((DWORD)((WORD)(lgid)))))
398 #define MAKELPARAM(l, h) ((LPARAM) MAKELONG(l, h))
399 #define MAKELRESULT(l, h) ((LRESULT) MAKELONG(l, h))
400 #define MAKEPOINTS(l) (*((POINTS FAR *) & (l)))
401 #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore))
402 #define MAKEWPARAM(l, h) ((WPARAM) MAKELONG(l, h))
405 #define PALETTEINDEX(i) ((COLORREF) (0x01000000 | (DWORD) (WORD) (i)))
406 #define PALETTERGB(r, g, b) (0x02000000 | RGB(r, g, b))
407 #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); (pt).y = (SHORT) HIWORD(pts);}
408 #define POINTTOPOINTS(pt) (MAKELONG((short) ((pt).x), (short) ((pt).y)))
410 #define INDEXTOOVERLAYMASK(i) ((i) << 8)
411 #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
413 #ifndef _DISABLE_TIDENTS
416 # define _T(quote) L##quote
419 # define TEXT(quote) L##quote
423 # define _T(quote) quote
426 # define TEXT(quote) quote
428 # endif /* UNICODE */
429 #endif /* _DISABLE_TIDENTS */
434 Definitions for callback procedures
441 WinCreatorOwnerSid
= 3,
442 WinCreatorGroupSid
= 4,
443 WinCreatorOwnerServerSid
= 5,
444 WinCreatorGroupServerSid
= 6,
445 WinNtAuthoritySid
= 7,
449 WinInteractiveSid
= 11,
451 WinAnonymousSid
= 13,
453 WinEnterpriseControllersSid
= 15,
455 WinAuthenticatedUserSid
= 17,
456 WinRestrictedCodeSid
= 18,
457 WinTerminalServerSid
= 19,
458 WinRemoteLogonIdSid
= 20,
460 WinLocalSystemSid
= 22,
461 WinLocalServiceSid
= 23,
462 WinNetworkServiceSid
= 24,
463 WinBuiltinDomainSid
= 25,
464 WinBuiltinAdministratorsSid
= 26,
465 WinBuiltinUsersSid
= 27,
466 WinBuiltinGuestsSid
= 28,
467 WinBuiltinPowerUsersSid
= 29,
468 WinBuiltinAccountOperatorsSid
= 30,
469 WinBuiltinSystemOperatorsSid
= 31,
470 WinBuiltinPrintOperatorsSid
= 32,
471 WinBuiltinBackupOperatorsSid
= 33,
472 WinBuiltinReplicatorSid
= 34,
473 WinBuiltinPreWindows2000CompatibleAccessSid
= 35,
474 WinBuiltinRemoteDesktopUsersSid
= 36,
475 WinBuiltinNetworkConfigurationOperatorsSid
= 37,
476 WinAccountAdministratorSid
= 38,
477 WinAccountGuestSid
= 39,
478 WinAccountKrbtgtSid
= 40,
479 WinAccountDomainAdminsSid
= 41,
480 WinAccountDomainUsersSid
= 42,
481 WinAccountDomainGuestsSid
= 43,
482 WinAccountComputersSid
= 44,
483 WinAccountControllersSid
= 45,
484 WinAccountCertAdminsSid
= 46,
485 WinAccountSchemaAdminsSid
= 47,
486 WinAccountEnterpriseAdminsSid
= 48,
487 WinAccountPolicyAdminsSid
= 49,
488 WinAccountRasAndIasServersSid
= 50,
489 WinNTLMAuthenticationSid
= 51,
490 WinDigestAuthenticationSid
= 52,
491 WinSChannelAuthenticationSid
= 53,
492 WinThisOrganizationSid
= 54,
493 WinOtherOrganizationSid
= 55,
494 WinBuiltinIncomingForestTrustBuildersSid
= 56,
495 WinBuiltinPerfMonitoringUsersSid
= 57,
496 WinBuiltinPerfLoggingUsersSid
= 58,
497 WinBuiltinAuthorizationAccessSid
= 59,
498 WinBuiltinTerminalServerLicenseServersSid
= 60,
500 } WELL_KNOWN_SID_TYPE
;
501 typedef enum _AUDIT_EVENT_TYPE
{
502 AuditEventObjectAccess
,
503 AuditEventDirectoryServiceAccess
504 } AUDIT_EVENT_TYPE
, *PAUDIT_EVENT_TYPE
;
505 typedef int (CALLBACK
*BFFCALLBACK
) (HWND
, UINT
, LPARAM
, LPARAM
);
506 typedef UINT (CALLBACK
*LPCCHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
507 typedef UINT (CALLBACK
*LPCFHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
508 typedef DWORD (CALLBACK
*EDITSTREAMCALLBACK
) (DWORD
, LPBYTE
, LONG
, LONG
);
509 typedef UINT (CALLBACK
*LPFRHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
510 typedef UINT (CALLBACK
*LPOFNHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
511 typedef UINT (CALLBACK
*LPPRINTHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
512 typedef UINT (CALLBACK
*LPSETUPHOOKPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
513 typedef WINBOOL (CALLBACK
*DLGPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
514 typedef int (CALLBACK
*PFNPROPSHEETCALLBACK
) (HWND
, UINT
, LPARAM
);
515 typedef VOID (CALLBACK
*LPSERVICE_MAIN_FUNCTIONA
) (DWORD
, LPSTR
*);
516 typedef VOID (CALLBACK
*LPSERVICE_MAIN_FUNCTIONW
) (DWORD
, LPWSTR
*);
517 typedef int (CALLBACK
*PFNTVCOMPARE
) (LPARAM
, LPARAM
, LPARAM
);
518 typedef LRESULT (CALLBACK
*WNDPROC
) (HWND
, UINT
, WPARAM
, LPARAM
);
519 typedef int (CALLBACK
*FARPROC
)(void);
520 typedef FARPROC PROC
;
521 typedef WINBOOL (CALLBACK
*ENUMRESTYPEPROCA
) (HANDLE
, LPSTR
, LONG
);
522 typedef WINBOOL (CALLBACK
*ENUMRESTYPEPROCW
) (HANDLE
, LPWSTR
, LONG
);
523 typedef WINBOOL (CALLBACK
*ENUMRESNAMEPROCA
) (HANDLE
, LPCSTR
, LPSTR
, LONG
);
524 typedef WINBOOL (CALLBACK
*ENUMRESNAMEPROCW
) (HANDLE
, LPCWSTR
, LPWSTR
, LONG
);
525 typedef WINBOOL (CALLBACK
*ENUMRESLANGPROCA
) (HANDLE
, LPCSTR
, LPCSTR
, WORD
, LONG
);
526 typedef WINBOOL (CALLBACK
*ENUMRESLANGPROCW
) (HANDLE
, LPCWSTR
, LPCWSTR
, WORD
, LONG
);
527 typedef WINBOOL (CALLBACK
*DESKTOPENUMPROCA
) (LPSTR
, LPARAM
);
528 typedef WINBOOL (CALLBACK
*DESKTOPENUMPROCW
) (LPWSTR
, LPARAM
);
529 typedef WINBOOL (CALLBACK
*ENUMWINDOWSPROC
) (HWND
, LPARAM
);
530 typedef WINBOOL (CALLBACK
*ENUMWINDOWSTATIONPROCA
) (LPSTR
, LPARAM
);
531 typedef WINBOOL (CALLBACK
*ENUMWINDOWSTATIONPROCW
) (LPWSTR
, LPARAM
);
532 typedef VOID (CALLBACK
*SENDASYNCPROC
) (HWND
, UINT
, DWORD
, LRESULT
);
533 typedef VOID (CALLBACK
*TIMERPROC
) (HWND
, UINT
, UINT
, DWORD
);
534 typedef WINBOOL (CALLBACK
*GRAYSTRINGPROC
) (HDC
, LPARAM
, int);
535 typedef WINBOOL (CALLBACK
*DRAWSTATEPROC
) (HDC
, LPARAM
, WPARAM
, int, int);
536 typedef WINBOOL (CALLBACK
*PROPENUMPROCEXA
) (HWND
, LPCSTR
, HANDLE
, DWORD
);
537 typedef WINBOOL (CALLBACK
*PROPENUMPROCEXW
) (HWND
, LPCWSTR
, HANDLE
, DWORD
);
538 typedef WINBOOL (CALLBACK
*PROPENUMPROCA
) (HWND
, LPCSTR
, HANDLE
);
539 typedef WINBOOL (CALLBACK
*PROPENUMPROCW
) (HWND
, LPCWSTR
, HANDLE
);
540 typedef LRESULT (CALLBACK
*HOOKPROC
) (int, WPARAM
, LPARAM
);
541 typedef VOID (CALLBACK
*ENUMOBJECTSPROC
) (LPVOID
, LPARAM
);
542 typedef VOID (CALLBACK
*LINEDDAPROC
) (int, int, LPARAM
);
543 typedef WINBOOL (CALLBACK
*ABORTPROC
) (HDC
, int);
544 typedef UINT (CALLBACK
*LPPAGEPAINTHOOK
) (HWND
, UINT
, WPARAM
, LPARAM
);
545 typedef UINT (CALLBACK
*LPPAGESETUPHOOK
) (HWND
, UINT
, WPARAM
, LPARAM
);
546 typedef int (CALLBACK
*ICMENUMPROCA
) (LPSTR
, LPARAM
);
547 typedef int (CALLBACK
*ICMENUMPROCW
) (LPWSTR
, LPARAM
);
548 typedef LONG (*EDITWORDBREAKPROCEX
) (char *, LONG
, BYTE
, INT
);
549 typedef int (CALLBACK
*PFNLVCOMPARE
) (LPARAM
, LPARAM
, LPARAM
);
550 typedef WINBOOL (CALLBACK
*LOCALE_ENUMPROCA
) (LPSTR
);
551 typedef WINBOOL (CALLBACK
*LOCALE_ENUMPROCW
) (LPWSTR
);
552 typedef WINBOOL (CALLBACK
*CODEPAGE_ENUMPROCA
) (LPSTR
);
553 typedef WINBOOL (CALLBACK
*CODEPAGE_ENUMPROCW
) (LPWSTR
);
554 typedef WINBOOL (CALLBACK
*DATEFMT_ENUMPROCA
) (LPSTR
);
555 typedef WINBOOL (CALLBACK
*DATEFMT_ENUMPROCW
) (LPWSTR
);
556 typedef WINBOOL (CALLBACK
*TIMEFMT_ENUMPROCA
) (LPSTR
);
557 typedef WINBOOL (CALLBACK
*TIMEFMT_ENUMPROCW
) (LPWSTR
);
558 typedef WINBOOL (CALLBACK
*CALINFO_ENUMPROCA
) (LPSTR
);
559 typedef int (CALLBACK
*EMFPLAYPROC
)( HDC hdc
, INT iFunction
, HANDLE hPageQuery
);
560 typedef WINBOOL (CALLBACK
*CALINFO_ENUMPROCW
) (LPWSTR
);
561 typedef WINBOOL (CALLBACK
*PHANDLER_ROUTINE
) (DWORD
);
562 typedef VOID (CALLBACK
*LPHANDLER_FUNCTION
) (DWORD
);
563 typedef DWORD (CALLBACK
*LPHANDLER_FUNCTION_EX
)(DWORD
,DWORD
,LPVOID
,LPVOID
);
564 typedef UINT (CALLBACK
*PFNGETPROFILEPATHA
) (LPCSTR
, LPSTR
, UINT
);
565 typedef UINT (CALLBACK
*PFNGETPROFILEPATHW
) (LPCWSTR
, LPWSTR
, UINT
);
566 typedef UINT (CALLBACK
*PFNRECONCILEPROFILEA
) (LPCSTR
, LPCSTR
, DWORD
);
567 typedef UINT (CALLBACK
*PFNRECONCILEPROFILEW
) (LPCWSTR
, LPCWSTR
, DWORD
);
568 typedef WINBOOL (CALLBACK
*PFNPROCESSPOLICIESA
) (HWND
, LPCSTR
, LPCSTR
, LPCSTR
, DWORD
);
569 typedef WINBOOL (CALLBACK
*PFNPROCESSPOLICIESW
) (HWND
, LPCWSTR
, LPCWSTR
, LPCWSTR
, DWORD
);
571 #ifndef _DISABLE_TIDENTS
573 #define LPSERVICE_MAIN_FUNCTION LPSERVICE_MAIN_FUNCTIONW
574 #define ENUMRESTYPEPROC ENUMRESTYPEPROCW
575 #define ENUMRESNAMEPROC ENUMRESNAMEPROCW
576 #define ENUMRESLANGPROC ENUMRESLANGPROCW
577 #define DESKTOPENUMPROC DESKTOPENUMPROCW
578 #define ENUMWINDOWSTATIONPROC ENUMWINDOWSTATIONPROCW
579 #define PROPENUMPROCEX PROPENUMPROCEXW
580 #define PROPENUMPROC PROPENUMPROCW
581 #define ICMENUMPROC ICMENUMPROCW
582 #define LOCALE_ENUMPROC LOCALE_ENUMPROCW
583 #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
584 #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
585 #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
586 #define CALINFO_ENUMPROC CALINFO_ENUMPROCW
587 #define PFNGETPROFILEPATH PFNGETPROFILEPATHW
588 #define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW
589 #define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW
591 #define LPSERVICE_MAIN_FUNCTION LPSERVICE_MAIN_FUNCTIONA
592 #define ENUMRESTYPEPROC ENUMRESTYPEPROCA
593 #define ENUMRESNAMEPROC ENUMRESNAMEPROCA
594 #define ENUMRESLANGPROC ENUMRESLANGPROCA
595 #define DESKTOPENUMPROC DESKTOPENUMPROCA
596 #define ENUMWINDOWSTATIONPROC ENUMWINDOWSTATIONPROCA
597 #define PROPENUMPROCEX PROPENUMPROCEXA
598 #define PROPENUMPROC PROPENUMPROCA
599 #define ICMENUMPROC ICMENUMPROCA
600 #define LOCALE_ENUMPROC LOCALE_ENUMPROCA
601 #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
602 #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
603 #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
604 #define CALINFO_ENUMPROC CALINFO_ENUMPROCA
605 #define PFNGETPROFILEPATH PFNGETPROFILEPATHA
606 #define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA
607 #define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA
609 #endif /* _DISABLE_TIDENTS */
611 #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
612 #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
613 #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
614 #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
615 #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
616 #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
618 #define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
619 #define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege")
620 #define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege")
621 #define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege")
622 #define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege")
623 #define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege")
624 #define SE_TCB_NAME TEXT("SeTcbPrivilege")
625 #define SE_SECURITY_NAME TEXT("SeSecurityPrivilege")
626 #define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege")
627 #define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege")
628 #define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege")
629 #define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege")
630 #define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege")
631 #define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege")
632 #define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege")
633 #define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege")
634 #define SE_BACKUP_NAME TEXT("SeBackupPrivilege")
635 #define SE_RESTORE_NAME TEXT("SeRestorePrivilege")
636 #define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")
637 #define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
638 #define SE_AUDIT_NAME TEXT("SeAuditPrivilege")
639 #define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege")
640 #define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege")
641 #define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege")
643 typedef BOOL (CALLBACK
*LANGUAGEGROUP_ENUMPROCA
)(LGRPID
, LPSTR
, LPSTR
, DWORD
, LONG_PTR
);
644 typedef BOOL (CALLBACK
*LANGGROUPLOCALE_ENUMPROCA
)(LGRPID
, LCID
, LPSTR
, LONG_PTR
);
645 typedef BOOL (CALLBACK
*UILANGUAGE_ENUMPROCA
)(LPSTR
, LONG_PTR
);
646 typedef BOOL (CALLBACK
*DATEFMT_ENUMPROCEXA
)(LPSTR
, CALID
);
647 typedef BOOL (CALLBACK
*CALINFO_ENUMPROCEXA
)(LPSTR
, CALID
);
649 typedef BOOL (CALLBACK
*LANGUAGEGROUP_ENUMPROCW
)(LGRPID
, LPWSTR
, LPWSTR
, DWORD
, LONG_PTR
);
650 typedef BOOL (CALLBACK
*LANGGROUPLOCALE_ENUMPROCW
)(LGRPID
, LCID
, LPWSTR
, LONG_PTR
);
651 typedef BOOL (CALLBACK
*UILANGUAGE_ENUMPROCW
)(LPWSTR
, LONG_PTR
);
652 typedef BOOL (CALLBACK
*DATEFMT_ENUMPROCEXW
)(LPWSTR
, CALID
);
653 typedef BOOL (CALLBACK
*CALINFO_ENUMPROCEXW
)(LPWSTR
, CALID
);
654 typedef BOOL (CALLBACK
*GEO_ENUMPROC
)(GEOID
);
656 #define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
657 #define SERVICES_FAILED_DATABASEW L"ServicesFailed"
658 #define SERVICES_ACTIVE_DATABASEA "ServicesActive"
659 #define SERVICES_FAILED_DATABASEA "ServicesFailed"
660 #define SC_GROUP_IDENTIFIERW L'+'
661 #define SC_GROUP_IDENTIFIERA '+'
663 #ifndef _DISABLE_TIDENTS
665 #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW
666 #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW
667 #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW
669 #define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA
670 #define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA
671 #define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA
673 #endif /* _DISABLE_TIDENTS */
675 #define MM_MAX_NUMAXES 16
677 /* ---------------------------------- */
678 /* From ddeml.h in old Cygnus headers */
680 typedef void (*CALLB
) (void);
681 typedef CALLB PFNCALLBACK
;
684 typedef enum _COMPUTER_NAME_FORMAT
{
686 ComputerNameDnsHostname
,
687 ComputerNameDnsDomain
,
688 ComputerNameDnsFullyQualified
,
689 ComputerNamePhysicalNetBIOS
,
690 ComputerNamePhysicalDnsHostname
,
691 ComputerNamePhysicalDnsDomain
,
692 ComputerNamePhysicalDnsFullyQualified
,
694 } COMPUTER_NAME_FORMAT
;
696 typedef enum _HEAP_INFORMATION_CLASS
{
698 HeapCompatibilityInformation
700 } HEAP_INFORMATION_CLASS
;
707 typedef LONG (CALLBACK
*PVECTORED_EXCEPTION_HANDLER
)(
708 struct _EXCEPTION_POINTERS
*ExceptionInfo
713 (CALLBACK
*PAPCFUNC
)(
718 #define REFGUID const GUID &
720 #define REFGUID const GUID *
723 typedef DWORD (CALLBACK
*PFE_EXPORT_FUNC
)(PBYTE pbData
,PVOID pvCallbackContext
,ULONG ulLength
);
725 typedef DWORD (CALLBACK
*PFE_IMPORT_FUNC
)(PBYTE pbData
,PVOID pvCallbackContext
,PULONG ulLength
);
726 typedef VOID (CALLBACK
*PFIBER_START_ROUTINE
)(
727 LPVOID lpFiberParameter
729 typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE
;
731 typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE
{
732 LowMemoryResourceNotification
,
733 HighMemoryResourceNotification
734 } MEMORY_RESOURCE_NOTIFICATION_TYPE
;
736 typedef VOID (CALLBACK
*WAITORTIMERCALLBACK
) (PVOID
, BOOLEAN
);
738 /* End of stuff from ddeml.h in old Cygnus headers */
739 /* ----------------------------------------------- */
741 typedef FARPROC WNDENUMPROC
;
742 typedef FARPROC MFENUMPROC
;
743 typedef FARPROC ENHMFENUMPROC
;
744 typedef DWORD CCSTYLE
, *PCCSTYLE
, *LPCCSTYLE
;
745 typedef DWORD CCSTYLEFLAGA
, *PCCSTYLEFLAGA
, *LPCCSTYLEFLAGA
;
746 #define DECLARE_HANDLE(s) typedef HANDLE s
747 //typedef LANGID *PLANGID;
749 #endif /* ! defined (RC_INVOKED) */
753 #endif /* __cplusplus */
755 #endif /* _GNU_H_WINDOWS32_BASE */