home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 January / PCWorld_2000-01_cd.bin / Software / Servis / Devc / _SETUP.5 / Group9 / Base.h < prev    next >
C/C++ Source or Header  |  1998-12-24  |  18KB  |  603 lines

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